[英]Defining a function in f#
在F#中,我可以定义一个这样的函数
let (-+->) x y = x + y
像这样打电话
let z = 5 -+-> 6
我什至可以做这样的事情
let (-++->) x y z = x y z
let p = ((fun x -> fun y -> x + y) -++-> 5 ) 6
但是我为什么不能这样做呢?
let (nafis) x y = x + y
let p = 5 nafis 6
它给我这个错误Unexpected identifier in binding. Expected '=' or other token
Unexpected identifier in binding. Expected '=' or other token
。
像let (-+->) xy = x + y
类的函数是否是某种特殊的函数?
F#规范中定义了对运算符的词汇约束:
3.7符号运算符
用户定义和库定义的符号运算符是如下所示的字符序列,除非字符序列是符号关键字(第3.6节)。
regexp first-op-char= !%&*+-./<=>@^|~
regexp op-char= first-op-char | ?
token quote-op-left =
| <@ <@@
token quote-op-right =
| @> @@>
token symbolic-op=
| ?
| ?<-
| first-op-charop-char*
| quote-op-left
| quote-op-right
如您所见, -++->
有效,而nafis
无效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.