<Regenaxer>
Prolog substitutes each value, and then matches
<Regenaxer>
but @ is not substituted
<beneroth>
so @ acts like NULL in SQL? then (not (equal @ @)) would be true
<beneroth>
I mean
<Regenaxer>
You never really need @
<beneroth>
don't I use @ if I want ignore some variables in a rule?
<Regenaxer>
you can use @foo if @foo is not used anywhere else
<beneroth>
ok
<Regenaxer>
yeah, just dont use it
<Regenaxer>
eg @fio
<beneroth>
all pilog variables are always "global", even when they are within a rule, right?
<beneroth>
ok
<beneroth>
that is my current strategy, T
<Regenaxer>
no, local in this level
<Regenaxer>
nothing is global here
<Regenaxer>
Prolog does not "execute" in the normal way. It only matches patterns, nested constants and variables. A match happens if all constants are the same, and varibles are unified with the corresponding variables or constants
<Regenaxer>
sorry, must stop
<Regenaxer>
bbl
<beneroth>
got that
<beneroth>
ok
<beneroth>
see you later, thanks anyway :)
<Regenaxer>
:)
<beneroth>
I give up for now
<beneroth>
I will just recurse on picolisp level, repeatedly calling pilog..
orivej has joined #picolisp
<Regenaxer>
oh :(
<Regenaxer>
I know these problems, switching the brain between Lisp and Pilog
<Regenaxer>
It is very different, and the normal thinking of function calls, arguments and variables does not apply to Pilog
<Regenaxer>
A variable is not passed into a predicate. It immediately replaces all its occurrances in the body with its value, and the resulting body is used for further matching