gpt4 book ai didi

list - F# 中没有 cons 运算符或 curried cons 函数?

转载 作者:行者123 更新时间:2023-12-03 21:49:31 25 4
gpt4 key购买 nike

我们可以写3 + 4(+) 3 4在 F# 中并获得相同的结果,这适用于大多数运算符。
为什么是 cons 运算符 ::表现不同?例如。如果我跑(::) 1 [2;3]我明白了error FS0010: Unexpected symbol '::' in expression而我想得到 [1;2;3]。
在相关说明中,为什么 List.Cons不 curry ?是否没有 'T -> 'T list -> 'T list 类型的内置 cons 函数? ?

最佳答案

实际上 (::) 不是运算符。这是一个工会案件。至少 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 .

关于list - F# 中没有 cons 运算符或 curried cons 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63197605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com