aboutsummaryrefslogtreecommitdiff
path: root/racket/leetcode/lc-657-robot-return.rkt
blob: 908605aca2c3f160e03e5dd02c8863b1d1e979d1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#lang racket

(define/contract (judge-circle moves)
  (-> string? boolean?)
  (equal? '(0 0)
          (for/fold ([y-pos 0]
                     [x-pos 0]
                     #:result (list y-pos x-pos))
                    ([move (map string (string->list moves))])
            (values (case move
                      [("U") (add1 y-pos)]
                      [("D") (sub1 y-pos)]
                      [else y-pos])
                    (case move
                      [("L") (add1 x-pos)]
                      [("R") (sub1 x-pos)]
                      [else x-pos])))))