zoo

object zoo

A petting zoo for wild and exotic animals we keep separate from the regulars in scheme. For their safety and yours.

class Object
trait Matchable
class Any
zoo.type

Value members

Inherited methods

def apo[F[_] : Functor, A, R](coalgebra: RCoalgebra[R, F, A])(implicit evidence$1: Functor[F], embed: Embed[F, R]): A => R

A variation of an anamorphism that lets you terminate any point of the recursion using a value of the original input type.

A variation of an anamorphism that lets you terminate any point of the recursion using a value of the original input type.

One use case is to return cached/precomputed results during an unfold.

Inherited from:
Zoo
def apoM[M[_] : Monad, F[_] : Traverse, A, R](coalgebraM: RCoalgebraM[R, M, F, A])(implicit evidence$2: Monad[M], evidence$3: Traverse[F], embed: Embed[F, R]): A => M[R]

A monadic version of an apomorphism.

A monadic version of an apomorphism.

Inherited from:
Zoo
def chrono[F[_] : Functor, A, B](algebra: CVAlgebra[F, B], coalgebra: CVCoalgebra[F, A]): A => B

A fusion refold of a futumorphism followed by a histomorphism

A fusion refold of a futumorphism followed by a histomorphism

Inherited from:
Zoo
def dyna[F[_] : Functor, A, B](algebra: CVAlgebra[F, B], coalgebra: Coalgebra[F, A]): A => B

A fusion refold of an anamorphism followed by a histomorphism

A fusion refold of an anamorphism followed by a histomorphism

Inherited from:
Zoo
def futu[F[_] : Functor, A, R](coalgebra: CVCoalgebra[F, A])(implicit evidence$8: Functor[F], embed: Embed[F, R]): A => R

Futumorphism

Futumorphism

Inherited from:
Zoo
def histo[F[_] : Functor, R, B](algebra: CVAlgebra[F, B])(implicit evidence$7: Functor[F], project: Project[F, R]): R => B

Histomorphism

Histomorphism

Inherited from:
Zoo
def para[F[_] : Functor, R, B](algebra: RAlgebra[R, F, B])(implicit evidence$4: Functor[F], project: Project[F, R]): R => B

A variation of a catamorphism that gives you access to the input value at every point in the computation.

A variation of a catamorphism that gives you access to the input value at every point in the computation.

A paramorphism "eats its argument and keeps it too."

This means each step has access to both the computed result value as well as the original value.

Inherited from:
Zoo
def paraM[M[_] : Monad, F[_] : Traverse, R, B](algebraM: RAlgebraM[R, M, F, B])(implicit evidence$5: Monad[M], evidence$6: Traverse[F], project: Project[F, R]): R => M[B]

A monadic version of a paramorphism.

A monadic version of a paramorphism.

Inherited from:
Zoo
def postpro[F[_] : Functor, A, R](coalgebra: Coalgebra[F, A], natTrans: FunctionK[F, F])(implicit evidence$12: Functor[F], embed: Embed[F, R]): A => R

A variation of an anamorphism that applies a natural transformation after its coalgebra.

A variation of an anamorphism that applies a natural transformation after its coalgebra.

This allows one to postprocess the output structure.

Inherited from:
Zoo
def prepro[F[_] : Functor, R, B](natTrans: FunctionK[F, F], algebra: Algebra[F, B])(implicit evidence$11: Functor[F], project: Project[F, R]): R => B

A variation of a catamorphism that applies a natural transformation before its algebra.

A variation of a catamorphism that applies a natural transformation before its algebra.

This allows one to preprocess the input structure.

Inherited from:
Zoo
def zygo[F[_] : Functor, R, A, B](algebra: Algebra[F, A], ralgebra: RAlgebra[A, F, B])(implicit evidence$13: Functor[F], project: Project[F, R]): R => B

A catamorphism built from two semi-mutually recursive functions.

A catamorphism built from two semi-mutually recursive functions.

This allows the second algebra to depend on the result of the first one.

Inherited from:
Zoo