Я попытался определить эту функцию, которая принимает несколько целых чисел и сохраняет те, которые отличаются от 0. Она не работает, по-видимому, рекурсивный вызов (filter $?tail)
не соответствует списку параметров. Можно ли это сделать в КЛИПСАХ?
(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)
)