我目前正在努力使用此功能来过滤值。
Highlighter highlighter = textArea.getHighlighter();
highlighter.addHighlight(...);
使用
调用此函数(defun filter (operator val sequence)
(if (funcall operator val (first sequence))
(filter (function operator) val (rest sequence))
(cons (list (first sequence))
(filter (function operator) val (rest sequence)))))
给予
(filter (function >) 6 '(5 6))
此代码段工作正常。
*** Eval error *** Symbol's function definition is void: operator
我的猜测是该函数忘记了最初调用它的函数,但我不知道出了什么问题,一些正确方向的指针会非常感激!
答案 0 :(得分:3)
错误消息Symbol's function definition is void: operator
引用此行:
(filter (function operator) val (rest sequence))
您正在尝试访问名为operator
的函数,该函数不存在,因为operator
只是一个函数参数(正常变量)。 (此参数恰好绑定到函数值,但这无关紧要。)
这应该解决它:
(filter operator val (rest sequence))