How can i change a variable during runtime?
I got this:
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)
Now i want to add the quantifier "all". So i want to check an Propositional calculus if its still true, when i change N1 to False. But how can i change a variable during runtime?
Best regards Marc
variables1 (Var N1) = False?evaluateis already parameterized; you just pass a function other thanvariables1as its second argument.