我是序言的新手,直到现在我能够读取文件的所有单词,逐一显示它们,现在我想将它们存储在一个列表中(一个一个地,就在我展示他们时)。所有无处不在的追加逻辑,将两个列表的内容添加到空列表中。例如 append(new_word,word_list,word_List),我的word_list是空的,所以一切正常,但之后它说不,并停止在那一点。 需要帮助才能够将元素逐个存储在列表中。读取并存储序言中的所有文件的文字
1
A
回答
0
假设您有一个谓词read_word(W)
可以获取W并在失效时失败。 然后这一定义
file_to_list_rev([W|Ws]) :-
read_word(W),
!, file_to_list_rev(Ws).
file_to_list_rev([]).
查询file_to_list_rev(R),reverse(R, L)
,将存储在R全字(以相反的顺序),和L中的有序列表。
编辑我仍然必须睡觉......这些代码不到风度建立一个反向列表...请考虑
file_to_list([W|Ws]) :-
read_word(W),
!, file_to_list(Ws).
file_to_list([]).
,并在年底完全放弃反向/ 2。
编辑完成
注意,每个字追加到列表的末尾会导致大放缓,转向了“线性尺寸”问题变成了“二次”之一。
file_to_list(L) :-
file_to_list([], L).
file_to_list(SoFar, L) :-
read_word(W),
append(SoFar, [W], Temp),
!, file_to_list(Temp, L).
file_to_list(L, L).
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的代码(每字一个)需要更多的推论。
相关问题
- 1. 读取文件并存储到ArrayList中
- 2. 使阵列读取文件并存储所有数据
- 3. 读取文件并存储到数组
- 4. 如何读取文件并存储它?
- 5. 读取文件在序言
- 6. 保存并读取独立存储中的文件
- 7. 读取文件并将内容存储到字典中 - Python
- 8. 文件读取和存储数字
- 9. vb.net从文件夹中读取所有文件的顺序
- 10. 要按顺序读取文件夹中的所有文件
- 11. 从文件中读取并存储在char数组中具有读取功能
- 12. 读取.txt文件中的整数并存储在arraylist中
- 13. 从文件中读取并存储在不同的数组中
- 14. Java读取文本文件2列并存储在数组中
- 15. 从文件中读取并存储到文本框
- 16. 读取外部文本文件并存储到数组中
- 17. 逐行读取文本文件并存储在类中?
- 18. 将int值存储到文本文件中并读取它?
- 19. 如何将字典存储在文件中并读取/写入该文件?
- 20. 从文件夹中读取所有文件并编辑
- 21. 从文本文件中读取字符并存储在二维数组中
- 22. 从文件中读取一行文本并将其存储到字符串中
- 23. 获取所有子文件夹和文件的存储过程
- 24. Java存储文件中的布尔数组并快速读取
- 25. 如何从文件中读取数据并清理并存储到文件中
- 26. 使用连字符( - )读取文件名并分解,并存储在零件中
- 27. 上下文中,存储内部存储器,并从中读取
- 28. 将读取的字符串存储到Java中的文件
- 29. 有没有办法读取.txt文件并将每行存储到内存中?
- 30. 阅读文本文件中的r和存储所读条件的下一行
不,反向列表可以和我一起,非常感谢你的帮助。 – tosif24