23 行
590 B
Scheme
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))
|