我在使用 Turtle 时遇到了一些困难,直到盯着难以理解的错误消息几分钟后才意识到我使用了错误的fold
功能。
https://hackage.haskell.org/package/turtle-1.5.8/docs/Turtle-Shell.html#v:fold https://hackage.haskell.org/package/turtle-1.5.8/docs/Turtle-Shell.html#v:fold
https://hackage.haskell.org/package/foldl-1.4.0/docs/src/Control.Foldl.html#fold https://hackage.haskell.org/package/foldl-1.4.0/docs/src/Control.Foldl.html#fold
为什么会出现名称冲突?我不相信这是巧合,但我无法弄清楚。这些折叠本质上是不同类型的吗?
具体来说,我想使用最大修改时间将流文件名折叠成单个名称。
(首先,我们这里所说的折叠并不是foldr http://hackage.haskell.org/package/base-4.11.1.0/docs/Data-Foldable.html#v:foldr foldl http://hackage.haskell.org/package/base-4.11.1.0/docs/Data-Foldable.html#v:foldl foldl' http://hackage.haskell.org/package/base-4.11.1.0/docs/Data-Foldable.html#v:foldl-39-函数来自Data.Foldable
,他们来自foldl http://hackage.haskell.org/package/foldl包,即概念上相关于foldl'
函数从Data.Foldable
,作为一种通用的概括,但有单独的定义。)
The Fold http://hackage.haskell.org/package/foldl-1.4.0/docs/Control-Foldl.html#t:Fold数据类型表示对传入值序列执行的严格的、有状态的操作。它是Applicative
实例允许您对同一值序列组合运行两个操作。Fold
它们有一个很好的特性,即它们不知道值的来源。
每种类型的源都有自己的函数来输入值。这些功能might分享名字fold
,但这不是问题,因为典型的建议是导入合格的包。
The fold http://hackage.haskell.org/package/foldl-1.4.0/docs/Control-Foldl.html#v:fold函数从foldl http://hackage.haskell.org/package/foldl-1.4.0包提供任何内容Foldable
容器。这fold http://hackage.haskell.org/package/turtle-1.5.8/docs/Turtle-Shell.html#v:fold from turtle http://hackage.haskell.org/package/turtle-1.5.8提供结果Shell
。像“pipes”这样的流媒体库有它们的自己的适配器 http://hackage.haskell.org/package/pipes-4.3.9/docs/Pipes-Prelude.html#v:fold.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)