TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

SICP in Python

149 点作者 ahmicro超过 13 年前

11 条评论

angrycoder超过 13 年前
This is like reading a modernized version of Shakespeare. You can still kind of tell the story is good, but it just feels lacking. It doesn't convey the same kind of weird magic, even though you aren't 100% sure what they are on about.<p>It is a perfect example of Rich Hickey's "Simple made easy" talk from a few days ago.
baddox超过 13 年前
The very notion seems strange to me, because when I read SICP it was primarily a "learn LISP's model of computation" book, not a "learn how to program, and we just happen to be using a LISP" book. Because of that, it doesn't make much sense to me to port SICP to a non-LISP language.
评论 #3142607 未加载
评论 #3142314 未加载
spacemanaki超过 13 年前
This is ok, for a CS 101 class. I'm sure the students will turn out just fine. Some of them will likely be intrigued by the purple book their class name references. Looking at the schedule, it looks like it just covers the "Structure" and not the "Interpretation". My favorite parts of SICP are the 4th and 5th chapters, on metacircular evaluation, interpreters, lazy Scheme, Prolog, and compilation to byte code. I guess it's probably too much for CS 101 though. It would also be a lot more work to do those chapters in Python, since you'd need to cover scanning and parsing, instead of just using (read).
评论 #3142718 未加载
评论 #3151616 未加载
azernik超过 13 年前
I took CS61A in the spring of 2008, when it was still done using Scheme. Looking through the first few lectures and the titles of later lectures, I'm struck by how much the material is the same. Most notably, in the first several lectures, they've made a point of stripping down Python to a subset that makes its evaluation near-identical to Lisp - by using only named functions (no '1+2', only 'add(1, 2)'), they've kept the emphasis in those lectures on the environment model of evaluation.<p>Looking through the later lecture titles, it's quite clear that (despite what other commenters are saying) the "deeper" parts of the course have been preserved.<p>There's a bit that's been lost in translation; in particular, while the emphasis on metalinguistic abstraction has been kept (students are going to be implementing an object-class system, in a rather elegant way that uses Python's capability to redefine attribute getters) the more exotic models of computation pursued in the old 61A have been abandoned. No more ambiguous evaluator. This is perhaps inevitable - it's just impractical to create a metacircular evaluator for a language as complex as Python. Still, the core of the class has remained, which is a testament to the fundamental similarity of the the Lisp model of computation with that of many modern scripting languages.
jinfiesto超过 13 年前
I'm simultaneously disappointed and thrilled about this. As I've suspected, teaching SICP in a language other than Scheme would require dropping chapters 4 and 5. They're simply too hard to do in any other language. Which of course is a bummer, since chapters 4 and 5 are huge amounts of fun.<p>All the same, I'm thrilled that SICP is being taught.
评论 #3142423 未加载
disgruntledphd2超过 13 年前
Well, at least they're still using Emacs. That being said, they have a weird way of describing the hotkeys. For example, for C-x C-f, they tell you to hold down C-x, release all keys, then press C-f. You don't need to release the control key, and it adds at least half a second if you do.
wes-exp超过 13 年前
"I felt a great disturbance in the Force, as if millions of voices cried out in terror and were suddenly silenced. I fear something terrible has happened."
Ape_Shell超过 13 年前
Won't this end in disaster considering the use of tail recursion in SICP versus Guido's flat out refusal to allow tail recursion optimization in Python?
评论 #3142413 未加载
gonewest超过 13 年前
an abomination, pure and simple.
评论 #3142681 未加载
评论 #3142614 未加载
kaapi1超过 13 年前
But they can do such cool projects! Mining twitter data? Seriously?<p><a href="http://wla.berkeley.edu/~cs61a/fa11/projects/trends/trends.html" rel="nofollow">http://wla.berkeley.edu/~cs61a/fa11/projects/trends/trends.h...</a>
评论 #3142743 未加载
Apocryphon超过 13 年前
What about a compromise? Why doesn't someone translate SICP to a more widely-used modern day functional language, such as Haskell or Erlang?
评论 #3142910 未加载