如何在序言中进行递归?

时间:2018-12-04 14:56:27

标签: prolog

我正在创建一个递归函数,该函数将Mem中的列表返回给我。 完美循环所有内容,然后使用回溯序言返回空列表。 帮助。

Iniz([A1,A2|T], A1, Mem) :-
       append([],[], Mem),
       cicl([A2|T],A2, Mem).

cicl([],[], Mem) :- !.

cicl([A2],A2, Mem) :-
       string_chars(A2,A1_1),
       op(A1_1, Operation),!,
       append(Mem, [Operation], Lista),
       cicl([],[],Lista).

cicl([A1,A2|T],A1, Mem) :-
       string_chars(A1,A1_1),
       write("no operation"),
       nth0(0, A1_1, /),    
       nth0(1, A1_1, /),
       cicl([A2|T],A2, Mem).

cicl([A1,A2|T],A1, Mem) :-
      string_chars(A1,A1_1),
      nth0(0, A1_1, C), nth0(1, A1_1, C1),
      C \= /,
      C1 \= /,
      op(A1_1, Operation),!,
      append(Mem, [Operation], Lista),
      cicl([A2|T],A2, Lista).

0 个答案:

没有答案