1

我是 prolog 的新手,直到现在我能够读取文件的所有单词,一个一个地显示它们,现在我想将它们存储在一个列表中(一个一个地,当我显示它们时)。随处给出的所有追加逻辑,将两个列表的内容追加到一个空列表中。例如 append(new_word,word_list,word_List),最初我的 word_list 是空的,所以一切都很好,但之后它说不,然后停止。需要帮助才能将元素一一存储在列表中。

4

1 回答 1

1

您可以使用差异列表:

file_to_list(W, L) :-
   read_word(Word),
   append_dl(W, [Word|U]-U, Ws),
   !, file_to_list(Ws, L).

file_to_list_1(Ws, Ws).


append_dl(X-Y, Y-Z, X-Z).

您调用file_to_list(UU, L-[])来获取单词列表。没有减速,但比 CapelliC 的代码(每个单词一个)需要更多的推论。

于 2012-11-19T19:36:25.043 回答