精华内容
下载资源
问答
  • F#语言入门之什么是F#语言

    千次阅读 2018-10-24 19:23:18
    F#是一种函数式编程语言,可以轻松编写正确且可维护的代码。 F#编程主要涉及定义类型推断和自动泛化的类型和函数。 这使您可以将焦点保留在问题域上并操纵其数据,而不是编程的细节。 open System // Gets ...

    F#是一种函数式编程语言,可以轻松编写正确且可维护的代码。

    F#编程主要涉及定义类型推断和自动泛化的类型和函数。 这使您可以将焦点保留在问题域上并操纵其数据,而不是编程的细节。

    open System // Gets access to functionality in System namespace.
    
    // Defines a function that takes a name and produces a greeting.
    let getGreeting name =
        sprintf "Hello, %s! Isn't F# great?" name
    
    [<EntryPoint>]
    let main args =
        // Defines a list of names
        let names = [ "Don"; "Julia"; "Xi" ]
    
        // Prints a greeting for each name!
        names
        |> List.map getGreeting
        |> List.iter (fun greeting -> printfn "%s" greeting)
    
        0

    F#有许多功能,包括:

     

    • 轻量级语法
    • 默认不变
    • 类型推断和自动泛化
    • 一流的功能
    • 强大的数据类型
    • 模式匹配
    • 异步编程

    详细内容查看http://nopapp.com/Blog/Article/FSharp-What-Is-FSharp

    F#语言入门之什么是F#语言

    展开全文
  • F# 2.0 & F#是什么

    2011-12-20 11:02:22
    F# 2.0 及 F# 是什么 [注意,如果你想使用免费下载的F#2.0,你应该使用2010年8月发布的F#2.0免费下载的MSI和ZIP。这个版本将现有可免费使用的F#的编程工具扩展到了.NET 4.0。] 4月12日在世界各地举办了第五个...

    F# 2.0 及 F# 是什么

    [注意,如果你想使用免费下载的F#2.0,你应该使用2010年8月发布的F#2.0免费下载的MSI和ZIP。这个版本将现有可免费使用的F#的编程工具扩展到了.NET 4.0。]

    4月12日在世界各地举办了第五个Visual Studio 2010发布会,正像Bob Muglia, Jason ZanderS. Somasegar和在拉斯维加斯的现场直播所宣传的。 Visual Studio 2010中包含F#语言的官方版本2.0。正如我们F#团队的习俗,我们也发布了与F#2.0(Visual Studio 2008中一个可以在多种平台上使用的独立编译器)相匹配的MSI和ZIP压缩包

    2010年4月12号代表了微软研究院和特别是最近的微软开发部7年来的语言成果。我为我们已经取得的成就非常自豪。F#带来了一个高生产率、面向对象的.NET编程语言,它将平台扩展到了在技术、算法和数据化、并行算法和探索领域中的新用户。对F#语言来说,它包含在Visual  Studio 2010中代表了一个巨大的里程碑。

    为了帮助大家理解F#是做什么的,我在下面列出一些人们对这个语言的一些常见问题。我们对所有参与到F#中的人表示感谢,特别是那些对我们的语言提出反馈意见的用户。

    问题:F#是什么?

    F#是一种高生产率的函数式的、面向对象.NET编程语言,使用户能够编写简单的代码来解决复杂的问题。其简洁的语法和强大的类型推断,让用户更贴近他们的工作领域,并且它被整合到.NET和VisualStudio中,这样就可以更好使用强大的.NET 平台。

    F#通过其不变性、异步编程和工具(如F# Interactive能在实时数据源上交互式地探索数据、分析、可视化和测试。)而对并行和并发提供强有力的支持。开发过程直接扩展到整个的.NET组件开发,所以不用重写代码。

    问题:F# 是为什么而设计的?

    F#通过为工作在科技、算法、并行和数据化领域的开发人员提供一门高生产率的语言来扩展.NET 平台。这包括在金融服务、数据分析、游戏、科学和机器学习领域的应用。另外F#也具有.NET编程语言的通用目的,这种与语言优势相结合的特点使得F#在开发领域中的广泛应用更具有价值。

    问题:设计F#,最大的目标是什么?

    F#主要的设计目标是结合.NET和面向对象编程的可扩展性与函数式编程的简单表达能力。

    问题:什么是函数式编程?

    函数式编程语言在更直观的层面表达用户想法,让用户更加专注于解决有挑战的问题而不是编写代码这个过程。像F#这种编程语言为用户提供功能性的“工具包”,用户可以拿来来解决他们的问题。函数式编程包含很多概念,例如用不可变性来减少组件间的依赖关系,用泛型来解决在许多不同类型的数据间工作的问题,以及用函数作为值来方便从一个解决方案里抽取能重复使用的代码单元。

    问题:函数式编程最主要的好处是什么呢?

    因为能从代码抽取功能块,F#让编程人员更多的关注于问题域而更少的关注编程本身。这在一些数据勘探、算法和科学计算领域是一个很大的好处,所以我们已经看到很多人在这个方面有使用F#的兴趣。通过提高解决问题的抽象水平,使得解决方案变得更加简单,更加通用,更容易测试和更多的并行化处理。

    原文链接:http://blogs.msdn.com/b/dsyme/archive/2010/04/12/f-2-0-released-as-part-of-visual-studio-2010.aspx

    展开全文
  • F#基本语法的学习是基于对F#类型系统和类型推断机制的理解的。在本节教程中,我们将学习到F#的变量声明和程序流程结构。   【51CTO独家特稿】在上一节F#教程中,我们对F#的类型系统和类型推断机制有了...
    • F#基本语法的学习是基于对F#类型系统和类型推断机制的理解的。在本节教程中,我们将学习到F#的变量声明和程序流程结构。

     

    【51CTO独家特稿】在上一节F#教程中,我们对F#的类型系统和类型推断机制有了一个初步的认识。F#的类型推断原理是学习F#的重要基础。本节课程,我们将在F#类型基础上进一步学习F#的一些基本语法。

    “let”表达式是F#语法的核心,可以用作定义函数、序列等多种用途。另外,F#使用空格来标记程序块的开始与结束。

    定义值

    1. let x = 2 
       

    定义函数值 

    1. let f a = a + x 

    定义循环函数

    1. open System.IO   
    2. let rec printSubDirFiles dir =   
    3.    let fles = Directory.GetFiles dir  
    4.    let dirs =  Directory.GetDirectories dir   
    5.    printf “%s/n%A/n/n” dir fles  
    6.    Array.iter printSubDirFiles dirs 

    此外,F#还提供传统的循环和迭代等流程控制结构,比如if、for、while。但我们需要注意的是,F#中的“if…then”和“if…then…else”与传统的面向对象语言有些不同。在F#中,大多数表达式必须含有一个值,并且控制结构“if…then…else”表达式的两边的值必须是同一类型。注:F#的这种语法约定源自其推断型语言的编译机制,详细请参考上一节教程中关于F#类型推断机制的介绍。

    F#中的常用流程控制语句示例

    F#常用流程控制语句

    与大多数.NET平台上的编程语言相似,F#也提供一些组织代码的机制。事实上,F#提供模块和命名空间两种方式,下面的一些演示将给出C#和VB的命名空间。F#的模块化不只局限与语法范围,还提供模块化的层级标准,例如集合和函数。

    F#的基础代码组织:命名空间、类型和模型

    1. namespace MyFSharpProg  
    2. open System.Net  
    3. type Foo () =  
    4.   member x.GetRequest = WebRequest.  
    5. Create  
    6. module Main = begin  
    7.  // values and functions here  
    8. end 

    与传统的函数式编程原则相同,多数时候,F#的标识符是不可变的。但F#允许定义和修改使用“mutable”保留字的值,或通过“ref”保留字改变其前面的引用。mutable的值可以通过左箭头操作(“<-”);ref的值可以通过“:=”操作符制指定。我们可以通过“!”获取ref的值。下面来看具体示例:

    声明/更新可变值

    1. let mutable x = 0  
    2. x <- x + 1 

     

    声明/更新参考值

    1. let x = ref 0  
    2. x := !x + 1 

     

    F#小提示:在习惯了C#或Java等编程语言后,刚刚开始F#编程,阅读F#代码感觉就像乱码一样。因为F#为了保有函数式编程的一些优秀特质,不得不引入一些如“<-”、“:=”、“!”等奇怪的符号作为操作符或运算符;另外,F#在代码中需要通过一些推断机制来评判变量的类型,在阅读F#代码时,应对F#的类型系统做到心中有数,所以,多数时候我们看到的是“let”,而不是传统的“int”、“string”、“float”等。希望大家能充分理解F#的类型系统和类型推断机制,这是F#的重要基础,也是走进函数式编程语言的重要一步。

    展开全文
  • F# 基础

    千次阅读 2014-03-03 19:38:36
    F# 基础 再译《F# 基础》序 前言 第一章  什么是函数编程  函数编程为啥重要  什么是 F#  谁在用F#  谁能读本书 第二章 获得、安装、使用 F# 第三章 函数编程(一)  文字、函数、标识符、标识符的...

    F# 基础


    再译《F# 基础》序

    前言

    第一章

        什么是函数编程

        函数编程为啥重要

        什么是 F#

        谁在用F#

        谁能读本书

    第二章 获得、安装、使用 F#


    第三章 函数编程(一)

        文字、函数、标识符、标识符的命名、作用域、轻量语法

    第三章函数编程(二)

        捕获标识符、use 绑定、递归、运算符、函数应用、函数的散应用、模式匹配

    第三章 函数编程(三)

        控制流、列表、类型和类型推断

    第三章 函数编程(四)

        定义类型、活动模式、度量单位、异常和异常处理、延迟计算

    第四章 命令编程(一)

        空类型、关键字 mutable、定义可变记录类型、引用类型、数组、数组推导

    第四章 命令编程(二)

        控制流、调用 .NET 库中的静态方法和属性、使用 .NET 库中的对象和实例成员、使用 .NET 库中的索引器(indexer)、使用 .NET 库中的事件(event)、.NET 类型的模式匹配、向前管道(|>)运算符

    第五章 面向对象编程(一)

         记录作对象、有成员的 F# 类型、对象表达式

    第五章 面向对象编程(二)

        定义类型、可选参数、定义接口、实现接口、类和继承、方法和继承

    第五章 面向对象编程(三)

        访问基类、属性和索引器、覆盖非 F# 库中的方法、抽象类、类和静态方法、有明确字段和构造函数的类

    第五章 面向对象编程(四)

        强制类型转换、类型测试、子类型的类型注释、定义委托、结构、枚举

    第六章 组织、注释、引用代码(一)

        模块、命名空间、引用命名空间和模块、模块的别名、函数类型表示文件、私有和内部的 let 绑定和成员、模块的作用域、模块的执行

    第六章 组织、注释、引用代码(二)

        条件编译、注释、文档注释、交叉编译的注释、自定义特征

    第七章 F# 库(一)

         F# 核心库(运算符(Microsoft.FSharp.Core.Operators)模块)

    第七章 F# 库(二)

         F# 核心库(反射(Microsoft.FSharp.Reflection)模块)

    第七章 F# 库(三)

        F# 核心库(序列(Microsoft.FSharp.Collections.Seq)模块

    第七章 F# 库(四)

       打印(Microsoft.FSharp.Text.Printf)模块)

    第七章 F# 库(五)

         F# 核心库(Microsoft.FSharp.Control.Event)模块)、功能包库 Fsharp.PowerPack、第七章 小结

    第八章 用户界面(一)

        介绍 WinForm

    第八章 用户界面(二)

        在 WinForm 上使用控件

    第八章 用户界面(三)

        在 F# 中使用 Visual Studio 窗体设计器

        处理 WinForms 事件和事件模块

        介绍 Windows Presentation Foundation

        介绍 Windows Presentation Foundation 3D

    第九章 访问数据

        System.Configuration 命名空间

        System.IO 命名空间

        使用 System.IO 序列

        System.Xml 命名空间

        ADO.NET

        数据绑定(Data Binding)

        数据绑定和数据网格视图(DataGridView)控件

        ADO.NET 扩展

        介绍 LINQ

        使用 LINQ to XML

    第十章 并行编程

        线程、内存、锁定和阻塞(Threads, Memory, Locking, and Blocking)

        响应式编程(Reactive programming)

        数据并行(Data Parallelism)

        异步编程(Asynchronous Programming)

        消息传递(Message Passing)

    第十一章 分布式应用程序

        网络概述

        使用 TCP / IP 套接字(Sockets)

        使用 HTTP

        使用 HTTP 访问谷歌的电子数据

        使用 HTTP Post

        异步使用 HTTP

        创建网站服务(Web Services)

        Windows 通信基础(Windows Communication Foundation)

        托管 WCF 服务


    第十二章 面向语言编程

        数据结构成为小语言

        实现基于数据结构的语言

        基于引用的元编程

        为算术语言实现编译器和解释器

        抽象语法树

        解释抽象语法树

        编译抽象语法树

        编译还是解释?


    第十三章 解析文本

        解析逗号分隔文本

        语言定义的其他示例

        使用 fslex.exe 和 fsyacc.exe

        文本符号化:Fslex

        生成解析器:Fsyacc

        使用解析器

        FParsec 库


    第十四章 兼容性和高级互操作

        返回元组

        公开的函数把函数作为参数

        使用联合类型

        使用 F# 列表

        在命名空间下定义类型

        定义类和接口

        调用 COM 对象

        使用 COM 风格的编程接口

        使用平台调用(P/Invoke)

        使用内联中间语言

        在本机代码中通过 COM 使用 F#

        承载(Host)通用语言运行时


    (全文完)


    后面的索引,就不翻译了。


    展开全文
  • Zemax-几个F#

    2019-07-08 09:06:48
    基础概念有时理解不够清楚,比如F#,知道几个不同,从字面也能理解大概,但说不明白 一共有三个F/#:1.像空间F/#(Image space F/#) 2.近轴工作F/#(paraxial working F/#) 3.工作F/#(working F/#) 1.像...
  • F#教程(一)——————F#语言概述

    千次阅读 2010-02-02 21:18:00
    F#是一种简洁、高效、富于表现性的函数式的及面向对象的程序设计语言。它是基于Ocaml的,而Ocaml是基于ML函数程序设计语言的。F#自2002年开始研发,2005年发布了第一个版本,2007年底正式从研发专案转移至产品部门,...
  • F# 入门书籍 基础教程

    2008-09-13 21:56:24
    F#入门书籍(PDF)F#入门书籍(PDF)F#入门书籍(PDF)F#入门书籍(PDF)F#入门书籍(PDF)F#入门书籍(PDF)F#入门书籍(PDF)
  • *二叉树的前、中、后序、层序遍历 非递归 测试:ABC##DE#G##F### */ #include #include #define MAX_SIZE 100 typedef struct BiTNode { char info; struct BiTNode *lchild; struct BiTNode *rchild...
  • F#语言快速教程

    千次阅读 2019-09-04 10:57:03
    F#是微软开发的基于.NET平台的一种函数式语言,而且支持面向对象。
  • 例如如下的先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。 输入描述: 输入包括1行字符串,长度不超过100。 输出...
  • 例如如下的先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。建立起 此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。 输入描述: 输入包括1行字符串,长度不超过100。 输出描述:...
  • vs2019 开始自己的第一个F#程序

    千次阅读 2019-10-24 12:58:43
    这是针对于博客vs2019安装和使用教程(详细)的F#项目新建示例,代码比较简单,适合入门~ 目录 一、安装F#环境 二、启动程序 三、编写小程序 四、运行结果 五、注意事项 一、安装F#环境 1.运行安装程序,...
  • F# 简介

    千次阅读 2010-05-10 11:47:00
    概述 F# 是微软公司推出的一种新的功能性编程语言。尽管它主要是一种功能性编程语言,但它却因多范式语言而知名,因为它还支持面向对象编程。F# 与整个 .NET 库系统和开发环境紧密集成,因此开发人员能够将功能性...
  • F# 入门

    千次阅读 2010-04-28 14:22:00
    作 为 Microsoft® .NET Framework 家族的新成员,F# 提供类型安全、性能以及类似脚本语言的工作能力,所有这些都是 .NET 环境的一部分。此函数式语言由 Microsoft 研究院的 Don Syme 发明,作为 CLR 的 OCaml 语法...
  • 什么是 F#

    千次阅读 2014-03-07 09:43:39
    什么是 F#?   函数编程是解决许多棘手问题的最好方法,但是,纯函数编程并不适合常规编程。因此,函数编程语言逐渐吸收了命令式、面向对象的编程模式,不仅保持了函数编程范式,同时也混合了其他需要的功能,使...
  • F#语言

    千次阅读 2011-01-02 21:58:00
    F#源发于CAML语言,这是一种由法国国家信息、自动化研究院(INRIA)开发的元语言,其中的一种分支是Objective CAML,用于教学程序。但是当人们赞誉该语言在静态检查和类型推论方面的极佳性能时,微软公司表示元...
  • 谁在用F#

    千次阅读 2014-03-07 19:36:21
    谁在用F#?   F# 在微软内部表现就很强劲,不仅在微软研究,而且在整个公司。Ralf Herbrich,微软研究院应用项目组的另一位领导,专门从事机器学习技术,是正在逐步壮大的F# 粉丝中一个铁杆。   “第一个应用...
  • Visual F# 3.0 Beta 介绍

    千次阅读 2012-03-31 15:29:52
    这个版本包含F# 3.0的Beta版,此F# 3.0介绍了F#信息富态编程   Beta版本发布了一些新的F#特性,包括:可移植库支持,加强的Type Providers,改善的智能感应,以及支持任意CPU的FSI版本。我们也已经更新了F#...
  • F#快速入门资料

    千次阅读 2010-03-15 14:19:00
    The basic syntax of F# - keywords and constructsThe basic syntax of F# - classes, interfaces, and membersThe basic syntax of F# - typesF# function types: fun with tuples and curryingDiscrimi
  • 1.5.1 用 F# 写 Hello world

    千次阅读 2014-08-04 08:36:47
    1.5.1 用 F# 写 Hello world   开始使用 F# 最简单的方法是创建一个新的脚本文件。脚本是轻量级 F# 源文件,它一定属于项目,扩展名通常是 .fsx。在 Visual Studio 中,可以选择 File > New > File (或按 Ctrl +...
  • F#学习过程中的一点看法

    千次阅读 2012-04-13 08:56:46
    接触F#其实已经很久,因为没有用,也就没有仔细去学,现在在公司的一部分工作也是负责新技术的研究,在弄VS2011过程中发现MVC4中有模型层直接用F#的模板,看来微软有点要实际推F#的感觉,于是决定系统的学习一下F#。...
  • 函数式编程语言F#

    千次阅读 2011-10-10 08:58:46
    作为微软支持的第一个函数式语言,F#在项目中被越来越多的开发者选用,8月的TIOBE排行榜,F#挺进前二十。 源于微软研究院的F#语言因其优良的设计和强大的并行编程能力,正得到越来越多.NET开发者的选用。在8月的...
  • VS2013中F#的新特性

    千次阅读 2014-12-21 08:54:22
    为了更好的迎接新版本的到来,先看一下之前F#的特性。 1.为区分联合(discriminated unions)添加了命名域,使代码更加清晰。 2.用新数据的新特性,使矢量和矩阵编码更容易的工作 3.更强大的泛型算法的扩展 4.得到...
  • 第二章 获得、安装、使用 F#

    千次阅读 2014-03-12 11:06:27
    第二章获得、安装、使用F#   这一章介绍如何获得F#,如何在Windows 和Linux 下安装,如何以不同的方法编译,我们也将讨论本书用于测试的例子的软件版本。   获得F#   F# 现在默认包含在 Visual Studio2010 中,...
  • 1.引言-为什么使用F#

    千次阅读 2013-06-25 11:28:55
    “为什么使用F#”系列将带你领略F#的主要特性并展示F#如何在你日常开发中带来帮助。 C#不能比拟的优点 如果你已经对C#或Java非常熟悉,你可能会问为什么F#是一门值得我学习的语言?我将F#的一些主要优点...
  • 9.5 在 C# 中使用 F#

    千次阅读 2014-12-15 09:12:53
    9.5 在 C# 中使用 F# 库   像 C# 一样,F# 也是一种静态类型的语言,就是说,编译器知道每个值的类型,以及类方法和属性的签名。对于与 C# 的互操作性来说,这是非常重要的,因为,编译器可以生成代码,看起来就...
  • F# 函数编程语言

    2009-01-12 10:17:00
    F#是由微软发展的为微软.NET语言提供运行环境的程序设计语言,是函数编程语言(FP,Functional Programming),函数编程语言最重要的基础是Lambda Calculus。它是基于OCaml的,而OCaml是基于ML函数程式语言。有时F# ...
  • 3.C# vs F# 简单求和

    千次阅读 2013-06-30 17:25:24
    了解完真正的F#代码后,让我们看一个简单的例子:1到N的平方求和。 我们将比较F#和C#的实现,首先看F#的代码实现:  // 定义 square 函数 let square x = x * x // 定义 sumOfSquares 函数 let sumOf...
  • 再译《F# 基础》序

    千次阅读 2014-02-27 21:36:52
    再译《F# 基础》序   初次接触 F# 是哪一年呢?好像是 2008 年,记不太清楚了。从 2001 年以后,我的时间观念基本上就没有了,记忆力也差了,中午吃的菜,晚上就想不起来了。年初记的笔记,现在拿来,有些已经看...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 757,861
精华内容 303,144
关键字:

f#