Hec*_*tor 2 haskell functional-programming
我正在尝试编写一个函数,其第三个参数可以是 an(Int, Int)或 a Maybe (Int, Int)。这可能吗?
randomFunction :: [Char] -> [[Int]] -> Either (Int, Int) Maybe (Int, Int) -> Bool
Run Code Online (Sandbox Code Playgroud)
您询问的语法是:
Either (Int, Int) (Maybe (Int, Int))
Run Code Online (Sandbox Code Playgroud)
但这不太可能是惯用的解决方案。我怀疑这更有可能是以下两种解决方案之一:
Maybe (Int, Int)。手中有 的呼叫者(Int, Int)可以将其包装在Just. (此解决方案始终可以应用。)(Int, Int)。提供一个默认值(Int, Int)(例如,(0, 0)当然,正确的选择取决于函数的功能),如果调用者有 aMaybe (Int, Int)并且其值为 ,则可以使用该默认值Nothing。(此解决方案几乎总是可行的,但在极少数情况下,该函数可能会进行Nothing特殊处理,以至于无法由任何特定的 来模拟(Int, Int)。)