2

是否有可能在同一个参数中关联成本和变量?例如:

  expression(N):-
       write(t N),
       N1 is N+1,
       expression(N1).  

where t Nbecome t1, t2, t3... etc. 我该怎么做?

4

1 回答 1

2

在 SWI 序言中:

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

有趣的是,即使是整数或原子(在这种情况下N它将被视为原子),SWI 也对此感到满意。如果是整数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).
于 2013-06-29T18:19:10.207 回答