我们正在努力恢复Google Play商店上的Unionpedia应用程序
传出传入
🌟我们简化了设计以优化导航!
Instagram Facebook X LinkedIn

F♯

指数 F♯

F#是由微软发展的为.NET语言提供运行环境的程序设计语言,是函數程式語言(FP,Functional Programming),函數程式語言最重要的基礎是Lambda Calculus。它是基于OCaml的,而OCaml是基于ML函数程式语言。有時F#和OCaml的程式是可以交互編譯的。 F#已經接近成熟,支援高阶函数、柯里化、惰性求值、Continuations、模式匹配、闭包、列表处理和元编程。这是一个用于显.NET在不同编程语言间互通的程序设计,可以被.NET中的任意其它代碼編譯和調用。 2002年微软開始由Don Syme帶領研發F#,從C#,LINQ和Haskell中獲取了經驗,2005年推出第一個版本,2007年7月31日释出1.9.2.9版。2007年底,微軟宣布F#進入產品化的階段。 F#已被集成在Visual Studio 2010中,版本是2.0,含有对.Net Framework的完全支持。 F#现在在Visual Studio 2015中,版本是4.0。 F#现在在Visual Studio 2017中,版本是4.1。.

目录

  1. 29 关系: Apache许可证多重编程范式并发计算微软函數程式語言元编程C♯类型推论编程语言Erlang類型系統语言集成查询跨平台闭包F*HaskellΛ演算JavaScriptMicrosoft Visual StudioML语言MonoOCamlPythonScalaXNA Game Studio Express柯里化指令式編程惰性求值.NET框架

  2. .NET编程语言
  3. 2005年建立的程式語言
  4. ML語言家族
  5. 函数式编程语言
  6. 微软研究院
  7. 微软自由软件
  8. 模式匹配编程语言
  9. 静态类型编程语言

Apache许可证

Apache许可证(Apache License),是一个由Apache軟件基金會发布的自由软件许可证,最初为Apache http服务器而撰写。Apache许可证要求被授权者保留版权和放弃权利的聲明,但它不是一个反版权的许可证。 此许可证最新版本为“版本2”,于2004年1月发布。 Apache许可证在Apache社区内外被广泛使用。Apache基金会下属所有项目都使用Apache许可证,许多非Apache基金会项目也使用了Apache许可证:据统计,截至2012年10月,在sourceforge上有8708个项目使用了Apache许可证。.

查看 F♯和Apache许可证

多重编程范式

多范式编程语言(Multi-paradigm programming language)是一種可以支持超過一種編程范型的程式語言。「Multi-paradigm」这个词是由比雅尼·斯特劳斯特鲁普博士在其著作中提出的,用于表述C++可以同时使用多种风格来写程序,比如面向对象和泛型编程。.

查看 F♯和多重编程范式

并发计算

并发计算(Concurrent computing,或譯為並行處理、共時計算),是一種程式計算的形式,在系統中,至少有兩個以上的計算在同時運作,計算結果可能同時發生。用來實作並行系統(Concurrent system)的程式語言與各種演算法,統稱為並行計算。 並行程式通常被設計為互動式的運算過程,因為它的運算過程是不確定的,在設計上的難度較高。設計並行程式最大的挑戰,在於確保不同運算執行步驟間的互動或是通訊,能以正確的順序進行,同時,也要確保在不同執行步驟間共享的資源,能夠正確被存取。在這個領域的先驅人物有艾兹赫尔·戴克斯特拉、東尼·霍爾與泊·派克·漢森等人。.

查看 F♯和并发计算

微软

微軟(Microsoft;)是美國一家跨國電腦科技公司,以研發、製造、授權和提供廣泛的電腦軟件服務為主。總部位於美國华盛顿州的雷德蒙德,最為著名和暢銷的產品為Microsoft Windows操作系统和Microsoft Office辦公室軟件,以及Xbox的遊戲業務。微軟是美国《财富》杂志2015年评选的的排行榜中的第95名。 公司於1975年由比爾‧蓋茲和保羅·艾倫創立。初期主要為Altair 8800發展和銷售BASIC直譯器,在1980年代中期憑藉MS-DOS在家用電腦作業系統市場上取得長足進步,後來出現的Windows使得微軟逐漸統治了家用桌面電腦作業系統市場。同時微軟也開始擴張業務,進軍其他行業和市場,建立了MSN網站,在計算機硬件市場上,微軟商標及Xbox遊戲機、Zune和MSN TV家庭娛樂設備也在不同的年份出現在市場上。微軟於1986年首次公開募股,此後不斷走高的股價為微軟締造了四位億萬富翁和12,000位百萬富翁。 伴隨公司的強大,微軟也越來越受到批評和指責,並且數十年來從未間斷。拒絕交易和捆綁銷售等做法招致垄断和不正當競爭的訴訟。美国司法部和歐盟委員會根據反托拉斯法均對微軟做出過不利裁定美国司法部网页。.

查看 F♯和微软

函數程式語言

函數式編程(functional programming)或称函数程序设计,又稱泛函編程,是一種編程典範,它將電腦運算視為數學上的函數計算,並且避免使用程序状态以及易变物件。函數程式語言最重要的基礎是λ演算(lambda calculus)。而且λ演算的函數可以接受函數當作輸入(引數)和輸出(傳出值)。 比起指令式編程,函數式編程更加強調程序执行的结果而非执行的过程,倡导利用若干简单的执行单元让计算结果不断渐进,逐层推导复杂的运算,而不是设计一个复杂的执行过程。.

查看 F♯和函數程式語言

元编程

元編程(英語:Metaprogramming),又譯超編程,是指某类计算机程序的编写,这类计算机程序编写或者操纵其它程序(或者自身)作为它们的資料,或者在运行时完成部分本应在编译时完成的工作。多数情况下,与手工编写全部代码相比,程序员可以获得更高的工作效率,或者给与程序更大的灵活度去处理新的情形而无需重新编译。 编写元程序的语言称之为元语言。被操纵的程序的语言称之为「目标语言」。一门编程语言同时也是自身的元语言的能力称之为「反射」或者「自反」。 反射是促进元编程的一种很有价值的语言特性。把编程语言自身作为一級資料類型(如LISP、Forth或Rebol)也很有用。支持泛型编程的语言也使用元编程能力。 元编程通常通过两种方式实现。一种是通过应用程序编程接口(APIs)将运行时引擎的内部信息暴露于编程代码。另一种是动态执行包含编程命令的字符串表达式。因此,“程序能够编写程序”。虽然两种方式都能用于同一种语言,但大多数语言趋向于偏向其中一种。.

查看 F♯和元编程

C♯

C#是微软推出的一种基于.NET框架的、面向对象的高级编程语言。C#以.NET框架类库作为基础,拥有类似Visual Basic的快速开发能力。C#由安德斯·海尔斯伯格主持开发,微软在2000年发布了这种语言,希望借助这种语言来取代Java。C#已经成为Ecma国际和国际标准组织的标准规范。.

查看 F♯和C♯

类型推论

类型推论、型別推斷、或隐含类型,是指编程语言在编译期中能够自动推导出值的数据类型的能力,它是一些强静态类型语言的特性。一般而言,函数式编程语言也具有此特性。自动推断类型的能力让很多编程任务变得容易,让程序员可以忽略类型标注的同时仍然允许类型检查。 具有类型推论的语言有:Rust, Haskell, Cayenne, Clean, ML, OCaml, Epigram, Scala, Nemerle, D, Chrome,Visual Basic 2008和 Boo。计划支持类型推论的有 Fortress, Vala, C# 3.0, C++11和Perl 6。 显式的转换到另一种数据类型叫做“强制”。.

查看 F♯和类型推论

编程语言

编程语言(programming language),是用来定义计算机程序的形式語言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。 最早的编程语言是在電腦發明之前產生的,當時是用來控制及自動演奏鋼琴的動作。在電腦領域已發明了上千不同的编程語言,而且每年仍有新的编程語言誕生。很多编程語言需要用指令方式說明計算的程序,而有些编程語言則屬於宣告式編程,說明需要的結果,而不說明如何計算。 编程语言的描述一般可以分為及語義。語法是說明編程語言中,哪些符號或文字的組合方式是正確的,語義則是對於編程的解釋。有些語言是用規格文件定義,例如C語言的規格文件也是ISO標準中一部份,2011年後的版本為ISO/IEC 9899:2011,而其他55語言(像Perl)有一份主要的文件,視為是。.

查看 F♯和编程语言

Erlang

Erlang()是一種通用的----,它由喬·阿姆斯特朗(Joe Armstrong)在瑞典電信設備製造商愛立信所轄的電腦科學研究室開發,目的是創造一種可以應付大規模開發活動的--和執行環境。Erlang於1987年釋出正式版本,最早是愛立信擁有的私有軟體,經過十年的發展,於1998年發表開放源碼版本。 Erlang是運作於虛擬機的--,但是現在也包含有烏普薩拉大學高性能Erlang計劃(HiPE)開發的原生程式碼編譯器,自R11B-4版本開始,Erlang也支持--。在編程範型上,Erlang屬於多重典範程式語言,涵蓋函數式、--及--。循序執行的Erlang是一个及早求值, 單次賦值和--的函數式程式語言。.

查看 F♯和Erlang

類型系統

在计算机科学中,--系統用于定義如何將程式語言中的數值和zh:運算式;zh-tw:運算式;zh-cn:表达式-归類为许多不同的型別,如何操作这些型別,这些型別如何互相作用。型別可以确认一个值或者一组值具有特定的意义和目的(雖然某些型別,如抽象型別和--型別,在----中,可能不表示為值)。型別系統在各種語言之間有非常大的不同,也許,最主要的差異存在於編譯時期的語法,以及執行時期的操作实现方式。 編譯器可能使用值的靜態型別以最佳化所需的儲存區,並選取對值運算時的較佳演算法。例如,在許多C編譯器中,「浮點數」資料型別是以32 位元表示,與IEEE 754規格一致的單精度浮點數。因此,在數值運算上,C應用了浮點數規範(浮點數加法、乘法等等)。 型別的約束程度以及評估方法,影響了語言的型別。更進一步,程式語言可能就型別多態性部分,對每一個型別都對應了一個極度個別的演算法的運算。型別理論研究型別系統,儘管實際的程式語言型別系統,起源於電腦架構的實際問題、編譯器實作,以及語言設計。.

查看 F♯和類型系統

语言集成查询

语言集成查询(英文:Language Integrated Query,縮寫:LINQ),發音"link",是微軟的一项技术,新增一種自然查詢的SQL語法到.NET Framework的程式語言中,目前可支援C#以及Visual Basic.NET語言。2007年11月19日随.NET Framework 3.5发布了LINQ技术。 包括LINQ to Objects、LINQ to SQL、LINQ to Datasets、LINQ to Entities、LINQ to Data Source、LINQ to XML/XSD等。.

查看 F♯和语言集成查询

跨平台

跨平台泛指编程语言、软件或硬件设备可以在多种作業系統或不同硬體架構的電腦上運作。.

查看 F♯和跨平台

闭包

闭包可以指:.

查看 F♯和闭包

F*

F*是一个由微软研究院开发的基于F♯的依赖类型函数式程序语言。它可被编译到.NET的CIL或JavaScript。 F*的类型系统较之于F#更加丰富,它允许可被半自动化检查的功能正确性规范。.

查看 F♯和F*

Haskell

Haskell()是一种标准化的,通用的纯函數程式語言,有非限定性语义和强静态类型。它的命名源自美国逻辑学家哈斯凱爾·加里,他在数理逻辑方面上的工作使得函数式编程语言有了广泛的基础。在Haskell中,“函数是第一類物件”。作为一门函數程式語言,主要控制结构是函数。Haskell语言是1990年在编程语言Miranda的基础上标准化的,并且以λ演算为基础发展而来。这也是为什么Haskell语言以希腊字母「λ」(Lambda)作为自己的标志。Haskell具有“证明即程序、命题为类型”的特征, with 2 sections by William Craig, see paragraph 9E。.

查看 F♯和Haskell

Λ演算

λ演算(英語:lambda calculus,λ-calculus)是一套從數學邏輯中發展,以變數綁定和替換的規則,來研究函式如何抽象化定義、函式如何被應用以及遞迴的形式系統。它由數學家阿隆佐·邱奇在20世紀30年代首次發表。Lambda演算作為一種廣泛用途的計算模型,可以清晰地定義什麼是一個可計算函式,而任何可計算函式都能以這種形式表達和求值,它能模擬單一磁帶图灵机的計算過程;儘管如此,Lambda演算強調的是變換規則的運用,而非實現它們的具體機器。 Lambda演算可比擬是最根本的編程語言,它包括了一條變換規則(變數替換)和一條將函式抽象化定義的方式。因此普遍公認是一種更接近軟體而非硬體的方式。對函數式編程語言造成很大影響,比如Lisp、ML语言和Haskell语言。在1936年邱奇利用λ演算給出了對於判定性問題(Entscheidungsproblem)的否定:關於兩個lambda運算式是否等價的命題,無法由一個「通用的演算法」判斷,這是不可判定效能夠證明的頭一個問題,甚至還在停机问题之先。 Lambda演算包括了建構lambda項,和對lambda項執行歸約的操作。在最簡單的lambda演算中,只使用以下的規則來建構lambda項: 產生了諸如:(λx.λy.(λz.(λx.zx)(λy.zy))(x y)的表達式。如果表達式是明確而沒有歧義的,則括號可以省略。對於某些應用,其中可能包括了邏輯和數學的常量以及相關操作。 本文讨论的是邱奇的“无类型lambda演算”,此后,已经研究出来了一些有类型lambda演算。.

查看 F♯和Λ演算

JavaScript

JavaScript,一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的直譯語言。它已经由ECMA(欧洲电脑制造商协会)通过ECMAScript实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器(Chrome、IE、Firefox、Safari、Opera)支持。JavaScript是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式等,不支持I/O,比如网络、存储和图形等,但这些都可以由它的宿主环境提供支持。 虽然JavaScript与Java这门语言不管是在名字上,或是在语法上都有很多相似性,但这两门编程语言从设计之初就有很大的不同,JavaScript的语言设计主要受到了Self(一种基于原型的编程语言)和Scheme(一门函数式编程语言)的影响。在语法结构上它又与C语言有很多相似(例如if条件语句、while循环、switch语句、do-while循环等)。 在客户端,JavaScript在传统意义上被实现为一种解释语言,但在最近,它已经可以被即时编译(JIT)执行。随着最新的HTML5和CSS3语言标准的推行它还可用于游戏、桌面和移动应用程序的开发和在服务器端网络环境运行,如Node.js。.

查看 F♯和JavaScript

Microsoft Visual Studio

Microsoft Visual Studio(简称VS或MSVS)是微软公司的开发工具套件系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。所写的目标代码适用于微软支持的所有平台,包括Microsoft Windows、Windows Phone、Windows CE、.NET Framework、.NET Compact Framework和Microsoft Silverlight。 而Visual Studio.NET是用于快速生成企业级ASP.NET Web应用程序和高性能桌面应用程序的工具。Visual Studio包含基于组件的开发工具(如Visual C#、Visual J#、Visual Basic和Visual C++),以及许多用于简化基于小组的解决方案的设计、开发和部署的其他技术。.

查看 F♯和Microsoft Visual Studio

ML语言

ML是一个通用的函數式編程语言,它是由爱丁堡大学的Robin Milner及他人在二十世纪七十年代晚期开发的。它的语法是从ISWIM得到的灵感。作为元语言的ML是为了帮助在LCF定理证明机中寻找证明策略而构想出来的。(之前的元语言是pplambda,它联合了一阶逻辑演算和有类型的多态的λ演算)。它使用了Hindley-Milner类型推论算法来推测大多数值的类型,而不需要四处使用注解。 ML一般被归为非纯函数式编程语言,因为它允许副作用和指令式编程。这一点和纯函数式编程语言——例如Haskell——很不一样。 ML特性包括:傳值呼叫(Call by value)的求值策略,一级函数,带有垃圾收集的自动内存管理,参数多态,静态数据类型,类型推论,代数数据类型,模式匹配和异常处理。 不像Haskell,ML使用及早求值,也就是说所有的子表达式总是被求值。导致的一个结果是你不能使用无穷表。然而,惰性求值产生的无穷表可以通过使用匿名函数来模拟。 今天在ML家族中有好几种语言:两种主要的方言是Standard ML和Caml,其他的包括F#-针对Microsoft.NET平台的开放研究项目。ML中的思想影响了众多的语言,例如Haskell,Cyclone和Nemerle。 ML的实力大多被用于语言设计和操作(编译器、分析器、定理证明机),但是它作为通用语言也被用于生化,金融系统,和宗谱数据库,一个P2P的客户/服务器程序等等。.

查看 F♯和ML语言

Mono

Mono是一个由Xamarin公司(先前是Novell,最早為Ximian)所主持的自由開放源碼專案。該專案的目標是创建一系列符合ECMA标准(和)的.NET工具,包括C#编译器和通用语言架构。与微软的.NET Framework(共通語言執行平臺)不同,Mono项目不仅可以运行于Windows系统上,还可以运行于Linux,FreeBSD,Unix,OS X和Solaris,甚至一些遊戲平台,例如:Playstation 3,Wii或XBox 360。Mono的標誌是一個猴子格式的臉。 Mono现由Novell持有双重许可,这和Qt和Mozilla Application Suite的情况相似。Mono的C#编译器及其相关工具发布于GNU通用公共许可证(GPL)之下,其运行时库发布于GNU宽通用公共许可证(LGPL)之下,其类库发布于MIT許可證之下。这些均是开源协议因此Mono是一个开源软件。 微软开发了一个称为通用语言架构(Shared Source Common Language Infrastructure,Shared Source CLI;即今ECMA—通用语言架构)的可用于FreeBSD,Windows和Mac OS X.NET实现版本。微软的共享源代码协议并不是开源软件协议,且可能对于社区来说也是不足够的(它明文禁止了对软件的商业用途)。另外,GNU也有一个.NET实现版本项目,该项目与Mono项目有着很多相同的目标。 Mono虚拟机包含一个即時編譯引擎,该引擎可用于如下处理器:x86,SPARC,PowerPC,ARM,S390(32位模式和64位模式),x86-64,IA-64和64位模式的SPARC。该虚拟机可以将代码编译为本机代码。.

查看 F♯和Mono

OCaml

OCaml,最早稱為Objective Caml,是Caml编程语言的主要实现,由Xavier Leroy,Jérôme Vouillon,Damien Doligez,Didier Rémy及其他人于1996年创立。OCaml是开放原始码项目。此项目的管理和大部分维护工作交由INRIA。.

查看 F♯和OCaml

Python

Python( ),是一种广泛使用的高级编程语言,属于通用型编程语言,由吉多·范罗苏姆创造,第一版发布于1991年。可以視之為一種改良(加入一些其他程式語言的優點,如物件導向)的LISP。作为一种解释型语言,Python的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而非使用大括号或者关键词)。相比於C++或Java,Python让开发者能够用更少的代码表达想法。不管是小型还是大型程序,该语言都试图让程序的结构清晰明了。 与Scheme、Ruby、Perl、Tcl等动态类型编程语言一样,Python拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且支持多种编程范式,包括面向对象、命令式、函数式和过程式编程。其本身拥有一个巨大而广泛的标准库。 Python 解释器本身几乎可以在所有的操作系统中运行。Python的正式直譯器CPython是用C语言编写的、是一個由社群驱动的自由软件,目前由Python软件基金会管理。.

查看 F♯和Python

Scala

Scala()是一门多范式的编程语言,设计初衷是要整合面向对象编程和函数式编程的各种特性。.

查看 F♯和Scala

XNA Game Studio Express

Microsoft XNA ("XNA's Not Acronymed"),完全支援受控代碼的運行環境,由微軟提供用以幫助電腦遊戲開發、電腦軟件開發及管理的一些工具。XNA把遊戲設計員從“反覆刻版編程”中解放出來,還把遊戲開發上的所有需要結合到一個系統之中。XNA 工具集在2004年3月24日在美國加州聖荷西市的遊戲開發者大會首次亮相,第一個公開技術預覽在2006年3月14日推出,最新版本3.0在2008年10月30日推出。.

查看 F♯和XNA Game Studio Express

柯里化

在计算机科学中,柯里化(Currying),又译为卡瑞化或加里化,是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。这个技术由克里斯托弗·斯特雷奇以逻辑学家哈斯凱爾·加里命名的,尽管它是Moses Schönfinkel和戈特洛布·弗雷格发明的。 在直觉上,柯里化声称「如果你固定某些参数,你将得到接受余下参数的一个函数」。所以对于有两个变量的函数y^x,如果固定了y.

查看 F♯和柯里化

指令式編程

指令式編程(Imperative programming),是一種描述電腦所需作出的行為的編程典範。幾乎所有電腦的硬體工作都是指令式的;幾乎所有電腦的硬體都是設計來執行機器碼,使用指令式的風格來寫的。較高階的指令式編程語言使用變數和更複雜的語句,但仍依從相同的典範。菜譜和行動清單,雖非電腦程式,但與指令式編程有相似的風格:每步都是指令,有形的世界控制情況。因為指令式編程的基礎觀念,不但概念上比較熟悉,而且較容易具體表現於硬體,所以大部分的編程語言都是指令式的。 大部分的高级语言都支援四種基本的語句:.

查看 F♯和指令式編程

惰性求值

在程式語言理論中,惰性求值(Lazy Evaluation),又譯為惰性计算、懒惰求值,也稱為傳需求調用(call-by-need),是一个计算机编程中的一个概念,它的目的是要最小化计算机要做的工作。它有两个相关而又有区别的含意,可以表示为“延迟求值”和“最小化求值”,本条目专注前者,后者请参见最小化计算条目。除可以得到性能的提升外,惰性计算的最重要的好处是它可以构造一个无限的数据类型。 惰性求值的相反是及早求值,这是一个大多数编程语言所拥有的普通计算方式。.

查看 F♯和惰性求值

.NET框架

--是由微軟開發,一個致力於敏捷軟體開發(Agile software development)、快速應用開發(Rapid application development)、平臺獨立性和網路透明化的軟體框架。.NET是微軟為2000年代對伺服器和桌上型軟體工程邁出的第一步。.NET包含許多有助於互聯網和內部網應用迅捷開發的技術。.NET框架是微軟公司繼Windows DNA之後的新開發平臺。.NET框架是以一種採用系統虛擬機運行的編程平臺,以通用語言運行庫(Common Language Runtime)為基礎,支援多種語言(C#、F#、VB.NET、C++、Python等)的開發。.NET也為應用程式介面(API)提供了新功能和開發工具。這些革新使得程式設計員可以同時進行Windows應用軟體和網路應用軟體以及元件和服務(web服務)的開發。.NET提供了一個新的反射性的且物件導向程式設計編程介面。.NET設計得足夠通用化從而使許多不同高階語言都得以被彙集。 甲骨文公司的Java程式語言和Java平臺企業版技術是.NET平臺的競爭對手之一。 2014年11月12日,微軟宣布將完全開放.NET Framework的原始碼,並提供給Linux和OS X使用。.

查看 F♯和.NET框架

另见

.NET编程语言

2005年建立的程式語言

ML語言家族

函数式编程语言

微软研究院

微软自由软件

模式匹配编程语言

静态类型编程语言

亦称为 F Sharp,F sharp编程语言,F#。