prolog - 对更新知识库时如何使用 \= 感到困惑
问题描述
Swi-prolog 语法问题;我很困惑如何在更新知识库时使用 \= 。我正在写一个谓词,我想打印出除了 heyJude 之外 karen 可以演奏的所有歌曲。
canPerform(karen, Song) :-
song(Song =\= heyJude).
这是准确的吗?
解决方案
Prolog不是函数式编程语言。您可能想要:
canPerform(karen, Song) :- song(Song), Song \== heyJude.
此外,Prolog 编码风格指南通常规定 CamelCase 仅用于变量。因此,我建议您将原子重命名为:
can_perform(karen, Song) :- song(Song), Song \== hey_jude.
推荐阅读
- visual-studio - CMake项目使用外部SDK工具链文件交叉编译错误
- r - R 在 do.call(rbind) 上设置列名
- c# - C# 我的应用程序在任务管理器中启动但未显示在桌面中
- javascript - ngDestroy 生命周期未在动态创建的 Angular 组件中触发
- swift - 你可以在没有 segue 的情况下更改视图控制器吗?
- ios - 如何在单个tableview中传递多个数据
- laravel - Laravel 在控制器中从另一个类重定向
- angular - 单击时禁用按钮以角度传递 id
- java - 使用 JUnit 测试 println 输出
- reactjs - 设置已创建但未安装的 React 组件的状态