Prolog相等判断任务求解:请验证我的结论是否正确
Prolog相等判断验证结果
逐个分析你给出的5个相等判断式:
pilots(A,london) = pilots(london, paris):Prolog匹配要求对应位置的项统一。第一个参数是变量A,第二个是原子london;右边对应位置是原子london和paris,无法找到变量绑定让两边一致,返回no。point(X,Y,Z) = point(X1,Y1,Z1):两边函子都是point且参数数量相同,变量名不影响匹配,可成功绑定X=X1、Y=Y1、Z=Z1,返回yes,你之前判断为no是错误的。letter(C) = word(letter):左边函子是letter,右边是word,函子名称不同,无法匹配,返回no。noun(alpha) = alpha:左边是带参数的复合项,右边是单个原子项,结构完全不同,返回no。'vicar' = vicar:Prolog中,单引号包裹的原子与同名无引号原子是等价的,返回yes。
你提到的“Z=b、X=Z=b”没有对应依据,从给出的判断式中无法推导出该变量绑定结论。
总结:你的结论里,第1、3、4、5个判断结果正确,但第2个判断结论错误,额外的变量绑定内容不成立。
内容的提问来源于stack exchange,提问作者Eva
相关产品推荐
相关产品推荐

