mes: Add list-index.
* module/srfi/srfi-1.scm (list-index): New function.
This commit is contained in:
parent
2c0f5c346c
commit
01b4c0846b
|
@ -65,6 +65,21 @@
|
||||||
(else
|
(else
|
||||||
(and (pred (car ls)) (lp (cdr ls)))))))
|
(and (pred (car ls)) (lp (cdr ls)))))))
|
||||||
|
|
||||||
|
(define (list-index pred clist1 . rest)
|
||||||
|
(if (null? rest)
|
||||||
|
(let lp ((l clist1) (i 0))
|
||||||
|
(if (null? l)
|
||||||
|
#f
|
||||||
|
(if (pred (car l))
|
||||||
|
i
|
||||||
|
(lp (cdr l) (+ i 1)))))
|
||||||
|
(let lp ((lists (cons clist1 rest)) (i 0))
|
||||||
|
(cond ((any1 null? lists)
|
||||||
|
#f)
|
||||||
|
((apply pred (map car lists)) i)
|
||||||
|
(else
|
||||||
|
(lp (map cdr lists) (+ i 1)))))))
|
||||||
|
|
||||||
;;; Set operations on lists
|
;;; Set operations on lists
|
||||||
|
|
||||||
(define (lset-union = . rest)
|
(define (lset-union = . rest)
|
||||||
|
|
Loading…
Reference in a new issue