Scheme is beautiful, but it sacrifices usability for purity. Common Lisp, on the other hand, is usually held to be both "ugly" and "better for real work(tm)".
Here's a nice blog post that highlights the practicality issue with Scheme's design.
http://arcanesentiment.blogspot.co.uk/2015/01/if-scheme-were...
That post complains about numerical tower not belonging to some library and being more generic. I don't understand how that is more/less practical.
Common-lisp also has a numerical tower afaik. I don't understand how does that make it "better for real work(tm)".
There are languages that allow user-defined syntax and aren't only parenthesis/s-expressions, so arguing one requires the other is a false dichotomy.
Some people also find it very hard to memorize bazillion syntax rules.
Comparing understanding scheme is equivalent to "divination by tarot cards" is a bit ridiculous, don't you think?
Sure sounded like it:
"compared to bazillion new keywords that can't be used by user programs"
> Comparing understanding scheme is equivalent to "divination by tarot cards" is a bit ridiculous, don't you think?
I never said otherwise.
[1] Ruby is a rare exception.
(do ([i 1 (+ i 1)])
((> i 100))
(display
(cond [(= 0 (modulo i 15)) "FizzBuzz"]
[(= 0 (modulo i 3)) "Fizz"]
[(= 0 (modulo i 5)) "Buzz"]
[else i]))
(newline))
I personally think this helps a lot with the problem of parsing s-expressions visually. #lang racket
(require math)
(for ([i 100])
(displayln
(cond [(divides? 15 i) "FizzBuzz"]
[(divides? 3 i) "Fizz"]
[(divides? 5 i) "Buzz"]
[else i])))