PeaceUnderTree An attempt at reformatting your code (something may be off as I'm not familiar with Racket):
(require megaparsack megaparsack/text)
(require data/monad)
(require data/applicative)
(define (bool-to-int b)
(or (and b 1) 0))
(define (count-clicks start rotation)
(let* ([full-rotations (quotient rotation 100)]
[rotation-left (- rotation (* full-rotations 100))]
[left-over-0 (cond [(zero? rotation-left) 0]
[(positive? rotation-left) ((+ rotation-left start) . >= . 100)]
[else ((+ rotation-left start) . <= . 0)])])
(+ (abs full-rotations) (if [zero? start] 0 (bool-to-int left-over-0)))))
(define (solve-1 file-name)
(let ([pointing-at 50]
[num-of-zeros 0])
(for ([line (file->lines file-name)])
(let ([change (parse-result! (parse-string parse-line/p line))])
(set! pointing-at (modulo (+ pointing-at change) 100))
(set! num-of-zeros (+ num-of-zeros (bool-to-int (zero? pointing-at))))))
num-of-zeros))
(define (solve-2 file-name)
(let ([pointing-at 50]
[clicks-over-0 empty])
(for ([line (file->lines file-name)])
(let ([change (parse-result! (parse-string parse-line/p line))])
(set! clicks-over-0 (cons (count-clicks pointing-at change) clicks-over-0))
(set! pointing-at (modulo (+ pointing-at change) 100))))
(foldr + 0 clicks-over-0)))
(define right/p
(do (char/p #\R)
(pure +1)))
(define left/p
(do (char/p #\L)
(pure -1)))
(define parse-line/p
(do [sign <- (or/p right/p left/p)]
[val <- integer/p]
(pure (* sign val))))
(solve-1 "input.txt")
(solve-2 "input.txt")
In the post editor you can use Markdown formatting like this:
```lisp
(your-code goes-here)
```