Автор LuisFigo задал вопрос в разделе Другие языки и технологии
ПОМОГИТЕ! Пролог... и получил лучший ответ
Ответ от Миоко Таканава[гуру]
Этот же предикат объединяет список в строку. Формат предиката: frontchar (String1,Char,String2) Его действие: String1 = объединение Char и String2 Для преобразования строки в список его аргументы связываются таким образом: ( i, o, o ). Для преобразования списка в строку - ( o, i, i ). Но так уж устроен Пролог, что результат выполнения предиката зависит от того, какие аргументы связаны со значениями. Пример использования: domains charlist = char* predicates string_chlist(string, charlist) clauses string_chlist("", [ ]) :- ! string_chlist(S, [ H | T ]) :- fronchar(S,H,S1), string_chlist(S1,T). Если задать цель goal string_chlist("ABC", Z) то результатом будет Z = [ \'A\', \'B\', \'C\' ] А если задать цель goal string_chlist( S, [ \'A\', \'B\', \'C\' ] ) то результатом будет S = "ABC" P.S. Пример из учебника.