top | item 4495839

Amb: A Redex Tutorial

26 points| namin | 13 years ago |docs.racket-lang.org | reply

3 comments

order
[+] akkartik|13 years ago|reply
Do we need to know amb to read this tutorial? I have a vague memory of it, having worked through that chapter in On Lisp long ago, and yet the first screen introduces several terms without explaining them.

It says I need to be familiar with call-by-value lambda-calculus. Ok, check. But I still don't follow what's going on. Is this because of that parenthetical "(and evaluation contexts)"? I wish there was a link to where I could read about evaluation contexts. I searched for 'racket evaluation context' and came up with zip (the first result is about.. redexes[1]).

The exposition seems to bounce around levels of understanding. It explains how to start typing in the example, and where the menus are, but it skips quickly past the productions. Is number a keyword of the DSL? I see 8 productions not 6. Is there some reason it doesn't mention if0 or fix? Is it deliberate that num is not number? Are if0 and fix not literals?

Racket is awesome; that just frustrates me all the more for often not being able to understand what it provides. Maybe I'm just dyslexic in some subtle way; I rarely have trouble following docs for other languages. Racket tutorials are as hard to understand for me as research papers that use haskell.

[1] http://redex.racket-lang.org/why-redex.html

[+] takikawa|13 years ago|reply
Probably the best way to learn what an evaluation context is to read the book you've linked to there. Alternatively, it's basically what the Racket reference section on the evaluation model calls a "continuation": http://docs.racket-lang.org/reference/eval-model.html

We do try hard to make the docs understandable though, so if you have some feedback please do mention it on the mailing list so that the responsible devs can try to address it.