The transducers Reference Manual

This is the transducers Reference Manual, version 1.0.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 15:48:11 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 transducers

Ergonomic, efficient data processing.

Author

Colin Woodbury <>

License

LGPL-3.0-only

Version

1.0.0

Dependency

sycamore (system).

Source

transducers.asd.

Child Component

transducers (module).


3 Modules

Modules are listed depth-first from the system components tree.


3.1 transducers/transducers

Source

transducers.asd.

Parent Component

transducers (system).

Child Components

4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


4.1 Lisp


4.1.1 transducers/transducers.asd

Source

transducers.asd.

Parent Component

transducers (system).

ASDF Systems

transducers.


4.1.2 transducers/transducers/transducers.lisp

Source

transducers.asd.

Parent Component

transducers (module).

Packages

transducers.

Public Interface
Internals

4.1.3 transducers/transducers/reducers.lisp

Source

transducers.asd.

Parent Component

transducers (module).

Public Interface

4.1.4 transducers/transducers/sources.lisp

Source

transducers.asd.

Parent Component

transducers (module).

Public Interface
Internals

4.1.5 transducers/transducers/entry.lisp

Source

transducers.asd.

Parent Component

transducers (module).

Public Interface

transduce (generic function).

Internals

4.1.6 transducers/transducers/conditions.lisp

Source

transducers.asd.

Parent Component

transducers (module).

Public Interface
Internals

4.1.7 transducers/transducers/utils.lisp

Source

transducers.asd.

Parent Component

transducers (module).

Public Interface
Internals

5 Packages

Packages are listed by definition order.


5.1 transducers

Ergonomic, efficient data processing.

Source

transducers.lisp.

Use List

common-lisp.

Public Interface
Internals

6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


6.1 Public Interface


6.1.1 Macros

Macro: all (pred)

Deprecated: Use ‘allp’.

Package

transducers.

Source

reducers.lisp.

Macro: any (pred)

Deprecated: Use ‘anyp’.

Package

transducers.

Source

reducers.lisp.


6.1.2 Ordinary functions

Function: allp (pred)

Reducer: Yield non-NIL if all elements of the transduction satisfy PRED. Short-circuits with NIL if any element fails the test.

Package

transducers.

Source

reducers.lisp.

Function: anyp (pred)

Reducer: Yield non-NIL if any element in the transduction satisfies PRED. Short-circuits the transduction as soon as the condition is met.

Package

transducers.

Source

reducers.lisp.

Function: average (&optional acc input)

Reducer: Calculate the average value of all numeric elements in a transduction.

Package

transducers.

Source

reducers.lisp.

Function: branch (pred ta tb)

Transducer: If a PRED yields non-NIL on a value, proceed with transducer chain TA. Otherwise, follow chain TB. This produces a kind of diamond pattern of data flow within the transduction:

/4a-5a-6a\
1-2-3 7-8-9
\4b-5b—/

Assuming that TA here is some composition of three transducer steps, and TB is a composition of two. Naturally, if you have other steps beyond the fork (Step 7 above), you should make sure that they can handle the return values of both sides!

(transduce (comp (map #’1+)
(branch #’evenp
(map (comp #’write-to-string #’1+))
(map (const "Odd!")))
(map #’length))
#’cons (range 1 6))
=> (1 4 1 4 1)

Package

transducers.

Source

transducers.lisp.

Function: comp (function &rest functions)

Function composition.

(funcall (comp #’1+ #’length) "foo") == (1+ (length "foo"))

Package

transducers.

Source

utils.lisp.

Function: concatenate (reducer)

Transducer: Concatenate all the sublists in the transduction.

Package

transducers.

Source

transducers.lisp.

Function: cons (&optional acc input)

Reducer: Collect all results as a list.

Package

transducers.

Source

reducers.lisp.

Function: const (item)

Return a function that ignores its argument and returns ITEM instead.

Package

transducers.

Source

utils.lisp.

Function: count (&optional acc input)

Reducer: Count the number of elements that made it through the transduction.

Package

transducers.

Source

reducers.lisp.

Function: dedup (reducer)

Transducer: Remove adjacent duplicates from the transduction.

Package

transducers.

Source

transducers.lisp.

Function: drop (n)

Transducer: Drop the first N elements of the transduction.

Package

transducers.

Source

transducers.lisp.

Function: drop-while (pred)

Transducer: Drop elements from the front of the transduction that satisfy PRED.

Package

transducers.

Source

transducers.lisp.

Function: enumerate (reducer)

Transducer: Index every value passed through the transduction into a cons pair. Starts at 0.

Package

transducers.

Source

transducers.lisp.

Function: filter (pred)

Transducer: Only keep elements from the transduction that satisfy PRED.

Package

transducers.

Source

transducers.lisp.

Function: filter-map (f)

Transducer: Apply a function F to the elements of the transduction, but only keep results that are non-nil.

(transduce (filter-map #’cl:first) #’cons ’(() (2 3) () (5 6) () (8 9))) => (2 5 8)

Package

transducers.

Source

transducers.lisp.

Function: find (pred)

Reducer: Find the first element in the transduction that satisfies a given PRED. Yields ‘nil’ if no such element were found.

Package

transducers.

Source

reducers.lisp.

Function: first (&optional acc input)

Reducer: Yield the first value of the transduction. As soon as this first value is yielded, the entire transduction stops.

# Conditions

- ‘empty-transduction’: when no values made it through the transduction.

Package

transducers.

Source

reducers.lisp.

Function: flatten (reducer)

Transducer: Entirely flatten all lists in the transduction, regardless of nesting.

Package

transducers.

Source

transducers.lisp.

Function: fold (f &optional seed)

Reducer: The fundamental reducer. ‘fold’ creates an ad-hoc reducer based on a given 2-argument function. An optional SEED value can also be given as the initial accumulator value, which also becomes the return value in case there were no input left in the transduction.

Functions like ‘+’ and ‘*’ are automatically valid reducers, because they yield sane values even when given 0 or 1 arguments. Other functions like ‘max’ cannot be used as-is as reducers since they can’t be called without arguments. For functions like this, ‘fold’ is appropriate.

# Conditions

- ‘empty-transduction’: if no SEED is given and the transduction is empty.

Package

transducers.

Source

reducers.lisp.

Function: for-each (&rest vargs)

Reducer: Run through every item in a transduction for their side effects. Throws away all results and yields nil.

Package

transducers.

Source

reducers.lisp.

Function: from-csv (reducer)

Transducer: Interpret the data stream as CSV data.

The first item found is assumed to be the header list, and it will be used to construct useable hashtables for all subsequent items.

Note: This function makes no attempt to convert types from the
original parsed strings. If you want numbers, you will need to
further parse them yourself.

This function is expected to be passed "bare" to ‘transduce’, so there is no need for the caller to manually pass a REDUCER.

Package

transducers.

Source

transducers.lisp.

Function: group-by (f)

Transducer: Group the input stream into sublists via some function F. The cutoff criterion is whether the return value of F changes between two consecutive elements of the transduction.

(transduce (group-by #’evenp) #’cons ’(2 4 6 7 9 1 2 4 6 3))
=> ((2 4 6) (7 9 1) (2 4 6) (3))

Package

transducers.

Source

transducers.lisp.

Function: hash-table (&optional acc input)

Reducer: Collect a stream of key-value cons pairs into a hash table.

Package

transducers.

Source

reducers.lisp.

Function: inject (f)

Transducer: For each value in the transduction that actually affects the final result (tested with ‘EQ’), inject an extra transduction step into the chain immediately after this point. Accumulates, such that each new injection appears before the previous one.

Package

transducers.

Source

transducers.lisp.

Function: intersperse (elem)

Transducer: Insert an ELEM between each value of the transduction.

Package

transducers.

Source

transducers.lisp.

Function: into-csv (headers)

Transducer: Given a sequence of HEADERS, rerender each item in the data stream into a CSV string. It’s assumed that each item in the transduction is a hash table whose keys are strings that match the values found in HEADERS.

# Conditions

- ‘empty-argument’: when an empty HEADERS sequence is given.

Package

transducers.

Source

transducers.lisp.

Function: ints (start &key step)

Source: Yield all integers, beginning with START and advancing by an optional STEP value which can be positive or negative. If you only want a specific range within the transduction, then use ‘take-while’ within your transducer chain.

Package

transducers.

Source

sources.lisp.

Function: last (&optional acc input)

Reducer: Yield the last value of the transduction.

# Conditions

- ‘empty-transduction’: when no values made it through the transduction.

Package

transducers.

Source

reducers.lisp.

Function: log (logger)

Transducer: Call some LOGGER function for each step of the transduction. The LOGGER must accept the running results and the current element as input. The original results of the transduction are passed through as-is.

Package

transducers.

Source

transducers.lisp.

Function: make-reduced (&key val)
Package

transducers.

Source

utils.lisp.

Function: map (f)

Transducer: Apply a function F to all elements of the transduction.

Package

transducers.

Source

transducers.lisp.

Function: max (default)

Deprecated: Use ‘fold’ and pass it ‘cl:max’ instead.

Package

transducers.

Source

reducers.lisp.

Function: min (default)

Deprecated: Use ‘fold’ and pass it ‘cl:min’ instead.

Package

transducers.

Source

reducers.lisp.

Function: once (item)

Transducer: Inject some ITEM into the front of the transduction.

Package

transducers.

Source

transducers.lisp.

Function: pass (reducer)

Transducer: Just pass along each value of the transduction. Same in intent with applying ‘map’ to ‘identity’, but this should be slightly more efficient. It is at least shorter to type.

Package

transducers.

Source

transducers.lisp.

Function: plist (plist)

Source: Yield key-value pairs from a Property List, usually known as a ’plist’.

Package

transducers.

Source

sources.lisp.

Function: random (limit)

Source: Yield an endless stream of random numbers.

Package

transducers.

Source

sources.lisp.

Function: reduced-p (object)
Package

transducers.

Source

utils.lisp.

Reader: reduced-val (instance)
Writer: (setf reduced-val) (instance)
Package

transducers.

Source

utils.lisp.

Target Slot

val.

Function: repeat (item)

Source: Endlessly yield a given ITEM.

Package

transducers.

Source

sources.lisp.

Function: scan (f seed)

Transducer: Build up successsive values from the results of previous applications of a given function F.

(transduce (scan #’+ 0) #’cons ’(1 2 3 4))
=> (0 1 3 6 10)

Package

transducers.

Source

transducers.lisp.

Function: segment (n)

Transducer: Partition the input into lists of N items. If the input stops, flush any accumulated state, which may be shorter than N.

# Conditions

- ‘non-positive-integer’: when a non-positive integer N is given.

Package

transducers.

Source

transducers.lisp.

Function: shuffle (vec)

Source: Endlessly yield random elements from a given vector. Recall also that strings are vectors too, so:

(transduce (take 5) #’string (shuffle "Númenor"))
=> "mNNrú"

Package

transducers.

Source

sources.lisp.

Function: snoc (&optional acc input)

Reducer: Collect all results as a list, but results are reversed.
In theory, slightly more performant than ‘cons’ since it performs no final reversal.

Package

transducers.

Source

reducers.lisp.

Function: split (ta ra)

Transducer: Split off a new transducer chain, feeding it each input as well. It reduces on its own given RA reducer. The final result is a cons-cell where the first value is the result of the original transduction, and the second is that of the branch.

Package

transducers.

Source

transducers.lisp.

Function: step (n)

Transducer: Only yield every Nth element of the transduction. The first element of the transduction is always included.

# Conditions

- ‘non-positive-integer’: when a non-positive integer N is given.

# Examples

(transduce (step 2) #’cons ’(1 2 3 4 5 6 7 8 9))
=> (1 3 5 7 9)

Package

transducers.

Source

transducers.lisp.

Function: string (&optional acc input)

Reducer: Collect a stream of characters into to a single string.

Package

transducers.

Source

reducers.lisp.

Function: take (n)

Transducer: Keep only the first N elements of the transduction.

Package

transducers.

Source

transducers.lisp.

Function: take-while (pred)

Transducer: Keep only elements which satisfy a given PRED, and stop the transduction as soon as any element fails the test.

Package

transducers.

Source

transducers.lisp.

Function: uncons (reducer)

Transducer: Split up a transduction of cons cells.

Package

transducers.

Source

transducers.lisp.

Function: unique (reducer)

Transducer: Only allow values to pass through the transduction once each. Stateful; this uses a hash table internally so could get quite heavy if you’re not careful.

Package

transducers.

Source

transducers.lisp.

Function: vector (&optional acc input)

Reducer: Collect a stream of values into a vector.

Package

transducers.

Source

reducers.lisp.

Function: window (n)

Transducer: Yield N-length windows of overlapping values. This is different from ‘segment’ which yields non-overlapping windows. If there were fewer items in the input than N, then this yields nothing.

# Conditions

- ‘non-positive-integer’: when a non-positive integer N is given.

Package

transducers.

Source

transducers.lisp.


6.1.3 Generic functions

Generic Function: cycle (seq)

Source: Yield the values of a given SEQ endlessly.

Package

transducers.

Source

sources.lisp.

Methods
Method: cycle ((seq vector))

This works for strings as well.

Method: cycle ((seq list))
Generic Function: transduce (xform f source)

The entry-point for processing some data source via transductions.

This requires three things:

- A transducer function, or a composed chain of them
- A reducing function
- A source

Note: ‘comp’ can be used to chain transducers together.

When ran, ‘transduce’ will pull values from the source, transform them via the transducers, and reduce into some single value (likely some collection but not necessarily). ‘transduce’ will only pull as many values from the source as are actually needed, and does so one at a time. This ensures that large
sources (like files) don’t consume too much memory.

# Examples

Assuming that you’ve required this library with a local nickname of ‘t’, here’s how we can filter an infinite source and reduce into a single sum:

(t:transduce (t:comp (t:filter #’oddp)
(t:take 1000)
(t:map (lambda (n) (* n n))))
#’+ (t:ints 1))
;; => 1333333000 (31 bits, #x4F790C08)

Note that due to how transducer and reducer functions are composed internally, the order provided to ‘comp’ gets applied from top to bottom. In the above example, this means that ‘filter’ is applied first, and ‘map’ last.

There are a variety of functions to instead reduce into a collection:

(t:transduce (t:map #’1+) #’t:vector ’(1 2 3))
;; => #(2 3 4)

Many standard collections can be easily "sourced", including those that aren’t normally so conveniently traversed like Hash Tables, Property Lists, and lines of a file.

;; Read key-value pairs from a plist and recollect into a Hash Table. (t:transduce #’t:pass #’t:hash-table (t:plist ‘(:a 1 :b 2 :c 3)))

# Custom Sources

Since ‘transduce’ is generic, you can use ‘defmethod’ to define your own custom sources. See ‘sources.lisp’ and ‘entry.lisp’ for examples of how to do this.

Package

transducers.

Source

entry.lisp.

Methods
Method: transduce (xform f (source plist))

Yields key-value pairs as cons cells.

# Conditions

- ‘imbalanced-pist’: if the number of keys and values do not match.

Method: transduce (xform f (source stream))
Method: transduce (xform f (source generator))
Method: transduce (xform f (source pathname))
Method: transduce (xform f (source hash-table))

Yields key-value pairs as cons cells.

Method: transduce (xform f (source vector))
Method: transduce (xform f (source list))

Transducing over an alist works automatically via this method, and the pairs are streamed as-is as cons cells.

Method: transduce (xform f (source string))

6.1.4 Conditions

Condition: empty-transduction

A transduction was empty when it was expected not to be.

Package

transducers.

Source

conditions.lisp.

Direct superclasses

error.

Direct methods

empty-transduction-msg.

Direct slots
Slot: msg
Initargs

:msg

Readers

empty-transduction-msg.

Writers

This slot is read-only.

Condition: imbalanced-plist

A given ‘plist’ source had an uneven number of keys.

Package

transducers.

Source

conditions.lisp.

Direct superclasses

error.

Direct methods

imbalanced-plist-key.

Direct slots
Slot: key
Initargs

:key

Readers

imbalanced-plist-key.

Writers

This slot is read-only.


6.1.5 Structures

Structure: plist
Package

transducers.

Source

sources.lisp.

Direct superclasses

structure-object.

Direct methods

transduce.

Direct slots
Slot: list
Package

common-lisp.

Type

list

Readers

plist-list.

Writers

This slot is read-only.


6.2 Internals


6.2.1 Special variables

Special Variable: *done*

A value to signal the end of an unfolding process.

Package

transducers.

Source

sources.lisp.


6.2.2 Ordinary functions

Function: copy-reduced (instance)
Package

transducers.

Source

utils.lisp.

Function: ensure-function (arg)
Package

transducers.

Source

utils.lisp.

Function: ensure-reduced (x)

Ensure that X is reduced.

Package

transducers.

Source

utils.lisp.

Function: ensure-unreduced (x)

Ensure that X is unreduced.

Package

transducers.

Source

utils.lisp.

Function: file-reduce (f identity filename)
Package

transducers.

Source

entry.lisp.

Function: file-transduce (xform f filename)

Transduce over the lines of the file named by a FILENAME.

Package

transducers.

Source

entry.lisp.

Reader: generator-func (instance)
Package

transducers.

Source

sources.lisp.

Target Slot

func.

Function: generator-reduce (f identity gen)
Package

transducers.

Source

entry.lisp.

Function: generator-transduce (xform f gen)

Transduce over a potentially endless stream of values from a generator GEN.

Package

transducers.

Source

entry.lisp.

Function: hash-table-reduce (f identity ht)
Package

transducers.

Source

entry.lisp.

Function: hash-table-transduce (xform f coll)

Transduce over the contents of a given Hash Table.

Package

transducers.

Source

entry.lisp.

Function: list-reduce (f identity lst)
Package

transducers.

Source

entry.lisp.

Function: list-transduce (xform f coll)
Package

transducers.

Source

entry.lisp.

Function: make-generator (&key func)
Package

transducers.

Source

sources.lisp.

Function: make-plist (&key list)
Package

transducers.

Source

sources.lisp.

Function: par (f ta tb)

Transducer: Traverse two transducer paths at the same time, combining the results of each path with a given function F before moving on. This is similar to the ‘zip’ concept from other languages.

Given the following transducer chain:

/4a-5a-6a\
1-2-3 7-8-9
\4b-5b—/

The function F would be applied right before Step 7. In this case, the function would have to expect the output types of Step 6a and 5b as its arguments.

Note 1: If either branch yields a ’reduced’ value, then the entire chain short-circuits and that is the value applied to the reducer one final time.

Note 2: This function has potentially non-intuitive behaviour with regards to functions like ‘filter’ that don’t always contribute to the final result. The function F will only be applied (and thus pass values on) if both branches produced a new value. If either branch ’died’ for a particular value, then so too will the other branch. If this is undesirable, see the higher-order transducer ‘tri’ for an alternative.

Package

transducers.

Source

transducers.lisp.

Reader: plist-list (instance)
Package

transducers.

Source

sources.lisp.

Target Slot

list.

Function: plist-reduce (f identity lst)
Package

transducers.

Source

entry.lisp.

Function: plist-transduce (xform f coll)
Package

transducers.

Source

entry.lisp.

Function: preserving-reduced (reducer)

A helper function that wraps a reduced value twice since reducing functions (like list-reduce) unwraps them. tconcatenate is a good example: it re-uses its reducer on its input using list-reduce. If that reduction finishes early and returns a reduced value, list-reduce would ’unreduce’ that value and try to continue the transducing process.

Package

transducers.

Source

utils.lisp.

Function: prompt-new-value (prompt)
Package

transducers.

Source

conditions.lisp.

Function: recsv (items)

Reconvert some ITEMS into a comma-separated string.

Package

transducers.

Source

transducers.lisp.

Function: split-csv-line (line)

Split a LINE of CSV data in a sane way.

This removes any extra whitespace that might be hanging around between elements.

Package

transducers.

Source

transducers.lisp.

Function: stream-reduce (f identity stream)
Package

transducers.

Source

entry.lisp.

Function: stream-transduce (xform f stream)

Transduce over the lines of a given STREAM. Note: Closing the stream is the responsiblity of the caller!

Package

transducers.

Source

entry.lisp.

Function: string-transduce (xform f coll)
Package

transducers.

Source

entry.lisp.

Function: table-vals->csv (headers table)

Given some HEADERS to compare to, convert a hash TABLE to a rendered CSV string of its values.

Package

transducers.

Source

transducers.lisp.

Function: tri (f ta ra tb rb)

The Trident.

Package

transducers.

Source

transducers.lisp.

Function: unfold (f seed)
Package

transducers.

Source

sources.lisp.

Function: vector-reduce (f identity vec)
Package

transducers.

Source

entry.lisp.

Function: vector-transduce (xform f coll)
Package

transducers.

Source

entry.lisp.

Function: zipmap (keys vals)

Form a hashmap with the KEYS mapped to the corresponding VALS.

Borrowed from Clojure, thanks guys.

Package

transducers.

Source

utils.lisp.


6.2.3 Generic functions

Generic Reader: empty-argument-fn (condition)
Package

transducers.

Methods
Reader Method: empty-argument-fn ((condition empty-argument))
Source

conditions.lisp.

Target Slot

fn.

Generic Reader: empty-transduction-msg (condition)
Package

transducers.

Methods
Reader Method: empty-transduction-msg ((condition empty-transduction))
Source

conditions.lisp.

Target Slot

msg.

Generic Reader: imbalanced-plist-key (condition)
Package

transducers.

Methods
Reader Method: imbalanced-plist-key ((condition imbalanced-plist))
Source

conditions.lisp.

Target Slot

key.

Generic Reader: npi-fn (condition)
Package

transducers.

Methods
Reader Method: npi-fn ((condition non-positive-integer))
Source

conditions.lisp.

Target Slot

fn.

Generic Reader: npi-n (condition)
Package

transducers.

Methods
Reader Method: npi-n ((condition non-positive-integer))
Source

conditions.lisp.

Target Slot

n.


6.2.4 Conditions

Condition: empty-argument

A non-empty sequence was expected, but that didn’t stop the user.

Package

transducers.

Source

conditions.lisp.

Direct superclasses

error.

Direct methods

empty-argument-fn.

Direct slots
Slot: fn
Initargs

:fn

Readers

empty-argument-fn.

Writers

This slot is read-only.

Condition: non-positive-integer

A non-positive integer was passed to a function that expected one.

Package

transducers.

Source

conditions.lisp.

Direct superclasses

error.

Direct methods
Direct slots
Slot: n
Initargs

:n

Readers

npi-n.

Writers

This slot is read-only.

Slot: fn
Initargs

:fn

Readers

npi-fn.

Writers

This slot is read-only.


6.2.5 Structures

Structure: generator

A wrapper around a function that can potentially yield endless values.

Package

transducers.

Source

sources.lisp.

Direct superclasses

structure-object.

Direct methods

transduce.

Direct slots
Slot: func
Type

(function nil *)

Readers

generator-func.

Writers

This slot is read-only.

Structure: reduced

A wrapper that signals that reduction has completed.

Package

transducers.

Source

utils.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: val
Readers

reduced-val.

Writers

(setf reduced-val).


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   (  
A   B   C   D   E   F   G   H   I   L   M   N   O   P   R   S   T   U   V   W   Z  
Index Entry  Section

(
(setf reduced-val): Public ordinary functions

A
all: Public macros
allp: Public ordinary functions
any: Public macros
anyp: Public ordinary functions
average: Public ordinary functions

B
branch: Public ordinary functions

C
comp: Public ordinary functions
concatenate: Public ordinary functions
cons: Public ordinary functions
const: Public ordinary functions
copy-reduced: Private ordinary functions
count: Public ordinary functions
cycle: Public generic functions
cycle: Public generic functions
cycle: Public generic functions

D
dedup: Public ordinary functions
drop: Public ordinary functions
drop-while: Public ordinary functions

E
empty-argument-fn: Private generic functions
empty-argument-fn: Private generic functions
empty-transduction-msg: Private generic functions
empty-transduction-msg: Private generic functions
ensure-function: Private ordinary functions
ensure-reduced: Private ordinary functions
ensure-unreduced: Private ordinary functions
enumerate: Public ordinary functions

F
file-reduce: Private ordinary functions
file-transduce: Private ordinary functions
filter: Public ordinary functions
filter-map: Public ordinary functions
find: Public ordinary functions
first: Public ordinary functions
flatten: Public ordinary functions
fold: Public ordinary functions
for-each: Public ordinary functions
from-csv: Public ordinary functions
Function, (setf reduced-val): Public ordinary functions
Function, allp: Public ordinary functions
Function, anyp: Public ordinary functions
Function, average: Public ordinary functions
Function, branch: Public ordinary functions
Function, comp: Public ordinary functions
Function, concatenate: Public ordinary functions
Function, cons: Public ordinary functions
Function, const: Public ordinary functions
Function, copy-reduced: Private ordinary functions
Function, count: Public ordinary functions
Function, dedup: Public ordinary functions
Function, drop: Public ordinary functions
Function, drop-while: Public ordinary functions
Function, ensure-function: Private ordinary functions
Function, ensure-reduced: Private ordinary functions
Function, ensure-unreduced: Private ordinary functions
Function, enumerate: Public ordinary functions
Function, file-reduce: Private ordinary functions
Function, file-transduce: Private ordinary functions
Function, filter: Public ordinary functions
Function, filter-map: Public ordinary functions
Function, find: Public ordinary functions
Function, first: Public ordinary functions
Function, flatten: Public ordinary functions
Function, fold: Public ordinary functions
Function, for-each: Public ordinary functions
Function, from-csv: Public ordinary functions
Function, generator-func: Private ordinary functions
Function, generator-reduce: Private ordinary functions
Function, generator-transduce: Private ordinary functions
Function, group-by: Public ordinary functions
Function, hash-table: Public ordinary functions
Function, hash-table-reduce: Private ordinary functions
Function, hash-table-transduce: Private ordinary functions
Function, inject: Public ordinary functions
Function, intersperse: Public ordinary functions
Function, into-csv: Public ordinary functions
Function, ints: Public ordinary functions
Function, last: Public ordinary functions
Function, list-reduce: Private ordinary functions
Function, list-transduce: Private ordinary functions
Function, log: Public ordinary functions
Function, make-generator: Private ordinary functions
Function, make-plist: Private ordinary functions
Function, make-reduced: Public ordinary functions
Function, map: Public ordinary functions
Function, max: Public ordinary functions
Function, min: Public ordinary functions
Function, once: Public ordinary functions
Function, par: Private ordinary functions
Function, pass: Public ordinary functions
Function, plist: Public ordinary functions
Function, plist-list: Private ordinary functions
Function, plist-reduce: Private ordinary functions
Function, plist-transduce: Private ordinary functions
Function, preserving-reduced: Private ordinary functions
Function, prompt-new-value: Private ordinary functions
Function, random: Public ordinary functions
Function, recsv: Private ordinary functions
Function, reduced-p: Public ordinary functions
Function, reduced-val: Public ordinary functions
Function, repeat: Public ordinary functions
Function, scan: Public ordinary functions
Function, segment: Public ordinary functions
Function, shuffle: Public ordinary functions
Function, snoc: Public ordinary functions
Function, split: Public ordinary functions
Function, split-csv-line: Private ordinary functions
Function, step: Public ordinary functions
Function, stream-reduce: Private ordinary functions
Function, stream-transduce: Private ordinary functions
Function, string: Public ordinary functions
Function, string-transduce: Private ordinary functions
Function, table-vals->csv: Private ordinary functions
Function, take: Public ordinary functions
Function, take-while: Public ordinary functions
Function, tri: Private ordinary functions
Function, uncons: Public ordinary functions
Function, unfold: Private ordinary functions
Function, unique: Public ordinary functions
Function, vector: Public ordinary functions
Function, vector-reduce: Private ordinary functions
Function, vector-transduce: Private ordinary functions
Function, window: Public ordinary functions
Function, zipmap: Private ordinary functions

G
generator-func: Private ordinary functions
generator-reduce: Private ordinary functions
generator-transduce: Private ordinary functions
Generic Function, cycle: Public generic functions
Generic Function, empty-argument-fn: Private generic functions
Generic Function, empty-transduction-msg: Private generic functions
Generic Function, imbalanced-plist-key: Private generic functions
Generic Function, npi-fn: Private generic functions
Generic Function, npi-n: Private generic functions
Generic Function, transduce: Public generic functions
group-by: Public ordinary functions

H
hash-table: Public ordinary functions
hash-table-reduce: Private ordinary functions
hash-table-transduce: Private ordinary functions

I
imbalanced-plist-key: Private generic functions
imbalanced-plist-key: Private generic functions
inject: Public ordinary functions
intersperse: Public ordinary functions
into-csv: Public ordinary functions
ints: Public ordinary functions

L
last: Public ordinary functions
list-reduce: Private ordinary functions
list-transduce: Private ordinary functions
log: Public ordinary functions

M
Macro, all: Public macros
Macro, any: Public macros
make-generator: Private ordinary functions
make-plist: Private ordinary functions
make-reduced: Public ordinary functions
map: Public ordinary functions
max: Public ordinary functions
Method, cycle: Public generic functions
Method, cycle: Public generic functions
Method, empty-argument-fn: Private generic functions
Method, empty-transduction-msg: Private generic functions
Method, imbalanced-plist-key: Private generic functions
Method, npi-fn: Private generic functions
Method, npi-n: Private generic functions
Method, transduce: Public generic functions
Method, transduce: Public generic functions
Method, transduce: Public generic functions
Method, transduce: Public generic functions
Method, transduce: Public generic functions
Method, transduce: Public generic functions
Method, transduce: Public generic functions
Method, transduce: Public generic functions
min: Public ordinary functions

N
npi-fn: Private generic functions
npi-fn: Private generic functions
npi-n: Private generic functions
npi-n: Private generic functions

O
once: Public ordinary functions

P
par: Private ordinary functions
pass: Public ordinary functions
plist: Public ordinary functions
plist-list: Private ordinary functions
plist-reduce: Private ordinary functions
plist-transduce: Private ordinary functions
preserving-reduced: Private ordinary functions
prompt-new-value: Private ordinary functions

R
random: Public ordinary functions
recsv: Private ordinary functions
reduced-p: Public ordinary functions
reduced-val: Public ordinary functions
repeat: Public ordinary functions

S
scan: Public ordinary functions
segment: Public ordinary functions
shuffle: Public ordinary functions
snoc: Public ordinary functions
split: Public ordinary functions
split-csv-line: Private ordinary functions
step: Public ordinary functions
stream-reduce: Private ordinary functions
stream-transduce: Private ordinary functions
string: Public ordinary functions
string-transduce: Private ordinary functions

T
table-vals->csv: Private ordinary functions
take: Public ordinary functions
take-while: Public ordinary functions
transduce: Public generic functions
transduce: Public generic functions
transduce: Public generic functions
transduce: Public generic functions
transduce: Public generic functions
transduce: Public generic functions
transduce: Public generic functions
transduce: Public generic functions
transduce: Public generic functions
tri: Private ordinary functions

U
uncons: Public ordinary functions
unfold: Private ordinary functions
unique: Public ordinary functions

V
vector: Public ordinary functions
vector-reduce: Private ordinary functions
vector-transduce: Private ordinary functions

W
window: Public ordinary functions

Z
zipmap: Private ordinary functions


A.4 Data types

Jump to:   C   E   F   G   I   M   N   P   R   S   T   U  
Index Entry  Section

C
Condition, empty-argument: Private conditions
Condition, empty-transduction: Public conditions
Condition, imbalanced-plist: Public conditions
Condition, non-positive-integer: Private conditions
conditions.lisp: The transducers/transducers/conditions․lisp file

E
empty-argument: Private conditions
empty-transduction: Public conditions
entry.lisp: The transducers/transducers/entry․lisp file

F
File, conditions.lisp: The transducers/transducers/conditions․lisp file
File, entry.lisp: The transducers/transducers/entry․lisp file
File, reducers.lisp: The transducers/transducers/reducers․lisp file
File, sources.lisp: The transducers/transducers/sources․lisp file
File, transducers.asd: The transducers/transducers․asd file
File, transducers.lisp: The transducers/transducers/transducers․lisp file
File, utils.lisp: The transducers/transducers/utils․lisp file

G
generator: Private structures

I
imbalanced-plist: Public conditions

M
Module, transducers: The transducers/transducers module

N
non-positive-integer: Private conditions

P
Package, transducers: The transducers package
plist: Public structures

R
reduced: Private structures
reducers.lisp: The transducers/transducers/reducers․lisp file

S
sources.lisp: The transducers/transducers/sources․lisp file
Structure, generator: Private structures
Structure, plist: Public structures
Structure, reduced: Private structures
System, transducers: The transducers system

T
transducers: The transducers system
transducers: The transducers/transducers module
transducers: The transducers package
transducers.asd: The transducers/transducers․asd file
transducers.lisp: The transducers/transducers/transducers․lisp file

U
utils.lisp: The transducers/transducers/utils․lisp file