2014-07-27 1 views

Répondre

11

Idris n'a pas de protections de motif exactement comme dans le haskell. Il y a avec clause qui est syntaxiquement similaire (mais plus puissant car il prend en charge l'appariement en présence de types dépendants):

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

Vous pouvez jeter un oeil à la section Idris tutorial7 Vues et « par » règle.

+1

Ce n'est pas la même chose que les gardes dans l'exemple Haskell qui permettraient des choses comme '| x + y == 10 ... | func (x * y + 52)> 42 = ... '. – Noein

Questions connexes