相关疑难解决方法(0)

理解F#组合运算符

我非常精通在F#中使用>><<运算符.然而,在查看F#源以建立更深入的理解之后,我对此感到困惑:

let inline (>>) f g x = g(f x)
let inline (<<) f g x = f(g x)
Run Code Online (Sandbox Code Playgroud)

我如何从概念上解释这些表达?另外,你会如何形容这些表达?他们定义了一种类型吗?

f# pointfree function-composition

4
推荐指数
2
解决办法
212
查看次数

F#中">>"运算符的语义

在Microsoft的F#示例中,他们使用">>"运算符,如下所示:

test |> Seq.iter (any_to_string >> printfn "line %s");
Run Code Online (Sandbox Code Playgroud)

">>"运算符在这种情况下做了什么?序列中的每个项(在这种情况下是一个数组)是否any_to_string隐式传递?这类似(fun item -> printfn "line %A" item)吗?

f# operators semantics

3
推荐指数
3
解决办法
648
查看次数

在F#中创建否定谓词

例如,我在F#中有一个谓词

let myFunc x y = x < y
Run Code Online (Sandbox Code Playgroud)

有没有办法创建此功能的否定版本?

所以在功能上类似的东西

let otherFunc x y = x >= y
Run Code Online (Sandbox Code Playgroud)

但是通过使用原始的myFunc?

let otherFunc = !myFunc  // not valid 
Run Code Online (Sandbox Code Playgroud)

f#

2
推荐指数
1
解决办法
310
查看次数