I've been having lots of fun with haskell and forth lately. I'd reccomend looking into them because they encompass a *HUGE* spectrum of compsci concepts - from the highest level functional stuff, down to threaded code compilation, being such elegant and simple languages.