This may explain a lot about those two kooky Stanford grads over at Google. While giving myself a short refresher on stacks, trees, and other data structures, I came across Pointer Fun with Binky, a short claymation film providing an introduction to some basic principles of memory management. “The Magic Wand of Dereferencing.”
Classic.
They have an Ada version, but not a Lisp version? Foo!
I must be the only geek on earth who’s never coded in Lisp. I’ve heard from many that it’s the AI language. Probably to my benefit to learn sometime.
Well, some people have the misconception that Lisp is only an AI language; it merely happens to have certain attributes that fit the needs of AI very well (dynamic typing, the ability to implement domain-specific languages using macros, code/data equivalency, etc.) I would definitely urge you to give Lisp a try, but to make it stick you need to use an editor which can indent Lisp code properly (such as emacs or a full Lisp environment like clisp or CMUCL), and then you need to forget all the syntactic crap you learned in imperative languages like C and Java. Lisp has very little syntax, which can be disorienting at first if you can’t give up your preconceived notions of what a language looks like.
This book is a pretty good introduction (full text online, even).
“Lisp has very little syntax, which can be disorienting at first if you can’t give up your preconceived notions of what a language looks like.”
Tell me about it. I was spoon-fed Java, and then jumped right into C, Perl, and PHP without much trouble. From what I’ve read of Lisp already, you don’t get much syntax to chew on before you’re implementing something that feels a lot like a stack. Dumping to disk seems much simpler too. I’ll have to play with this for something practical.
Perl in particular is defined almost entirely by its syntax. So many operators and parsing rules — it’s a useful language but I prefer the Lisp way.
I’ll just say one other thing that might help. Most Lisp environments are designed to be used interactively. In C/Java, if you want to experiment with something you might write a little test file, compile, and run it. In Lisp, you just type in the form and it gets evaluated in “real time”. If you take advantage of that programmatic “scratchpad” and get into a more interactive style, you can really make quick progress when playing around with a problem. Difficult to describe until you experience it, I guess.
Where did you take this picture???! Where this place is???! Seems very beautiful!
Don Lapre Albert
webmaster@nanoosenativeplants.org
http://www.nanoosenativeplants.org