diff options
| author | Jan Tuomi <jans.tuomi@gmail.com> | 2024-03-26 10:03:29 +0200 |
|---|---|---|
| committer | Jan Tuomi <jans.tuomi@gmail.com> | 2024-03-26 21:25:10 +0200 |
| commit | e18c5350969407c6fd09a15bce7d7c622929245f (patch) | |
| tree | f27a68d5d9f277f1cdd667b5ac86dd247c95ab38 /utils.scm | |
| parent | d69143a4be9c79dec92984b844ce9213c79e69ab (diff) | |
Improvements
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 |
