>>42
% Prolog

出会うまでリストを手繰る(_求めるもの,[_求めるもの|R]) :-
    write_formatted('!%t!\n',[_求めるもの]).
出会うまでリストを手繰る(_求めるもの,[A|R]) :-
    list(A),
    write_formatted('%t-',[A]),
    出会うまでリストを手繰る(_求めるもの,A);
    \+(list(A)),
    write_formatted('%t-',[A]),
    出会うまでリストを手繰る(_求めるもの,R).