Obecnie pracuję nad bardzo krótkim projektem na Prologu i po prostu utknąłem próbując zastosować "filtr", który stworzyłem do listy. Mam gotowy filtr, ale nie mogę go zastosować. Byłoby lepiej, gdybym zilustrował:Prolog: Filtrowanie listy?
filter(A, B)
... wyświetla "true", jeśli spełnione są określone warunki.
filterList(A, [X, Y, Z])
... generuje listę, która zawiera wszystkie elementy z drugiego argumentu, że ich wyjścia filtra fałszywy. (Jeśli więc filtr (A, X) jest prawdziwy, wyjście to [Y, Z]).
Mam funkcję "filtra", ale teraz muszę zastosować ją do listy, jak pokazano w drugim przykładzie, z wyłączeniem wszystkich elementów, dla których filtr zwraca wartość true, gdy zostanie zastosowany z pierwszym argumentem.
Tak więc, jeśli filtr jest prosty A == B, funkcja ma otrzymać A [A, B, A, C, D, A] i wyjście [B, C, D], po usunięciu wszystkich elementy, dla których stosuje się filtr, oczywiście.
Mam problem z podstawową strukturą funkcji, więc jeśli ktoś mógłby podać podstawowy zarys funkcji takiej jak ta, byłby bardzo pomocny. Uprościliśmy moją sytuację tak bardzo, jak to tylko możliwe, aby móc wziąć wszystko, co tylko możesz, i zmodyfikować ją dla moich potrzeb.
Z góry dziękuję!
Pitty Naish proponuje zastosowanie/3 w swoich wnioskach, ale domyślam się, że obecnie należy użyć call/n. apply/3 to po prostu wywołanie/3. –
Zobacz dyskusję, dlaczego Naish Reference jest kwestionowany: http://www.complang.tuwien.ac.at/ulrich/Prolog-inedit/naish.html –