3 ms·
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 a
by samth 12y ago
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 stack traces (although less nice than the ones errortrace provides). Do you not get those?
- bad_login 12y agoFor 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 executed by the expander instead of the one defined by define-syntax. For complex macro i just expand it that's fine. Other point the continuation is hard to grasp, i really understand when i see http://www.infoq.com/presentations/continuations-web-os http://www.infoq.com/presentations/continuations-web-os, the key point that help me is the fact he mentions continuation capture also the exit. Another flaws i didn't mention is messages of typed/racket could be hard to understand especially one involving parametric function, this problem occur time to time in the mailing list. I know you take this kind of problems seriously. A point why i like racket is because it's lexical scoped but also let me precise the portion i want more dynamism in with parameters or with eval + namespace. Racket also miss some tooling the one come in mind is coding standard checker and formater, it could be done with free-identifier=? and have some rules. New macro could write their associated rule as metadata in a submodule. Is it doable, i mean technically not the fact to expect macro writer will write such rules?
- samth 12y agoThanks for the feedback. Certainly there are lots of complicated concepts to learn in the macro system. On 4, if I run this program: https://gist.github.com/8fbc12877e2639c5f94c 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.