API for clojure.algo.generic.arithmetic - Generic versions of common functions 0.1.3 (in development)

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
  
Logo & site design by Tom Hickey.
Clojure auto-documentation system by Tom Faulhaber.