Get rid of common.scm
This commit is contained in:
parent
880d6c5264
commit
d30947fdec
3 changed files with 18 additions and 40 deletions
|
|
@ -3,8 +3,6 @@
|
|||
(scheme process-context)
|
||||
(scheme write))
|
||||
|
||||
(include "../common.scm")
|
||||
|
||||
(define (direction->arithmetic direction)
|
||||
(cond
|
||||
((char=? direction #\L) -)
|
||||
|
|
@ -55,6 +53,6 @@
|
|||
(+ zeros add-zeros (if (and (zero? dial) (negative? dial+-distance)) -1 0))
|
||||
(read-line)))))))))
|
||||
|
||||
(for-each print (map part1 (command-line-arguments)))
|
||||
(for-each print (map part2 (command-line-arguments)))
|
||||
(for-each (lambda (s) (display s) (newline)) (map part1 (cdr (command-line))))
|
||||
(for-each (lambda (s) (display s) (newline)) (map part2 (cdr (command-line))))
|
||||
|
||||
|
|
|
|||
24
2/main.scm
24
2/main.scm
|
|
@ -5,7 +5,20 @@
|
|||
(scheme process-context)
|
||||
(scheme write))
|
||||
|
||||
(include "../common.scm")
|
||||
(define (string-split str delim?)
|
||||
(let ((in (open-input-string str)))
|
||||
(let loop ((acc '())
|
||||
(out (open-output-string)))
|
||||
(let ((c (read-char in)))
|
||||
(cond
|
||||
((eof-object? c)
|
||||
(reverse (cons (get-output-string out) acc)))
|
||||
((delim? c)
|
||||
(loop (cons (get-output-string out) acc)
|
||||
(open-output-string)))
|
||||
(else
|
||||
(write-char c out)
|
||||
(loop acc out)))))))
|
||||
|
||||
(define powers-of-ten
|
||||
#(1 10 100 1000 10000 100000 1000000 10000000 100000000 1000000000 10000000000))
|
||||
|
|
@ -71,10 +84,5 @@
|
|||
(newline))
|
||||
(loop (cdr ranges) (+ sum (sumfn (string->number (caar ranges)) (string->number (cadar ranges)))))))))
|
||||
|
||||
(for-each (lambda (file) (part file sum-invalid-in-range-part1)) (command-line-arguments))
|
||||
(for-each (lambda (file) (part file sum-invalid-in-range-part2)) (command-line-arguments))
|
||||
|
||||
|
||||
;; (print (number->string (sum-invalid-in-range 11 22)))
|
||||
|
||||
#;(for-each print (map part2 (command-line-arguments)))
|
||||
(for-each (lambda (file) (part file sum-invalid-in-range-part1)) (cdr (command-line)))
|
||||
(for-each (lambda (file) (part file sum-invalid-in-range-part2)) (cdr (command-line)))
|
||||
|
|
|
|||
28
common.scm
28
common.scm
|
|
@ -1,28 +0,0 @@
|
|||
;; Shitty print for convenience
|
||||
(define (print . args)
|
||||
(display (apply string-append args))
|
||||
(newline))
|
||||
|
||||
;; Chicken command-line-arguments for no reason at all
|
||||
(define (command-line-arguments)
|
||||
(cdr (command-line)))
|
||||
|
||||
;; Guile string-split
|
||||
(define (string-split str delim?)
|
||||
(let ((in (open-input-string str)))
|
||||
(let loop ((acc '())
|
||||
(out (open-output-string)))
|
||||
(let ((c (read-char in)))
|
||||
(cond
|
||||
((eof-object? c)
|
||||
(reverse (cons (get-output-string out) acc)))
|
||||
((delim? c)
|
||||
(loop (cons (get-output-string out) acc)
|
||||
(open-output-string)))
|
||||
(else
|
||||
(write-char c out)
|
||||
(loop acc out)))))))
|
||||
|
||||
;; Reverse for-each, for convenience
|
||||
(define (xfor-each1 lst fn)
|
||||
(for-each fn lst))
|
||||
Loading…
Add table
Add a link
Reference in a new issue