2016-04-18 9 views
0

Wie bekomme ich die beiden oberen Elemente einer Liste?Wie man mathematische Operationen auf die obersten Elemente in der Liste anwendet OCaml

Zum Beispiel, wenn ich [1;2;3] habe, wie bekomme ich die oberen zwei Elemente, in diesem Fall 1 und 2, so kann ich eine mathematische Operation auf sie anwenden?

Fühlen Sie sich wie es etwas um h1::h2::t aber nicht sicher,

+1

Wir helfen Ihnen gerne, aber warum versuchen Sie es nicht einfach? Testen im Toplevel oder auf versuchen ocaml ist soo einfach. –

+4

Sie sind auf dem richtigen Weg. Verwenden Sie [pattern-matching] (https://ocaml.org/learn/tutorials/data_types_and_matching.html#Patternmatchingondatatypes) und befassen Sie sich mit leeren und Singleton-Listenfällen. –

Antwort

1

Ok also hier sein sollte, ist eine ideia, wenn Sie den Kopf der Liste zurückkehren möchten Sie tun können List.hd list;; vorstellen, dass list Ihre Liste ist.

Wenn Sie das zweite Element der Liste zurückkehren möchten, können Sie

List.hd (List.tl list) ;; 

Beispiel:

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

List.hd list;; 
- : int = 1 

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

Natürlich, die bessere Möglichkeiten gibt, es zu tun, aber das funktioniert zu.

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

Dies scheint gut zu funktionieren. Aber es könnte sein, dass es besser gemacht werden könnte.

Verwandte Themen