{-当a和b都为真或他们俩都是假的。有人可以吗告诉我我是什么做错了吗?-}
imply :: (a -> Bool, b -> Bool) -> Bool
a = False
b = True
imply (a, a) = True
imply (b, b) = True
imply _ = False
我将对您想要的内容进行猜测,因为您似乎正在努力克服Haskell语法的基础知识。如果尚未考虑,请考虑通过a tutorial。
我同意@bradrn,您正在寻找的功能可能就是这个功能:
imply :: (Bool, Bool) -> Bool
imply (True, True) = True
imply (False, False) = True
imply _ = False
我可以解释您所做的各种事情,但我认为您只需要看一看它的外观示例。我很乐意在评论中回答您对此有任何疑问。
要使用此功能,例如,在ghci
中加载文件后,键入:
ghci> imply (True, False)
False
ghci> imply (False, False)
True
请注意,在Haskell中,约定是定义函数curried,所以我们改为查看
imply :: Bool -> Bool -> Bool
imply True True = True
...
ghci> imply True False
False
但是两个版本等效于[[(几乎)。