Hi all,
since version 21.7.25 PicoLisp supports a new syntax for calling Lisp code in
Pilog rules.
As before, the predicate '^' evaluates Lisp expressions inside Pilog code:
: (? (^ @X (println 'OK)))
OK
@X=OK
Traditionally, Pilog variables can be accessed with the '->' function:
: (? @A 3
(^ @B (inc (-> @A))) )
@A=3 @B=4
: (? @A 3 @B 4
(^ @N (* (+ (-> @A) (-> @B)) (- (-> @A) (-> @B)))) )
@A=3 @B=4 @N=-7
Now these variables are automatically *bound* before the Lisp code is evaluated,
so that the following works:
: (? @A 3
(^ @B (inc @A)) )
@A=3 @B=4
: (? @A 3 @B 4
(^ @N (* (+ @A @B) (- @A @B))) )
@A=3 @B=4 @N=-7
The new syntax is shorter and a lot more readable.
The old syntax continues to work, and '->' is till needed for calls like
(-> @A 3)
to access non-top-level Pilog environments.
☺/ A!ex
--
UNSUBSCRIBE: mailto:[email protected]?subject=Unsubscribe