prolog - 为和运算符谓词给出的结果(Prolog)
问题描述
有人被占用,它是由某人是否从事两份工作来定义的。
鉴于以下描述
employe(tom,shopify).
employe(eva,shopify).
employe(eva,ibm).
employe(sam,cisco).
employe(sam,bridehead).
我想修改以下谓词以返回从事两份工作的人。
occupe(X):- employe(X,C1), employe(X,C2).
我不明白为什么当汤姆只从事一份工作时,他会给出一个可能的答案(即我不明白 and 运算符如何,
确保员工从事两份独立的工作)。
此外,我已经尝试!
在开始时添加,但它没有奏效。
解决方案
之所以有效,是因为C1
并且C2
本身并不不同。因此,它统一了C1
和。C2
shopify
为了确定从事两种不同工作的人员,您应该指定C1
并且C2
应该不同:
occupe(X):- employe(X,C1), employe(X,C2), C1 \= C2.
推荐阅读
- android - Android App(IONIC)上的“QuotaExceededError” - 当我尝试将值存储在本地存储(离子存储)中时
- jquery - 如何在 div 中添加两个现有元素?
- powershell - 将 Selected.System.String 转换为 System.String
- ruby - Ruby 如何显示正则表达式(在日志和屏幕中)
- remote-access - 为我的研究小组设置这种工作环境的最佳方式是什么?
- docker - 是否可以通过 Http 使用 Http 连接 Docker 容器
- emacs - 在 ELisp 中打印缺少读取语法的类型的对象
- javascript - React 将 this 绑定到类方法
- node.js - 使用带有 Universal Angular 5 的 Node.js 运行 Express Server 时出错
- scala - Foreach 循环遍历列表 Scala?