IllegalArgumentException Error in Clojure -


i error:

illegalargumentexception don't know how create iseq from: clojure.lang.symbol clojure.lang.rt.seqfrom (rt.java:542)

when call function:

    (defn my-butlast [lista]       (loop [c lista              last ()]         (if (= (count c) 1)           last           (recur (concat last (first c))                  (pop c))))) 

the function should return list same elements input list excluding last element, or '()' if it's empty.

and error happens when list has 2 or more elements this:

(my-butlast '(a b)) 

concat: "concatenation of elements in supplied colls" (taken https://clojuredocs.org/clojure.core/concat). error seems consistent not passing concat correct argument types. try using conj in place of concat, or else wrapping second argument concat in vector.

if choose conj sure understand different behavior between conj-ing onto list verses onto vector: https://clojuredocs.org/clojure.core/conj


Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -