aboutsummaryrefslogtreecommitdiff
path: root/branch-master/stream-utils-api.html
diff options
context:
space:
mode:
Diffstat (limited to 'branch-master/stream-utils-api.html')
-rw-r--r--branch-master/stream-utils-api.html310
1 files changed, 0 insertions, 310 deletions
diff --git a/branch-master/stream-utils-api.html b/branch-master/stream-utils-api.html
deleted file mode 100644
index 9f3cf70a..00000000
--- a/branch-master/stream-utils-api.html
+++ /dev/null
@@ -1,310 +0,0 @@
-<html>
- <head>
- <title>stream-utils - clojure-contrib next API documentation</title>
- <link href="../static/favicon.png" rel="icon" />
- <link href="../static/favicon.png" rel="shortcut icon" />
- <link media="all" type="text/css" href="../static/clojure.css" rel="stylesheet" />
- <link media="all" type="text/css" href="../static/wiki.css" rel="stylesheet" />
- <link media="all" type="text/css" href="../static/internal.css" rel="stylesheet" />
- <!-- TODO: are we using these (from clojure.org)? If so, add the files -->
- <script src="file/view/code_highlighter.js" type="text/javascript"></script>
- <script src="file/view/clojure.js" type="text/javascript"></script>
- <style>.menuWrapper{height: 36px;}</style>
- <!--[if lte IE 6]>
- <link rel="stylesheet" href="http://www.wikispaces.com/_/2009051601/s/internal_ie.css" type="text/css" />
- <![endif]-->
- </head>
-<!--
-This document was auto-generated from the source by the clojure autodoc system.
-To report errors or ask questions about the overall documentation structure, formatting,
-etc., contact Tom Faulhaber (google mail name: tomfaulhaber).
-For errors in the documentation of a particular namespace, contact the author of that
-namespace.
--->
- <body>
- <div id="AllContentContainer">
- <div id="Header">
- <a id="Logo" href="index.html"><img alt="Clojure" height="100" width="100" src="../static/clojure-icon.gif" /></a>
- <h1><a title="page header title" id="page-header" href="index.html">Clojure-contrib API Reference</a></h1>
- </div>
- <div id="leftcolumn"><div style="text-align: center;"></div>
-<div class="menu">
- <div class="WikiCustomNav WikiElement wiki">
- <span class="toc-header"><span id="project-name">clojure-contrib</span> <span id="version">next</span> API</span><br />
- <ul>
- <li><a class="wiki_link" href="index.html">Overview</a></li>
- <li><a class="wiki_link" href="api-index.html">API Index</a></li>
- </ul>
- <span class="toc-header">Namespaces</span>
- <ul id="left-sidebar-list">
- <li><a href="accumulators-api.html" class="wiki_link">accumulators</a></li><li><a href="agent-utils-api.html" class="wiki_link">agent-utils</a></li><li><a href="apply-macro-api.html" class="wiki_link">apply-macro</a></li><li><a href="base64-api.html" class="wiki_link">base64</a></li><li><a href="classpath-api.html" class="wiki_link">classpath</a></li><li><a href="combinatorics-api.html" class="wiki_link">combinatorics</a></li><li><a href="command-line-api.html" class="wiki_link">command-line</a></li><li><a href="complex-numbers-api.html" class="wiki_link">complex-numbers</a></li><li><a href="cond-api.html" class="wiki_link">cond</a></li><li><a href="condition-api.html" class="wiki_link">condition</a></li><li><a href="core-api.html" class="wiki_link">core</a></li><li><a href="dataflow-api.html" class="wiki_link">dataflow</a></li><li><a href="datalog-api.html" class="wiki_link">datalog</a></li><li><a href="def-api.html" class="wiki_link">def</a></li><li><a href="duck-streams-api.html" class="wiki_link">duck-streams</a></li><li><a href="error-kit-api.html" class="wiki_link">error-kit</a></li><li><a href="except-api.html" class="wiki_link">except</a></li><li><a href="fcase-api.html" class="wiki_link">fcase</a></li><li><a href="find-namespaces-api.html" class="wiki_link">find-namespaces</a></li><li><a href="fnmap-api.html" class="wiki_link">fnmap</a></li><li><a href="gen-html-docs-api.html" class="wiki_link">gen-html-docs</a></li><li><a href="generic.arithmetic-api.html" class="wiki_link">generic.arithmetic</a></li><li><a href="generic.collection-api.html" class="wiki_link">generic.collection</a></li><li><a href="generic.comparison-api.html" class="wiki_link">generic.comparison</a></li><li><a href="generic.functor-api.html" class="wiki_link">generic.functor</a></li><li><a href="generic.math-functions-api.html" class="wiki_link">generic.math-functions</a></li><li><a href="graph-api.html" class="wiki_link">graph</a></li><li><a href="greatest-least-api.html" class="wiki_link">greatest-least</a></li><li><a href="http.agent-api.html" class="wiki_link">http.agent</a></li><li><a href="http.connection-api.html" class="wiki_link">http.connection</a></li><li><a href="import-static-api.html" class="wiki_link">import-static</a></li><li><a href="io-api.html" class="wiki_link">io</a></li><li><a href="jar-api.html" class="wiki_link">jar</a></li><li><a href="java-utils-api.html" class="wiki_link">java-utils</a></li><li><a href="javadoc.browse-api.html" class="wiki_link">javadoc.browse</a></li><li><a href="jmx-api.html" class="wiki_link">jmx</a></li><li><a href="json-api.html" class="wiki_link">json</a></li><li><a href="lazy-seqs-api.html" class="wiki_link">lazy-seqs</a></li><li><a href="lazy-xml-api.html" class="wiki_link">lazy-xml</a></li><li><a href="logging-api.html" class="wiki_link">logging</a></li><li><a href="macro-utils-api.html" class="wiki_link">macro-utils</a></li><li><a href="macros-api.html" class="wiki_link">macros</a></li><li><a href="map-utils-api.html" class="wiki_link">map-utils</a></li><li><a href="math-api.html" class="wiki_link">math</a></li><li><a href="miglayout-api.html" class="wiki_link">miglayout</a></li><li><a href="mmap-api.html" class="wiki_link">mmap</a></li><li><a href="mock-api.html" class="wiki_link">mock</a></li><li><a href="monadic-io-streams-api.html" class="wiki_link">monadic-io-streams</a></li><li><a href="monads-api.html" class="wiki_link">monads</a></li><li><a href="ns-utils-api.html" class="wiki_link">ns-utils</a></li><li><a href="pprint-api.html" class="wiki_link">pprint</a></li><li><a href="priority-map-api.html" class="wiki_link">priority-map</a></li><li><a href="probabilities.finite-distributions-api.html" class="wiki_link">probabilities.finite-distributions</a></li><li><a href="probabilities.monte-carlo-api.html" class="wiki_link">probabilities.monte-carlo</a></li><li><a href="probabilities.random-numbers-api.html" class="wiki_link">probabilities.random-numbers</a></li><li><a href="profile-api.html" class="wiki_link">profile</a></li><li><a href="properties-api.html" class="wiki_link">properties</a></li><li><a href="prxml-api.html" class="wiki_link">prxml</a></li><li><a href="reflect-api.html" class="wiki_link">reflect</a></li><li><a href="repl-ln-api.html" class="wiki_link">repl-ln</a></li><li><a href="repl-utils-api.html" class="wiki_link">repl-utils</a></li><li><a href="seq-api.html" class="wiki_link">seq</a></li><li><a href="seq-utils-api.html" class="wiki_link">seq-utils</a></li><li><a href="server-socket-api.html" class="wiki_link">server-socket</a></li><li><a href="set-api.html" class="wiki_link">set</a></li><li><a href="shell-api.html" class="wiki_link">shell</a></li><li><a href="shell-out-api.html" class="wiki_link">shell-out</a></li><li><a href="singleton-api.html" class="wiki_link">singleton</a></li><li><a href="sql-api.html" class="wiki_link">sql</a></li><li><a href="str-utils-api.html" class="wiki_link">str-utils</a></li><li><a href="str-utils2-api.html" class="wiki_link">str-utils2</a></li><li><a href="stream-utils-api.html" class="wiki_link">stream-utils</a></li><li><a href="string-api.html" class="wiki_link">string</a></li><li><a href="strint-api.html" class="wiki_link">strint</a></li><li><a href="swing-utils-api.html" class="wiki_link">swing-utils</a></li><li><a href="test-is-api.html" class="wiki_link">test-is</a></li><li><a href="trace-api.html" class="wiki_link">trace</a></li><li><a href="types-api.html" class="wiki_link">types</a></li><li><a href="with-ns-api.html" class="wiki_link">with-ns</a></li><li><a href="zip-filter-api.html" class="wiki_link">zip-filter</a></li>
- </ul>
- <div class="BranchTOC">
- <span class="toc-header">Other Versions</span>
- <ul id="left-sidebar-branch-list">
- <li><a href="../index.html" class="wiki_link">v1.2 (beta 1)</a></li><li><a href="../branch-1.1.x/index.html" class="wiki_link">v1.1 (stable)</a></li>
- </ul>
- </div>
- <a href="http://clojure.org" class="wiki_link">Clojure Home</a>
- </div>
-</div>
-</div>
- <div id="rightcolumn">
- <div id="Content">
- <div class="contentBox"><div class="innerContentBox">
- <div id="content_view" class="wiki wikiPage">
- <div id="right-sidebar"><div id="toc">
- <h1 class="nopad">Table of Contents</h1>
- <div style="margin-left: 1em;" class="toc-section">
- <a href="#toc0">Overview</a>
- <div style="margin-left: 1em;" class="toc-entry">
- <a href="#clojure.contrib.stream-utils/defst">defst</a>
- </div><div style="margin-left: 1em;" class="toc-entry">
- <a href="#clojure.contrib.stream-utils/defstream">defstream</a>
- </div><div style="margin-left: 1em;" class="toc-entry">
- <a href="#clojure.contrib.stream-utils/pick">pick</a>
- </div><div style="margin-left: 1em;" class="toc-entry">
- <a href="#clojure.contrib.stream-utils/pick-all">pick-all</a>
- </div><div style="margin-left: 1em;" class="toc-entry">
- <a href="#clojure.contrib.stream-utils/stream-drop">stream-drop</a>
- </div><div style="margin-left: 1em;" class="toc-entry">
- <a href="#clojure.contrib.stream-utils/stream-filter">stream-filter</a>
- </div><div style="margin-left: 1em;" class="toc-entry">
- <a href="#clojure.contrib.stream-utils/stream-flatten">stream-flatten</a>
- </div><div style="margin-left: 1em;" class="toc-entry">
- <a href="#clojure.contrib.stream-utils/stream-m">stream-m</a>
- </div><div style="margin-left: 1em;" class="toc-entry">
- <a href="#clojure.contrib.stream-utils/stream-map">stream-map</a>
- </div><div style="margin-left: 1em;" class="toc-entry">
- <a href="#clojure.contrib.stream-utils/stream-next">stream-next</a>
- </div><div style="margin-left: 1em;" class="toc-entry">
- <a href="#clojure.contrib.stream-utils/stream-seq">stream-seq</a>
- </div><div style="margin-left: 1em;" class="toc-entry">
- <a href="#clojure.contrib.stream-utils/stream-type">stream-type</a>
- </div>
- <br />
- </div>
-</div>
-</div>
- <div id="content-tag"><h1 id="overview">API for <span id="namespace-name">stream-utils</span>
- - <span id="header-project">clojure-contrib</span> <span id="header-version">next</span> (<span id="header-status">in development</span>)
- </h1>
-<span id="author-line">by <span id="author-name">Konrad Hinsen</span><br /></span>
-<br />Usage:
-<pre>
-(ns your-namespace
- (:require <span id="long-name">clojure.contrib.stream-utils</span>))
-</pre><pre>
-</pre><h2>Overview</h2>
-<pre id="namespace-docstr">Functions for setting up computational pipelines via data streams.
-
-NOTE: This library is experimental. It may change significantly
- with future release.
-
-This library defines:
-- an abstract stream type, whose interface consists of the
- multimethod stream-next
-- a macro for implementing streams
-- implementations of stream for
- 1) Clojure sequences, and vectors
- 2) nil, representing an empty stream
-- tools for writing stream transformers, including the
- monad stream-m
-- various utility functions for working with streams
-
-Streams are building blocks in the construction of computational
-pipelines. A stream is represented by its current state plus
-a function that takes a stream state and obtains the next item
-in the stream as well as the new stream state. The state is
-implemented as a Java class or a Clojure type (as defined by the
-function clojure.core/type), and the function is provided as an
-implementation of the multimethod stream-next for this class or type.
-
-While setting up pipelines using this mechanism is somewhat more
-cumbersome than using Clojure's lazy seq mechanisms, there are a
-few advantages:
-- The state of a stream can be stored in any Clojure data structure,
- and the stream can be re-generated from it any number of times.
- Any number of states can be stored this way.
-- The elements of the stream are never cached, so keeping a reference
- to a stream state does not incur an uncontrollable memory penalty.
-
-Note that the stream mechanism is thread-safe as long as the
-concrete stream implementations do not use any mutable state.
-
-Stream transformers take any number of input streams and produce one
-output stream. They are typically written using the stream-m
-monad. In the definition of a stream transformer, (pick s) returns
-the next value of stream argument s, whereas pick-all returns the
-next value of all stream arguments in the form of a vector.</pre>
-
-
-<br />
-<h2>Public Variables and Functions</h2>
-<div id="var-entry">
- <br />
- <hr />
- <h2 id="clojure.contrib.stream-utils/defst">defst</h2>
- <span id="var-type">macro</span><br />
- <pre id="var-usage">Usage: (defst name args streams &amp; body)
-</pre>
- <pre id="var-docstr">Define the stream transformer name by body.
-The non-stream arguments args and the stream arguments streams
-are given separately, with args being possibly empty.</pre>
-
-
- <a href="http://github.com/richhickey/clojure-contrib/blob/7188a51605136f36524e4091fe806859114d6056/src/main/clojure/clojure/contrib/stream_utils.clj#L183" id="var-source">Source</a>
-</div><div id="var-entry">
- <br />
- <hr />
- <h2 id="clojure.contrib.stream-utils/defstream">defstream</h2>
- <span id="var-type">macro</span><br />
- <pre id="var-usage">Usage: (defstream type-tag args &amp; body)
-</pre>
- <pre id="var-docstr">Define object of the given type as a stream whose implementation
-of stream-next is defined by args and body. This macro adds
-a type-specific method for stream-next and derives type
-from stream-type.</pre>
-
-
- <a href="http://github.com/richhickey/clojure-contrib/blob/7188a51605136f36524e4091fe806859114d6056/src/main/clojure/clojure/contrib/stream_utils.clj#L73" id="var-source">Source</a>
-</div><div id="var-entry">
- <br />
- <hr />
- <h2 id="clojure.contrib.stream-utils/pick">pick</h2>
- <span id="var-type">function</span><br />
- <pre id="var-usage">Usage: (pick n)
-</pre>
- <pre id="var-docstr">Return the next value of stream argument n inside a stream
-transformer. When used inside of defst, the name of the stream
-argument can be used instead of its index n.</pre>
-
-
- <a href="http://github.com/richhickey/clojure-contrib/blob/7188a51605136f36524e4091fe806859114d6056/src/main/clojure/clojure/contrib/stream_utils.clj#L149" id="var-source">Source</a>
-</div><div id="var-entry">
- <br />
- <hr />
- <h2 id="clojure.contrib.stream-utils/pick-all">pick-all</h2>
- <span id="var-type">function</span><br />
- <pre id="var-usage">Usage: (pick-all streams)
-</pre>
- <pre id="var-docstr">Return a vector containing the next value of each stream argument
-inside a stream transformer.</pre>
-
-
- <a href="http://github.com/richhickey/clojure-contrib/blob/7188a51605136f36524e4091fe806859114d6056/src/main/clojure/clojure/contrib/stream_utils.clj#L160" id="var-source">Source</a>
-</div><div id="var-entry">
- <br />
- <hr />
- <h2 id="clojure.contrib.stream-utils/stream-drop">stream-drop</h2>
- <span id="var-type">function</span><br />
- <pre id="var-usage">Usage: (stream-drop n stream)
-</pre>
- <pre id="var-docstr">Return a stream containing all but the first n elements of stream.</pre>
-
-
- <a href="http://github.com/richhickey/clojure-contrib/blob/7188a51605136f36524e4091fe806859114d6056/src/main/clojure/clojure/contrib/stream_utils.clj#L201" id="var-source">Source</a>
-</div><div id="var-entry">
- <br />
- <hr />
- <h2 id="clojure.contrib.stream-utils/stream-filter">stream-filter</h2>
- <span id="var-type">multimethod</span><br />
- <pre id="var-usage">Usage: (stream-filter p stream)
-</pre>
- <pre id="var-docstr">Return a new stream that contrains the elements of stream
-that satisfy the predicate p.</pre>
-
-
- <a href="http://github.com/richhickey/clojure-contrib/blob/7188a51605136f36524e4091fe806859114d6056/src/main/clojure/clojure/contrib/stream_utils.clj#L243" id="var-source">Source</a>
-</div><div id="var-entry">
- <br />
- <hr />
- <h2 id="clojure.contrib.stream-utils/stream-flatten">stream-flatten</h2>
- <span id="var-type">function</span><br />
- <pre id="var-usage">Usage: (stream-flatten s)
-</pre>
- <pre id="var-docstr">Converts a stream of sequences into a stream of the elements of the
-sequences. Flattening is not recursive, only one level of nesting
-will be removed.</pre>
-
-
- <a href="http://github.com/richhickey/clojure-contrib/blob/7188a51605136f36524e4091fe806859114d6056/src/main/clojure/clojure/contrib/stream_utils.clj#L271" id="var-source">Source</a>
-</div><div id="var-entry">
- <br />
- <hr />
- <h2 id="clojure.contrib.stream-utils/stream-m">stream-m</h2>
- <span id="var-type">var</span><br />
- <pre id="var-usage"></pre>
- <pre id="var-docstr">Monad describing stream computations. The monadic values can be
-of any type handled by stream-next.</pre>
-
-
- <a href="http://github.com/richhickey/clojure-contrib/blob/7188a51605136f36524e4091fe806859114d6056/src/main/clojure/clojure/contrib/stream_utils.clj#L135" id="var-source">Source</a>
-</div><div id="var-entry">
- <br />
- <hr />
- <h2 id="clojure.contrib.stream-utils/stream-map">stream-map</h2>
- <span id="var-type">multimethod</span><br />
- <pre id="var-usage">Usage: (stream-map f stream)
-</pre>
- <pre id="var-docstr">Return a new stream by mapping the function f on the given stream.</pre>
-
-
- <a href="http://github.com/richhickey/clojure-contrib/blob/7188a51605136f36524e4091fe806859114d6056/src/main/clojure/clojure/contrib/stream_utils.clj#L219" id="var-source">Source</a>
-</div><div id="var-entry">
- <br />
- <hr />
- <h2 id="clojure.contrib.stream-utils/stream-next">stream-next</h2>
- <span id="var-type">multimethod</span><br />
- <pre id="var-usage">Usage: (stream-next stream-state)
-</pre>
- <pre id="var-docstr">Returns a vector [next-value new-state] where next-value is the next
-item in the data stream defined by stream-state and new-state
-is the new state of the stream. At the end of the stream,
-next-value and new-state are nil.</pre>
-
-
- <a href="http://github.com/richhickey/clojure-contrib/blob/7188a51605136f36524e4091fe806859114d6056/src/main/clojure/clojure/contrib/stream_utils.clj#L91" id="var-source">Source</a>
-</div><div id="var-entry">
- <br />
- <hr />
- <h2 id="clojure.contrib.stream-utils/stream-seq">stream-seq</h2>
- <span id="var-type">function</span><br />
- <pre id="var-usage">Usage: (stream-seq s)
-</pre>
- <pre id="var-docstr">Return a lazy seq on the stream. Also accessible via
-clojure.contrib.seq/seq-on and
-clojure.contrib.generic.collection/seq for streams.</pre>
-
-
- <a href="http://github.com/richhickey/clojure-contrib/blob/7188a51605136f36524e4091fe806859114d6056/src/main/clojure/clojure/contrib/stream_utils.clj#L113" id="var-source">Source</a>
-</div><div id="var-entry">
- <br />
- <hr />
- <h2 id="clojure.contrib.stream-utils/stream-type">stream-type</h2>
- <span id="var-type">var</span><br />
- <pre id="var-usage"></pre>
- <pre id="var-docstr">The root type for the stream hierarchy. For each stream type,
-add a derivation from this type.</pre>
-
-
- <a href="http://github.com/richhickey/clojure-contrib/blob/7188a51605136f36524e4091fe806859114d6056/src/main/clojure/clojure/contrib/stream_utils.clj#L69" id="var-source">Source</a>
-</div>
-
-
-</div>
- </div>
- </div>
- </div>
- </div>
- <div id="foot">
- <div style="text-align: center;" id="copyright">Copyright 2007-2009 by Rich Hickey and the various contributors</div>
- </div>
- </div>
- <div id="DesignedBy">Logo &amp; site design by <a title="Visit Tom Hickey's website." href="http://www.tomhickey.com">Tom Hickey</a>.<br />
- Clojure auto-documentation system by Tom Faulhaber.</div>
- </div>
- <!-- /AllContentContainer -->
- </body>
-
-</html> \ No newline at end of file