Outdated egg!

This is an egg for CHICKEN 3, the unsupported old release. You're almost certainly looking for the CHICKEN 4 version of this egg, if it exists.

If it does not exist, there may be equivalent functionality provided by another egg; have a look at the egg index. Otherwise, please consider porting this egg to the current version of CHICKEN.

  1. Outdated egg!
  2. Introduction
  3. Usage
  4. Documentation
    1. group/key
    2. make-</key
  5. Examples
  6. Notes
  7. Bugs and Limitations
  8. Author
  9. License
  10. Requirements
  11. Version history

Introduction

Combinators grab-bag.

Usage

(require-extension combinators)

Documentation

group/key

[procedure] (group/key KEYPROC LYST [EQUALITY equal?])

Groups a LYST of elements by some key attribute. Uses the single-argument KEYPROC to retrieve key values & the EQUALITY procedure to compare them.

Returns a list of grouped elements.

make-</key

[procedure] (make-</key KEYPROC [LESS-THAN <])

Returns a two-argument procedure that uses the single-argument KEYPROC to retrieve key values & the two-argument LESS-THAN procedure to compare them.

Examples

(group/key identity '(1 2 3 3 4 4 4)) ;=> ((1) (2) (3 3) (4 4 4))

(group/key car '((a 1) (a 2) (b 1)))  ;=> '(((a 1) (a 2)) ((b 1)))

(sort '(("a" . 1) ("z" . 3) ("b" . 2)) (make-</key first string-ci<?))
;=> (("a" . 1) ("b" . 2) ("z" . 3))

Notes

Bugs and Limitations

Author

License

Public Domain.

Requirements

Version history

1.0
Hello