Ho iniziato a imparare Prolog seguendo il libro Programming in Prolog: Using the ISO Standard. A pagina 7 del intro alla lingua hanno fatto l'affermazione: "In Prolog la risposta non viene usato per indicare nulla unifica con la domanda E 'importante ricordare che non non è lo stesso di falsa. ". Quindi, perché SWI-Prolog
utilizza la dichiarazione false
e true
anziché yes
o no
?Qual è la differenza tra "false" e "no" in Prolog
risposta
Per cominciare, lo standard ISO (ISO/IEC 13211-1: 1995) non definisce un ciclo di primo livello. In 1 Campo di applicazione si legge:
NOTA — Questa parte della norma ISO/IEC 13211 non specifica:
...
f) l'ambiente utente (anello livello superiore, debugger, biblioteca
sistema, editor, compilatore ecc.) di un processore Prolog.
Tradizionalmente, la risposta di una query è stata risolta con sì o no. In caso di sì, sono state mostrate le sostituzioni delle risposte, se presenti.
Oggi, con sempre più limitazioni presenti nelle risposte, il tradizionale ciclo di toplevel diventa un po 'macchinoso da utilizzare. Qual è la risposta corretta a ?- dif(X,a).
? Non può essere un , potrebbe essere un forse, che è stato utilizzato prima da Jaffar et al.s CLP(R). Ma molto spesso si vuole riutilizzare la risposta.
L'idea in SWI è di produrre testo come risposta in modo da poterlo incollare per ottenere lo stesso risultato. In questo modo la sintassi delle risposte è specificata in una certa misura - deve essere un testo Prolog valido.
Quindi, se non c'è più sì, perché non dovrebbe esserci? Per questo motivo SWI fornisce false.
come risposta. Prima della SWI, Prolog IV rispondeva allo false
. Nota ad esempio il seguente punto di arresto in SWI:
?- true; false.
true ;
false.
Quindi anche questo piccolo dettaglio viene mantenuto nelle risposte. Mentre in Prolog IV questo è collassato in true
perché Prolog IV mostra tutte le risposte in un colpo solo.
?- true ; false.
true.
Per ulteriori informazioni sulle risposte, see this.
- 1. Qual è la differenza tra "e" in Prolog?
- 2. Qual è la differenza tra == e = in Prolog?
- 3. Qual è la differenza tra _ e _variable in prolog?
- 4. Qual è la differenza tra @ YES/@ NO e YES/NO?
- 5. Qual è la differenza tra no-cache e no-store in Cache-control?
- 6. Qual è la differenza tra Verilog! e ~?
- 7. Qual è la differenza tra = e: =
- 8. Qual è la differenza tra `##` e `hashCode`?
- 9. Qual è la differenza tra dict() e {}?
- 10. qual è la differenza tra:.! e: r !?
- 11. Qual è la differenza tra ("") e (null)
- 12. Qual è la differenza tra? : e ||
- 13. qual è la differenza tra [[], []] e [[]] * 2
- 14. Qual è la differenza tra $ e $$?
- 15. Qual è la differenza tra " " e ""?
- 16. Qual è la differenza tra {0} e ""?
- 17. Qual è la differenza tra {0} e +?
- 18. Qual è la differenza tra .ToString() e + ""
- 19. Qual è la differenza tra! = E =! in Java?
- 20. Qual è la differenza tra var e let in Typescript?
- 21. Qual è la differenza tra compilation debug = "false" e la modalità Release?
- 22. Qual è la differenza tra reindirizzamento e inoltro in Symfony?
- 23. Qual è la differenza tra! Col e col = false in MySQL?
- 24. Differenza tra AutoPostBack = True e AutoPostBack = False?
- 25. qual è la differenza tra _source e _all in Elasticsearch
- 26. Qual è la differenza tra finto e mock_model in RSpec
- 27. Qual è la differenza tra _isEnabled e isEnabled in Anguilla?
- 28. Qual è la differenza tra "in fp" e "in fp.readlines()"?
- 29. In IndexedDB, qual è la differenza tra IDBObjectStore.put e IDBCursor.update?
- 30. Qual è la differenza tra navigationController.navigationBarHidden e navigationController.navigationBar.hidden?
Questa risposta è stata buona fino a quando ho guardato il tuo nome utente, poi è diventato sorprendente. –
@false, grazie per la tua risposta, ma ancora non riesco a capire il punto. Per semplici asserzioni come 'human (socrates) .'' human (aristotle) .' e 'athenian (socrates) .' Mi aspetterei una risposta' yes' e 'no' invece di una' true-flase' alla domanda ' ? - athenian (socrates) .' e '? -athenian (aristotle) .' –
@EnricoPirani: Perché non rispondere' true'? o 'falso'? Molti umani rispondono così: * Socrate è umano? Vero! Prolog è umano? False! * Oppure '3> 2'? 'True'! – false