I did a little recreational Racket programming today. Emacs' racket-mode is pretty good, and I prefer it over DrRacket.
https://www.racket-mode.com/
If I used it more regularly, I'd probably bind some more keys beyond the default though. At least C-M-x is bound to racket-send-definition.
;; Convert degrees to radians
(define (radians degree)
(* degree (/ pi 180)))
;; https://www.mathsisfun.com/polar-cartesian-coordinates.html
(define (coord length degree)
(list (* length (cos (radians degree)))
(* length (sin (radians degree)))))
;; algorithmically generate
(define (rays [count 4] [length 100])
(let* ([width (/ 360 (* 2 count))]
[initial (- 0 (/ width 2))])
(for/fold ([posns '()])
([i (range count)])
(append posns (list (list 0 0)
(coord length (- (* (* 2 i) width) (/ width 2)))
(coord length (+ (* (* 2 i) width) (/ width 2))))))))