SRFIs

SRFIs (Scheme Requests for Implementation, srfi.schemers.org) are community specifications for libraries and features, with reference implementations. There are over 250.

receive (multiple values) Time data types cut / cute (partial application): (map (cut * 2 <>) lst) Basic format Exceptions / conditions Intermediate format Generators and accumulators Pipeline operators (chain)

R7RS-large (in progress) is assembling many SRFIs into a larger standard library (the "Red" and "Tangerine" editions include lists, vectors, sorting, sets, hash tables, comparators, generators, and more).

(import (srfi 26))
(map (cut + 1 <>) '(1 2 3))         ; (2 3 4)
(map (cut list 'a <> 'c) '(1 2))    ; ((a 1 c) (a 2 c))

(import (srfi 2))
(and-let* ((entry (assq 'b '((a . 1) (b . 2))))
           (value (cdr entry))
           ((> value 1)))
  (* value 10))                     ; 20

(import (srfi 28))
(format "~a has ~s items~%" "cart" 3)   ; "cart has 3 items\n"