首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Prolog列表,检查列表中添加的内容。

Prolog列表,检查列表中添加的内容。
EN

Stack Overflow用户
提问于 2016-04-27 16:33:55
回答 1查看 53关注 0票数 0

我已经创建了一个谓词,它将检查列表中的所有项是否满足条件。

在本例中,谓词检查所有元素是否为两个Check_Multiples/1的倍数,这很好。

如何检查哪些项可以添加到列表的开头或结尾,并仍然满足谓词的要求?

我正试着把退货单列出来。

例如:

代码语言:javascript
运行
复制
[2,4,6]

应该返回[8]作为(因为谓词不允许0)

代码语言:javascript
运行
复制
[6,8,10]

应该返回[4,12]

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-27 20:44:01

下面的代码应该可以做到这一点,因为Check_Multiples检查列表中的每个元素是否是两个元素的升序倍数。我猜这是一个条件,否则如果允许4,6,4,4,8这样的列表,你只需检查每个元素模数2是否等于0。

代码语言:javascript
运行
复制
additionsToList([H|T], ResultList) :-
    Check_Multiples([H|T]),
    firstElement(H, First),
    lastElement(T, Last),
    append([First],[Last], Z),
    flatten(Z, ResultList).

firstElement(2, []).
firstElement(First, X) :-
    X is First-2.

lastElement([H|[]], X) :-
    X is H+2.
lastElement([_|T], X) :-
    lastElement(T, X).
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36895753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档