我有兩個列表,例如,L1 = [yellow, green, _, blue]
和L2 = [green, yellow, blue, red]
,我需要創造一個在L1
的anonnymous變量(_
),是由缺少字L2
取代第三列表,在完全相同的地方...像這樣,L3 = [yellow, green, red, blue]
。序言 - 列表和匿名變量
-1
A
回答
0
我懷疑這是家庭作業,因爲它沒有任何意義。 _
代表Prolog中的一個變量,但是你不能用你描述的那些東西來做。請注意,不可能想出合理的問題的合理表述。
你可以做的一件事達到相同效果的一件事是從一個列表中統一事物與另一個列表中的事物。該斷言會做的工作:
match_up([], []).
match_up(L1, L2) :-
select(X, L1, L1_Remaining),
select(X, L2, L2_Remaining),
match_up(L1_Remaining, L2_Remaining).
此斷言基本上說,發現L1的元素,發現L2的相應元素,並嘗試遞歸處理剩餘物。但是,要使用它來解決您的問題,您只需嘗試一下,看看變量是否在過程中收到綁定。它發生,它的作用:
main :-
L1 = [yellow, green, _, blue],
L2 = [green, yellow, blue, red],
match_up(L2, L1),
write(L1).
如果你運行它,你會得到所需的輸出:
?- main.
[yellow,green,red,blue]
你也得到了一組更一致的解決方案(?〜24),由於事實因爲在這個特定的配對中沒有含糊不清的東西,所以它們只是相同的,但是你可以想象其他配對在哪裏會出現歧義。
這不是使用Prolog的好方法。如果你需要參考變量,給他們的名字。這個問題有些不合格。我對代碼有一種「」「的感覺。但它是,我希望它可以幫助你。
相關問題
- 1. 匿名變量 - 序言
- 2. 比較序言匿名變量
- 3. 匿名類變量
- 4. 序言列表中的尾隨變量
- 5. 序言追加變量列表
- 6. 匿名變量(?)的優點?
- 7. 序列化匿名代表名單
- 8. 關於變參數和匿名陣列
- 9. 序言事實和變量
- 10. Erlang中的匿名變量
- 11. 總和泛型列表的列匿名
- 12. 匿名列表DropDownListFor
- 13. iPhone操作系統:從匿名對象獲取方法和變量的列表
- 14. 語法排序匿名列表
- 15. 名稱/變量輸入和列表
- 16. 匿名方法,範圍和序列化
- 17. 序言:包含匿名變量的條款中的冗餘結果
- 18. 序言:規則,無非是匿名變量的頭部,並沒有身體
- 19. 守衛和匿名函數列表
- 20. 變量表或者列名
- 21. 序列化匿名函數
- 22. XML序列化匿名類
- 23. 匿名變量,通過引用傳遞,初始值設定項列表
- 24. 序言列表和遞歸
- 25. 序言和列表問題
- 26. C#匿名元組列表
- 27. 匿名類型列表?
- 28. 列表與匿名類型
- 29. 「匿名」Youtube播放列表
- 30. 匿名類型列表
這是功課嗎?你有嘗試過什麼嗎? –