gpt4 book ai didi

lambda - 在 Prolog 查询中隐藏变量

转载 作者:行者123 更新时间:2023-12-04 12:10:33 26 4
gpt4 key购买 nike

我正在使用 prolog 完成一项任务,其中涉及机场数据库(它有机场城市,以及包括机场税和持续时间的航类链接),第一个问题涉及查询。我们应该写一个 Prolog 查询来回答一个问题,我已经知道如何回答这个问题了,Prolog 输出的信息比我想要的要多。我写的查询是:

flight(X,_,Y,_,N), N > 180. 

基本上它所做的就是列出所有城市(X 是始发航类,Y 是目的地航类,N 是持续时间)。我想要 X 和 Y 但我不想要 N。我能想到的唯一方法是将此查询包装在规则中并让它显示 X 和 Y,但由于我们不应该编写规则,我我不知道如何解决这个问题。我真的不想要一个明确的答案,只是一个提示或其他东西。

最佳答案

在可能的情况下,我更喜欢使用表达式来压缩 IO

?- forall((flight(X,_,Y,_,N), N > 180),
writeln((x=X,y=Y))).

例如,使用不同的生成器
?- forall((member(X,"12"),member(Y,"ab")),writeln((x=X,y=Y))).
x=49,y=97
x=49,y=98
x=50,y=97
x=50,y=98
true.

当然,要正确缩进表格 format/2 会做得更好...

编辑
也许我误解了这个问题,假设你已经考虑过
query(X,Y) :-
flight(X,_,Y,_,N), N > 180.

关于lambda - 在 Prolog 查询中隐藏变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13554709/

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