2016-05-18 6 views
5

演算子(::)演算子は、1)OCamlなどの言語で再帰的リスト関数を書くこと、および2)リストのパターンマッチングの基本的な部分です。しかし、私は短所に関する理由のドキュメントに何かを見つけることができない、とREPLで、これはエラーをスローします。Reasonのcons(::)演算子はどこですか?

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

はコンス・オペレータのための代替はありますか?

+0

理由とは何ですか?私はそれを聞いたことがなく、Googleで何も見つけることができません。 –

+0

http://facebook.github.io/reason/ – jayelm

+0

TIL。ありがとう!私はその言語に関するタグwikiが好きです。 –

答えて

9

、それは理由のlist of primitivesに "不変のリストは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 
}; 
関連する問題