gpt4 book ai didi

if-statement - 如何在 Prolog 中编写 IF ELSE 条件

转载 作者:行者123 更新时间:2023-12-04 00:32:11 25 4
gpt4 key购买 nike

我是一个 C# 人,对 prolog 非常陌生。我需要为以下场景编写一个 prolog 程序。任何人都可以帮助实现它。

两个人共用一个抽屉。胸部有 4 个抽屉,抽屉 1 和 2 属于 Person1,抽屉 3 和 4 属于 Person2。

他们 Handlebars 机、钱包和书放在抽屉里。 Person2 在抽屉里丢了手机。他检查了属于他的抽屉 3 和 4,但找不到他的手机。然后他检查了抽屉 1 和 2,在抽屉 2 中找到了它。我需要为此场景编写 prolog 代码。

person(person1).
person(person2).

drawers(drawer1).
drawers(drawer2).
drawers(drawer3).
drawers(drawer4).

belongs_to(drawer1, person1).
belongs_to(drawer2, person1).
belongs_to(drawer3, person2).
belongs_to(drawer4, person2).

item(phone2).

phone_in(drawer).
phone_in(drawer2).

要运行的命令及其结果
?- phone_in(drawer4).
false.

?- phone_in(drawer3).
false.

?- phone_in(drawer1).
false.

?- phone_in(drawer2).
true.

我正在尝试编写如下条件。
?- phone_in(drawer2).
true.

想要根据上述查询的结果(真/假)运行条件。
if(false)
write("phone not found!");
else if(true)
write("please found in your search area");

请建议我改进我的代码。

最佳答案

语法是这样的

( condition -> then_clause ; else_clause )

可以这样写
( phone_in(drawer2) =:= true ->  
write('phone found in your search area'),
fail
; phone_in(drawer2) =\= false ->
; write('phone not found!'),nl
)

关于if-statement - 如何在 Prolog 中编写 IF ELSE 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27844141/

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