On Thursday, May 28, 2015 at 5:39:54 PM UTC+10, Ruslan Prokopchuk wrote:
Okay, thanks, that makes some sense. So, attaching metadata to the var rather
than the value the var is bound to. Got it.
But ... I then performed this experiment where I feel I am attaching metadata
to the value ...
(def fff ^{:a 1} (fn [] 4))
(meta fff) ;; => nil
Damn.
And here's what's odd:
(def v ^{:b 1} [1 2 3])
(meta v) ;; => {:b 1 .....}
So, when it comes to metadata, this:
^{:a 1} (fn [] 4)
is different to:
^{:b 1} [1 2 3]
So fns are not normal values? Something else?
I'll get this eventually.
--
Mike
> `with-meta` is the thing which deals with value, you get "an object of the
> same type and value as obj, with map m as its metadata". But `defn`, which is
> essentially `(def ... (fn ...` creates a Var, and attaches metadata to that
> Var, not its value.
>
> четверг, 28 мая 2015 г., 10:30:14 UTC+3 пользователь Mike Thompson написал:
> > On Thursday, May 28, 2015 at 4:55:09 PM UTC+10, Ruslan Prokopchuk wrote:
> > > (meta #'f)
> >
> >
> > Hmm. I think there's something fundamental I'm not grasping here. But I'm
> > struggling to ask the right question to get the ahhh moment.
> >
> > Perhaps this: why, in my original example code, does (meta f) return nil,
> > but (meta ff) return {:b 1}. What is different about the attachment of
> > metadata?
> >
> > --
> > Mike
--
Note that posts from new members are moderated - please be patient with your
first post.
---
You received this message because you are subscribed to the Google Groups
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/clojurescript.