【发布时间】:2015-04-26 07:37:41
【问题描述】:
我已经问过类似的question,但还不够清楚,所以我决定重新措辞。
我知道矩阵是applicative functor,但不是单子。我想知道是否有一个简单实用的<*> 矩阵示例。
【问题讨论】:
标签: matrix functional-programming applicative
我已经问过类似的question,但还不够清楚,所以我决定重新措辞。
我知道矩阵是applicative functor,但不是单子。我想知道是否有一个简单实用的<*> 矩阵示例。
【问题讨论】:
标签: matrix functional-programming applicative
矩阵的一个可能的Applicative 实例将使其类似于ZipList。使用F 一个函数矩阵和X 一个值矩阵,F <*> X 将F 中的每个函数逐点应用于X 中的每个值。结果在每个维度上被截断以适合最短矩阵。 pure f 给出了一个无限矩阵,每个点都有f。例如,逐点矩阵乘法为(*) <$> A <*> B。
您可以使用accelerate 中使用的幻像类型参数来固定矩阵的形状,而不是截断和使用无穷大。当然,你也可以像固定大小的 ziplist 一样声明一个 Monad 实例。
【讨论】: