Hacker News new | ask | show | jobs
by dmytrish 3890 days ago
Why? `?-` indicates that it's a query, it should not define anything.
1 comments

    $ swipl
    ?- X = 10.
    X = 10.

    $ gprolog
    | ?- X = 10.
    X = 10
    yes
(a) The REPL should print the variable bindings which caused the query to succeed. (b) The query `X = 10.` should succeed trivially.

I've been using Prolog on-and-off for close to a decade now and have implemented my own pseudo-Prolog (also in Javascript; was missing logic variables and extra-logical builtins). I tried to get pretty much any query to succeed in this interpreter and couldn't. This is not any kind of Prolog that I'm familiar with.

Yep, I agree I was wrong (having too little experience in Prolog): variables are necessary to extract values from queries.