mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-18 21:29:19 +02:00
Add (rnrs lists)
This commit is contained in:
parent
472c728c46
commit
d61e9162f7
1 changed files with 35 additions and 0 deletions
35
lib/rnrs/lists.sld
Normal file
35
lib/rnrs/lists.sld
Normal file
|
@ -0,0 +1,35 @@
|
|||
(library (rnrs lists)
|
||||
(export find
|
||||
(rename every for-all)
|
||||
(rename any exists)
|
||||
filter partition
|
||||
fold-left
|
||||
fold-right
|
||||
(rename remove remp)
|
||||
(rename rnrs:remove remove)
|
||||
remv
|
||||
remq
|
||||
(rename find-tail memp)
|
||||
member
|
||||
memv
|
||||
memq
|
||||
assp
|
||||
assoc
|
||||
assv
|
||||
assq
|
||||
cons*)
|
||||
(import (scheme base)
|
||||
(srfi 1))
|
||||
|
||||
(define (fold-left kons knil . lss)
|
||||
(apply fold
|
||||
(lambda args
|
||||
(apply kons (last args) (drop-right args 1)))
|
||||
knil lss))
|
||||
|
||||
(define (rnrs:remove obj ls) (remove (lambda (x) (equal? x obj)) ls))
|
||||
(define (remv obj ls) (remove (lambda (x) (eqv? x obj)) ls))
|
||||
(define (remq obj ls) (remove (lambda (x) (eq? x obj)) ls))
|
||||
|
||||
(define (assp proc alist)
|
||||
(find (lambda (x) (proc (car x))) alist)))
|
Loading…
Add table
Reference in a new issue