Sono nuovo in Mathematica (v8) e lo sto utilizzando per programmare la logica proposizionale.Mathematica If-then vs. Implicita
Mi chiedo quale sia la differenza tra gli operatori If
e Implies
. Ad esempio,
sia If[p,q]
e Implies[p,q]
restituiscono q
per p=True
(come previsto).
Ma quando cerco di ottenere SatisfiabilityInstances, ottengo il seguente:
SatisfiabilityInstances[If[p, q], {p, q}]
(*
{{True, True}}
*)
a meno che non lo chiedo per più istanze:
SatisfiabilityInstances[If[p, q], {p, q}, All]
SatisfiabilityInstances :: boolv: "Se [p , q] non è valore booleano su {False, True}
Tuttavia:
SatisfiabilityInstances[Implies[p, q], {p, q}, All]
Restituisce l'atteso fuori:
(* {{True, True}, {False, True}, {False, False}} *)
che cosa sta causando questa differenza nelle uscite?
Mi potete indirizzare ad un buon tutorial? Ho letto la documentazione di Mathematica ma non ero a conoscenza del fatto che è possibile fornire "Se" quattro valori (solo tre per if-else). 'Se [a, b, c, d]' restituisce 'd' senza alcun valore di verità assegnato - perché è così? @Dims – QuietThud
@QuietThud 'Se [condizione, clausola true, clausola falsa, clausola non true-or-false]' –
Grazie @belisarius. =) Apprezzerei una raccomandazione per quanto riguarda la matematica. la fonte di apprendimento della programmazione va - la Documentazione funziona meglio come riferimento. – QuietThud