Prolog 表达式后需要运算符
我有这些事实Prolog 表达式后需要运算符,prolog,Prolog,我有这些事实 relationship(nikos,anna,husband). type_of_service(nikos,hospital). insurance_cover(nikos,partial). type_of_insurance(nikos,family). refund_request(nikos,5000). 我写了下面的文章 refund(Insured , insuranceCover, hospital, requestedRe
relationship(nikos,anna,husband).
type_of_service(nikos,hospital).
insurance_cover(nikos,partial).
type_of_insurance(nikos,family).
refund_request(nikos,5000).
我写了下面的文章
refund(Insured , insuranceCover, hospital, requestedRefund, Poso):-
hospital_refund(Insured, insuranceCover, requestedRefund, Poso).
hospital_refund(Insured, partial, requestedRefund, Poso):-
requestedRefund <= 5000,Poso = requestedRefund. %% <--- Error
hospital_refund(Insured, full, requestedRefund, Poso):-
Poso = requestedRefund.
apozemiose(Insured, Poso):-
refund(Insured, insurance_cover(Insured ,X),
type_of_service(Insured),
refund_request(Insured , X)
).
退款(投保人、保险范围、医院、申请退款、Poso):-
医院退款(被保险人、保险范围、请求退款、Poso)。
医院退款(投保、部分、申请退款、Poso):-
requestedRefund您没有使用您没有使用语法错误除了,您还需要更改最后一个子句
apozemiose(Insured, Poso):-
insurance_cover(Insured, I),
type_of_service(Insured, T),
refund_request(Insured, R),
refund(Insured, I,T,R, Poso).
这里的编辑是一组更正,主要介绍使用原子的变量,即文字常量
refund(Insured, InsuranceCover, hospital, RequestedRefund, Poso):-
hospital_refund(Insured, InsuranceCover, RequestedRefund, Poso).
hospital_refund(_Insured, partial, RequestedRefund, Poso):-
RequestedRefund =< 5000, Poso = RequestedRefund.
hospital_refund(_Insured, full, RequestedRefund, Poso):-
Poso = RequestedRefund.
HTH除了语法错误之外,您还需要更改最后一个子句
apozemiose(Insured, Poso):-
insurance_cover(Insured, I),
type_of_service(Insured, T),
refund_request(Insured, R),
refund(Insured, I,T,R, Poso).
这里的编辑是一组更正,主要介绍使用原子的变量,即文字常量
refund(Insured, InsuranceCover, hospital, RequestedRefund, Poso):-
hospital_refund(Insured, InsuranceCover, RequestedRefund, Poso).
hospital_refund(_Insured, partial, RequestedRefund, Poso):-
RequestedRefund =< 5000, Poso = RequestedRefund.
hospital_refund(_Insured, full, RequestedRefund, Poso):-
Poso = RequestedRefund.
HTH您是否检查了Prolog手册中可接受的不等式谓词?:)您是否检查了Prolog手册中可接受的不等式谓词?:)修正的Thx。但是,为什么我在问“apozemiose(nikos,Poso)
”的时候会得到no
作为答案呢?是不是应该是5000
?好吧,愚蠢的问题,我必须把大写字母作为变量的第一个字母吗?Thx表示更正。但是,为什么我在问“apozemiose(nikos,Poso)
”的时候会得到no
作为答案呢?是不是应该是5000
?好吧,愚蠢的问题,我必须把大写字母作为变量的第一个字母吗?
?- apozemiose(nikos, Poso).
Poso = 5000 ;
false.