gpt4 book ai didi

list - Prolog list - 打印元素前后的列表

转载 作者:行者123 更新时间:2023-12-01 12:30:29 25 4
gpt4 key购买 nike

首先,我是一个完全的 Prolog 新手,对于一个愚蠢的问题,我深表歉意!

我需要编写一个规则来分解月份列表并打印可能之前和可能之后的月份。

到目前为止,我写了以下内容:

append_lists([], L, L).
append_lists([H|L1], [L2], [H|L3]) :-
append_lists(L1, L2, L3).

如果我手动查询以下内容,效果很好:

| ?- append_lists(Before, [may|After], [jan, feb, july, may, dec, oct, nov]).
Before = [jan,feb,july],
After = [dec,oct,nov] ? ;
no

我现在如何重写我的规则,以便 [may|After] 代替规则中的 L1 并且它可以接受任何月份?我尝试了以下但没有用:

append_lists([], L, L).
append_lists([Month|Before], After, [Month|Result]) :-
append_lists(Before, After, Result).

最佳答案

您可以使用 append/3这样做。

after_and_before(Month, ListOfMonths, Before, After):-
append(Before, [Month|After], ListOfMonths).

测试用例:

?- after_and_before(may, [jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec], Before, After).
Before = [jan, feb, mar, apr],
After = [jun, jul, aug, sep, oct, nov, dec]

关于list - Prolog list - 打印元素前后的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34531999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com