blob: 7511eb5fbd2d7c9321f240b47a27b5ddf5236baa (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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)))))
|