prolog - Prolog遍历列表并通过将列表中的所有奇数加倍来将奇数变为偶数
问题描述
toEven(L1, L2)
接受一个整数的输入列表并生成一个输出列表L2
,L1
通过将每个奇数加倍,所有奇数变为偶数。
我该怎么做呢?
解决方案
使用整数“位级”算术和库(yall):
?- [user].
|: toEven(L1, L2) :- maplist([N,M]>>(M is N<<(N mod 2)),L1,L2).
|:
% user://1 compiled 0.00 sec, 1 clauses
true.
?- toEven([1,2,3,4,5],L2).
L2 = [2, 2, 6, 4, 10].
推荐阅读
- linux - 如何让“lvs”和“lvcreate”都以GB为单位?
- linux - 根据第一列的第一个字符和长度拆分文件
- ios - 景深效果 – BokehPass 在 iOS (iPhone 7) 上无法正常工作
- java - 如何使用java poi在excel中的多个工作表中分离数据?
- php - laravel 属于带有数据透视表的用户没有获取数据
- c# - 使用 HtmlAgilityPack 解析网站不会返回在浏览器上看到的值
- email - 如果启用电子邮件转发,我将收不到任何电子邮件
- python - 找不到文件但目录中存在文件
- android - 在 Firebase 上的实时数据库中使用占用值对用户进行身份验证
- python - 使用python在文件中搜索字符串