相关疑难解决方法(0)

Prolog中'和'有什么区别?

我是Prolog的新手并注意到'和'给出了不同的行为,但我很好奇为什么.具体来说,加载文件时,?- ['test1.pl'].工作,而?- ["test1.pl"].不是.

prolog double-quotes dcg iso-prolog

41
推荐指数
2
解决办法
5536
查看次数

SWI-Prolog - 显示长名单

我正在使用SWI-Prolog并且我正在尝试打印列表,但如果列表中有超过9个项目 - 它看起来像那样 -

[1, 15, 8, 22, 5, 19, 12, 25, 3|...] 
Run Code Online (Sandbox Code Playgroud)

有没有办法显示整个列表?

prolog swi-prolog prolog-toplevel

20
推荐指数
2
解决办法
2万
查看次数

如何在不按空格键的情况下查看SWI-Prolog中的所有答案?

简单的例子:

?- between(1,10,X).
X = 1 ;
X = 2 ;
X = 3 ;
X = 4 ;
X = 5 ;
X = 6 ;
X = 7 ;
X = 8 ;
X = 9 ;
X = 10.
Run Code Online (Sandbox Code Playgroud)

当使用SWL-Prolog使用REPL查看下一个答案时,必须按下空格键.

如何在不按空格键的情况下将所有结果列在屏幕上?

如果这是一个重复的问题,请告诉我,我找不到一个.


细节

我知道第一个想法很多就是使用bagof/3,但实际目标是使用DCG 解析这个3 GB的文件(Uniprot - uniprot_sprot.dat.gz)(文件格式).现在我只想查看tokenizer/lexer是否可以在不停止的情况下完成整个文件.由于数据是一个平面文件数据库(面向行),每行可以独立处理,因此代码首先使用phrase_from_file/2拉出一行,然后根据短语/ 2将其传递给一个标记器,例如,对于一个简单的例子,请参阅Mat的回答如何将文件中的数据读入Prolog,有关更精确的解决方案,请参阅GitHub mzapotoczny/prolog-interpreter.后者将进行解析,然后使用该阶段的输出来加载Neo4j数据库.


处理大文件的注意事项:

最初文件的处理方式与此答案类似,并使用了 …

prolog swi-prolog prolog-toplevel

6
推荐指数
1
解决办法
484
查看次数