2014-07-27 12 views

risposta

11

Idris non ha protezioni modello esattamente come in haskell. C'è con clausola che è sintatticamente simile (ma più potente in quanto supporta corrispondente in presenza di tipi dipendenti):

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

si può prendere uno sguardo ai Idris tutorial sezione 7 Visualizzazioni e il "con" regola.

+1

Questo non è lo stesso di guardie nell'esempio Haskell che consentirebbe cose come '| x + y == 10 ... | func (x * y + 52)> 42 = ... '. – Noein

Problemi correlati