Trong exercice trườngmẫu phù hợp trong GHCi
Tôi có Chức năng này
bar :: Float -> Float -> Float
bar x 0 = 0
bar 0 y = 0
bar x y = x * y
tôi gõ nó trong GHC như
let bar x 0 = 0; bar 0 y = 0; bar x y = x * y
và đánh giá
bar foo 0
bar 0 foo
Tôi đã yêu cầu sửa đổi thanh để sử dụng '|' vì vậy tôi muốn làm một cái gì đó như:
let bar x y = | x 0 = 0 | 0 y = 0 | x y = x * y
nhưng trong ghci tôi đã
parse error on input '='
Làm thế nào tôi có thể làm điều đó trong GHCi? Thực tế việc sử dụng kết hợp mẫu ('|') có thay đổi gì không?
Thanh 'gốc' ban đầu của bạn sử dụng đối sánh mẫu.Bạn muốn tìm hiểu về [guards] (http://en.wikibooks.org/wiki/Haskell/Truth_values#Guards). – dave4420
Bạn có thể đặc biệt thông minh và viết đơn giản là 'let bar | nếu không = (*) '... – leftaroundabout
Xóa' = 'trước dấu hiệu bảo vệ đầu tiên, 'cho phép x y | x == 0 = ... | y == 0 = ... | nếu không = ... '. –