The colliflower Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The colliflower Reference Manual

This is the colliflower Reference Manual, version 0.2.1, generated automatically by Declt version 2.3 "Robert April" on Tue Jan 09 14:21:47 2018 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction

colliflower

Colliflower is a set of generic interfaces for lisp collections.

The full documentation can be found here.

Colliflower has four components:

  1. liter
  2. garten
  3. silo
  4. colliflower

Each of these components are described below.

liter

Liter provides an abstraction and tools for iterators.

A liter iterator is simply a function which returns the next value with each invocation and signals and end of iteration with an ITERATION-ENDED condition.

A liter iterable is any object for which there is a method defined for the GET-ITERATOR generic function. An iterator (or more generally a function) is an iterable whose iterator is itself. The LITER package provides GET-ITERATOR methods for lists, vectors, hash-tables, streams, and arrays, as well as functions to get iterators over those structures in different ways (such as treating lists as plists or alists, or iterating over the lines of a character stream).

Liter also provides:

garten

Garten provides a generic abstraction for building new data structures. It is a more generic form of the COLLECTING macro.

The core of garten is the concept of a "grower". A grower is an object that stores the state of a collection while it is being built. The grower itself may or may not be the final result. For example: the grower for a list may keep handles for both the head and tail of the list to efficiently append elements, or the grower for an immutable data structure may itself be mutable.

The basic interface for garten consists of three generic functions:

  1. MAKE-GROWER creates a new grower for some type. Note that the TYPE argument is the type of the final data structure, not the type of the grower.
  2. FEED adds an item to the grower, which will eventually be part of the final structure.
  3. FRUIT retrieves the final result of the grower. In general it is not safe to call FRUIT, FEED, or RESET-GROWER after FRUIT has been called for a grower, as doing so may mutate the result returned by previous calls to FRUIT.

Garten defines the above interface for lists, plists, vectors, hash-tables, strings, etc. Garten also provides WITH-GROWER which is similar to the oft-implemented COLLECTING macro, and a GROWING directive for the iterate library.

silo

Silo provides a generic way to access and set values of data structures by a key. The key may be a normal key, or an index.

colliflower

Colliflower is brings the four above components together. The colliflower package exports all of the public symbols from liter, garten, and silo and provides a few additional tools that combine functionality from the packages.


Next: , Previous: , Up: Top   [Contents][Index]

2 Systems

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


Next: , Previous: , Up: Systems   [Contents][Index]

2.1 colliflower

Author

Thayne McCombs <bytecurry.software@gmail.com>

License

MIT

Description

Generic interfaces for collections and iterators.

Version

0.2.1

Defsystem Dependency

asdf-package-system

Dependencies
Source

colliflower.asd (file)


Next: , Previous: , Up: Systems   [Contents][Index]

2.2 colliflower/interface

Dependencies
Component

lisp.lisp (file)


Next: , Previous: , Up: Systems   [Contents][Index]

2.3 colliflower/ext

Dependencies
Component

lisp.lisp (file)


Next: , Previous: , Up: Systems   [Contents][Index]

2.4 liter

Author

Thayne McCombs <bytecurry.software@gmail.com>

License

MIT

Description

Collection of tools for basic iterators

Version

0.2.0

Dependency

liter/interface (system)

Source

liter.asd (file)


Next: , Previous: , Up: Systems   [Contents][Index]

2.5 liter/interface

Dependencies
Component

lisp.lisp (file)


Next: , Previous: , Up: Systems   [Contents][Index]

2.6 liter/tools

Dependencies
Component

lisp.lisp (file)


Next: , Previous: , Up: Systems   [Contents][Index]

2.7 liter/generate

Dependencies
Component

lisp.lisp (file)


Next: , Previous: , Up: Systems   [Contents][Index]

2.8 liter/file

Dependencies
Component

lisp.lisp (file)


Next: , Previous: , Up: Systems   [Contents][Index]

2.9 liter/iter-object

Dependency

closer-mop

Component

lisp.lisp (file)


Next: , Previous: , Up: Systems   [Contents][Index]

2.10 silo

Author

Thayne McCombs <bytecurry.software@gmail.com

License

MIT

Description

Generic getters and setters for data structures.

Version

0.2.0

Dependency

silo/interface (system)

Source

silo.asd (file)


Next: , Previous: , Up: Systems   [Contents][Index]

2.11 silo/interface

Dependencies
Component

lisp.lisp (file)


Next: , Previous: , Up: Systems   [Contents][Index]

2.12 silo/base

Dependency

silo/protocol (system)

Component

lisp.lisp (file)


Next: , Previous: , Up: Systems   [Contents][Index]

2.13 silo/protocol

Component

lisp.lisp (file)


Next: , Previous: , Up: Systems   [Contents][Index]

2.14 garten

Author

Thayne McCombs <bytecurry.software@gmail.com

Description

Generic interface for "growing" data structures/collections.

Version

0.1.0

Dependency

garten/interface (system)

Source

garten.asd (file)


Next: , Previous: , Up: Systems   [Contents][Index]

2.15 garten/interface

Dependencies
Component

lisp.lisp (file)


Next: , Previous: , Up: Systems   [Contents][Index]

2.16 garten/base

Dependencies
Component

lisp.lisp (file)


Next: , Previous: , Up: Systems   [Contents][Index]

2.17 garten/list

Dependencies
Component

lisp.lisp (file)


Next: , Previous: , Up: Systems   [Contents][Index]

2.18 garten/tools

Dependencies
Component

lisp.lisp (file)


Next: , Previous: , Up: Systems   [Contents][Index]

2.19 garten/grower

Dependencies
Component

lisp.lisp (file)


Previous: , Up: Systems   [Contents][Index]

2.20 liter/base

Dependencies
Component

lisp.lisp (file)


Next: , Previous: , Up: Top   [Contents][Index]

3 Files

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


Previous: , Up: Files   [Contents][Index]

3.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.1 colliflower.asd

Location

colliflower.asd

Systems

colliflower (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.2 liter.asd

Location

liter/liter.asd

Systems

liter (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.3 silo.asd

Location

silo/silo.asd

Systems

silo (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.4 garten.asd

Location

garten/garten.asd

Systems

garten (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.5 colliflower/interface/lisp.lisp

Parent

colliflower/interface (system)

Location

interface.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.6 colliflower/ext/lisp.lisp

Parent

colliflower/ext (system)

Location

ext.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.7 liter/interface/lisp.lisp

Parent

liter/interface (system)

Location

liter/interface.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.8 liter/tools/lisp.lisp

Parent

liter/tools (system)

Location

liter/tools.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.9 liter/generate/lisp.lisp

Parent

liter/generate (system)

Location

liter/generate.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.10 liter/file/lisp.lisp

Parent

liter/file (system)

Location

liter/file.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.11 liter/iter-object/lisp.lisp

Parent

liter/iter-object (system)

Location

liter/iter-object.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.12 silo/interface/lisp.lisp

Parent

silo/interface (system)

Location

silo/interface.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.13 silo/base/lisp.lisp

Parent

silo/base (system)

Location

silo/base.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.14 silo/protocol/lisp.lisp

Parent

silo/protocol (system)

Location

silo/protocol.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.15 garten/interface/lisp.lisp

Parent

garten/interface (system)

Location

garten/interface.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.16 garten/base/lisp.lisp

Parent

garten/base (system)

Location

garten/base.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.17 garten/list/lisp.lisp

Parent

garten/list (system)

Location

garten/list.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.18 garten/tools/lisp.lisp

Parent

garten/tools (system)

Location

garten/tools.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.19 garten/grower/lisp.lisp

Parent

garten/grower (system)

Location

garten/grower.lisp


Previous: , Up: Lisp files   [Contents][Index]

3.1.20 liter/base/lisp.lisp

Parent

liter/base (system)

Location

liter/base.lisp


Previous: , Up: Top   [Contents][Index]

Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts

Jump to:   C   F   G   L   S  
Index Entry  Section

C
colliflower.asd: The colliflower<dot>asd file
colliflower/ext/lisp.lisp: The colliflower/ext/lisp<dot>lisp file
colliflower/interface/lisp.lisp: The colliflower/interface/lisp<dot>lisp file

F
File, Lisp, colliflower.asd: The colliflower<dot>asd file
File, Lisp, colliflower/ext/lisp.lisp: The colliflower/ext/lisp<dot>lisp file
File, Lisp, colliflower/interface/lisp.lisp: The colliflower/interface/lisp<dot>lisp file
File, Lisp, garten.asd: The garten<dot>asd file
File, Lisp, garten/base/lisp.lisp: The garten/base/lisp<dot>lisp file
File, Lisp, garten/grower/lisp.lisp: The garten/grower/lisp<dot>lisp file
File, Lisp, garten/interface/lisp.lisp: The garten/interface/lisp<dot>lisp file
File, Lisp, garten/list/lisp.lisp: The garten/list/lisp<dot>lisp file
File, Lisp, garten/tools/lisp.lisp: The garten/tools/lisp<dot>lisp file
File, Lisp, liter.asd: The liter<dot>asd file
File, Lisp, liter/base/lisp.lisp: The liter/base/lisp<dot>lisp file
File, Lisp, liter/file/lisp.lisp: The liter/file/lisp<dot>lisp file
File, Lisp, liter/generate/lisp.lisp: The liter/generate/lisp<dot>lisp file
File, Lisp, liter/interface/lisp.lisp: The liter/interface/lisp<dot>lisp file
File, Lisp, liter/iter-object/lisp.lisp: The liter/iter-object/lisp<dot>lisp file
File, Lisp, liter/tools/lisp.lisp: The liter/tools/lisp<dot>lisp file
File, Lisp, silo.asd: The silo<dot>asd file
File, Lisp, silo/base/lisp.lisp: The silo/base/lisp<dot>lisp file
File, Lisp, silo/interface/lisp.lisp: The silo/interface/lisp<dot>lisp file
File, Lisp, silo/protocol/lisp.lisp: The silo/protocol/lisp<dot>lisp file

G
garten.asd: The garten<dot>asd file
garten/base/lisp.lisp: The garten/base/lisp<dot>lisp file
garten/grower/lisp.lisp: The garten/grower/lisp<dot>lisp file
garten/interface/lisp.lisp: The garten/interface/lisp<dot>lisp file
garten/list/lisp.lisp: The garten/list/lisp<dot>lisp file
garten/tools/lisp.lisp: The garten/tools/lisp<dot>lisp file

L
Lisp File, colliflower.asd: The colliflower<dot>asd file
Lisp File, colliflower/ext/lisp.lisp: The colliflower/ext/lisp<dot>lisp file
Lisp File, colliflower/interface/lisp.lisp: The colliflower/interface/lisp<dot>lisp file
Lisp File, garten.asd: The garten<dot>asd file
Lisp File, garten/base/lisp.lisp: The garten/base/lisp<dot>lisp file
Lisp File, garten/grower/lisp.lisp: The garten/grower/lisp<dot>lisp file
Lisp File, garten/interface/lisp.lisp: The garten/interface/lisp<dot>lisp file
Lisp File, garten/list/lisp.lisp: The garten/list/lisp<dot>lisp file
Lisp File, garten/tools/lisp.lisp: The garten/tools/lisp<dot>lisp file
Lisp File, liter.asd: The liter<dot>asd file
Lisp File, liter/base/lisp.lisp: The liter/base/lisp<dot>lisp file
Lisp File, liter/file/lisp.lisp: The liter/file/lisp<dot>lisp file
Lisp File, liter/generate/lisp.lisp: The liter/generate/lisp<dot>lisp file
Lisp File, liter/interface/lisp.lisp: The liter/interface/lisp<dot>lisp file
Lisp File, liter/iter-object/lisp.lisp: The liter/iter-object/lisp<dot>lisp file
Lisp File, liter/tools/lisp.lisp: The liter/tools/lisp<dot>lisp file
Lisp File, silo.asd: The silo<dot>asd file
Lisp File, silo/base/lisp.lisp: The silo/base/lisp<dot>lisp file
Lisp File, silo/interface/lisp.lisp: The silo/interface/lisp<dot>lisp file
Lisp File, silo/protocol/lisp.lisp: The silo/protocol/lisp<dot>lisp file
liter.asd: The liter<dot>asd file
liter/base/lisp.lisp: The liter/base/lisp<dot>lisp file
liter/file/lisp.lisp: The liter/file/lisp<dot>lisp file
liter/generate/lisp.lisp: The liter/generate/lisp<dot>lisp file
liter/interface/lisp.lisp: The liter/interface/lisp<dot>lisp file
liter/iter-object/lisp.lisp: The liter/iter-object/lisp<dot>lisp file
liter/tools/lisp.lisp: The liter/tools/lisp<dot>lisp file

S
silo.asd: The silo<dot>asd file
silo/base/lisp.lisp: The silo/base/lisp<dot>lisp file
silo/interface/lisp.lisp: The silo/interface/lisp<dot>lisp file
silo/protocol/lisp.lisp: The silo/protocol/lisp<dot>lisp file

Jump to:   C   F   G   L   S  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions


Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables


Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   C   G   L   S  
Index Entry  Section

C
colliflower: The colliflower system
colliflower/ext: The colliflower/ext system
colliflower/interface: The colliflower/interface system

G
garten: The garten system
garten/base: The garten/base system
garten/grower: The garten/grower system
garten/interface: The garten/interface system
garten/list: The garten/list system
garten/tools: The garten/tools system

L
liter: The liter system
liter/base: The liter/base system
liter/file: The liter/file system
liter/generate: The liter/generate system
liter/interface: The liter/interface system
liter/iter-object: The liter/iter-object system
liter/tools: The liter/tools system

S
silo: The silo system
silo/base: The silo/base system
silo/interface: The silo/interface system
silo/protocol: The silo/protocol system
System, colliflower: The colliflower system
System, colliflower/ext: The colliflower/ext system
System, colliflower/interface: The colliflower/interface system
System, garten: The garten system
System, garten/base: The garten/base system
System, garten/grower: The garten/grower system
System, garten/interface: The garten/interface system
System, garten/list: The garten/list system
System, garten/tools: The garten/tools system
System, liter: The liter system
System, liter/base: The liter/base system
System, liter/file: The liter/file system
System, liter/generate: The liter/generate system
System, liter/interface: The liter/interface system
System, liter/iter-object: The liter/iter-object system
System, liter/tools: The liter/tools system
System, silo: The silo system
System, silo/base: The silo/base system
System, silo/interface: The silo/interface system
System, silo/protocol: The silo/protocol system

Jump to:   C   G   L   S