我正在嘗試撰寫一個函式,其第三個引數可以是 an(Int, Int)或 a Maybe (Int, Int)。這可能嗎?
randomFunction :: [Char] -> [[Int]] -> Either (Int, Int) Maybe (Int, Int) -> Bool
uj5u.com熱心網友回復:
你問的東西的語法是:
Either (Int, Int) (Maybe (Int, Int))
但這不太可能是慣用的解決方案。我懷疑它更有可能是這兩種解決方案之一:
- 只 接受
Maybe (Int, Int)。手頭有 的呼叫者(Int, Int)可以將其包裝在Just. (始終可以應用此解決方案。) - 只 接受
(Int, Int)。提供一個默認值(Int, Int)——比如說,,(0, 0)當然正確的選擇取決于函式的作用——呼叫者可以使用它,如果他們有 aMaybe (Int, Int)并且它的值為Nothing. (這種解決方案幾乎總是可行的,但在極少數情況下,該函式可能會Nothing進行特殊處理,以至于任何特定的 . 都無法模擬它(Int, Int)。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/528518.html
標籤:哈斯克尔函数式编程
上一篇:我不明白型別宣告
