Differences between #lang scheme and #lang racket

与世无争的帅哥 提交于 2019-11-28 21:16:42
Eli Barzilay
  1. Yes, #lang racket is the racket default dialect, with lots of extensions.

  2. Two places where it is not an extension: if must have an else branch, and pairs are immutable (no set-car! and set-cdr!).

  3. #lang scheme was used for a while before the name change, and now #lang racket is used consistently. But we kept #lang scheme around for compatibility (as well as various scheme/--- libraries that are kept and can sometime be different than racket/--- counterparts). There's no reason to use #lang scheme in new code.

  4. To follow SICP, don't use any of these -- there's a SICP language available (usable with #lang sicp), originally written by Neil Van Dyke, but now maintained within the Racket community.

  5. To follow HtDP, don't use any of these, use the student languages. There are also new #lang-based variants like #lang htdp/bsl but they're not in a complete shape, yet. (And HtDP is not #lang racket specific.)

  6. No, Racket is very different from Chicken Scheme. You might be able to run some code in both, but those would probably be only tiny toy examples.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!