Я новичок в прологе и пытаюсь переназначить операторы в прологе, изменив их приоритет. Я сталкиваюсь с 4 ошибками для следующего:
:-op(1000,yf,+). %unary plus%
:-op(1000,yf,-). %unary minus%
:-op(750,yfx,"%"). %modulo%
Первые два дают мне аналогичную ошибку, которая выглядит следующим образом:
warning: directive failed (op(1000,xf,+)) with exception (error(permission_error(create,operator,+),op/3))
Я также получаю ошибку по модулю один (другая ошибка), но я подозреваю, что это потому, что я не должен заключать %
в кавычки (но как я должен отличить его от маркера комментария?).
Я переопределил кучу других операторов (например, оператор сложения :-op(500,yfx,+).
), и они не вызывают у меня проблем. Только 3 перечисленных выше дают мне ошибки.
Может кто-нибудь пролить некоторый свет на это?
Спасибо!
Type error:
atom, находит37'
на третьем. Я думаю, вам понадобятся одинарные кавычки вокруг оператора по модулю. - person CapelliC   schedule 18.02.2013