;; 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))