我试图定义这个函数,它接受多个整数并保留那些不同于 0 的整数。它不起作用,显然,递归调用(filter $?tail)
与参数列表不匹配。这可以在 CLIPS 中完成吗?
(deffunction filter (?head $?tail)
(if (= (length $?tail) 0) then
(if (!= ?head 0) then (return ?head))
(return $?tail))
(if (= ?head 0) then
(return (filter $?tail)))
(bind $?result ?head (filter $?tail))
(return $?result)
)