我在prolog中写了这个谓词:
list([]).
list([X|L]) :- list(L).
Run Code Online (Sandbox Code Playgroud)
它运作良好,但我得到了这个警告:
**Warning: /Users/hw6.pl:2:
Singleton variables: [X]** %
Run Code Online (Sandbox Code Playgroud)
我能做些什么来避免它?
gus*_*bro 16
该警告告诉您在谓词列表的该子句中只有一次使用的变量(在本例中为第二个子句).
为什么它会警告你呢?因为你经常拼错变量名称.拼错变量时产生的代码也是一个有效的prolog程序,所以如果没有警告你,调试会很痛苦.
如果您不打算使用该变量(X),则可以使用匿名变量.要使用匿名变量,您必须使用_作为术语而不是变量名.
在您的示例中,它将是:
list([]).
list([_|L]) :- list(L).
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1875 次 |
| 最近记录: |