On this page: https://www.swi-prolog.org/pldoc/man?section=yall
I read this:
Combined with library(apply_macros) ,
library(yall) allows writing one-liners for many list operations that have the same performance as hand-written code.
But there seems to be only a
library(apply) with the list functions in it.
The possibly errant text is just above the “Parameters” documentation after it states that this is a port of the Logtalk code.
There is indeed a library(apply_macros). It just provides a bunch of goal_expansion/2 rules to “compile away” the predicates from library(apply) and library(yall).
Is that not in the main documentation for a reason? Maybe I just missed it, it’s not in the obvious list of “Documentation >> Reference manual >> The SWI-Prolog library” that I could see that’s all, hence me thinking it might have been a typo.
Is it not for general consumption yet / at all ?
My guess is it isn’t showing up because it doesn’t actually define any predicates itself, just adds goal_expansion/2 rules.
As far as I recall, the idea and name come from YAP. The main aim was to make things like maplist/2- the same as a recursive loop. I see it more as an intermediate step to what at some point should become proper partial evaluation/inlining.