28 lines
784 B
Scheme
28 lines
784 B
Scheme
;; 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))
|