【发布时间】:2013-11-29 22:20:42
【问题描述】:
定义一个函数
pairMaybe :: Maybe a -> Maybe b -> Maybe (a,b)仅当两个参数都是
Just时才会产生Just结果,并且如果两个参数都是Nothing时会产生Nothing。
我想出了:
pairMaybe (Just a) (Just b) = Just (a,b)
pairMaybe (Just a) Nothing = Nothing
pairMaybe Nothing (Just b) = Nothing
我不确定这是否是正确的写作方式。这有什么问题吗?或者这是定义这个函数的方式?
另外我想我可能想要更好地解释这个函数实际上可以做什么,所以如果我用两个参数调用pairMaybe,它们可以是什么参数?当然,它们必须是 Maybe 类型,但有什么好的例子呢?
【问题讨论】:
-
如果您想知道代码是否有效,您可以将其输入文件并使用
:load yourfile.hs将其加载到GHCi中并自行测试功能。如果您要求进行代码审查(即专家意见和改进建议),很遗憾您最终进入了错误的站点!在codereview.SE 上你可能会有更好的运气。 -
我知道如何检查代码是否有效,并且确实有效,但我更多地考虑它的实际用途,而不是它是否编译