2
我正在用sml創建邏輯簡化程序。但我對這個輸入有一個問題:sml中的邏輯簡化
- Or(Or(Var"x", Var"y"), Var"z");
val it = Or (Or (Var #,Var #),Var "z") : formula
- Simplify it;
而且它處於無限循環。
這裏是我的代碼:
fun Simplify (Or(True, _)) = True
| Simplify (Or(_, True)) = True
| Simplify (Or(False, False)) = False
| Simplify (Or(x, False)) = (Simplify x)
| Simplify (Or(False, x)) = (Simplify x)
| Simplify (Or (Var (x), Var (y))) = Or (Var (x), Var (y))
| Simplify (Or (x, y)) = (Simplify (Or (Simplify x, Simplify y)))
| Simplify (And(_, False)) = False
| Simplify (And(False, _)) = False
| Simplify (And(True, True)) = True
| Simplify (And(True, x)) = (Simplify x)
| Simplify (And(x, True)) = (Simplify x)
| Simplify (And(Var (x), Var(y))) = And (Var (x), Var (y))
| Simplify (And (x, y)) = (Simplify (And (Simplify x, Simplify y)))
| Simplify (Not(Not(x))) = (Simplify x)
| Simplify (Not(True)) = False
| Simplify (Not(False)) = True
| Simplify (Not(Var (x))) = (Not (Var x))
| Simplify (Not(x)) = (Simplify (Not (Simplify x)))
| Simplify True = True
| Simplify False = False
| Simplify (Var(x)) = Var(x);
但是,如果沒有他們,如果我有:不(與(AND(假,VAR( 「X」)),VAR(「Y 「)));那麼它不會被進一步簡化爲「真」。 – user1047517
請參閱我的更新。它應該現在工作正常。 – pad
現在我有很多「錯誤:語法錯誤:刪除BAR ID DARROW」 – user1047517