gpt4 book ai didi

function - 使用列表 cons 运算符 (a::b) 作为函数

转载 作者:行者123 更新时间:2023-12-03 13:57:54 24 4
gpt4 key购买 nike

F# 让您可以通过 ( 将运算符转换为函数) :例如,(+)int -> int -> int 类型.

是否可以使用列表 cons 运算符 :: 执行此操作? ?

它的行为不像普通的二元运算符:

FSI> (::);;

(::);;
-^^

c:\temp\stdin(3,2): error FS0010: Unexpected symbol '::' in expression.
Expected ')' or other token.

List.Cons方法接受一个元组;它不是 curry 。

(能够做到这一点很有用。例如,您可以使用它来实现 map in terms of fold )。

最佳答案

转述自 http://cs.hubfs.net/forums/permalink/11713/11713/ShowThread.aspx#11713
(::)list<'a> type 的可区分联合“构造函数” ,因此提出了一个问题,即作为函数值,它的参数是否应该被柯里化(Currying)(如 + )或元组(如所有 DU 构造函数)。对于某些人来说,无论哪种方式似乎都很可疑/出乎意料,因此 F# 只是不允许该构造。

当然你总是可以写例如

let cons x y = x :: y

并使用 cons ,或者只使用 lambda fun x y -> x::y ,如果你想要一个“两个参数的 curry 前缀函数”。

关于function - 使用列表 cons 运算符 (a::b) 作为函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3821472/

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