Reason 的 cons (::) 运算符在哪里?
Where is Reason's cons (::) operator?
cons (::
) 运算符是 1) 在 OCaml 和类似语言中编写递归列表函数,以及 2) 列表模式匹配的基本部分。但是,我在 Reason 的文档中找不到任何关于 cons 的内容,在 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:
中被别名为 "immutable list append" 运算符
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
};
cons (::
) 运算符是 1) 在 OCaml 和类似语言中编写递归列表函数,以及 2) 列表模式匹配的基本部分。但是,我在 Reason 的文档中找不到任何关于 cons 的内容,在 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:
中被别名为 "immutable list append" 运算符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
};