我有两个列表,例如,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. 匿名类型列表
这是功课吗?你有尝试过什么吗? –