diff options
Diffstat (limited to 'utils.scm')
| -rw-r--r-- | utils.scm | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/utils.scm b/utils.scm new file mode 100644 index 0000000..0d10b6d --- /dev/null +++ b/utils.scm @@ -0,0 +1,36 @@ +(module utils * + (import scheme + (chicken base) + (chicken irregex) + matchable) + + (define-syntax λ + (syntax-rules () + ((_ expr ...) + (lambda expr ...)))) + + (define-syntax @ + (syntax-rules () + ((_ fn-body expr ...) + (lambda (x) (fn-body expr ... x))))) + + (define (last lst) + (if (null? (cdr lst)) + (car lst) + (last (cdr lst)))) + + (define (pipe x . fns) + (match fns + [() x] + [(fn . rest) (apply pipe (fn x) rest)])) + + (define (flow . fns) + (lambda (x) (apply pipe x fns))) + + (define (replace irx replacement in) + (irregex-replace irx in replacement)) + + (define (replace-all irx replacement in) + (irregex-replace/all irx in replacement)) + ) +q |
