Documentation
¶
Index ¶
- func Reduce[T any, Tr any](m Monad[T], f func(Tr, T) (Tr, bool), i Tr) Tr
- type Iterator
- type Monad
- func Bind[Tx any, Ty any](mx Monad[Tx], f func(Tx) Monad[Ty]) Monad[Ty]
- func Filter[T any](m Monad[T], f func(T) bool) Monad[T]
- func Fold[T any, Ta any](m Monad[T], f func(Ta, T) (Ta, bool), i Ta) Monad[Ta]
- func FromChan[T any](chFunc func() <-chan T) Monad[T]
- func FromIter[T any](iFunc func() iter.Seq[T]) Monad[T]
- func Map[Ta any, Tb any](ma Monad[Ta], f func(Ta) Tb) Monad[Tb]
- func None[T any]() Monad[T]
- func Replicate[T any](v T) Monad[T]
- func (m Monad[T]) Chan() <-chan T
- func (m Monad[T]) DropAtMost(n int) Monad[T]
- func (m Monad[T]) Head() (val T, ok bool)
- func (m Monad[T]) Insert(vs ...T) Monad[T]
- func (m Monad[T]) Iter(yield func(T) bool)
- func (m Monad[T]) Last() (val T, ok bool)
- func (m Monad[T]) Slice() []T
- func (m Monad[T]) TakeAtMost(n int) Monad[T]
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Monad ¶
var Fibonacci Monad[uint] = func() Iterator[uint] { a, b := uint(0), uint(1) return func() (uint, bool) { a, b = b, a+b return a, true } }
Fibonacci - Fibonacci sequence
var Prime Monad[uint] = Filter(oddNonUnit, func(n uint) bool { return 0 == Reduce(oddNonUnit, func(numFactors uint, m uint) (uint, bool) { if numFactors > 0 { return numFactors, false } if m*m > n { return numFactors, false } if m%n == 0 { return numFactors + 1, true } else { return numFactors, true } }, 0) }).Insert(2)
Prime -
func (Monad[T]) DropAtMost ¶
func (Monad[T]) TakeAtMost ¶
Click to show internal directories.
Click to hide internal directories.