:- use_module(library(list_util)). no(_) :- fail. yes(_) :- true. even(X) :- 0 is X mod 2. :- use_module(library(tap)). never :- drop_while(no, [a,b,c], List), List == [a,b,c]. always :- drop_while(yes, [john,sue,alice], List), List == []. evens :- drop_while(even, [2,4,6,9,12], List), List == [9,12].