+1 On Aug 29, 2011, at 3:26 PM, Shriram Krishnamurthi wrote:
> I like it. > > I'm afraid I just don't understand Eli's response to this... > > On Mon, Aug 29, 2011 at 3:14 PM, Matthew Flatt <mfl...@cs.utah.edu> wrote: >> How about an `as-' prefix? >> >> (as-thread ....) >> (as-future ...) >> (as-delay ...) >> >> >> [Yes, I think `future' and `thread' would work better as forms, but I'm >> not sure we can switch at this point.] >> >> At Mon, 29 Aug 2011 15:05:23 -0400, Eli Barzilay wrote: >>> 15 minutes ago, Shriram Krishnamurthi wrote: >>>> Perhaps go the other way? >>>> >>>> (future/e <e> ...) ==> (future (lambda () <e> ...)) >>>> (thread/e <e> ...) ==> (thread (lambda () <e> ...)) >>>> (delay/e <e> ...) ==> (delay (lambda () <e> ...)) >>>> >>>> and so on? That is, accept defeat on the primary names, but occupy >>>> the /e namespace for the macro versions, and whatever the suffix is, >>>> keep it really short. There is precedent for offering >>>> macro/function pairs in let/cc and call/cc. >>> >>> That seems kind of fine, except for the "/" which makes it read much >>> more verbosely than something like the overly abused `future*'. I'd >>> suggest `future:' but that convention is taken too... Maybe `future.' >>> or `future/'. (Or maybe I lost the feeling of what would look fine.) >>> >>> There's also the semi-popular syntax extension change, like {E ...} >>> expanding to (λ () E ...), but that looks very confusing with >>> something like (thread {(printf "foo\n")}) -- so maybe do that with >>> the outer form: {thread (printf "foo\n")}. Or maybe do that with a >>> macro instead: (e thread (printf "foo\n")), which will probably go the >>> way of `nested'. >>> >>> (Yeah, I should definitely disqualify myself from further opinionage >>> here.) >>> >>> >>>> (Yes, a programmer could do it themselves, but it's annoying to have >>>> to write these over and over, and code is more readable if everyone >>>> can agree on names -- my future/e may be your future-e may be >>>> someone else's future/w/expr.) >>> >>> +1. >>> >>> -- >>> ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: >>> http://barzilay.org/ Maze is Life! >>> >>> _________________________________________________ >>> For list-related administrative tasks: >>> http://lists.racket-lang.org/listinfo/users >> >> _________________________________________________ >> For list-related administrative tasks: >> http://lists.racket-lang.org/listinfo/users > > _________________________________________________ > For list-related administrative tasks: > http://lists.racket-lang.org/listinfo/users _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users