list - 序言。我不能混合两个列表
问题描述
我想将两个列表合二为一。例如,[1,3,5]
并且[2,3,9]
会产生[1,2,3,5,9]
。
我试过这个:
mezclar( L1, L2, L3 ):-
L1 = [Cab|Cola] ,
L3 = [Cab,Cola2] ,
mezclar(L2,Cola,Cola2) .
mezclar( L1, L2, L3 ):-
L1=[] ,
L3=L2 .
但我有两个问题。
- 第一个问题是重复的数字
- 第二个是我将列表放入列表中,我不想这样做。
如果我执行
mezclar( [1,3,5], [2,5,9], X ).
我明白了
X = [1, [2, [3, [5, [5|...]]]]]
解决方案
要将两个列表合二为一,结果列表已排序且没有重复,请尝试:
mezclar(L1,L2,L3) :- append(L1,L2,L4), sort(L4,L3).
查询:
mezclar([1,3,5], [2,5,9], X).
将产生结果:
X = [1, 2, 3, 5, 9]
此示例使用sort/2
. 以下是 SWI 文档的链接sort/2
:
推荐阅读
- excel - SmartView 连接
- xamarin.forms - 如何在我的应用程序中打开一个网站以便 Google Play 接受它?
- django - request() 得到了一个意外的关键字参数“客户”
- sql - 将 SQLView 结果中的列转换为日期并按用户指定的日期过滤
- c# - 与 adfs dotnet core 共享 cookie
- python - 如何在python中更改特定的字符串顺序
- r - 在 Twitter 句柄向量上循环 search_tweets 函数(rtweet 包)时出现 R 身份验证错误
- jquery - 如何在 AJAX 中为 POST 请求制定数据对象
- tensorflow - 如何在 Google Cloud ML 上定期训练和部署新的机器学习模型?如何自动化这个过程?
- django - Django:预取和分页相关对象