Как построить компоненты из строительных материалов - PullRequest
0 голосов
/ 20 января 2019

У меня есть следующие предикаты, которые моделируют ПК. Что я хочу, так это распечатать все компьютерные и субкомпоненты.

Я хочу сделать что-то подобное

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]).

1 Ответ

0 голосов
/ 20 января 2019

Одним из способов описания компьютерных компонентов и подкомпонентов является использование грамматик для определенных выражений (DCG). Например:

computer --> monitor, cpu, keyboard, mouse.
...

power --> usb, voltageregulator.

usb --> container, usbhead, pins.

voltageregulator --> barreljack, capacitor, regulator, leds.

Компоненты без подкомпонентов могут быть определены как:

capacitor --> [capacitor].
leds --> [leds].

Чтобы составить список всех частей (например, для печати), вы можете просто использовать стандартный предикат phrase/2 де-факто. Например:

| ?- phrase(computer, Parts).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...