相关疑难解决方法(0)

FSharp.Core中`id`函数的用途是什么?

来自Operators.id <'T>功能(F#):

身份功能.

参数:x类型:'T(输入值)

返回值:相同的值

F#核心库版本,支持:2.0,4.0,Portable

为什么有一个返回其输入的函数?

.net f# identity

26
推荐指数
2
解决办法
1898
查看次数

模式匹配与守卫vs在F#中的if/else构造

在ML系列语言中,人们倾向于选择模式匹配来if/else构建.在F#中,在模式匹配中使用防护装置if/else在很多情况下很容易替换.

例如,delete1可以在不使用if/else(参见delete2)的情况下重写一个简单的函数:

let rec delete1 (a, xs) =
    match xs with
    | [] -> []
    | x::xs' -> if x = a then xs' else x::delete1(a, xs') 

let rec delete2 (a, xs) =
    match xs with
    | [] -> []
    | x::xs' when x = a -> xs'
    | x::xs' -> x::delete2(a, xs') 
Run Code Online (Sandbox Code Playgroud)

另一个例子是求解二次函数:

type Solution =
    | NoRoot
    | OneRoot of float
    | TwoRoots of float * float

let …
Run Code Online (Sandbox Code Playgroud)

f# functional-programming pattern-matching guard-clause

8
推荐指数
2
解决办法
3613
查看次数