2016-04-18 15 views
0

リストの上位2つの要素を取得するにはどうすればよいですか?リストの上位要素に数学演算を適用する方法OCaml

たとえば、[1;2;3]がある場合、上位2つの要素(この場合1と2)を取得するにはどうすればよいのですか?そのために数学演算を適用できますか?それはので、ここで[OK]を

+1

私たちは喜んでお手伝いしますが、なぜそれを試してみませんか?トップレベルでのテストやオカムリでのテストは簡単です。 –

+4

あなたは正しい道を歩いています。 [パターンマッチング](https://ocaml.org/learn/tutorials/data_types_and_matching.html#Patternmatchingondatypes)を使用し、空のリストやシングルトンのリストのケースを処理します。 –

答えて

1

周りh1::h2::tではなく、必ず何かideiaがあるべきであるように、あなたがList.hd list;;listはあなたのリストであることを想像行うことができ、リストの先頭を返すようにしたい場合は

は、感じます。

リストの2番目の要素を返したい場合は、

List.hd (List.tl list) ;; 

例行うことができます。もちろん

let list = [1;2;3];; 

List.hd list;; 
- : int = 1 

List.hd (List.tl list);; 
- : int = 2 

それを行うには良い方法ですが、これはに動作します。

1
let hd2 lst = 
    match lst with 
    | [] -> [] 
    | [a] -> [a] 
    | a::b::t-> [a; b] 

これはうまくいくようです。しかし、それがより良くできるかもしれないかもしれないかもしれません。

関連する問題