?

Log in

No account? Create an account
The M word - Lindsey Kuper [entries|archive|friends|userinfo]
Lindsey Kuper

[ website | composition.al ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

The M word [Oct. 14th, 2009|01:23 am]
Lindsey Kuper
[Tags|]

Shh! Don't say it! But we're doing it. We're teaching our undergrads about it, and they're learning about it -- whether or not they realize it. And if it works, it'll be a book someday.

LinkReply

Comments:
[User Picture]From: oniugnip
2009-10-14 05:36 am (UTC)
My dumb response: that is one good-looking wiki!

The color scheme for that syntax highlighting is so nice! Did you tweak it? Was it hard to find prettyprinting for Scheme, or did it come built in?
(Reply) (Thread)
[User Picture]From: oniugnip
2009-10-14 05:37 am (UTC)
Also: woo book! <3
(Reply) (Parent) (Thread)
[User Picture]From: lindseykuper
2009-10-14 05:49 am (UTC)
What wiki? I don't see any wiki! Yep, DokuWiki comes with syntax highlighting for Scheme and roughly a million other languages. I don't think it's capable of pretty-printing in the sense of indentation -- that's all thanks to Emacs.
(Reply) (Parent) (Thread)
(Deleted comment)
[User Picture]From: lindseykuper
2009-10-14 02:06 pm (UTC)
Ouch, my sensibilities! Stop saying all those bad words!

Am I missing an opportunity for eta? I suppose I could write (define base list), but I guess I was trying to make the type a little more obvious. *runs away*

When we started talking about all this, bind seemed more natural than join, but I expect we'll try both at some point.
(Reply) (Parent) (Thread)
(Deleted comment)
[User Picture]From: lindseykuper
2009-10-15 03:34 am (UTC)
Oh, okay, I see your point. Yes, it's cumbersome, but we actually bother to write (lambda (c) c) and so on because we want all the code we show to be runnable in Scheme with no dependencies. That's a hallmark of everything Dan touches. Even Hal Abelson, in his foreword to EOPL, actually seems to get a little short of breath over the fact that all the code presented in the book actually, you know, runs.
(Reply) (Parent) (Thread)
(Deleted comment)
[User Picture]From: lindseykuper
2009-10-15 02:24 pm (UTC)
Oh, I see. Yeah, your version of grow wouldn't run in Scheme unless you wrote your own curried version of map (which people often do, but again, we want this to be runnable out of the box, and we're working with relative beginners and want to use idioms they already know, like two-argument map).
(Reply) (Parent) (Thread)
(Deleted comment)
[User Picture]From: lindseykuper
2009-10-16 04:36 am (UTC)
You're right; it sucks that I can't write (map f) without implementing my own map. But on the other hand, Scheme's map handles multiple lists gracefully. The whole "zipWithn" thing in Haskell (and in Scala, and OCaml, and...) seems kind of gross and magic-numbery to me. In Scheme (and in Python!), you just pass 'em all to map. It seems like the dynamic languages are winning here.
(Reply) (Parent) (Thread)
(Deleted comment)
(Deleted comment)
From: (Anonymous)
2009-10-17 06:39 am (UTC)
> then again, I define (...) = (.) . (.)

*stunned*

How and why has it never occurred to me to do this?!?


I think I love you.
(Reply) (Parent) (Thread)
(Deleted comment)
(Deleted comment)
From: (Anonymous)
2009-10-17 06:38 am (UTC)
> And if it works, it'll be a book someday

Ah, in the time-honoured tradition!
(Reply) (Thread)
[User Picture]From: lindseykuper
2009-10-17 03:31 pm (UTC)
Yes, well, we'll see.
(Reply) (Parent) (Thread)