F#语言快速入门

简介: 函数式编程语言比较适合做数学公式推导,可以进行符号计算,比如求取某一个数学公式的导数或者积分,或者对公式进行化简操作等,本文先介绍一下F#基本语法。

1.函数式编程语言概述

      最近几年,函数式编程语言异常火爆,而函数式编程语言有天然的优势,如数据的不可变性,无需锁机制即可在并发条件下执行,无副作用。它将函数作为普通数据类型一样,可以作为某个函数的参数,或者当作函数的返回值。另外,函数式编程语言最重要的基础是λ演算,即lambda calculus。λ演算是一个由λ项定义和变换规则组成的形式系统(Formal System),它通过λ项和对λ项的变换操作来表达计算。

    函数式编程语言比较适合做数学公式推导,可以进行符号计算,比如求取某一个数学公式的导数或者积分,或者对公式进行化简操作等。函数式编程语言其实已经存在几十年了,只是非常长的时间内都活跃于学术界,而不是商业界。

    常见的函数式编程语言有:

    Lisp

    Scheme

    OCaml

    Haskell

    Julia

    F#

    F#是微软研发的,基于.NET平台的函数式编程语言,且已经开源,当前的最新版本为F#5.0 ,它随.NET 5 一起发布的。使用F#非常简单,只需要安装.NET SDK即可,或者可以安装Visual Studio或Visual Studio Code进行代码开发和调试。官网地址为: https://docs.microsoft.com/zh-cn/dotnet/fsharp

2.F#语言快速入门

   在安装成功F#开发环境后,可以在命令行运行如下命令开启F#交互模式:

   dotnet fsi

在此界面中,可以输入:

letstr="Hello World" ;;

  其中的;;代码命令结束标志,它是交互模式下比较特殊的一点。此时回车后,F#交互模式给出执行结果,其中的str是一个string类型的变量,值为“Hello World”。下面给出简单的语法示例。

(*多行注释定义一个demo01模块*)
moduledemo01//let 定义不可变对象leta=1+2//a <- 6 //mutable不可修改printfn"%d"aletxml=@"a = ""hello world"""printfn"%s"xmlleta1, b, c, d=3.14F, 4.14, 0.78M, 123I(*vala1 : float32valb : floatvalc : decimalvald : System.Numerics.BigInteger*)
//函数letfx=2.0*xletgx=x**2.0letfg=f (g (3.0))
printfn"%f"fg//18.000000letf1x=2.0*xletg1fx=fxletfg2=g1f13.0printfn"%f"fg2//6.000000lettp1= ("Hello", 1)
let (t1, t2) =tp1printfn"t1=%s,t2=%d"t1t2//t1=Hello,t2=1letxs= [ 1 .. 2 .. 9 ] //val xs : int list = [1; 3; 5; 7; 9]printfn"xs=%O"xsletlist1= [ "c"; "o" ]
letlist2="a" :: list1//val list2 : string list = ["a"; "c"; "o"]letlist3=list1@list2//val list3 : string list = ["c"; "o"; "a"; "c"; "o"]//val sum : list:int list -> int//rec 表示递归函数letrecsumlist=matchlistwith| [] ->0|x :: xs->x+sumxsprintfn"%d" (sum [ 1 .. 10 ]) //55[ 1 .. 11 ] |>sum|>printfn"%d"//66letsignx=matchxwith|0->0|xwhenx<0->-1|x->1letn=sign2printfn"%d"n//1


相关文章
|
6月前
|
C语言
C 语言函数:入门指南
一个函数包括两个部分: 声明:函数名称、返回类型和参数(如果有) 定义:函数体(要执行的代码)
113 2
|
15天前
|
Java 编译器 程序员
【c++】基础知识——快速入门c++
本文介绍了C++的基础知识,包括C++相对于C语言的新特性,如面向对象编程、引用、函数重载、模板库STL等。文章通过“Hello World”程序展示了C++的基本语法,并详细解释了命名空间、输入输出、缺省参数、函数重载、内联函数和空指针的概念。通过实例代码和运行结果,帮助读者快速掌握C++的核心知识点。
46 9
|
30天前
|
JavaScript 前端开发 Java
编程语言概述
【10月更文挑战第13天】编程语言概述
22 3
|
5月前
|
存储 编译器 开发工具
C++语言教程分享
C++语言教程分享
|
5月前
|
自然语言处理 编译器 C语言
C++语言入门教程
C++语言入门教程
|
算法 IDE 程序员
快速入门C++17:了解最新的语言特性和功能(上)
快速入门C++17:了解最新的语言特性和功能
快速入门C++17:了解最新的语言特性和功能(上)
|
数据可视化 数据挖掘 项目管理
R 语言入门与介绍
R 语言入门与介绍
80 0
|
6月前
|
Linux C语言 C++
C++编程语言简介及其应用
C++编程语言简介及其应用
87 0
|
存储 安全 编译器
快速入门C++17:了解最新的语言特性和功能(下)
快速入门C++17:了解最新的语言特性和功能
|
机器学习/深度学习 Java C#
C# 编程语言简介
C# 是一种通用的、静态类型的编程语言,由 Microsoft 开发。它是为了构建 .NET 应用程序而设计的,同时也可以用于开发跨平台应用、游戏和桌面应用。C# 具有简洁、现代化的语法以及强大的面向对象编程特性,使得开发者能够快速高效地构建各种类型的应用。
109 0