小编921*_*iyo的帖子

如何在 SWI-Prolog 中使用列表构造函数 (./2)

我正在尝试在 SWI-Prolog 中使用列表构造函数,但收到“dict”预期错误。

例如,

.(a, []) == [a].

ERROR: Type error: `dict' expected, found `a' (an atom)
ERROR: In:
ERROR:   [11] throw(error(type_error(dict,a),_14808))
ERROR:   [10] '$type_error'(dict,a) at /Applications/SWI-Prolog.app/Contents/swipl/boot/init.pl:3369
ERROR:    [9] '$dicts':'.'(a,[],_14874) at /Applications/SWI-Prolog.app/Contents/swipl/boot/dicts.pl:46
ERROR:    [8] '<meta-call>'(user:(...,...)) <foreign>
ERROR:    [7] <user>
Exception: (9) '.'(a, [], _14200) ? 
Run Code Online (Sandbox Code Playgroud)

谁能帮我配置这个功能?

prolog swi-prolog

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

如何在SWI-Prolog中跟踪内置append/3?

我想跟踪SWI-Prolog中的内置append/3,但是我立刻得到了结果,看不到中间发生了什么.

有什么我需要做的事情来启用跟踪追踪?

 ?- trace .
true.

[trace]  ?- append([a,b,c], [[],[2,3], b], X).
X = [a, b, c, [], [2, 3], b].
Run Code Online (Sandbox Code Playgroud)

prolog swi-prolog

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

为什么[] = _.在Prolog中是真的吗?

我正在学习Prolog,并且不明白为什么?- [] = _.在SWI-Prolog中返回true. []是一个空列表,_意味着它不是空的,对吧?
有人可以解释上述逻辑吗?

prolog

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

在Prolog中的元组列表中按降序排序

我想基于列表的第二个值按降序对元组列表进行排序,而不使用内置的排序谓词.

示例:(Name, Age).

unsorted_list = [(mary, 20), (jack, 50), (bob, 16), (bill, 20) ].

sorted_list = [(jack, 50), (bill, 20), (mary, 20), (bob, 16)].
Run Code Online (Sandbox Code Playgroud)

有谁知道这样做的优雅方式?

sorting list prolog

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

标签 统计

prolog ×4

swi-prolog ×2

list ×1

sorting ×1