[racket] `def' ?

From: Deren Dohoda (deren.dohoda at gmail.com)
Date: Fri May 11 11:13:30 EDT 2012

-1

But this is why we can make our own #langs.
On May 10, 2012 11:55 PM, "Michael W" <mwilber at uccs.edu> wrote:

> Yes! Hear, hear! Having to explicitly write all the references
> out and get their types right is a pain point for me. Maybe it's
> encouraged by the design recipe, but sometimes I get jealous of
> languages like Clojure, which (from what I understand) would let
> me write something like this:
>
> ;; initials = person[i].firstname[0] + person[i].lastname[0]
>
> (string-append (((person i) 'firstname) 0)
>               (((person i) 'lastname) 0)
>
> Clojure doesn't rely on string-ref or friends. Instead, both of
> these:
> (some-hash 'key)
> ('key some-hash)
> are analagous to Racket's (hash-ref some-hash 'key).
>
> This works on arrays too. Arrays just map integers to values
> instead of mapping symbol keys to values. And of course, Clojure
> lets custom objects redefine and override this lookup behavior.
>
> As you can tell, I'm terribly excited for the recent work going
> into Racket's generics.
>
> 5 hours ago, Justin Zamora wrote:
> > In my experience, the heaviness of Racket doesn't come from words like
> > "define", etc.  It comes in certain categories of programs that deal
> > extensively with strings, vectors, and structured data.  For example,
> >
> > initials = person[i].firstname[0] + person[i].lastname[0]
> >
> > This is very readable and useful.  It can be written quickly and is
> > read and understood easily The overloading of "+" (or your operator of
> > choice) and the implicit coercion of characters to strings is exactly
> > what is wanted here.  Even evaluating person[i] more than once doesn't
> > clutter up the expression.
> >
> > Compare this to the equivalent Racket:
> >
> > (define initials
> >   (string-append (string (string-ref (id-firstname (vector-ref person
> i)) 0))
> >                  (string (string-ref (id-lastname (vector-ref person i))
> 0))))
> >
> > For this sort of thing, the Racket version is much harder to write,
> > read, and verify.  It would be nice to have something akin to
> > at-expressions that would allow such expressions to be written more
> > clearly.
> >
> > Justin
> >
> > On Thu, May 10, 2012 at 4:00 PM, Matthias Felleisen
> > <matthias at ccs.neu.edu> wrote:
> > >
> > > I will assert something about readability:
> > >
> > >  Racket programs look heavy when compared with Haskell programs.
> > >
> > > This is probably true for Python instead of Haskell, too. It is also
> true for ML. I conjecture that part of that heaviness comes from wide
> lines, long names, deep nesting. Who knows. I don't even know how to
> measure this kind of property.
> > >
> > > At this point, I can express certain ideas more easily in Racket than
> in Haskell, Python, ML or whatever, which is why I am fine. But if this
> advantage ever disappeared, heaviness would definitely be a factor to weigh.
> > >
> > > -- Matthias
> > >
> > >
> > >
> > >
> > >
> > >
> > > On May 10, 2012, at 3:49 PM, ozzloy-racket-users wrote:
> > >
> > >> i didn't assert that word length has nothing to do with readability,
> just that word frequency has more impact on reading time than word length.
> > >>
> > >> On Thu, May 10, 2012 at 3:39 PM, Luke Vilnis <lvilnis at gmail.com>
> wrote:
> > >> I can only speak for myself but I think it's a bit much to assert
> that word length has nothing to do with readability. Heck, maybe that's
> even true for you, but not for everyone. I have certainly felt it to be an
> issue. If the "define" keyword was 50 letters long it would definitely have
> an impact on my ability to read code - it seems to be an issue of degree,
> not existence.
> > >>
> > >> On Thu, May 10, 2012 at 3:26 PM, ozzloy-racket-users <
> ozzloy+users_racket-lang_org at gmail.com> wrote:
> > >> am i the only one that thinks not having abbreviated names for
> anything is good?
> > >> i like not having "def".  especially if it's going to be redundant.
> > >> i see this as a slippery slope i don't want to go down.
> > >> it annoys me when switching to other languages to have to ask: which
> way of shortening "function" does this language go with?  was it "fn"?
> maybe "fun"?
> > >> if the language has a strict policy of not using short versions of
> words, i don't have to guess.
> > >>
> > >> as for "def" being easier to read than "define", that's not true.
>  word frequency has more impact on reading time than word length for normal
> reading.  having more aliases makes both less frequent, so adding "def"
> could plausibly make reading both take longer.  most people read whole
> words at a time, rather than letter-by-letter.
> > >>
> > >>
> > >> On Thu, May 10, 2012 at 2:56 PM, Grant Rettke <grettke at acm.org>
> wrote:
> > >> There is always pretty mode in Emacs.
> > >>
> > >> On Thu, May 10, 2012 at 1:45 PM, Ray Racine <ray.racine at gmail.com>
> wrote:
> > >> > FYI for those who may not know.  Racket supports λ as an alias for
> lambda.
> > >> >  ctrl-\ in DrRacket.
> > >> >
> > >> >
> > >> > On Thu, May 10, 2012 at 1:59 PM, Nikita B. Zuev <nikitazu at gmail.com>
> wrote:
> > >> >>
> > >> >> +1 for `def' as alias for `define'.
> > >> >> May I also suggest `fun' for `lambda' alias?
> > >> >> Three letter names are the best =)
> > >> >>
> > >> >> (well one can always do it with require rename-in)
> > >> >>
> > >> >> --
> > >> >> Regards,
> > >> >> Nikita B. Zuev
> > >> >> ____________________
> > >> >>  Racket Users list:
> > >> >>  http://lists.racket-lang.org/users
> > >> >
> > >> >
> > >> >
> > >> > ____________________
> > >> >  Racket Users list:
> > >> >  http://lists.racket-lang.org/users
> > >> >
> > >>
> > >>
> > >>
> > >> --
> > >> http://www.wisdomandwonder.com/
> > >> ACM, AMA, COG, IEEE
> > >>
> > >> ____________________
> > >>  Racket Users list:
> > >>  http://lists.racket-lang.org/users
> > >>
> > >>
> > >> ____________________
> > >>  Racket Users list:
> > >>  http://lists.racket-lang.org/users
> > >>
> > >>
> > >>
> > >> ____________________
> > >>  Racket Users list:
> > >>  http://lists.racket-lang.org/users
> > >
> > >
> > > ____________________
> > >  Racket Users list:
> > >  http://lists.racket-lang.org/users
> >
> ____________________
>  Racket Users list:
>  http://lists.racket-lang.org/users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20120511/30fc6ac1/attachment-0001.html>

Posted on the users mailing list.