first class values on the jvm are objects

On Sat, Nov 4, 2017 at 5:57 PM Didier <didi...@gmail.com> wrote:

> > That said, metadata and its relationship to an object is immutable - an
>>> object with different metadata is a different object. One consequence of
>>> this is that applying metadata to a lazy sequence will realize the head of
>>> the sequence so that both objects can share the same sequence.
>>>
>>
>> What confuses you about it? Is it the "realize the head of the sequence"
>> part?
>>
>
> I think I'm firstly confused by the use of the word object. I'm guessing
> in this case it refers to things that implement IObj? I'm then confused by
> what is meant that an object with different meta is a different object, if
> they are still equal? I'm guessing it means that if you change the meta on
> an IObj, you get a copy? And then I'm confused as to why that would cause
> lazy-seq to realize their head? Can't two lazy-seq share the same head?
>
> On Saturday, 4 November 2017 11:40:54 UTC-7, James Reeves wrote:
>
>> On 3 November 2017 at 06:57, Didier <did...@gmail.com> wrote:
>>
>>> Okay, I can see how I can maybe infer some of that by piecing together
>>> the code base, but if there was a book, or a reference somewhere describing
>>> more the implementation of Clojure itself I'd be interested to read it, if
>>> there is one out there. I'd understand if there's not, I know Clojure has
>>> no formal semantic spec.
>>>
>>
>> I don't know of one, I'm afraid.
>>
>>
>>> Also, I guess I'm still confused about that bit:
>>>
>>> > That said, metadata and its relationship to an object is immutable -
>>> an object with different metadata is a different object. One consequence of
>>> this is that applying metadata to a lazy sequence will realize the head of
>>> the sequence so that both objects can share the same sequence.
>>>
>>
>> What confuses you about it? Is it the "realize the head of the sequence"
>> part?
>>
>> --
>> James Reeves
>> booleanknot.com
>>
> --
> 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