diff options
Diffstat (limited to 'src/contrib/prod-bless-srfi.el')
| -rw-r--r-- | src/contrib/prod-bless-srfi.el | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/contrib/prod-bless-srfi.el b/src/contrib/prod-bless-srfi.el new file mode 100644 index 00000000..7511eb5f --- /dev/null +++ b/src/contrib/prod-bless-srfi.el @@ -0,0 +1,29 @@ +;;; prod-bless-sfri --- Super Required Free Ideas -*- lexical-binding: t; -*-
+;;; Commentary:
+;;; Code:
+
+(require 'fig-bless)
+(require 'dash)
+(require 's)
+
+(defvar prod-bless-sfri
+ (list
+ ; irreplacable (within reasonable fuel) functions
+ (cons 'reverse (fig//bless-helper-unary 'reverse))
+ (cons 'concat (fig//bless-helper-binary (lambda (a b) (concat a b))))
+ (cons 'substring (lambda (s) (fig//bless-manage-fuel) (cons (substring (nth 2 s) (cadr s) (car s)) (nthcdr 3 s))))
+ (cons 'contains (fig//bless-helper-binary (lambda (a b) (s-contains? b a)))) ; car needle, cadr haystack
+ (cons 'number (fig//bless-helper-unary 'string-to-number))
+ (cons 'string (fig//bless-helper-unary 'number-to-string))
+ (cons 'random (fig//bless-helper-unary 'random))
+ ; semi-replacable functions
+ (cons 'length (fig//bless-helper-unary 'length))
+ (cons 'bundle (lambda (s) (fig//bless-manage-fuel) (cons (-take (car s) (-drop 1 s)) (-drop (+ (car s) 1) s))))
+ (cons 'split (fig//bless-helper-binary (lambda (a b) (s-split b a))))
+ (cons 'join (fig//bless-helper-binary (lambda (a b) (s-join b a))))
+ (cons 'filter (fig//bless-helper-binary (lambda (a b) (-filter b a))))
+ (cons 'any (fig//bless-helper-binary (lambda (a b) (-any? b a))))
+ (cons 'all (fig//bless-helper-binary (lambda (a b) (-all? b a))))
+ ; replacable (but forthy) functions
+ (cons 'rot (lambda (s) (fig//bless-manage-fuel) (cons (-last-item s) (-butlast s))))
+ (cons 'over (lambda (s) (fig//bless-manage-fuel) (cons (cadr s) s)))))
\ No newline at end of file |
