

Amb: A Redex Tutorial - namin
http://docs.racket-lang.org/redex/tutorial.html

======
akkartik
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
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.

~~~
akkartik
Thanks for the tip! Continuations, I know what those are.

Yes, part of what makes racket awesome is that it has a coherent design while
fluidly integrating feedback. The challenge for me is to learn some aspect of
it to the point where I can give constructive feedback. Sometimes I end up
giving up before I get to that point. Perhaps the tower of concepts just has
to be this high, and I need to just suck it up and give it more time/priority.

