Prolog 如何从构建材质构造构件
我有以下为PC建模的谓词。我想要的是打印所有PC组件和子组件 我想做这样的事情Prolog 如何从构建材质构造构件,prolog,Prolog,我有以下为PC建模的谓词。我想要的是打印所有PC组件和子组件 我想做这样的事情 find_set_of_attributes(X):- print(X) print(X[power) print(X[power][usb]) pc([power). power([usb, voltageregulator]). usb([container, usbhead, pins]). voltageregulator([barreljack, capacitor, regulator, leds
find_set_of_attributes(X):-
print(X)
print(X[power)
print(X[power][usb])
pc([power).
power([usb, voltageregulator]).
usb([container, usbhead, pins]).
voltageregulator([barreljack, capacitor, regulator, leds]).
描述计算机组件和子组件的一种方法是使用确定子句语法(DCG)。例如:
computer --> monitor, cpu, keyboard, mouse.
...
power --> usb, voltageregulator.
usb --> container, usbhead, pins.
voltageregulator --> barreljack, capacitor, regulator, leds.
| ?- phrase(computer, Parts).
没有子组件的组件可以定义为:
capacitor --> [capacitor].
leds --> [leds].
要列出所有部分(例如用于打印),只需使用事实上的标准短语/2
谓词即可。例如:
computer --> monitor, cpu, keyboard, mouse.
...
power --> usb, voltageregulator.
usb --> container, usbhead, pins.
voltageregulator --> barreljack, capacitor, regulator, leds.
| ?- phrase(computer, Parts).
DCG的有趣用法。从来没见过他们用过。@GuyCoder你在Amzi里有一个例子!Prolog文档。我有一个Logtalk版本的例子,可以在感兴趣的网站上找到:Amzi