ich durch einige ECLIPSE Dokumentation würde und diese gefunden:ECLIPSE Prolog - Unerwartetes Verhalten von 'nonvar/1'
`nonvar/1` : Fails if Term is not instantiated
ich versucht das zu tun:
1. Query: nonvar(X). Result: No (AS EXPECTED)
2. Query: X=5, nonvar(X). Result: Yes (AS EXPECTED)
3. Query: X=5, nonvar(f(X)). Result: Yes, X=5. (AS EXPECTED)
Nun ist diese Abfrage-Ergebnis verwirrt mich :
4. Query: nonvar(f(X)). Result: Yes, X=X.
Abfragen 1,2,3 funktionieren wie erwartet. Für mich ist das Ergebnis von 4 seltsam. Gemäß der Dokumentation von nonvar/1 in Eclipse kann das Argument ANY PROLOG TERM sein (also ist f (X) in Ordnung) und nonvar testet, ob das Argument INSTANTIATED ist oder nicht.
Im Fall von 4 wird es nicht instanziiert, also sollte es NEIN sein und nicht JA (X = X). Bitte korrigieren Sie mich, wenn mein Verständnis falsch ist, oder handelt es sich um ein Dokumentationsproblem in ECLiPSe Prolog? Ich benutze die neueste Version.
Danke!
@mescalinum: Dies ist in keiner Weise spezifisch an Eclipse-Prolog – false