Complex conditions (e.g A and B) as first argument of
forall_do operation results in the update (in the
second argument) only being applied once, even if there
are several matches.
(from GoDiS:)
| ?-
apply_update(/private/nim:=oqueue([pair(usr,answer(london)),
pair(usr,answer(paris)), pair(usr,answer(seattle))])).
yes
% source_info
| ?- apply_update(forall_do( (in( $/private/nim,
_Answer) and _Answer/snd = answer(_)), del(
/private/nim, _Answer ) )).
yes
Only two answers have been removed.