executing operation para cada elemento da lista no swi-prolog e outros

Como faço uma operação para cada elemento de uma lista, em ordem?

Com base nesses dois recursos:

http: //www.swi-prolog.org/pldoc/doc/swi/library/lists.phttp: //www.swi-prolog.org/pldoc/doc_for? object = foreach / 2

Imagino que posso sempre confiar em:

foreach(member(X, [1,2]), write(X)).

Isso é determinístico e posso agrupar o predicado member / 2 como eu quiser nos meus próprios predicados e ainda iterar sempre em ordem?

questionAnswers(1)

yourAnswerToTheQuestion