Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I must have attempted to implement a lisp many times before I got it "right", or a "simple" perceptron etc.

Without the pressure I'm not scared of revisiting hard things, I'm driven to actually.

Edit: to indicate that a "simple" perceptron isn't actually that simple.



> I must have attempted to implement a lisp many times before I got it "right"

How did you know it wasn't right? Did you run into a problem trying to implement requirements which you knew all along and accepted? (As in, you started coding without planning for some of these requirements ahead of time, then got stuck?)

Or did you learn about and adopt new requirements which weren't easy to retrofit into the existing work in progress?


Good question. I guess by "right" here I mean an implementation that I was happy with. Not nessesarily standards compliant or complete.

In my early attempts it was things like parsing which tripped me up. I'd implement something that broke the bracketed lists up into a list of tokens and then get stuck nesting those lists into an ast. Abandon an implementation for a while and then try again at the problem, often with a fresh implementation.

Then is was evaluating expressions, when to evaluate the arguments and exploring different approaches (fexprs).

I'd do these iterations across months and with different languages. First python then JavaScript, Ruby, C.

My favourite was the JavaScript implementation. Lisp code is literate and I bootstrapped most of the built in functions by exposing the environment as a cons tree (and working with cons trees internally in the interpreter).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: