Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F# $operator是做什么的?_F# - Fatal编程技术网

F# $operator是做什么的?

F# $operator是做什么的?,f#,F#,在网上读取F#代码时,美元操作符会不时弹出,例如: 然而,政府只是说“没有更多的信息可用” 操作员实际做什么,有人知道在哪里可以找到任何实际的文档吗?语言中没有标准的$运算符 当然,你可以定义它。您链接的示例使用以下定义: let ($) (DF a) (DF b) = DF (fun ctx -> a(ctx) b(ctx) ) 其中,DF通过以下方式定义: type Drawing3D = DF of (Drawing3DContext -> unit) 此外,在

在网上读取F#代码时,美元操作符会不时弹出,例如:

然而,政府只是说“没有更多的信息可用”


操作员实际做什么,有人知道在哪里可以找到任何实际的文档吗?

语言中没有标准的
$
运算符

当然,你可以定义它。您链接的示例使用以下定义:

let ($) (DF a) (DF b) = DF (fun ctx -> 
  a(ctx)
  b(ctx) )
其中,
DF
通过以下方式定义:

type Drawing3D = DF of (Drawing3DContext -> unit)

此外,在更复杂的运算符名称中使用
$
符号也有特殊限制,例如:

let (<$>) f x = List.map f x
let()fx=List.map fx
将导致编译器错误

错误FS0035:此构造已弃用:“$”不允许作为 运算符名称中的字符,保留供将来使用


很肯定这不是一个标准的操作员。可能只是某个图书馆的操作员可能是因为它不是语言操作员?您提到了一篇关于一个库的文章,该库使用$operator将多个对象放在一起-。这是由库定义的自定义运算符。查看图书馆的documentation@JohnPalmer不是,事实上,链接文章中解释了该运算符的声明。当然,任何人都可以定义一个运算符
$
,它可以执行任何操作。