具有arg/3谓词的stadard Prolog方式(可能是有限的,不可变的)数组是谓词:
11 ?- length(X,4), A =.. [g|X], arg(1,A,a).
X = [a, _G590, _G593, _G596]
A = g(a, _G590, _G593, _G596)
Yes
12 ?- length(X,4), A =.. [g|X], arg(1,A,a), arg(3,A,c), arg(2,A,b), arg(1,A,d).
No
13 ?- length(X,4), A =.. [g|X], arg(1,A,a), arg(3,A,c), arg(2,A,b), arg(4,A,d).
X = [a, b, c, d]
A = g(a, b, c, d)
Yes
Run Code Online (Sandbox Code Playgroud)
Bratko("Prolog编程用于人工智能")具有使用此功能解决经典8皇后问题的代码.
在Prolog中模拟数组的另一种方法是将列表编码为二叉树,以便O(log(n))访问时间.
| 归档时间: |
|
| 查看次数: |
14546 次 |
| 最近记录: |