Claude Code Plugins

Community-maintained marketplace

Feedback

SRFI Skill

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name srfi
description SRFI Skill
version 1.0.0

SRFI Skill

"SRFIs extend the Scheme programming language. You can help." — srfi.schemers.org

Scheme Requests for Implementation: portable library specifications with GF(3) categorization.

Overview

SRFIs are community-driven specifications that extend Scheme beyond R5RS/R6RS/R7RS. Each SRFI has a unique number, status (draft/final/withdrawn), and reference implementation.

Core SRFIs by Category

Data Structures [MINUS: -1]

SRFI Name Status Key Exports
1 List Library Final fold, unfold, filter, partition
4 Homogeneous Vectors Final u8vector, f64vector, typed arrays
9 Defining Record Types Final define-record-type
14 Character Sets Final char-set, char-set-contains?
69 Basic Hash Tables Final make-hash-table, hash-table-ref
113 Sets and Bags Final set, bag, set-contains?
125 Intermediate Hash Tables Final hash-table-map, comparators
128 Comparators (Reduced) Final make-comparator, comparator-hash
133 Vector Library Final vector-map, vector-fold
146 Mappings Final mapping, functional maps
158 Generators and Accumulators Final make-coroutine-generator

Control Flow [ERGODIC: 0]

SRFI Name Status Key Exports
2 AND-LET* Final and-let* short-circuit binding
8 receive Final receive for multiple values
11 let-values Final let-values, let*-values
18 Multithreading Final make-thread, mutex, condition-variable
34 Exception Handling Final guard, raise
39 Parameter Objects Final make-parameter, parameterize
45 Primitives for Lazy Eval Final delay, force, lazy
124 Ephemerons Final make-ephemeron, weak references
154 First-Class Dynamic Extents Final dynamic-extent, delimited continuations
155 Promises Final delay-force, iterative lazy
226 Control Features Final call/cc, values, dynamic-wind

Syntax & Macros [PLUS: +1]

SRFI Name Status Key Exports
0 Feature-Based Conditionals Final cond-expand
6 Basic String Ports Final open-input-string, get-output-string
26 Cut/Cute Final cut, cute partial application
42 Eager Comprehensions Final list-ec, sum-ec, do-ec
46 Syntax for Multiple Values Final values->list, values->vector
57 Records Withdrawn (superseded by 99, 136)
72 Hygienic Macros Final syntax-case compatible
139 Syntax Parameters Final define-syntax-parameter
147 Custom Macro Transformers Final er-macro-transformer
149 Basic Syntax-Rules Extensions Final _, ... patterns
211 Scheme Macros for Definitions Final define-macro

I/O & System [MINUS: -1]

SRFI Name Status Key Exports
6 Basic String Ports Final in-memory I/O
28 Basic Format Strings Final format
38 External Representation with Cycles Final write/ss, read/ss
48 Intermediate Format Strings Final format with more directives
106 Basic Socket Interface Final make-client-socket, socket-send
170 POSIX API Final file-info, set-file-mode!
180 JSON Final json-read, json-write
192 Port Positioning Final port-position, set-port-position!
193 Command Line Final command-line, option-processor

Numeric [ERGODIC: 0]

SRFI Name Status Key Exports
27 Sources of Random Bits Final random-integer, random-real
60 Integers as Bits Final bitwise-and, bit-set?
94 Type-Restricted Numerics Final fx+, fl*
141 Integer Division Final floor/, ceiling/, truncate/
143 Fixnums Final fx+, fxarithmetic-shift
144 Flonums Final fl+, flsin, flexp
151 Bitwise Ops on Arbitrary Integers Final bitwise-ior, integer-length
166 Monadic Formatting Final format with monadic composition

Testing & Debugging [PLUS: +1]

SRFI Name Status Key Exports
64 A Scheme API for Test Suites Final test-begin, test-equal, test-assert
78 Lightweight Testing Final check, check-ec
219 Define Higher-Order Lambda Final define with curry

Pattern Matching [PLUS: +1]

SRFI Name Status Key Exports
204 Wright-Cartwright-Shinn Pattern Matcher Final match, match-lambda

GF(3) Distribution

MINUS (-1):  Data Structures, I/O & System
ERGODIC (0): Control Flow, Numeric
PLUS (+1):   Syntax & Macros, Testing, Pattern Matching

Conservation: Σ(categories) ≡ 0 (mod 3) when balanced usage

R7RS-Large Libraries (Red/Tangerine Editions)

R7RS-Large incorporates SRFIs as standard libraries:

Red Edition (2019)

  • (scheme list) ← SRFI 1
  • (scheme vector) ← SRFI 133
  • (scheme sort) ← SRFI 132
  • (scheme set) ← SRFI 113
  • (scheme charset) ← SRFI 14
  • (scheme hash-table) ← SRFI 125
  • (scheme ilist) ← SRFI 116
  • (scheme rlist) ← SRFI 101
  • (scheme ideque) ← SRFI 134
  • (scheme text) ← SRFI 135
  • (scheme generator) ← SRFI 158
  • (scheme lseq) ← SRFI 127
  • (scheme stream) ← SRFI 41
  • (scheme box) ← SRFI 111
  • (scheme list-queue) ← SRFI 117
  • (scheme comparator) ← SRFI 128

Tangerine Edition (2021)

  • (scheme bitwise) ← SRFI 151
  • (scheme fixnum) ← SRFI 143
  • (scheme flonum) ← SRFI 144
  • (scheme division) ← SRFI 141
  • (scheme bytevector) ← R6RS
  • (scheme mapping) ← SRFI 146
  • (scheme regex) ← SRFI 115

Implementation Support Matrix

SRFI Chez Chicken Gauche Guile Racket
1
9
18
27
64
125
158
180

SRFI-27: Random Sources (Key for Gay.jl Bridge)

;; SRFI-27 provides the abstraction layer for splittable RNG
(import (srfi 27))

;; Create a random source with specific seed
(define my-source (make-random-source))
(random-source-pseudo-randomize! my-source 1069 42)

;; Get integers and reals
(define rand-int (random-source-make-integers my-source))
(define rand-real (random-source-make-reals my-source))

;; GF(3) trit from random source
(define (random-trit source)
  (- ((random-source-make-integers source) 3) 1))

SRFI-171: Transducers

;; Composable sequence transformations
(import (srfi 171))

;; Filter, map, take composed
(define xform
  (compose
    (tfilter even?)
    (tmap (lambda (x) (* x x)))
    (ttake 5)))

;; Apply to list
(list-transduce xform rcons '(1 2 3 4 5 6 7 8 9 10))
;; => (4 16 36 64 100)

SRFI-204: Pattern Matching

(import (srfi 204))

;; Destructuring with guards
(match '(1 2 3)
  ((x y z) (guard (< x y z)) (list z y x))
  (_ 'no-match))
;; => (3 2 1)

;; Quasiquote patterns
(match '(lambda (x) (+ x 1))
  (`(lambda (,var) (+ ,var 1)) var)
  (_ #f))
;; => x

Integration with Little Schemer

SRFI Little Schemer Concept
1 member?, rember, firsts
9 Atoms as records
27 Y combinator with random exploration
45 Lazy evaluation (Seasoned Ch. 16)
154 Continuations (Seasoned Ch. 13)
171 Collectors as transducers
204 Pattern matching vs cond

Commands

# Search SRFIs by keyword
srfi search "hash table"

# Show SRFI abstract
srfi show 125

# Clone SRFI implementation
srfi clone 171

# Open in browser
srfi open 204

# List all final SRFIs
srfi list --status final

References

Scientific Skill Interleaving

This skill connects to the K-Dense-AI/claude-scientific-skills ecosystem:

Graph Theory

  • networkx [○] via bicomodule
    • Universal graph hub

Bibliography References

  • general: 734 citations in bib.duckdb

Cat# Integration

This skill maps to Cat# = Comod(P) as a bicomodule in the equipment structure:

Trit: 0 (ERGODIC)
Home: Prof
Poly Op: ⊗
Kan Role: Adj
Color: #26D826

GF(3) Naturality

The skill participates in triads satisfying:

(-1) + (0) + (+1) ≡ 0 (mod 3)

This ensures compositional coherence in the Cat# equipment structure.