Notice that when I redefined a, I only included one arity.  If b were
updated with the fn that a was redefined to, then (b 1 2) should have
thrown an exception.  Instead, it used the old definition of a but
within that definition pointed to the new definition of a.  This is
internally inconsistent.

I'm not proposing making all function definitions lexically bound.
Yes, that would destroy interactive coding.

But to be internally consistent, self-references should be lexical.

In any case, I am using Github master and I thought I was using 1.2.
1.2 has self-references lexically bound, as David Sletten points out,
which I agree is the correct behavior.  But something has happened on
1.3 alpha that has changed that.  I don't know if it's intentional or
not.

Thanks,
Alyssa Kwan

On Nov 16, 6:01 pm, David Nolen <dnolen.li...@gmail.com> wrote:
> But that would destroy one of the most useful features Lisp has to offer,
> interactive coding.
>
> Live coding would be impossible w/o this behavior as you would need to find
> and update all callers. Yuk.
>
> David
>
> On Tue, Nov 16, 2010 at 5:26 PM, Alyssa Kwan <alyssa.c.k...@gmail.com>wrote:
>
>
>
> > I ran into this while working on making functions durable.  Here's a
> > contrived example:
>
> > => (defn a
> >     ([x] x)
> >     ([x y] (+ (a x) (a y))))
> > #'user/a
>
> > => (a 1 2)
> > 3
>
> > => (def b a)
> > #'user/b
>
> > => (b 1 2)
> > 3
>
> > => (defn a [x]
> >     (- x))
> > #'user/a
>
> > => (b 1 2)
> > -3
>
> > Is this what people expect?  I would think that the original
> > definition of a, which is self-referencing, should point to itself no
> > matter what it's named, not get resolved at invoke-time to see what
> > the var is currently resolving to.
>
> > Thanks,
> > Alyssa Kwan
>
> > --
> > 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<clojure%2bunsubscr...@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 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

Reply via email to