<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br></div><div>Well I know some instructors who think that their beginners can handle TR and its errors :-) [But yes, for those, I'd use #:on-tick and #:to-draw anyways.] </div><div><br></div><br><div><div>On Mar 15, 2015, at 12:27 PM, Alexis King wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><meta http-equiv="Content-Type" content="text/html charset=windows-1252"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Yeah, I’ve definitely noticed the amount of effort put into sending good error messages from misuses of the htdp functions. I did attempt the bare minimum of supplying reasonable error messages: the identifiers are the same as the ones used in 2htdp/universe, so the “out of context” messages are still signaled, and I’ve added some basic descriptions to the syntax-parse fields to make the error messages give a little more context.</div><div class=""><br class=""></div><div class="">At the same time, I’ve noticed that big-bang itself has some obviously very sophisticated mechanics for detecting subtle mistakes. The “this identifier appears to have been used as a variable” error messages are pretty advanced, though at that point I guess I’m not sure why you didn’t just detect for the datums instead of identifiers.</div><div class=""><br class=""></div><div class="">Anyway, as for those and the stepper, the stepper obviously doesn’t work with TR, anyway, and I’d imagine that people able to read Typed Racket’s error messages would probably be able to handle these ones. I’m not discounting your point—you’re right that this is probably less accessible for students—but I guess using it would be out of their grasp, anyway, at least for now.</div><br class=""><div><blockquote type="cite" class=""><div class="">On Mar 15, 2015, at 09:04, Matthias Felleisen <<a href="mailto:matthias@ccs.neu.edu" class="">matthias@ccs.neu.edu</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; " class=""><div class=""><br class=""></div><div class="">Thanks. That's awesome. FWIW, we have had several attempts at typing world, and I think certain instructors may wish to give this a spin. I really like it that you converted it all to syntax-parse and didn't sacrifice the faux-keyword approach. But do understand that the kind of students we imagine may have a hard time with the error messages signaled from syntax-parse. [The complications of the existing implementation are partly about sending good error messages and partly about making sure that the stepper works, which my first and second implementation of the current world package did not.] -- Matthias</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><br class=""><div class=""><div class="">On Mar 14, 2015, at 8:39 PM, Alexis King wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite" class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">I’ve had the <a href="https://github.com/lexi-lambda/racket-2htdp-typed" class="">2htdp-typed package</a> available for a little while now, which is a Typed Racket wrapper for the HtDP/2e teachpacks. It <i class="">was</i> missing big-bang, since it is implemented as a macro, but I have now added support for big-bang in Typed Racket.<div class=""><br class=""></div><div class="">The syntax of <font face="Courier" class="">big-bang</font> is identical to its untyped equivalent except for one thing: it requires an annotation that specifies what the type of the WorldState parameter should be. The exact syntax for big-bang is provided in the documentation.</div><div class=""><br class=""></div><div class="">There are still a couple of unsupported features:</div><div class=""><br class=""></div><div class=""><ul class="MailOutline"><li class="">The universe/networked worlds (“The World is Not Enough”) are not supported. This actually shouldn’t be terribly difficult to add, I just have absolutely no experience working with universe programs, so I haven’t tried.<br class=""><br class=""></li><li class="">The 2htdp/planetcute collection of sprites is not yet available in Typed Racket. This also shouldn’t be terribly difficult to add, but my first attempt ran into some complexities in how the identifiers are provided that I did not anticipate, and I haven’t taken the time to look into it since. (See <a href="https://github.com/racket/htdp/issues/2" class="">https://github.com/racket/htdp/issues/2</a> for some limited information about that.)</li></ul><div class=""><br class=""></div></div><div class="">Otherwise, I think everything should work just fine. I don’t have many programs that use these libraries sitting around, but I’d love to know if this wrapper works with existing world/universe programs.</div><div class=""><br class=""></div><div class="">Feedback and bug reports much appreciated, pull requests welcome!</div><div class=""><br class=""></div><div class="">Alexis King</div></div>____________________<br class="">  Racket Users list:<br class="">  <a href="http://lists.racket-lang.org/users" class="">http://lists.racket-lang.org/users</a><br class=""></blockquote></div><br class=""></div></div></blockquote></div><br class=""></div></blockquote></div><br></body></html>