Well, maybe I shouldn't bash MIT-scheme unintentionally :-).  I bet some
people use it for serious stuff, and I have no bad experiences with it.


On Thu, Apr 24, 2014 at 11:33 AM, Gary Trakhman <gary.trakh...@gmail.com>wrote:

> MIT-lisp is more for teaching than industrial use..
>
> We also have hash-maps, vectors, sets, queues, conj works with all of
> them, leaving the details up to the collection.
>
> Cons always adds to the front.  Conj only adds to the back for certain
> collections (vector, queue).
>
> You could work around it by reversing, consing, then reversing again, or
> just use vectors and conj if you're always working on the tail.
>
>
> On Thu, Apr 24, 2014 at 11:27 AM, Jiacai Liu <jiacai2...@gmail.com> wrote:
>
>> Oh,Thank you for answer.
>> But if I just want to insert a element to list,and meantime want to
>> insert in the back.How should I do?
>> Another question: why clojure need both cons and conj? In mit-lisp cons
>> just do all things.
>>
>>
>> On Thursday, April 24, 2014 11:12:49 PM UTC+8, Gary Trakhman wrote:
>>
>>> Conj is polymorphic on its first argument. If you pass it a vector,
>>> it'll add to the back, if a list, the front.  The collection is responsible
>>> for deciding the most efficient way to add an element.
>>>
>>> Cons always adds to the front, creating a linked-list node pointing to
>>> the rest.  Also, cons takes the sequence as the second argument.
>>>
>>>
>>> On Thu, Apr 24, 2014 at 11:10 AM, Jiacai Liu <jiaca...@gmail.com> wrote:
>>>
>>>> hi everyone:
>>>> I use Clojure to solve SICP 2.22 
>>>> <http://www.billthelizard.com/2011/01/sicp-221-223-mapping-over-lists.html>
>>>> .
>>>> The problem is to rewrite a map fn in a iterative way,here it want to
>>>> get the square of each element in a list
>>>> Method 1:
>>>> (defn square-list [items]
>>>>   (defn iter [things answer]
>>>>     (if (empty? things)
>>>>       answer
>>>>       (iter
>>>>         (rest things)
>>>>         (cons (square (first things)) answer))))
>>>>   (iter items nil))
>>>> This method just return opposite result.
>>>> (square-list (range 1 10))
>>>> ;===>(81 64 49 36 25 16 9 4 1)
>>>>
>>>> I think all I need is to swap the position of (square (first 
>>>> things))andanswer,then
>>>> I can get the right order
>>>> I write fn below:
>>>> Method 2
>>>> (defn square-list [items]
>>>>   (defn iter [things answer]
>>>>     (if (empty? things)
>>>>       answer
>>>>       (iter
>>>>         (rest things)
>>>>         (conj answer (square (first things))))))
>>>>   (iter items nil))
>>>> However, it still return opposite order.
>>>> Did I misuse cons and conj or I ignore something?
>>>>
>>>>
>>>>  --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Clojure" group.
>>>> To post to this group, send email to clo...@googlegroups.com
>>>>
>>>> Note that posts from new members are moderated - please be patient with
>>>> your first post.
>>>> To unsubscribe from this group, send email to
>>>> clojure+u...@googlegroups.com
>>>>
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/clojure?hl=en
>>>> ---
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Clojure" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to clojure+u...@googlegroups.com.
>>>>
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>  --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to