Я хочу использовать atom_chars/2
по выражению 3+4
, но получаю
ERROR: atom_chars/2: Type error: 'atom' expected, found '3+4' (a compound)
.конвертировать соединение в атом в прологе
Я думаю, что если я могу добавить " "
по обе стороны от соединения, он будет работать, например.
atom_chars("3+4", Result).
но я не знаю, как я могу это сделать, или есть ли другие подходы к этому? Пожалуйста, дайте мне несколько советов.
EDIT: То, что я имею в виду, что вход должен быть 3+4
, вместо '3+4'
, так что я хочу сделать, это написать предикат перед atom_chars/2 для преобразования 3+4
в '3+4'
.
Например: для compound2atom(X,Y)
,
-?compound2atom(3+4,Y).
Y='3+4'.
SWI Prolog имеет 'term_string/2', поэтому' term_string (Term, '3 + 4') 'даст' X = 3 + 4'. – lurker