标签: swi-prolog

OS X 的 SWI-Prolog 编辑器

我正在寻找适用于 Mac OS X 的 SWI-Prolog 编辑器,但我找不到,那么有没有或者我必须使用另一个编辑器来构建 Prolog 文件?

谢谢

macos prolog swi-prolog

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

如何不显示是否多次出现相同的结果 - Prolog

设想

我有如下代码。我的问题是如何不多次显示相同的结果。

male(charles).
male(andrew).
male(edward).

female(ann).

age(charles, 70).
age(ann, 65).
age(andrew, 60).
age(edward, 55). 

nextking(X) :- age(X,P), age(Y,Q),
               P>=Q, X\==Y;  age(X,55).
Run Code Online (Sandbox Code Playgroud)

电流输出

在此处输入图片说明

我需要的

我需要输出是查尔斯、安、安德鲁、爱德华。没有重复的名字。

prolog swi-prolog

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

SWI Prolog从命令行解释/编译

我正在使用Windows,我想用cmd解释/编译prolog文件,是否有任何方法可以做到这一点?目的是为解释器/编译器prolog创建一个shell到一个文件,如:

gplc -output C:\ a.output -input C:\ a.pl

并在输出文件中作为我的目标的答案.我已经阅读了swi-prolog.com的一些文档,但我没有找到.

我曾尝试使用GNU Prolog(并且它为gcc引发了一个错误)

我有这个文件D:\ a.pl mouther(john).吉吉(OK).

? - jiji(好的).

在CMD中我运行swipl -s D:\ a.pl -o D:\ a2.txt

我想在a2中找到我的目标的答案,但它不是/

compiler-construction shell prolog swi-prolog

0
推荐指数
1
解决办法
4405
查看次数

如何设计和加载我的Prolog源文件,以便我不必手动use_module?

我有一个源文件openpage.pl,我在其中调用use_module/1来"导入"SWI-Prolog的http_open/3:

use_module(library(http/http_open)).

request(URL, In) :- http_open(URL, In, []),
    copy_stream_data(In, user_output),
    close(In).
Run Code Online (Sandbox Code Playgroud)

加载没有抱怨.但是,尽我所能,我不能在其中运行规则.

?- [openpage].
% openpage compiled 0.00 sec, 1,828 bytes
true.

?- request('http://www.google.com', In).
ERROR: request/2: Undefined procedure: http_open/3
?- use_module(library(http/http_open)).
true.

?- request('http://www.google.com', In).
ERROR: request/2: Undefined procedure: http_open/3
?- make.
% Scanning references for 1 possibly undefined predicates
Warning: The predicates below are not defined. If these are defined
Warning: at runtime using assert/1, use :- dynamic Name/Arity.
Warning: 
Warning: http_open/3, which is referenced by
Warning:    status/2 …
Run Code Online (Sandbox Code Playgroud)

prolog swi-prolog

0
推荐指数
1
解决办法
834
查看次数

如何在sublime上使用swipl构建

我正在尝试在崇高文本3上编译prolog的代码,但我总是得到

[Errno 2] No such file or directory: 'swipl'
[cmd: ['swipl', '-f', '', '-t', 'main', '--quiet']]
[dir: /Applications/Sublime Text.app/Contents/MacOS]
[path: /usr/bin:/bin:/usr/sbin:/sbin]
[Finished]
Run Code Online (Sandbox Code Playgroud)

因为我不知道如何在sublime上修改swipl的路径.一些帮助?

谢谢

prolog swi-prolog sublimetext sublimetext3 sublime-build

0
推荐指数
1
解决办法
6779
查看次数

将二进制谓词转换为十进制谓词

convertBinToDec(B,D):- atom_number(S,B),
                       atom_length(S,L),
                       sub_atom(S, 0, 1, After,S1),
                       atom_number(S1,N),
                       L1 is L-1,
                       sub_atom(S, 1,L1, After ,S2),
                       atom_number(S2,B2),
                       convertBinToDec(B2,D1),
                       D is D1+((2*N)**L1).
convertBinToDec(0,0).
convertBinToDec(1,1).
Run Code Online (Sandbox Code Playgroud)

谓词采用 B 是整数形式的二进制数,应该返回 D 其相应的十进制形式,对不起,我对声明式编程语言还是个新手,但我不知道为什么我上面的代码总是错误,我觉得有什么问题使用基本情况 也不允许使用 prolog 库

prolog swi-prolog prolog-lists

0
推荐指数
1
解决办法
119
查看次数

修改SWI-Prolg顶层

是否可以对SWI Prolog的顶层进行修改?

prolog swi-prolog prolog-toplevel

-1
推荐指数
1
解决办法
107
查看次数