【发布时间】:2019-06-17 15:31:55
【问题描述】:
F# 允许将大多数运算符视为函数。例如:
let f = (+)
f 1 2 // <- 3
但是,我不确定是否可以使用索引运算符 (.[...]) 使用相同的语法。
我试过了:
let f = (.[])
f [| 1 |] 0
'int [], int' 类型都不支持运算符 '.[]'(使用外部 F# 编译器)
还有:
let f = (.[])
f 0 [| 1 |]
类型 'int, 'a []' 不支持运算符 '.[]'(使用外部 F# 编译器)
我的猜测是.[...] 实际上不是一个运算符,而是一种特殊的内置语法,不能以函数方式使用,但也许我遗漏了一些东西。是否可以像使用 Array.get 这样的函数一样使用运算符索引?
【问题讨论】:
-
不,这就是
Array.get的用途 - 或者更确切地说是Array.item现在,它具有在管道链中部分应用的正确参数顺序。