4 ms·
I come from a C/Unix shell/Perl background mostly (with a sprinkling of Java). The main stumbling blocks that I found were: 1) oddly-named functions -- rplaca,
by hernan7 17y ago
I come from a C/Unix shell/Perl background mostly (with a sprinkling of Java). The main stumbling blocks that I found were:
1) oddly-named functions -- rplaca, cadaddaddr and the like
2) weird "macho" indentation -- more so than the much-maligned parens. I found that at some points of The Little Lisper, I needed a ruler to make sense of the indentation level. I have hopes that the default 4-column indentation in Clojure will make it much easier for me to learn.
3) strange control flow constructs. Trying to make sense where the condition, if and else clauses begin and end in an "if" can be a pain. More so for "cond" or "do". Combine that with 2), and things become unreadable quite fast.
By the way, none of these would be a showstopper if I had to learn Lisp for work or college. Just that, they made it not worth my time to try to learn it for fun.
Edit: I forgot, tail-call recursion. A single misstep and your CPU and memory footprint go from constant to exponential and/or Ackermaniac.