Replace amap/afilter/afor-each with alambda, lambda which destructures a pair into two args
This commit is contained in:
22
d-.scm
22
d-.scm
@@ -15,9 +15,7 @@
|
||||
upply
|
||||
conjoin
|
||||
distinct?
|
||||
amap
|
||||
afilter
|
||||
afor-each
|
||||
alambda
|
||||
generator
|
||||
macro-expand
|
||||
amb
|
||||
@@ -106,17 +104,13 @@
|
||||
(and (not (any (lambda (x) (equal? (car a) x)) (cdr a)))
|
||||
(apply distinct? (cdr a)))))
|
||||
|
||||
(define (amap f l)
|
||||
"Same as (map f l) but passes car and cdr to the function"
|
||||
(map (lambda (kons) (f (car kons) (cdr cons))) l))
|
||||
|
||||
(define (afilter f l)
|
||||
"Same as (filter f l) but passes car and cdr to the function"
|
||||
(filter (lambda (kons) (f (car kons) (cdr cons))) l))
|
||||
|
||||
(define (afor-each f l)
|
||||
"Same as (for-each f l) but passes car and cdr to the function"
|
||||
(for-each (lambda (kons) (f (car kons) (cdr cons))) l))
|
||||
(define-syntax alambda
|
||||
(syntax-rules ()
|
||||
[(alambda (kar kdr) body ...)
|
||||
(lambda (kons)
|
||||
(let ([kar (car kons)]
|
||||
[kdr (cdr kons)])
|
||||
body ...))]))
|
||||
|
||||
;; Shamelessly ripped from https://wingolog.org/archives/2013/02/25/on-generators
|
||||
(define (make-generator f)
|
||||
|
||||
Reference in New Issue
Block a user