Aw: Re: Singly linked lists as an immutable data structure

2011-06-12 Thread Meikel Brandmeyer
The interim result is however not entirely equivalent. user=> (counted? '(1 2 3)) true user=> (counted? (concat '(1 2 3) '(4))) false user=> (counted? (doall (concat '(1 2 3) '(4 false YMMV as always… -- You received this message because you are subscribed to the Google Groups "Clojure" gro

Re: Singly linked lists as an immutable data structure

2011-06-10 Thread Ken Wesson
Of course, lazy Clojure functions like "concat" end up basically doing this: (def q (concat '(1 2 3) '(4))) q | | V [lazy-concat] | | V V '(1 2 3) '(4) The result of a lot of concats ends up therefore being a tree structure under the hood. It can be flat

Aw: Singly linked lists as an immutable data structure

2011-06-10 Thread Meikel Brandmeyer
Hi, yes. C has to copy the whole list and prepend its element to the element she wants to "add" at the end. Lists are bad at appending. Sincerely Meikel -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@go

Singly linked lists as an immutable data structure

2011-06-10 Thread Sam Aaron
Hi there, I've now seen singly linked lists used as a way of describing Clojure's immutable data structures with the claim that they're used to implement lists. The example usually goes as follows. A has the list '(1 2 3) which is implemented as follows: A | | V +---+ +---+ +---+