我有一個像代數數據類型匹配:Haskell的圖案上的功能結果
data Toll = Vok Int Bool | Bok Int | Cokd String Char
和另一功能
getVal :: Int -> Toll
getVal 1 = Cokd "hello" 'c'
getVal _ = Bok 12
我想調用在一些功能getVal
和提取的Cokd
參數(如果答案是Cokd
)(可能使用模式匹配)。
可我不喜歡:
hello :: Int -> Bool
hello x = if st == "hell" then True else False
where (Cokd st ch) = getVal x
我不能用單子。
如何做到這一點?
你想'getVal'的結果模式匹配?類似於{Cokd str ch - > ...}'的case getVal x? – ZhekaKozlov
可我不喜歡在編輯崗位上述@ZhekaKozlov – Hok