Chu*_*cky 1 functional-programming sml high-level
val implies =
fn x y = case x of false andalso case y of false => true
| fn x y = case x of false andalso case y of true => true
| fn x y = case x of true andalso case y of false => false
| fn x y = case x of true andalso case y of true => true;
Run Code Online (Sandbox Code Playgroud)
我无法编译.我对SML比较陌生,所以不太习惯一般的语言和语法.我做错了什么?
有各种各样的错误:
implies
直接进行模式匹配没有任何参数.case x of
用于与特定值进行模式匹配,而不是像if/else
接受布尔表达式的表达式.fn x => ...
.快速修复:
fun implies x y =
case (x, y) of
(false, false) => true
| (false, true) => true
| (true, false) => false
| (true, true) => true
Run Code Online (Sandbox Code Playgroud)
可以重写为可读性:
fun implies false false = true
| implies false true = true
| implies true false = false
| implies true true = true
Run Code Online (Sandbox Code Playgroud)
或者通过使用命题逻辑规则更简洁:
fun implies x y = (not x) orelse y
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
902 次 |
最近记录: |