If statement 如何在Prolog中编写IF-ELSE条件
我是一个C#guy,对prolog非常陌生。我需要为下面的场景编写一个prolog程序。请任何人帮助实现这一目标 两个人共用一个抽屉。柜子有4个抽屉,抽屉1和2属于人1,抽屉3和4属于人2 他们把手机、钱包和书放在抽屉里。第二个人把手机丢在抽屉里了。他在属于他的第三和第四抽屉登记,但找不到他的电话。然后他检查了1号和2号抽屉,在2号抽屉里找到了它。我需要为这个场景编写prolog代码If statement 如何在Prolog中编写IF-ELSE条件,if-statement,prolog,If Statement,Prolog,我是一个C#guy,对prolog非常陌生。我需要为下面的场景编写一个prolog程序。请任何人帮助实现这一目标 两个人共用一个抽屉。柜子有4个抽屉,抽屉1和2属于人1,抽屉3和4属于人2 他们把手机、钱包和书放在抽屉里。第二个人把手机丢在抽屉里了。他在属于他的第三和第四抽屉登记,但找不到他的电话。然后他检查了1号和2号抽屉,在2号抽屉里找到了它。我需要为这个场景编写prolog代码 person(person1). person(person2). drawers(drawer1). dra
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.
希望根据上述查询的结果运行条件(真/假)
请建议我改进代码。语法如下
( 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
)
查看如何在Prolog.replicate of中编写if-then-else?如果希望获得有关工作代码的反馈,请尝试在上发布问题。查看如果手机在抽屉4中,为什么要声明找不到它?看来你的逻辑需要先更新一下。
( phone_in(drawer2) =:= true ->
write('phone found in your search area'),
fail
; phone_in(drawer2) =\= false ->
; write('phone not found!'),nl
)