[英]haskell understanding data type
假設我們有下一個數據:
data Value =
IntVal Int
| BoolVal Bool
和功能
f :: Value -> Int
如何在類型為Value的參數上的不同構造函數中區分大小寫? 因此, f (IntVal 1)
具有一種行為,而f (BoolVal True)
具有另一種行為。
有幾種不同的方法,一種流行的方法是在函數參數中使用模式匹配。
negateValue :: Value -> Value
negateValue (IntVal n) = IntVal (-n)
negateValue (BoolVal p) = BoolVal (not p)
另一種方法是使用案例模式。
使用案例:
negateValue val = case val of
IntVal n -> IntVal (-n)
BoolVal p -> BoolVal (not p)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.