2013-06-29 2 views

ответ

1

В SWI пролог:

expression(N) :- 
    atom_concat('t', N, TN), % Note: N must be instantiated in this case 
    write(TN), 
    N1 is N+1, 
    expression(N1). 

Интересно, что SWI доволен этим, даже если N представляет собой целое или атом (он будет относиться к N как атом в этом случае). GNU не нравится, если N является целым числом. Поэтому вам необходимо сначала преобразовать его:

expression(N) :- 
    number_atom(N, AtomN), % Note: N must be instantiated in this case 
    atom_concat('t', AtomN, TN), 
    write(TN), 
    N1 is N+1, 
    expression(N1).