0
A
回答
1
假設下面的樹,孩子們在紅色
一個簡單的解決辦法,然後是:
male(lennart).
male(mike).
male(donald).
male(usain).
male(joar).
male(adam).
male(dan).
male(simon).
female(hillary).
female(elise).
female(lisa).
female(lena).
parent(mike, lennart).
parent(mike, lena).
parent(lennart, donald).
parent(lennart, hillary).
parent(lennart, usain).
parent(lena, adam).
parent(lena, simon).
parent(adam, dan).
parent(donald, lisa).
parent(hillary, joar).
parent(hillary, elise).
child(lisa).
child(joar).
child(elise).
child(dan).
child(simon).
%% predicate rules
father(X,Y) :- male(X),parent(X,Y).
mother(X,Y) :- female(X),parent(X,Y).
son(X,Y) :- male(X),parent(Y,X).
daughter(X,Y) :- female(X),parent(Y,X).
family_children(X, X):-
child(X).
family_children(X, Child):-
parent(X,Y),
family_children(Y, Child).
試運行:
[debug] ?- family_children(mike, Child).
Child = lisa ;
Child = joar ;
Child = elise ;
Child = dan ;
Child = simon ;
false.
這是它如何做只是一個簡單的例子,例子依賴的假設,即孩子不能要一個孩子,但是這可能的解決方案可以很容易地提高,你可以像cousin/2
,grandfather/2
,sister/2
添加規則,uncle/2
等...
希望你現在有一些想法,祝你好運。
相關問題
- 1. Excel家長兒童
- 2. 如何從兒童活動中返回家庭活動?
- 3. 家庭樹佈局點/ GraphViz
- 4. 家長背景兒童的
- 5. Android家長和兒童ActivityOrientation
- 6. Prolog家庭關係,意外的失敗
- 7. 兒童內部角兒童
- 8. 解析兒童Simplexml兒童
- 9. 序言 - 遞歸下來的家庭樹
- 10. 獲取孩子類的家庭樹
- 11. 簡化jQuery的家長和兒童
- 12. 合併工具條MDI兒童 - 家長
- 13. 過濾兒童由家長使用XPath
- 14. 添加vue.js組件從兒童到家
- 15. 任務壽命兒童vs家長
- 16. 恢復所有兒童家長[]
- 17. 更新家長模型更新兒童
- 18. 家長圓角與兒童重疊
- 19. 兒童家長VS Z-指數問題
- 20. AS2家長 - 兒童swf通訊
- 21. KendoUI ObservableArray兒童被KendoUI樹形視圖
- 22. 創建JSON樹結構,兒童
- 23. JUNG在樹中指定左右兒童
- 24. GraphViz二叉樹左右兒童
- 25. 解析樹結果/得到兒童
- 26. JSF更新的primefaces樹兒童
- 27. 在Magento從兒童類生成樹
- 28. 樹面板ExtNet不加載兒童
- 29. 雖然四叉樹兒童迭代
- 30. 獲取兒童活動子樹
我很確定這是我在學習Prolog的第一課時的一個例子。你嘗試過什麼嗎? – kay