pub struct CausalTensorWitness;Expand description
CausalTensorWitness is a zero-sized type that acts as a Higher-Kinded Type (HKT) witness
for the CausalTensor<T> type constructor. It allows CausalTensor to be used with generic
functional programming traits like Functor, Applicative, Foldable, and Monad
from the deep_causality_haft crate.
By implementing HKT for CausalTensorWitness, we can write generic functions that operate
on any type that has the “shape” of CausalTensor, without knowing the inner type T.
Trait Implementations§
Source§impl Applicative<CausalTensorWitness> for CausalTensorWitness
impl Applicative<CausalTensorWitness> for CausalTensorWitness
Source§fn pure<T>(value: T) -> CausalTensor<T>
fn pure<T>(value: T) -> CausalTensor<T>
Source§fn apply<A, B, Func>(
f_ab: CausalTensor<Func>,
f_a: CausalTensor<A>,
) -> CausalTensor<B>where
Func: FnMut(A) -> B,
fn apply<A, B, Func>(
f_ab: CausalTensor<Func>,
f_a: CausalTensor<A>,
) -> CausalTensor<B>where
Func: FnMut(A) -> B,
Applies a function wrapped in a CausalTensor (f_ab) to a value wrapped in a CausalTensor (f_a).
This implementation assumes f_ab is a scalar tensor containing a single function.
It applies this function element-wise to all values in f_a.
§Arguments
f_ab: ACausalTensorcontaining a single function.f_a: ACausalTensorcontaining arguments.
§Returns
A CausalTensor containing the results of applying the function to each value.
Source§impl BoundedAdjunction<CausalTensorWitness, CausalTensorWitness, Vec<usize>> for CausalTensorWitness
impl BoundedAdjunction<CausalTensorWitness, CausalTensorWitness, Vec<usize>> for CausalTensorWitness
Source§fn left_adjunct<A, B, F>(ctx: &Vec<usize>, a: A, f: F) -> CausalTensor<B>
fn left_adjunct<A, B, F>(ctx: &Vec<usize>, a: A, f: F) -> CausalTensor<B>
Source§fn right_adjunct<A, B, F>(ctx: &Vec<usize>, la: CausalTensor<A>, f: F) -> B
fn right_adjunct<A, B, F>(ctx: &Vec<usize>, la: CausalTensor<A>, f: F) -> B
Source§fn unit<A>(ctx: &Vec<usize>, a: A) -> CausalTensor<CausalTensor<A>>
fn unit<A>(ctx: &Vec<usize>, a: A) -> CausalTensor<CausalTensor<A>>
Source§impl BoundedComonad<CausalTensorWitness> for CausalTensorWitness
impl BoundedComonad<CausalTensorWitness> for CausalTensorWitness
fn extract<A>(fa: &CausalTensor<A>) -> Awhere
A: Clone,
fn extend<A, B, Func>(fa: &CausalTensor<A>, f: Func) -> CausalTensor<B>
Source§impl Foldable<CausalTensorWitness> for CausalTensorWitness
impl Foldable<CausalTensorWitness> for CausalTensorWitness
Source§fn fold<A, B, Func>(fa: CausalTensor<A>, init: B, f: Func) -> Bwhere
Func: FnMut(B, A) -> B,
fn fold<A, B, Func>(fa: CausalTensor<A>, init: B, f: Func) -> Bwhere
Func: FnMut(B, A) -> B,
Source§impl Functor<CausalTensorWitness> for CausalTensorWitness
impl Functor<CausalTensorWitness> for CausalTensorWitness
Source§fn fmap<A, B, Func>(m_a: CausalTensor<A>, f: Func) -> CausalTensor<B>where
Func: FnMut(A) -> B,
fn fmap<A, B, Func>(m_a: CausalTensor<A>, f: Func) -> CausalTensor<B>where
Func: FnMut(A) -> B,
Source§impl HKT for CausalTensorWitness
impl HKT for CausalTensorWitness
Source§type Type<T> = CausalTensor<T>
type Type<T> = CausalTensor<T>
Specifies that CausalTensorWitness represents the CausalTensor<T> type constructor.
Source§impl Monad<CausalTensorWitness> for CausalTensorWitness
impl Monad<CausalTensorWitness> for CausalTensorWitness
Source§fn bind<A, B, Func>(m_a: CausalTensor<A>, f: Func) -> CausalTensor<B>where
Func: FnMut(A) -> CausalTensor<B>,
fn bind<A, B, Func>(m_a: CausalTensor<A>, f: Func) -> CausalTensor<B>where
Func: FnMut(A) -> CausalTensor<B>,
Implements the bind (or flat_map) operation for CausalTensor<T>.
Applies the function f to each element in the tensor, where f itself
returns a new CausalTensor. The data from all resulting tensors are then
concatenated into a single 1-dimensional CausalTensor.
§Arguments
m_a: The initialCausalTensor.f: A function that takes an inner value and returns a newCausalTensor.
§Returns
A new 1-dimensional CausalTensor representing the chained and flattened computation.