在F#中,是否可以定义一个运算符,比如说(<<<),它会为变量赋值,如下所示:
let (<<) var value = ??<let var = value>??
将在程序内编译,并且 let 赋值的结果变量 var 可以在程序中稍后使用。
如果可能,??
分隔符之间的语法是什么?
如果没有,是什么原因可以启发我对F#的了解?
备注:
我想在这种情况下我不能使用 Code Quotations 。
作为让绑定,它不是一个完整的表达式;不像运营商定义的其他例子(例如(+))我看到过。
答案 0 :(得分:2)
是的,你可以处理变量,而不是绑定。
例如,对于ref cell,你可以这样做:
let a = ref 5
let (<<) var value = var := value
a << 6
!a // returns 6
您基本上是(:=)
运算符的别名。
对于let绑定,它是不可能的,因为它们是不可变的,let
更像是关键字而不是第一类函数。