为 let 语句定义运算符(绑定)
Defining an operator for the let statement (binding)
在 F# 中,是否可以定义一个运算符,例如 (<<),它会像这样为变量赋值:
let (<<) var value = ??<let var = value>??
将在程序内部编译,并且稍后可以在程序中使用 let 赋值的结果变量 var。
如果可能的话,??
分隔符之间的语法是什么?
如果不是,是什么原因可以启发我对 F# 的了解?
注释:
我想在这种情况下我不能使用代码引用。
作为一个let绑定,它不是一个完整的表达式;与我见过的其他运算符定义示例(例如 (+))不同。
是的,如果你处理变量,而不是绑定,这是可能的。
例如,对于参考单元格,您可以这样做:
let a = ref 5
let (<<) var value = var := value
a << 6
!a // returns 6
您基本上是在为 (:=)
运算符设置别名。
对于 let 绑定,这是不可能的,因为它们是不可变的,而且 let
比第一个 class 函数更像是一个关键字。
在 F# 中,是否可以定义一个运算符,例如 (<<),它会像这样为变量赋值:
let (<<) var value = ??<let var = value>??
将在程序内部编译,并且稍后可以在程序中使用 let 赋值的结果变量 var。
如果可能的话,??
分隔符之间的语法是什么?
如果不是,是什么原因可以启发我对 F# 的了解?
注释:
我想在这种情况下我不能使用代码引用。
作为一个let绑定,它不是一个完整的表达式;与我见过的其他运算符定义示例(例如 (+))不同。
是的,如果你处理变量,而不是绑定,这是可能的。
例如,对于参考单元格,您可以这样做:
let a = ref 5
let (<<) var value = var := value
a << 6
!a // returns 6
您基本上是在为 (:=)
运算符设置别名。
对于 let 绑定,这是不可能的,因为它们是不可变的,而且 let
比第一个 class 函数更像是一个关键字。