haskell - 当 a 和 b 具有相同值时暗示为真的函数
问题描述
当 a 和 b 都为真或它们都为假时,我试图使之为真。有人可以告诉我我做错了什么吗?
imply :: (a -> Bool, b -> Bool) -> Bool
a = False
b = True
imply (a, a) = True
imply (b, b) = True
imply _ = False
解决方案
我将猜测您想要什么,因为您似乎在努力学习 Haskell 语法的基础知识。如果您还没有,请考虑阅读教程。
我同意@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
但是这两个版本(几乎)是等效的。
推荐阅读
- python - 尝试使用 SVM 对 aa 数据集进行分类时出现错误
- javascript - 我无法将此箭头函数转换为普通函数。我已经在 chrome 的控制台面板中对此进行了测试
- django-models - 如何使用模板处理器中的 django modelForm?
- android - 尝试更新两个不同的页面,这些页面引用了颤振应用示例中的 1 个单词列表
- python - 使用分割图像问题进行对象检测:澄清的新问题
- java - 查找与 org.apache.commons.lang3.StringUtils 兼容的 Nullness 注释
- javascript - 根据另一个键的值在数组中查找一个键的值
- javascript - Discord.js:如何在使用高级事件处理程序时为我的机器人设置自定义状态?
- python - 按下键时如何使脚本运行?
- python - WebScraping Dyanmic 查询参数无法抓取 json 响应