<div dir="ltr"><div>Hi Danny,</div><div><br></div><div>Thank you for your response. I just reread that section and the</div><div>documentation. Luckily, they make some sense to me now.</div><div><br></div><div><br></div><div>
But your evaluation is not so accurate. When I was reading the tutorial last</div><div>time, I did finish the mentioned paragraph before going the the documentation.</div><div><br></div><div>I think the problem is that I was not familiar with some concepts. What is</div>
<div>`send/suspend/dispatch`? What is `embed/<span class="">url</span>`? What is a `restart`? How do they</div><div>work?</div><div><br></div><div>They seemed like magic to me. I don't feel good about magic because they</div>
<div>confuses me.</div><div><br></div><div>And there's already some parts that evaded me before that section. For example:</div><div><br></div><div>    ; render-blog-page: blog request -> response</div><div>    ; Consumes a blog and a request, and produces an HTML page</div>
<div>    ; of the content of the blog.</div><div>    (define (render-blog-page a-blog request)</div><div>      (response/<span class="">xexpr</span></div><div>       `(html (head (title "My Blog"))</div><div>              (body (h1 "My Blog")</div>
<div>                    ,(render-posts a-blog)))))</div><div><br></div><div>`render-blog-page` takes `a-blog` and `request` as arguments. But I couldn't</div><div>find `request` in the body. Is this your mistake? No, probably not. Because it's</div>
<div>consistent with the comments and `render-blog-page` is called several times with</div><div>exactly the same arguments.</div><div><br></div><div>Then I was confused. I thought I must had missed something. Maybe it's a</div>
<div>language feature or a framework feature.</div><div><br></div><div>All the way down to Advanced Control Flow part, my confusion accumulated to a</div><div>point that I thought I was not ready for the tutorial. Then I decided to give</div>
<div>up.</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, May 4, 2014 at 8:29 AM, Danny Yoo <span dir="ltr"><<a href="mailto:dyoo@hashcollision.org" target="_blank">dyoo@hashcollision.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">On Mon, Apr 28, 2014 at 5:27 AM, Ben <<a href="mailto:yfefyf@gmail.com">yfefyf@gmail.com</a>> wrote:<br>

</div><div class="">> After gaining some basic understanding of web applications, I wanted to<br>
> develop one in Racket. So I went to the tutorial "Continue: Web Applications<br>
> in Racket". When I reached "6 Advanced Control Flow", I saw<br>
> `send/suspend/dispatch`. I didn't know what it is, so I clicked on the link<br>
> to see its documentation and saw a very complex starting sentence:<br>
<br>
</div>Hi Ben,<br>
<br>
<br>
Apologies for not responding to this in a timely way.<br>
<br>
It sounds like you saw the link to the reference documentation, took a<br>
depth-first approach, and then got stuck in the reference<br>
documentation, which is not beginner friendly.  Does this evaluation<br>
sound accurate to you?<br>
<br>
<br>
If so, perhaps we should redirect links so that beginners are not<br>
directed to the reference documentation.  Perhaps links to functions<br>
in the tutorial documentation should go to some of glossary that is<br>
appropriate to a tutorial, rather than directly to the reference<br>
documentation.  I am not sure what the right approach is.<br>
<br>
<br>
There is a paragraph that is in the Advanced Control Flow section that<br>
is intended to hand-wave the explanation of what that function is<br>
doing:<br>
<br>
"Let’s look more closely at the send/suspend/dispatch<br>
mechanism.send/suspend/dispatch consumes a response-generating<br>
function and gives it another function, called embed/url, that we’ll<br>
use to build special URLs. What makes these URLs special is this: when<br>
a web browser visits one of them, our web application restarts, not<br>
from start, but from the handler that we associate with the URL. In<br>
the handler phase-1, the use of embed/url associates the link with the<br>
handler phase-2, and vice versa."<br>
<br>
Would it have helped if we were to move that paragraph up closer to<br>
where we first mention send/suspend/dispatch?<br>
</blockquote></div><br></div>