Andy Coolware <[email protected]> writes:
> Hi,
>
> I am looking for two seemingly simple operations which require adding
> to the list:
>
> (( 1 2 ) ( 20 30) (40)) 50 => (( 1 2 ) ( 20 30) (40 50))
>
> and
>
> (( 1 2 ) ( 20 30) (40 50)) 60 => (( 1 2 ) ( 20 30) (40 50) (60))
>
>
> Basically it is appending an element as a list to the list ...
>
> Any simple ideas?
>
>
> Thx,
> Andy
This is a terrible slow implementation:
--8<---------------cut here---------------start------------->8---
(defn foo [lst x]
(let [[a b] (last lst)]
(if b
(concat lst (list (list x)))
(concat (butlast lst) (list (list a x))))))
--8<---------------cut here---------------end--------------->8---
You could use zippers here, but it would propably be slower.
Cheers,
Moritz
--
Moritz Ulrich
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en