catamorphism相关内容

什么是 catamorphism,它可以在 C# 3.0 中实现吗?

我正在尝试了解 catamorphisms 并且我已经阅读了维基百科文章和F#主题系列中的前几篇文章F# 内部 博客. 我理解这是折叠的概括(即,将多个值的结构映射到一个值,包括将值列表映射到另一个列表).我认为折叠列表和折叠树是一个典型的例子. 是否可以使用 LINQ 的 Aggregate 运算符或其他一些更高阶的方法在 C# 中完成此操作? 解决方案 LINQ 的 Agg ..
发布时间:2022-01-02 13:39:59 C#/.NET

每种类型都有独特的变形吗?

最近,我终于开始觉得自己能理解变态.我在最近的答案中写了一些关于它们的内容,但我会简要地说一遍,在递归过程中对类型的抽象化遍历该类型的值,并对该类型具有的每个构造函数将该类型上的模式匹配化为一个函数.虽然我欢迎上面链接的我的回答中的这一点或更长版本的任何更正,但我认为我或多或少都对此有所保留,这不是这个问题的主题,只是一些背景. 一旦我意识到传递给目录转换的函数完全对应于该类型的构造函数,并 ..
发布时间:2020-11-22 07:00:20 其他开发

我将如何实现这个折叠功能?

data数据颜色=红色|粉红色|白色|蓝色|紫色|绿色|黄色 派生(Show,Eq) 数据Plant = Leaf |开花颜色 | Stalk Plant Plant derived(Show,Eq) 现在我应该实现一个以下类型的函数 fold_plant : (x - > x - > x) - > (颜色 - > x) - > x - >植物 - ..
发布时间:2018-06-05 11:14:17 其他开发

Agda的递归方案

不用说,Haskell的标准构造 newtype修复f =修复{getFix :: f(修复f) } cata ::(Functor f)=> (f a - > a) - >修复f - > cata f = f。 fmap(cata f)。 getFix 非常棒,非常有用。 试图在Agda中定义一个类似的东西(我只是为了完整起见) da ..
发布时间:2018-06-04 17:02:01 其他开发

Haskell中的变形和树遍历

我很不耐烦,期待了解变态现象相关的这个SO问题) 我只练习真实世界Haskell教程的开始。所以,也许我现在要问的方式太多了,如果是这样的话,请告诉我我应该学习的概念。下面我引用变形术的维基百科代码示例。 我想知道你对下面的foldTree的看法,这是遍历Tree的一种方式,与其他SO的问题和答案相比,还涉及遍历Tree n元树遍历。 (独立于二元或不是,我认为下面的变形可以写成为管理 ..
发布时间:2018-06-04 15:08:06 其他开发

高阶函数foldl和foldr的实际例子是什么?

典型的学术范例是总结一个清单。 是否有现实世界中使用fold的例子可以揭示它的用途? 解决方案 fold 可能是序列中最基本的操作。要求它的实用性就像在一个命令式语言中要求为循环使用一样。 给定一个列表(或数组,树或..),起始值和函数, fold 运算符将列表减少为单个结果。它也是列表的自然变形记忆(析构函数)。 将列表作为输入并在检查列表元素后生成输出的任何操作都可以编码 ..
发布时间:2018-04-18 16:13:18 其他开发

折叠在Option上的关系是什么,等等,并在Traversable上折叠?

Scalaz为各种ADT提供了一个名为 fold 的方法,比如 Boolean , Option [ _] ,验证[_,_] , [_,_] 等。这种方法基本上针对给定的ADT使用与所有可能情况相对应的函数。换句话说,模式匹配如下所示: x匹配{ case Case1(a,b,c) => f(a,b,c) case情况2(a,b)=> g(a,b) 。 。 case Cas ..

什么是catamorphism并且可以将其实现在C#3.0吗?

我想了解catamorphisms和我读过维基百科的文章并在第一对夫妇的帖子该系列中的主题有关的在F#的博客F# 。 据我所知,这是褶皱的一般化(即,映射许多值的结构的一个值,包括值的另一个列表中的列表)。我收集了折叠式表和折叠树是一个典型的例子。 这能显示在C#中做,使用LINQ的总结运营商或其他一些高阶的方法? 解决方案 LINQ的聚合()仅仅是IEnumerables。在一般Ca ..
发布时间:2016-08-28 13:58:17 C#/.NET