作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有一个功能简化 , 其中 simplify :: Proposition -> Proposition
, 在哪里
data Proposition = Const Bool
| Var String
| And Proposition Proposition
| Or Proposition Proposition
| Not Proposition
deriving Show
simplify (Const False `And` a) == Const False
simplify (Const True `And` a) == a
simplify (Const False `And` a) = Const False
simplify (Const False `Or` a) = Const False
simplify (Const False `Not` a) = Const False
simplify (Const True `And` a) = a
simplify (Const True `Or` a) = a
simplify (Const True `Not` a) = a
simplify prop = prop
最佳答案
在您的方法中有几件事可以改进。
首先,你的函数有一些错误,
正如评论中已经指出的那样,“Not”构造函数只接受一个参数,所以
simplify (Const False `Not` a) = Const False
simplify (Const True `Not` a) = a
simplify (Const False `Or` a) = Const False
simplify (Const True `Or` a) = a
simplify prop = prop
simplify (Const True `And` a) = a
simplify (Const True `And` a) = simplify a
simplify (a `And` b) = ((simplify a) `And` (Simplify b))
simplify prop = prop
simplify (Var a) = (Var a)
simplify :: Proposition -> Proposition
simplify (Const False `And` a) = Const False
simplify (Const False `And` _) = Const False
关于function - 在 Haskell 中减少命题的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59347893/
前言请注意,这是一项作业。第一个问题已经问了一个问题。所以我们有数据类型: data BoolProp : ??? where ptrue : BoolProp true pfalse :
我是依赖类型的新手,有 Haskell 经验,正在慢慢学习 Idris。作为练习,我想编写霍夫曼编码。目前我正在尝试编写一个证明,证明代码树的“扁平化”会产生一个前缀代码,但被量词卡住了。 我有一个简
我是一名优秀的程序员,十分优秀!