5 ms·
There are also the extremely "boring" & practical list comprehensions / iterators within racket itself: http://docs.racket-lang.org/reference/for.html http://d
by minikomi 12y ago
There are also the extremely "boring" & practical list comprehensions / iterators within racket itself:
http://docs.racket-lang.org/reference/for.html http://docs.racket-lang.org/reference/for.html
eg. fizzbuzz using for, match:
-> (for ([i (range 1 16)])
(match (list (modulo i 3) (modulo i 5))
[(list 0 0) (displayln "fizzbuzz")]
[(list 0 _) (displayln "fizz")]
[(list _ 0) (displayln "buzz")]
[_ (displayln i)]))
1
2
fizz
4
buzz
fizz
7
8
fizz
buzz
11
fizz
13
14
fizzbuzz
- ktg 12y agoIn for, in-range is faster. http://docs.racket-lang.org/reference/sequences.html?q=in-range#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._in-range%29%29 http://docs.racket-lang.org/reference/sequences.html?q=in-ra... An in-range application can provide better performance for number iteration when it appears directly in a for clause. -> (for ([i (in-range 1 16)]) (match (list (modulo i 3) (modulo i 5)) [(list 0 0) (displayln "fizzbuzz")] [(list 0 _) (displayln "fizz")] [(list _ 0) (displayln "buzz")] [_ (displayln i)]))
- minikomi 12y agoOh, thanks for that :)