summaryrefslogtreecommitdiffstats
path: root/utils.scm
diff options
context:
space:
mode:
Diffstat (limited to 'utils.scm')
-rw-r--r--utils.scm36
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