# SRFI

These are the [SRFI](https://srfi.schemers.org) libraries supported by LispKit and thus are included in LispPad and LispPad Go:

* [SRFI 1: List Library](https://srfi.schemers.org/srfi-1/srfi-1.html)
* [SRFI 2: AND-LET\* - an AND with local bindings, a guarded LET\* special form](https://srfi.schemers.org/srfi-2/srfi-2.html)
* [SRFI 6: Basic String Ports](https://srfi.schemers.org/srfi-6/srfi-6.html)
* [SRFI 8: receive - Binding to multiple values](https://srfi.schemers.org/srfi-8/srfi-8.html)
* [SRFI 9: Defining Record Types](https://srfi.schemers.org/srfi-9/srfi-9.html)
* [SRFI 11: Syntax for receiving multiple values](https://srfi.schemers.org/srfi-11/srfi-11.html)
* [SRFI 14: Character-set library](https://srfi.schemers.org/srfi-14/srfi-14.html)
* [SRFI 16: Syntax for procedures of variable arity](https://srfi.schemers.org/srfi-16/srfi-16.html)
* [SRFI 17: Generalized set!](https://srfi.schemers.org/srfi-17/srfi-17.html)
* [SRFI 18: Multithreading support](https://srfi.schemers.org/srfi-18/srfi-18.html)
* [SRFI 19: Time Data Types and Procedures](https://srfi.schemers.org/srfi-19/srfi-19.html)
* [SRFI 23: Error reporting mechanism](https://srfi.schemers.org/srfi-23/srfi-23.html)
* [SRFI 26: Notation for Specializing Parameters without Currying](https://srfi.schemers.org/srfi-26/srfi-26.html)
* [SRFI 27: Sources of Random Bits](https://srfi.schemers.org/srfi-27/srfi-27.html)
* [SRFI 28: Basic Format Strings](https://srfi.schemers.org/srfi-28/srfi-28.html)
* [SRFI 31: A special form rec for recursive evaluation](https://srfi.schemers.org/srfi-31/srfi-31.html)
* [SRFI 33: Integer Bitwise-operation Library](https://srfi.schemers.org/srfi-33/srfi-33.html)
* [SRFI 34: Exception Handling for Programs](https://srfi.schemers.org/srfi-34/srfi-34.html)
* [SRFI 35: Conditions](https://srfi.schemers.org/srfi-35/srfi-35.html)
* [SRFI 39: Parameter objects](https://srfi.schemers.org/srfi-39/srfi-39.html)
* [SRFI 41: Streams](https://srfi.schemers.org/srfi-41/srfi-41.html)
* [SRFI 46: Basic Syntax-rules Extensions](https://srfi.schemers.org/srfi-46/srfi-46.html)
* [SRFI 48: Intermediate Format Strings](https://srfi.schemers.org/srfi-48/srfi-48.html)
* [SRFI 51: Handling rest list](https://srfi.schemers.org/srfi-51/srfi-51.html)
* [SRFI 54: Formatting](https://srfi.schemers.org/srfi-54/srfi-54.html)
* [SRFI 55: require-extension](https://srfi.schemers.org/srfi-55/srfi-55.html)
* [SRFI 63: Homogeneous and Heterogeneous Arrays](https://srfi.schemers.org/srfi-63/srfi-63.html)
* [SRFI 64: A Scheme API for test suites](https://srfi.schemers.org/srfi-64/srfi-64.html)
* [SRFI 69: Basic hash tables](https://srfi.schemers.org/srfi-69/srfi-69.html)
* [SRFI 87: `=>` in case clauses](https://srfi.schemers.org/srfi-87/srfi-87.html)
* [SRFI 95: Sorting and Merging](https://srfi.schemers.org/srfi-95/srfi-95.html)
* [SRFI 98: An interface to access environment variables](https://srfi.schemers.org/srfi-98/srfi-98.html)
* [SRFI 101: Purely Functional Random-Access Pairs and Lists](https://srfi.schemers.org/srfi-101/srfi-101.html)
* [SRFI 102: Procedure Arity Inspection](https://srfi.schemers.org/srfi-102/srfi-102.html)
* [SRFI 111: Boxes](https://srfi.schemers.org/srfi-111/srfi-111.html)
* [SRFI 112: Environment inquiry](https://srfi.schemers.org/srfi-112/srfi-112.html)
* [SRFI 113: Sets and bags](https://srfi.schemers.org/srfi-113/srfi-113.html)
* [SRFI 118: Simple adjustable-size strings](https://srfi.schemers.org/srfi-118/srfi-118.html)
* [SRFI 121: Generators](https://srfi.schemers.org/srfi-121/srfi-121.html)
* [SRFI 125: Intermediate hash tables](https://srfi.schemers.org/srfi-125/srfi-125.html)
* [SRFI 128: Comparators](https://srfi.schemers.org/srfi-128/srfi-128.html)
* [SRFI 129: Titlecase procedures](https://srfi.schemers.org/srfi-129/srfi-129.html)
* [SRFI 132: Sort Libraries](https://srfi.schemers.org/srfi-132/srfi-132.html)
* [SRFI 133: Vector Library](https://srfi.schemers.org/srfi-133/srfi-133.html)
* [SRFI 134: Immutable Deques](https://srfi.schemers.org/srfi-134/srfi-134.html)
* [SRFI 135: Immutable Texts](https://srfi.schemers.org/srfi-135/srfi-135.html)
* [SRFI 137: Minimal Unique Types](https://srfi.schemers.org/srfi-137/srfi-137.html)
* [SRFI 141: Integer division](https://srfi.schemers.org/srfi-141/srfi-141.html)
* [SRFI 142: Bitwise Operations](https://srfi.schemers.org/srfi-142/srfi-142.html)
* [SRFI 143: Fixnums](https://srfi.schemers.org/srfi-143/srfi-143.html)
* [SRFI 144: Flonums](https://srfi.schemers.org/srfi-144/srfi-144.html)
* [SRFI 145: Assumptions](https://srfi.schemers.org/srfi-145/srfi-145.html)
* [SRFI 146: Mappings](https://srfi.schemers.org/srfi-146/srfi-146.html)
* [SRFI 149: Basic syntax-rules Template Extensions](https://srfi.schemers.org/srfi-149/srfi-149.html)
* [SRFI 151: Bitwise Operations](https://srfi.schemers.org/srfi-151/srfi-151.html)
* [SRFI 152: String Library](https://srfi.schemers.org/srfi-152/srfi-152.html)
* [SRFI 154: First-class dynamic extents](https://srfi.schemers.org/srfi-154/srfi-154.html)
* [SRFI 155: Promises](https://srfi.schemers.org/srfi-155/srfi-155.html)
* [SRFI 158: Generators and Accumulators](https://srfi.schemers.org/srfi-158/srfi-158.html)
* [SRFI 161: Unifiable Boxes](https://srfi.schemers.org/srfi-161/srfi-161.html)
* [SRFI 162: Comparators sublibrary](https://srfi.schemers.org/srfi-162/srfi-162.html)
* [SRFI 165: The Environment Monad](https://srfi.schemers.org/srfi-165/srfi-165.html)
* [SRFI 166: Monadic Formatting](https://srfi.schemers.org/srfi-166/srfi-166.html)
* [SRFI 167: Ordered Key Value Store](https://srfi.schemers.org/srfi-167/srfi-167.html)
* [SRFI 173: Hooks](https://srfi.schemers.org/srfi-173/srfi-173.html)
* [SRFI 174: POSIX Timespecs](https://srfi.schemers.org/srfi-174/srfi-174.html)
* [SRFI 175: ASCII Character Library](https://srfi.schemers.org/srfi-175/srfi-175.html)
* [SRFI 177: Portable keyword arguments](https://srfi.schemers.org/srfi-177/srfi-177.html)
* [SRFI 180: JSON](https://srfi.schemers.org/srfi-180/srfi-180.html)
* [SRFI 189: Maybe and Either: optional container types](https://srfi.schemers.org/srfi-189/srfi-189.html)
* [SRFI 194: Random data generators](https://srfi.schemers.org/srfi-194/srfi-194.html)
* [SRFI 195: Multiple-value boxes](https://srfi.schemers.org/srfi-195/srfi-195.html)
* [SRFI 196: Range Objects](https://srfi.schemers.org/srfi-196/srfi-196.html)
* [SRFI 204: Wright-Cartwright-Shinn pattern matcher](https://srfi.schemers.org/srfi-204/srfi-204.html)
* [SRFI 208: NaN procedures](https://srfi.schemers.org/srfi-208/srfi-208.html)
* [SRFI 209: Enums and Enum Sets](https://srfi.schemers.org/srfi-209/srfi-209.html)
* [SRFI 210: Procedures and Syntax for Multiple Values](https://srfi.schemers.org/srfi-210/srfi-210.html)
* [SRFI 214: Flexvectors](https://srfi.schemers.org/srfi-214/srfi-214.html)
* [SRFI 215: Central log exchange](https://srfi.schemers.org/srfi-215/srfi-215.html)
* [SRFI 216: SICP Prerequisites](https://srfi.schemers.org/srfi-216/srfi-216.html)
* [SRFI 217: Integer sets](https://srfi.schemers.org/srfi-217/srfi-217.html)
* [SRFI 219: Define higher-order lambda](https://srfi.schemers.org/srfi-219/srfi-219.html)
* [SRFI 221: Generator/accumulator sub-library](https://srfi.schemers.org/srfi-221/srfi-221.html)
* [SRFI 222: Compound objects](https://srfi.schemers.org/srfi-222/srfi-222.html)
* [SRFI 223: Generalized binary search procedures](https://srfi.schemers.org/srfi-223/srfi-223.html)
* [SRFI 224: Integer mappings](https://srfi.schemers.org/srfi-224/srfi-224.html)
* [SRFI 227: Optional Arguments](https://srfi.schemers.org/srfi-227/srfi-227.html)
* [SRFI 228: Composing Comparators](https://srfi.schemers.org/srfi-228/srfi-228.html)
* [SRFI 229: Tagged procedures](https://srfi.schemers.org/srfi-229/srfi-229.html)
* [SRFI 230: Atomic Operations](https://srfi.schemers.org/srfi-230/srfi-230.html)
* [SRFI 232: Flexible curried procedures](https://srfi.schemers.org/srfi-232/srfi-232.html)
* [SRFI 233: INI files](https://srfi.schemers.org/srfi-233/srfi-233.html)
* [SRFI 236: Evaluating expressions in an unspecified order](https://srfi.schemers.org/srfi-236/srfi-236.html)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.lisppad.app/libraries/srfi.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
