首页 > 解决方案 > 对更新知识库时如何使用 \= 感到困惑

问题描述

Swi-prolog 语法问题;我很困惑如何在更新知识库时使用 \= 。我正在写一个谓词,我想打印出除了 heyJude 之外 karen 可以演奏的所有歌曲。

canPerform(karen, Song) :-
   song(Song =\= heyJude). 

这是准确的吗?

标签: prolog

解决方案


Prolog不是函数式编程语言。您可能想要:

canPerform(karen, Song) :- song(Song), Song \== heyJude.

此外,Prolog 编码风格指南通常规定 CamelCase 仅用于变量。因此,我建议您将原子重命名为:

can_perform(karen, Song) :- song(Song), Song \== hey_jude.

推荐阅读