0
我试图定义这个函数,它取多个整数并保留那些不同于0的函数。它不起作用,显然递归调用(filter $?tail)
与参数列表不匹配。这可以在CLIPS中完成吗?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)
)
我并不真的需要这种特定的功能,但我需要的作品大致相同方式的功能。我只发布了这个更简单的版本,以减少混乱。 –
@PaulManta然后用'(filter(first $ $?tail)$?tail)替换'(filter $?tail)'调用'解决它? – Evans
不应该是沿着'(过滤器(第一个$ $?尾巴)(尾部$ $?尾巴))'的行,否则递归永远不会结束? –