[EMAIL PROTECTED] wrote:
On Thu, Jan 17, 2008 at 12:34:13AM -0800, Andrew Lentvorski wrote:
Please don't give this advice to newbies.
I assure you that this is likely to be an exercise in frustration except
for the most sophisticated people.
I agree that trying to implement a fast fully ANSI standard interpreter is a
bit much. However, is there no way to strip down the requirements to get ANY
little subset of functionality that is doable in Python/Ruby/Perl in a weekend?
It would sure increase someone's confidence they really understood evaluation.
Maybe if they just allowed integers and no floating point and other similar
corner cutting? :)
See: Scheme in One Defun/Day (SIOD)
The problem with evaluation is that you have to understand the concept
of the Scheme lexical environment. You don't get that for free when you
implement Scheme/Lisp in something like Java/Python/etc.
If you are interested in whether you understand evaluation, the classic
example is called the "metacircular interpreter" (I'm pretty sure SICP
covers it at about chapter 4? or so). It is, in fact, writing a Scheme
evaluator in Scheme. That's not as bad because you get the whole
lexical environment thing for free because you are implementing Scheme
in Scheme. In fact, you get to dodge all manner of nasty things
(lexing/parsing/environment/etc.) and focus on understanding evaluation.
Given the varying levels of the people looking at this, it's certainly
not something I would recommend after Chapter 1.
-a
--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg