【发布时间】:2014-02-08 04:45:04
【问题描述】:
我对 prolog 还很陌生,我有一些基本问题...
我不知道“词汇”在英语中是否合适,但我需要创建一个来描述电子电路。
我的问题是,我如何创建这些函数以及如何使用“=”语句,因为 prolog 似乎不接受它?
我正在使用 SWI Prolog。
这就是我必须放入序言的内容:
确定词汇表(谓词、函数、常量):
端口由常量(X1,X2,...)表示——
门(X1)
Type(X1) = Xor – 类型:AND、OR、XOR 或 NOT
电路(C1)
Terminals(x) – 返回 x 的输入和输出
In(1, X1) – 返回 X1 的第一个输入的函数
Out – 返回输出的函数
Arity(c, i, j) - 函数,电路 c 有 i 个输入和 j 个输出
Connected(Out(1, X1), In(1, X2)) - 连接了哪些端口
Signal(t) – 终端 t 的信号值。
这就是我到目前为止所尝试的。我不认为我对“=”的方法是正确的......
gate(x1).
gate(x2).
gate(a1).
gate(a2).
gate(o1).
type(x1, xor).
type(x2, xor).
type(a1, and).
type(a2, and).
type(o1, or).
circuit(c1).
我应该使用名为 Equal(X, Y) 的谓词吗?例如“equal (type(x1), xor)。
我应该如何实现这些?
Gate(X1) , Type(X1) = XOR
Gate(X2) , Type(X2) = XOR
Gate(A1) , Type(A1) = AND
Gate(A2) , Type(A2) = AND
Gate(O1) , Type(O1) = OR
我不知道如何从这里继续。我试图实现这些功能的所有方法似乎都是错误的(无法咨询)。
【问题讨论】: