скажите, если мне нужно создать функцию в прологе: DoSomething (L). как я могу превратить это во что-то, что делает то же самое, что и: dosomething ([H | T]), где L = [H | T], чтобы я мог разделить список?
Вы можете объединить L с [H|T]:
L
[H|T]
dosomething(L) :- L = [H|T], ...
, что совпадает с:
dosomething([H|T]) :- ...
Только если L равен [] (или не является списком), он не может объединиться с [H|T]:
[]
?- [H|T] = []. false.