clojure - How to make list by recursion? -
in many cases want create list recursion function can not find right way how it.
for illustration (not usefull shortest can find) want take elements list 1 1 , create new list same first one.
(defn f [x] (list (first x) (if (not= (rest x) '()) (f (rest x)) '() ))) (f '(1 2 3)) i want get
(1 2 3) but get
(1 (2 (3 ()))) i want not utilize flatten. illustration imput
(f '([1 1] [2 2] [3 3])) will destroyed flatten.
replace list cons:
(defn f [x] (cons (first x) (if (not= (rest x) '()) (f (rest x)) '()))) operation (list x y) returns list of 2 elements: (x y). operation (cons x y) returns list head (i.e. first element) x , tail (the rest of list) y y should list itself.
clojure lisp
No comments:
Post a Comment