繁体   English   中英

F# 中没有缺点运算符或咖喱缺点 function?

[英]No cons operator or curried cons function in F#?

我们可以在 F# 中写3 + 4(+) 3 4并得到相同的结果,这适用于大多数运算符。

为什么 cons 运算符::行为不同? 例如,如果我跑

(::) 1 [2;3]

我明白了

error FS0010: Unexpected symbol '::' in expression

而我想得到 [1;2;3]。

在相关的说明中,为什么List.Cons没有咖喱? 是否没有内置的缺点 function 类型为'T -> 'T list -> 'T list

实际上 (::) 不是运算符。 这是一个工会案件。 至少 F# 的创建者是这样定义的:

type List<'T> = 
   | ([])  :                  'T list
   | (::)  : Head: 'T * Tail: 'T list -> 'T list
and 'T list = List<'T>

这是有道理的:一个列表可以是空的,也可以是有头有尾的。

关于List.Cons我同意,它应该有签名'T->'T list ->'T list而不是'T*'T List->'T list

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM