gpt4 book ai didi

pattern-matching - Reason 的 cons (::) 运算符在哪里?

转载 作者:行者123 更新时间:2023-12-04 16:58:53 24 4
gpt4 key购买 nike

cons ( :: ) 运算符是 1) 在 OCaml 和类似语言中编写递归列表函数以及 2) 在列表上进行模式匹配的基本部分。但是,我在 Reason 的文档中找不到任何关于缺点的内容,并且在 REPL 中,这会引发错误:

Reason # let myList = [2, 3, 4];
let myList : list int = [2, 3, 4]
Reason # 1 :: myList;
Error: Syntax error

cons 运算符有替代品吗?

最佳答案

啊,它在 Reason 的 list of primitives 中被别名为“不可变列表追加”操作符。 :

OCaml:

1 :: 2 :: myList
1 :: 2 :: [3, 4, 5]

原因:
[1, 2, ...myList]
[1, 2, ...[3, 4, 5]]

奇怪的是,至少在当前版本 (0.0.6) 中,您可以在模式匹配时使用这两种语法:
let head = fun lst => switch lst {
| [] => failwith "Empty list"
| [hd, ...tl] => hd
};

let head = fun lst => switch lst {
| [] => failwith "Empty list"
| hd::tl => hd
};

关于pattern-matching - Reason 的 cons (::) 运算符在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37310779/

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