2 ms·
Learning another language can mean learning yet another slightly different syntax and API, but sometimes it means learning a fundamentally different model. Lear
by silentbicycle 17y ago
Learning another language can mean learning yet another slightly different syntax and API, but sometimes it means learning a fundamentally different model. Learning Erlang's concurrency model, logic programming, or something completely different like K can be a real eye opener, even if you don't use them directly.
I've been learning Prolog over the summer* , and while I'm not convinced I will make much use of the language directly, it has some really interesting ideas, which are largely usable in Scheme and Lua. For example, I also have a much better understanding of how unification, type inference, etc. work now -- Prolog is a DSL for that sort of thing, and having a good notation helps, much like knowing regular expressions changes the way you think about patterns.
* Via Sterling and Shapiro's _The Art of Prolog_ (which is an excellent text, IMHO) and the relevant chapters of CTM (all the more so).