map2list.scm 846 B

12345678910111213141516171819202122232425262728
  1. ;;; SPDX-License-Identifier: MIT
  2. ;;; SPDX-FileCopyrightText: 2020 Wolfgang Corcoran-Mathe
  3. (define bitvector-map->list/int
  4. (case-lambda
  5. ((f bvec) ; fast path
  6. (bitvector-fold-right/int (lambda (xs b) (cons (f b) xs))
  7. '()
  8. bvec))
  9. ((f . bvecs)
  10. (apply bitvector-fold-right/int
  11. (lambda (xs . bs) (cons (apply f bs) xs))
  12. '()
  13. bvecs))))
  14. (define bitvector-map->list/bool
  15. (case-lambda
  16. ((f bvec) ; fast path
  17. (bitvector-fold-right/bool (lambda (xs b) (cons (f b) xs))
  18. '()
  19. bvec))
  20. ((f . bvecs)
  21. (apply bitvector-fold-right/bool
  22. (lambda (xs . bs) (cons (apply f bs) xs))
  23. '()
  24. bvecs))))