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.
1.4m articles
1.4m replys
5 comments
57.0k users