3 ms·
For me lisp in general was like that. But I just kept on until it clicked (mainly because I was getting sick of hearing all the hype and wanted to fully underst
by kls 10y ago
For me lisp in general was like that. But I just kept on until it clicked (mainly because I was getting sick of hearing all the hype and wanted to fully understand what all the fuss was about). A lot of people talk about when lisp clicks its an ahh-haa moment much like when your first programming language clicks and that is the best way to describe it. When it finally clicks it clicks but you have to put aside so much C rooted concepts and just keep beating Lisp concepts into your head until it clicks.
I once heard C described as learning programming in the constraint of time (e.g A happens first then B) where lisp executes in distance or space (e.g A happens over here and B happens over there). It's probably the best way to describe it but it does not click to somebody that is still thinking in time. It just seems weird and painful. Because you can't do things the way your brain thinks they should do them in the constrain of time.
It finally clicked for me when I build a simple file parser and I think that is a great project to use to understand a lisp.
- terragon 10y agoWould you recommend I start playing around with Lisp before I do clojure?
- grzm 10y agoThere's really no need. Most of the Clojure material out there doesn't assume or require Lisp knowledge. Unless you're interested in specifically learning Lisp, of course.
- kls 10y agoeither or, Clojure has more of a focus on functional programming and immutability than some other lisp implementations but honestly they don't really get in the way and most lisp lean that way anyways. Personally I would say stick to Clojure or CL as there is a wealth of information and libs available for those two. Others will differ but once you know one it's a matter of style and conventions to adopt a different implementation (until you get under the hood)
- straws 10y agoI've found http://www.ccs.neu.edu/home/matthias/HtDP2e/ http://www.ccs.neu.edu/home/matthias/HtDP2e/ to be the best resource to drill the "code as data" mindset necessary for Lisp programming. And I would recommend going through as many exercises in http://sarabander.github.io/sicp/ http://sarabander.github.io/sicp/ as possible using the Racket IDE: https://docs.racket-lang.org/sicp-manual/index.html https://docs.racket-lang.org/sicp-manual/index.html
- zerr 10y ago> For me lisp in general was like that. But I just kept on until it clicked Not sure this is the right way... I mean, everything will "click" if you do the same, e.g. VB6, but do you want this?
- zdkl 10y agoSome (me included) would argue the value is in learning a new notation for thought/program execution. Talking about the Lisp way kinda feels like converting someone to the dark side, especially with clojure. The mental model is what needs to click, not the language.