【发布时间】:2017-11-28 03:05:44
【问题描述】:
如何在运行时更改变量?
我知道了:
data Ausdruck = K Wahrheitswert -- Logical constant
| V Variable -- Logical Variable
| Nicht Ausdruck -- Logical negation
| Und Ausdruck Ausdruck -- Logical and
| Oder Ausdruck Ausdruck -- Logical or
| Impl Ausdruck Ausdruck -- Logical implied
| Esgibt Variable Ausdruck -- "exist"
| Fueralle Variable Ausdruck -- "all"
deriving (Eq,Show)
type Variables = Variable -> Bool
variables1 :: Variable -> Bool
variables1 (Var N1) = True
variables1 (Var N2) = False
variables1 (Var N3) = True
variables1 (Var N4) = True
variables1 (Var N5) = False
evaluate :: Prop -> Variables -> Bool
evaluate (K bool) belegung = bool
evaluate (V var) belegung = belegung var
evaluate (Nicht ausdruck) belegung = not (evaluate ausdruck belegung)
evaluate (Und ausdruck ausdruck2) belegung = (evaluate ausdruck belegung) && (evaluate ausdruck2 belegung)
evaluate (Oder ausdruck ausdruck2) belegung = (evaluate ausdruck belegung) || (evaluate ausdruck2 belegung)
现在我想添加量词“全部”。因此,当我将 N1 更改为 False 时,我想检查一个命题演算是否仍然正确。 但是如何在运行时更改变量?
最好的问候马克
【问题讨论】:
-
我是否正确理解您想要提供一些改变程序状态的用户输入,例如
variables1 (Var N1) = False? -
evaluate已经参数化;您只需将variables1以外的函数作为第二个参数传递。 -
顺便说一句,Füralle 是一个完全合法的构造函数名称。
标签: haskell