diff options
| author | Mistivia <i@mistivia.com> | 2024-02-20 00:42:16 +0800 |
|---|---|---|
| committer | Mistivia <i@mistivia.com> | 2024-02-20 00:42:16 +0800 |
| commit | bebb8946d29069b2acb10db71c8c9203ed4ae922 (patch) | |
| tree | 66ee2e321cbb413baaf32661195f2c734546eba0 /advent-of-code/2023/05 | |
| parent | 3a4e5447a79096d813cdaf4498b9a1e2c086b7ff (diff) | |
λ looks cool & format code
Diffstat (limited to 'advent-of-code/2023/05')
| -rwxr-xr-x | advent-of-code/2023/05/1.rkt | 32 | ||||
| -rwxr-xr-x | advent-of-code/2023/05/2.rkt | 86 |
2 files changed, 59 insertions, 59 deletions
diff --git a/advent-of-code/2023/05/1.rkt b/advent-of-code/2023/05/1.rkt index f0ad5ed..352e10c 100755 --- a/advent-of-code/2023/05/1.rkt +++ b/advent-of-code/2023/05/1.rkt @@ -2,11 +2,11 @@ (define port (open-input-file "input")) -(define seed +(define seed (let () - (define nums-str + (define nums-str (string-trim - (list-ref (string-split (read-line port) ":") 1))) + (list-ref (string-split (read-line port) ":") 1))) (map string->number (string-split nums-str " ")))) (begin (read-line port) (void)) @@ -19,9 +19,9 @@ (define (loop ret) (define line (string-trim (read-line-convert-eof port))) (if (= 0 (string-length line)) - (reverse ret) - (loop (cons (map string->number (string-split line " ")) - ret)))) + (reverse ret) + (loop (cons (map string->number (string-split line " ")) + ret)))) (read-line port) (loop '())) @@ -38,16 +38,16 @@ (define (mapper x) (define (loop the-map) (if (null? the-map) - x - (let () - (define cur-map (car the-map)) - (define target (car cur-map)) - (define start (cadr cur-map)) - (define len (caddr cur-map)) - (if (and (>= x start) - (<= x (+ start len))) - (+ target (- x start)) - (loop (cdr the-map)))))) + x + (let () + (define cur-map (car the-map)) + (define target (car cur-map)) + (define start (cadr cur-map)) + (define len (caddr cur-map)) + (if (and (>= x start) + (<= x (+ start len))) + (+ target (- x start)) + (loop (cdr the-map)))))) (loop the-map)) mapper) diff --git a/advent-of-code/2023/05/2.rkt b/advent-of-code/2023/05/2.rkt index 5024c1e..8e39c40 100755 --- a/advent-of-code/2023/05/2.rkt +++ b/advent-of-code/2023/05/2.rkt @@ -2,24 +2,24 @@ (define port (open-input-file "input")) -(define seed +(define seed (let () - (define nums-str + (define nums-str (string-trim - (list-ref (string-split (read-line port) ":") 1))) + (list-ref (string-split (read-line port) ":") 1))) (define (pairing l) (define (loop ret l) (if (null? l) - ret - (loop - (cons (cons - (car l) + ret + (loop + (cons (cons + (car l) (+ (car l) (cadr l))) - ret) - (cddr l)))) + ret) + (cddr l)))) (loop '() l)) - (reverse - (pairing (map string->number (string-split nums-str " ")))))) + (reverse + (pairing (map string->number (string-split nums-str " ")))))) (begin (read-line port) (void)) @@ -31,9 +31,9 @@ (define (loop ret) (define line (string-trim (read-line-convert-eof port))) (if (= 0 (string-length line)) - (sort (reverse ret) (lambda (x y) (< (cadr x) (cadr y)))) - (loop (cons (map string->number (string-split line " ")) - ret)))) + (sort (reverse ret) (λ (x y) (< (cadr x) (cadr y)))) + (loop (cons (map string->number (string-split line " ")) + ret)))) (read-line port) (loop '())) @@ -53,40 +53,40 @@ (define start (car r)) (define end (cdr r)) (if (null? mlist) - (cons r result) - (let () - (define cur-map (car mlist)) - (define map-target (car cur-map)) - (define map-start (cadr cur-map)) - (define map-end (+ map-start (caddr cur-map))) - (define offset (- map-target map-start)) - (define (pair-offset p) (cons (+ offset (car p)) (+ offset (cdr p)))) - (cond ((<= end start) - result) - ((>= start map-end) - (loop result (cdr mlist) r)) - ((>= start map-start) - (loop - (cons (pair-offset (cons start (min end map-end))) - result) - (cdr mlist) - (cons (min end map-end) end))) - ((<= end map-start) - (cons r result)) - ((< start map-start) - (loop - (cons (cons start map-start) result) - mlist - (cons map-start end))) - (else (error "unhandled cond in range-map")))))) + (cons r result) + (let () + (define cur-map (car mlist)) + (define map-target (car cur-map)) + (define map-start (cadr cur-map)) + (define map-end (+ map-start (caddr cur-map))) + (define offset (- map-target map-start)) + (define (pair-offset p) (cons (+ offset (car p)) (+ offset (cdr p)))) + (cond ((<= end start) + result) + ((>= start map-end) + (loop result (cdr mlist) r)) + ((>= start map-start) + (loop + (cons (pair-offset (cons start (min end map-end))) + result) + (cdr mlist) + (cons (min end map-end) end))) + ((<= end map-start) + (cons r result)) + ((< start map-start) + (loop + (cons (cons start map-start) result) + mlist + (cons map-start end))) + (else (error "unhandled cond in range-map")))))) (reverse (loop '() mlist r))) (define (gen-range-mapper the-map) (define (mapper range-list) (apply append - (map - (lambda (range) - (range-map the-map range)) + (map + (λ (range) + (range-map the-map range)) range-list))) mapper) |
