Prolog è vs = con liste
-
20-09-2019 - |
Domanda
Perché questo fallisce L is [1,2,3,4]
, e questo funziona:? L = [1,2,3]
Ma L is 1
, e L = 1
entrambi funzionano allo stesso.
Soluzione
is
deve essere utilizzato solo quando si valutano le operazioni aritmetiche sul lato destro.
cioè:.
X is 1 + 2 + 3
is/2
valuta la struttura a destra come espressione aritmetica. Se non è un'espressione aritmetica valido o un numero, is/2
fallisce. In caso contrario, il numero a cui l'espressione aritmetica evaluted è unificato con il valore [presumibilmente] non legato sinistro.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow