Can I define an anonymous predicate in SWI Prolog, bind it to a variable, and call it later? Something like this:
?- F = {(X, Y) :- Y is 2 * X}, call(F, 2.0, Y).
That′s what lambdas are for:
?- use_module(library(lambda)). true. ?- F_2 = (X^Y^ ( Y is 2*X )), call(F_2,2.0,Y). F_2 = X^4.0^(4.0 is 2*X), Y = 4.0.
2.1m questions
2.1m answers
60 comments
57.0k users