Earlier quoted context omitted.
I'm glad you like Racket, and you're right about some of the weaknesses, especially in providing guidance and examples for how to do things. I have questions about points 3 and 4. For 3, do you mean it's hard to figure out how the implementation of something works, especially when that something is a complex macro? If so, I can't disagree. For 4, if you just run Racket programs at the command line, you should get sta…
For 4 if i run from the command line (racket 5.93) i just get the contract violation message, which don't provide positional informations, it's not usefull when you have a list contract error with dozen of uses in a file. For 3 i mean the words like 'visiting', 'instantiated', the phases, the syntax transformer there are many things to grasp. For instance i used to believe that phase 1 bindings where the functions ex…
On 4, if I run this program: https://gist.github.com/8fbc12877e2639c5f94c I get a backtrace like this:
[samth@huor:~] r ~/tmp/x.rkt
/: contract violation
expected: number?
given: '(1 2 3 400 500 600)
argument position: 2nd
other arguments...:
6
context...:
/home/samth/tmp/x.rkt: [running body]
There's no other stack frames because `average` is inlined, but if you have more complicated functions you should get more stack frames.