I normally was able to figure out some usages of Lambda with maplist, but in general have hard time using lambda in prolog. It is probably because it differ from other languages, because of unification.
Here is one of the sticking points : How do you apply declared Lambda expression ? f.e.
LAM = \X^R^(....)
(weird, there have to be space between = and \)
how do you do :
\(LAM)(abc,R)
Another thing which I want to do is to store Lambda expression like a FACT, so that I can query it, but also have it like a lambda function so I can do later binding..f.e. just of the top of my head ... i could think it wrong ..
move = \Obj^From^To(move(Obj,From,To))
instantiate :
?- \(move)(ball,ground,table).
or partially :
?- L2 = \(move)(ball).
?- L3 = \(L2)(table,floor)
query :
?- move(ball,F,T).