Settings

Theme

Show HN: Prolog compiler and interpreter in pure JavaScript

prolog.jldupont.com

15 points by jldupont 10 years ago · 4 comments

Reader

colanderman 10 years ago

    ?- X = 10.
    X = _
    no.
...this doesn't work like any Prolog I know. (Even defining equality manually as "eq(X, X)." doesn't work...)
  • dmytrish 10 years ago

    Why? `?-` indicates that it's a query, it should not define anything.

    • colanderman 10 years ago

          $ 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.

      • dmytrish 10 years ago

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

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection