juniority/util.scm

23 行
590 B
Scheme

(define-module (juniority util)
#:use-module (ice-9 regex)
#:export (log
char?digit?
digit->number
strip-trailing-whitespace
))
(define-syntax log
(syntax-rules ()
((log fmt expr expr1 ...)
(format #t (format #f "~a\n" fmt) expr expr1 ...))
((log expr) (format #t "~a\n" expr))
))
(define (char?digit? ch)
(and (char? ch) (char-numeric? ch)))
(define (digit->number ch)
(- (char->integer ch) (char->integer #\0)))
(define (strip-trailing-whitespace str)
(regexp-substitute #f (string-match "[ ]+$" str) 'pre))