我对prolog很陌生,我有一些基本问题......
我不知道“词汇”是否是正确的英语世界,但我需要创建一个来描述电子电路。
我的问题是,我如何创建这些函数以及如何使用“=”语句,因为 prolog 似乎不接受它?
我正在使用 SWI Prolog。
这就是我必须放入序言的内容:
确定词汇表(谓词、函数、常量):
端口由常量(X1,X2,...)表示——</p>
闸门(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
我不知道如何从这里继续。我试图实现这些功能的所有方法似乎都是错误的(无法咨询)。