Я тестировал свою новую версию пролога SWI и продолжаю сталкиваться с ошибкой: singleton variable.
Пример:
member(X,[X|T]).
member(X,[X|T]) :- member(X,T).
находит элемент списка, например:
member(yolands,[yolanda,tim])
X = yes
но вместо этого я получаю ошибку singleton variables для X и T
если я делаю следующее:
member(X,[X|_]).
member(X,[_|T]) :- member(X,T).
Это работает, но выглядит уродливо!
Может ли кто-нибудь объяснить, почему разрешены одиночные переменные и если этот стандарт ANSI?