У меня есть сотрудники:
employee(2,2,'George','Johnson','12/16/1987').
employee(4,3,'Noah','Jones','6/9/1984').
employee(5,4,'Jack','Brown','2/16/1992').
employee(6,6,'Charlie','Davis','3/28/1997').
employee(7,1,'Leo','Miller','6/6/1997').
employee(8,6,'Jacob','Wilson','2/16/1997').
Я хочу распечатать их все. Я сейчас делаю так:
run :- findall(Id, employee(Id, _, _, _, _), L), writeEmployees(L).
writeEmployees([]) :- !.
writeEmployees([Id|T]) :- employee(Id, PosId, FN, LN, Birth),
writeq(employee(Id, PosId, FN, LN, Birth)), nl, writeEmployees(T).
И это работает, но это не выглядит нормально, я имею в виду, что слишком много «_», и мне нужно написать строку «Id, PosId, FN, LN, Birth». Как найти сотрудника непосредственно в findall()?