читать строку в атомном списке в прологе

Мне нужно прочитать любую строку (из user_input) в атомарный список, например:

Example line, which contains any ASCII chars.

в:

[Example,'line,',which,contains,any,ASCII,'chars.']

что у меня так далеко:

read_line_to_codes(user_input, Input),
atom_codes(IA,Input),
atomic_list_concat(AlistI,' ',IA).

но это работает только с отдельными словами из-за atom_codes. read / 2 также жалуется на пробелы, так есть ли способ сделать это?

о, и, возможно, затем разделить запятую на 2d-списки, добавив точку / восклицательный знак / вопросительный знак, например:

[[Example,line],[which,contains,any,ASCII,chars],'.']

кстати: это SWI-пролог.

РЕДАКТИРОВАТЬ: нашел решение:

read_line_to_codes(user_input, Input),
string_to_atom(Input,IA),
atomic_list_concat(AlistI,' ',IA),

не могу ответить на свой вопрос, потому что у меня нет 100 репутации: - /

Ответы на вопрос(1)

Ваш ответ на вопрос