Thanks all persons for the help and patience with me.
Roelof
Op maandag 27 oktober 2014 22:23:50 UTC+1 schreef James Reeves:
> Right. It's similar to writing:
>
> (def x 5)
>
> (= #{x} #{5})
>
> You'd expect that to be true, right?
>
>
> When Clojure comes across an unquoted symbol (like x or octavia), it tries
> to evaluate it, replacing it with the value it represents.
>
> In a similar way, unquoted lists (anything in parentheses) are also
> evaluated as functions, macros or special forms.
>
> So: (= #{x} #{5})
>
> Becomes: (= #{5} #{5})
>
> Becomes: true
>
> - James
>
> On 27 October 2014 21:16, Roelof Wobben <[email protected] <javascript:>>
> wrote:
>
>> Np, So if I understand it right. I see the first one in repl.
>> Because midje has #{octavia} and in another function is stated :
>>
>> (def octavia {:name "Octavia E. Butler"
>> :birth-year 1947
>> :death-year 2006})
>>
>>
>> clojure makes from the first {octavia} the second {:name "Octavia E.
>> Butler" :birth-year 1947 :death-year 2006})
>> so that is why there are both the same.
>>
>> Roelof
>>
>>
>>
>> Op maandag 27 oktober 2014 22:09:04 UTC+1 schreef James Reeves:
>>
>>> Sorry, I misplaced a couple of brackets:
>>>
>>> (= {:title "Wild Seed", :authors #{{:name "Octavia E. Butler",
>>> :birth-year 1947, :death-year 2006}}}
>>> {:title "Wild Seed", :authors #{octavia}})
>>>
>>> That should work.
>>>
>>> - James
>>>
>>> On 27 October 2014 20:20, Roelof Wobben <[email protected]> wrote:
>>>
>>>> nope, there is somewhere a error in the example.
>>>>
>>>> When I copie it as you made it then I see this error message :
>>>> RuntimeException Unmatched delimiter: } clojure.lang.
>>>> Util.runtimeException (Util.java:219)
>>>> when I add a extra ) I see this message :
>>>> RuntimeException Map literal must contain an even number
>>>> of forms clojure.lang.Util.runtimeException (Util.java:
>>>> 219)
>>>>
>>>>
>>>> Roelof
>>>>
>>>>
>>>> Op maandag 27 oktober 2014 20:46:49 UTC+1 schreef James Reeves:
>>>>
>>>>> On 27 October 2014 19:37, Roelof Wobben <[email protected]> wrote:
>>>>>
>>>>>> of course I can.
>>>>>>
>>>>>> If I look at answers other people gives then this is the solution :
>>>>>>
>>>>>> (defn old-book->new-book [book]
>>>>>> (assoc book :authors (set (book :authors)))
>>>>>> )
>>>>>>
>>>>>> and then according to the explanation I would see this output ;
>>>>>>
>>>>>> (old-book->new-book {:title "Wild Seed", :authors [octavia]});=> {:title
>>>>>> "Wild Seed", :authors #{octavia}}
>>>>>>
>>>>>> but on 1.6.0 and on 1.5.1 I see another output as discussed here.
>>>>>>
>>>>>>
>>>>> I don't think you're understanding that:
>>>>>
>>>>> {:title "Wild Seed", :authors #{{:name "Octavia E. Butler", :birth-year
>>>>> 1947, :death-year 2006}}}
>>>>>
>>>>> Evaluates to the same thing as:
>>>>>
>>>>> {:title "Wild Seed", :authors #{octavia}}
>>>>>
>>>>> The difference is that in the first value, "octavia" has been replaced
>>>>> with its value.
>>>>>
>>>>> You can confirm the two data structures are the same by checking their
>>>>> equality:
>>>>>
>>>>> (= {:title "Wild Seed", :authors #{{:name "Octavia E. Butler",
>>>>> :birth-year 1947, :death-year 2006}}
>>>>> {:title "Wild Seed", :authors #{octavia}}}
>>>>>
>>>>> This should return true.
>>>>>
>>>>> - James
>>>>>
>>>>
>>>
>
--
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
---
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 [email protected].
For more options, visit https://groups.google.com/d/optout.