簡體   English   中英

haskell理解數據類型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM