2014-07-27 20 views

Trả lời

11

Idris không có bảo vệ mẫu chính xác như trong haskell. Có với khoản mà là cú pháp tương tự (nhưng mạnh hơn vì nó hỗ trợ tương ứng trong sự hiện diện của các loại phụ thuộc):

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

Bạn có thể có một cái nhìn tại Idris tutorial phần 7 Lần đọc và "với" quy tắc.

+1

Điều đó không giống như các vệ sĩ trong ví dụ Haskell cho phép các nội dung như '| x + y == 10 ... | func (x * y + 52)> 42 = ... '. – Noein

Các vấn đề liên quan