For your brother, I would teach him C before Lisp.
C is mandatory, every programmer knows C, it teaches you about memory management, syscalls… it teaches you how you computer works. Once he gets it, he can start having some fun with the sexiness of Lisp, and he will make less mistake because he knows what's happening behind the scenes. Plus… it's really hard to learn C when you already know Lisp exists. I mean… first you ride a bike, and then a motorcycle.
For my brother, I don't think Haskell is such a good idea. Sure, it's a great language, but maybe too mathematical for his age (he just learned the Thales theorem…).
Thanks for the reply. You mentioned that OCaml was one of your first languages and I guess I assumed that you learned it at a similar age which is not necessarily the case... but that's why I suggested Haskell. Also, I can appreciate that teaching Haskell to a 13 year old can seem a daunting task (for the teacher) but I really do think that under the right tutelage I smart kid could get it (you can get a lot of mileage by just treating it as sort of a SQL dialect). It's also pretty well integrated with at least one Linux distro as far as systems programming goes (http://urchin.earth.li/pipermail/debian-haskell/2006-May/000...).
Good luck with whatever you decide though, he's fortunate to have a brother that's taking the job seriously :)
C is mandatory, every programmer knows C, it teaches you about memory management, syscalls… it teaches you how you computer works. Once he gets it, he can start having some fun with the sexiness of Lisp, and he will make less mistake because he knows what's happening behind the scenes. Plus… it's really hard to learn C when you already know Lisp exists. I mean… first you ride a bike, and then a motorcycle.
For my brother, I don't think Haskell is such a good idea. Sure, it's a great language, but maybe too mathematical for his age (he just learned the Thales theorem…).