API for clojure.algo.generic.arithmetic
-
by Konrad Hinsen
Full namespace name:
clojure.algo.generic.arithmetic
Overview
Generic arithmetic interface
This library defines generic versions of + - * / as multimethods
that can be defined for any type. The minimal required
implementations for a type are binary + and * plus unary - and /.
Everything else is derived from these automatically. Explicit
binary definitions for - and / can be provided for
efficiency reasons.
Types
one-type
record
Fields:
[]
Protocols:
Interfaces:
clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map
zero-type
record
Fields:
[]
Protocols:
Interfaces:
clojure.lang.IHashEq, clojure.lang.IKeywordLookup, clojure.lang.ILookup, clojure.lang.IObj, clojure.lang.IPersistentMap, java.io.Serializable, java.util.Map
Public Variables and Functions
*
multimethod
Usage: (* x)
(* x y)
(* x y & more)
Return the product of all arguments. The minimal implementation for type
::my-type is the binary form with dispatch value [::my-type ::my-type].
Source
+
multimethod
Usage: (+ x)
(+ x y)
(+ x y & more)
Return the sum of all arguments. The minimal implementation for type
::my-type is the binary form with dispatch value [::my-type ::my-type].
Source
-
multimethod
Usage: (- x)
(- x y)
(- x y & more)
Return the difference of the first argument and the sum of all other
arguments. The minimal implementation for type ::my-type is the binary
form with dispatch value [::my-type ::my-type].
Source
->one-type
function
Usage: (->one-type)
Positional factory function for class clojure.algo.generic.arithmetic.one-type.
Source
->zero-type
function
Usage: (->zero-type)
Positional factory function for class clojure.algo.generic.arithmetic.zero-type.
Source
/
multimethod
Usage: (/ x)
(/ x y)
(/ x y & more)
Return the quotient of the first argument and the product of all other
arguments. The minimal implementation for type ::my-type is the binary
form with dispatch value [::my-type ::my-type].
Source
defmethod*
macro
Usage: (defmethod* ns name & args)
Define a method implementation for the multimethod name in namespace ns.
Required for implementing the division function from another namespace.
Source
map->one-type
function
Usage: (map->one-type m#)
Factory function for class clojure.algo.generic.arithmetic.one-type, taking a map of keywords to field values.
Source
map->zero-type
function
Usage: (map->zero-type m#)
Factory function for class clojure.algo.generic.arithmetic.zero-type, taking a map of keywords to field values.
Source
qsym
macro
Usage: (qsym ns sym)
Create the qualified symbol corresponding to sym in namespace ns.
Required to access the division function from another namespace,
e.g. as (qsym clojure.algo.generic.arithmetic /).
Source