start day07

2016
Matthew Butterick 7 years ago
parent 78d7dfa3ab
commit fe604327c1

File diff suppressed because it is too large Load Diff

@ -0,0 +1,5 @@
#lang aoc-racket/2016/day07
abba[mnop]qrst
abcd[bddb]xyyx
aaaa[qwer]tyui
ioxxoj[asdfgh]zxcvbn

@ -0,0 +1,24 @@
#lang br/quicklang
(module+ reader (provide read-syntax))
(define (read-syntax path port)
(strip-bindings
#`(module mod "day07.rkt"
#,@(for/list ([ip (in-lines port)]
#:when (not (equal? ip "")))
ip))))
(provide (rename-out [mb #%module-begin]))
(define-macro (mb . IPS)
#'(#%module-begin
(length (filter supports-tls? (list . IPS)))
(map supports-tls? (list . IPS))))
(define (supports-tls? x)
(and
(let ([maybe-abbas (regexp-match* #px"(\\w)(\\w)\\2\\1" x)])
(ormap (λ(ma)
(not (equal? (substring ma 0 1) (substring ma 1 2)))) maybe-abbas))
(let ([maybe-bad-abbas (regexp-match* #px"\\[.*((\\w)(\\w)\\3\\2).*\\]" x #:match-select cadr)])
(andmap (λ(ma)
(equal? (substring ma 0 1) (substring ma 1 2))) maybe-bad-abbas))))