3 ms·
Often the information that different brackets and braces would represented in other languages becomes the shape of the s-expressions. I find that easier to pars
by pdkl95 9y ago
Often the information that different brackets and braces would represented in other languages becomes the shape of the s-expressions. I find that easier to parse than most[1] languages. With rainbow-delimiters[2] (example[3]), parsing nested parens becomes far easier.
[1] Ruby is a rare exception.
[2] https://github.com/Fanael/rainbow-delimiters https://github.com/Fanael/rainbow-delimiters
[3] http://i.imgur.com/xS4y6rT.png http://i.imgur.com/xS4y6rT.png
- steinuil 9y agoIn Racket and other Schemes parens and square brackets are interchangeable. The Racket style guide suggests to use square brackets in let- or cond-like expression, or generally any expression with a list of lists of fixed length that are not supposed to be evaluated. The expression you posted would become like this: (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.
- soegaard 9y agoAlso: It is rare to use `do`. #lang racket (require math) (for ([i 100]) (displayln (cond [(divides? 15 i) "FizzBuzz"] [(divides? 3 i) "Fizz"] [(divides? 5 i) "Buzz"] [else i])))