小编nob*_*ere的帖子

Clojure - Filter的用户实现

我是Clojure的新手,建议的挑战之一是Filter函数的用户实现.

所以我想出了这个

 (defn filterr
  "Filter implementation"
  [condition coll]
  (if-not (empty? coll)
    (if (condition (first coll))
      (cons (first coll) (filterr condition (rest coll)))
      (filterr (condition (rest coll))))))
(defn -main
  "Main" []
  (t/is (=
         (filterr #(> % 2) [1 2 3 4 5 6])
         [3 4 5 6])
        "Failed basic test"))
Run Code Online (Sandbox Code Playgroud)

但是,我的测试因错误而失败

ERROR in () (Numbers.java:229) Failed basic test expected: (= (filterr (fn* [p1__42#] (> p1__42# 2)) [1 2 3 4 5 6]) [3 4 5 6])

看起来这个功能没有得到充分的评估.

我不明白我做错了什么,并且非常感谢你对此事的一些帮助.

lisp functional-programming clojure

2
推荐指数
1
解决办法
92
查看次数

标签 统计

clojure ×1

functional-programming ×1

lisp ×1