2014-07-27 5 views

Antwort

11

Idris hat keine Musterwächter wie in Haskell. Es gibt mit Klausel, die syntaktisch ähnlich ist (aber leistungsstärker als es Anpassung in Anwesenheit von abhängigen Typen unterstützt):

containsTen : Num a => List a -> Bool 
containsTen (x :: y :: xs) with (x + y) 
    | 10 = True 
    | _ = False 

Sie einen Blick darauf werfen kann an den Idris tutorial Abschnitt 7 Ansichten und den „mit“ -Regel.

+1

Das ist nicht dasselbe wie die Wachen im Beispiel Haskell, die Dinge wie '| erlauben würden x + y == 10 ... | Funktion (x * y + 52)> 42 = ... '. – Noein