-1 But this is why we can make our own #langs. On May 10, 2012 11:55 PM, "Michael W" <mwil...@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 > > <matth...@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 <lvil...@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_...@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 <gret...@acm.org> > wrote: > > >> There is always pretty mode in Emacs. > > >> > > >> On Thu, May 10, 2012 at 1:45 PM, Ray Racine <ray.rac...@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 <nikit...@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 >
____________________ Racket Users list: http://lists.racket-lang.org/users