fold相关内容
我查看了不同的页面和一般折叠以及其他一些内容,并且它们很好地解释了它。 在这种情况下,lambda的工作方式仍然存在问题。 foldr(\yys - > ys ++ [y])[] [1,2,3] 有人可以一步一步地尝试向我解释这一点。 此外, foldl 也能如何工作。 解决方案 使用 foldr fz [] = z foldr fz
..
我需要折叠。这是一个虚拟示例,当我计算列表中的值的总和并且遇到太大的值时(如10) L = [1,2,3,4,10,5,6,7], Res = try 列表:foldl( fun (I,Value) - > if(I Value + I; true - > throw({too_big_value,Value}) end end,
..
所以我需要实现一个需要两个列表和一个函数的函数。然后,该函数使用两个列表的元素,并将该函数应用于元素,并使用map和/或fold以及列表类中的函数将其保存到列表中。 示例: •zipWith((x:Int,y:Int)=> x + y,列表(1,2,3),列表(4 ,5,6)) →列表(5,7,9) •zipWith((x:Int,y:Int)=> x,列表(1,2,3),列表
..
我想使用一些功能,例如“zip”,“fold”和”map“在perl。 (就像在Haskell。)我发现地图,它的效果很好。那么拉链和褶皱呢?非常感谢你。 解决方案 我已经在我的模块中实现了许多这些功能(甚至是Haskell般的懒惰) 列表:: Gen 使用List :: Gen qw(zip reduce); 我的@list = zip [1 .. 4],['a'..'d']
..
我不知道为什么 scala.Option 没有一个方法 fold 像这样定义: fold(ifSome:A => B,ifNone:=> B) pre> 相当于 map(ifSome).getOrElse(ifNone ) 有没有比使用 map + getOrElse ? 解决方案 您可以: opt foldLeft(els)(
..
我正在做功能语言的自学(目前使用Haskell)。我遇到了一个基于Haskell的作业,需要根据foldr定义地图和过滤器。对于我的生活,我并没有完全理解这一点。 例如,当我定义一个地图函数,如: map'::(a - > b) - > [a] - > [b] map'f [] = [] map'f(x:xs)= foldr(\x xs - >(fx):xs)[] xs
..
从删除中恢复为其他答案提供上下文的原始问题: > 我正在尝试实现一种方法来找到矩形,圆形,位置和所有扩展形状的组的拼凑框。组基本上是一个形状数组 抽象类Shape case类Rectangle(width:Int,height:Int)扩展Shape case类位置(x:Int,y:Int,shape:Shape)extends Shape case类Circle(radi
..
我尝试使用 foldLeft 运算符在Scala中连接一系列 Traversable 视图,我不明白。 我可以使用 reduce 来连接 Traversable 的视图。 val xs = List(1,2,3,4)。 map(TraversableView [Int,Traversable [_]],b:TraversableView [Int,Traversable [_]])=
..
我想知道为什么下面的代码提供没有加速的情况下r / fold?我是否对reducer有所了解? 我使用Ubuntu 12.04开发盒运行速度非常慢(虽然有两个核心),通过emacs和lein run,具有相同的结果。 (require'[clojure.core.reducers:as r]) Runtime getRuntime availableProcessors)
..
在此博客条目中,“JavaScript中的CSP和换能器” a>,作者指出: 首先,我们要实现许多数组(或其他集合)操作,如 map ,过滤器和 reverse 可以定义如何操作,如地图,过滤器和反向操作(如:) 解决方案 这是真的,如果你能在Clojure中提供例子我们不关心懒惰。在Clojure中, map 和过滤器是惰性的,但reduce是急切的。不仅 reverse 不是延迟
..
前言。我试图得到一些更深入的理解C ++模板元编程,它似乎,我被卡住...我正在写一个库,我们将用于二进制数据[de]序列化。解压缩的数据的期望结构在一定程度上是已知的,并且对于我来说使用该知识似乎是合理的:(1)验证数据(2)跳过不相关的部分;(3)将数据直接解包到编译时已知的结构 - 因此,例如,我想实现一个函数来解包一个数组(数组可以包含异类数据,如JSON)。为了简化,让我们假设数组
..
查看C ++ 17 论文(和 cppreference ),我很困惑为什么选择只与运营商合作?乍一看,它似乎可以更容易扩展(... + args)只需推一个 + args 的元素之间的标记,但我不相信这是一个伟大的决定。让我们以总和为例: template auto sum(Ts& ... args){ return(args + ... + 0)
..
我需要Haskell的与foldl 功能的模拟折叠的STL容器。预期的签名是类似以下内容: 模板的Iterator,FoldingFunction,结果 结果与foldl( 迭代开始, 迭代结束, FoldingFunction楼 结果initValue); 标准STL没有这样的功能。是否加速的有什么? 我知道这是pretty实现简单,但我想知道是否有任何现成的标准化的实现。
..
在GNU八度这个code - [E,IX] = MIN(X); 将返回最小元素,它的位置。 如何你这repa任意二元函数? 这是我想出了:分X = Z $与foldl'F(E,0,0)ES 哪里 (五:ES)=了ToList点¯x F(一,九,R)B =让IX'= IX + 1,如果A<然后B(A,九',R),其他(二,九“,九') Z(A,九,R)=(
..
什么是降低VS倍,相对于他们的技术实施之间的区别? 据我所知,他们通过自己的签名折不同接受它被添加到每个分区输出额外的参数(即初始值)。 有人能告诉使用案例,这两个动作? 这将有更好的表现在哪种情况考虑是用于折叠0? 在此先感谢。 解决方案 有没有实际的区别,当涉及到任何的表现: 折叠行动中使用折叠在其上使用实施分区之前迭代器 foldLeft 减少使用 reduceLef
..
我有一个愚蠢的问题涉及褶皱和减少Pyspark。我理解这两种方法之间的差异,但如果双方都需要的应用功能是可交换幺半,我想不通其中折不能被降低被取代的例子。 此外,在Pyspark实现折叠则使用 ACC = OP(OBJ,ACC),为什么这个操作顺序用于代替ACC = OP(ACC,OBJ)? (这个二阶听起来更接近于一个leftFold我) 干杯 托马斯 解决方案 空RDD 在 R
..
我正在寻找关于如何实现流行的“折纸/折纸”在我的iOS项目效果的提示。 我所知道的项目,如: https://github.com/xyfeng/XYOrigami 但他们只提供了“动画”的效果,比开场动画没有手动控制。 我一直在努力剖析该项目,并拿出我后。 要更准确,我正在寻找关于如何实现这里显示的效果: http://vimeo.com/41495357 其中,折叠动画不是简单动画打
..
我有一个问题。 我的文字应该就在指定的宽度保持一致。我已成功地削减产量所需的大小,但我有问题,把一切右侧 下面是我得到了什么: #!的/ usr / local / bin目录/ bash的 长度= $ 1 文件= $ 2 回声$ 1 回声-e“长度= $长度\ t文件= $文件” F =`倍-w $长度$文件> output` 而读线 做 回声“行$行” 完成&LT
..
我试图解决使用功能的编程特定的问题。我的猜测是,折应该做的工作,但到目前为止,该解决方案已躲避我。 这是一个圆点分隔字符串开始像“ABC”我想建立一个Javascript对象,在JS文字符号看起来像: OBJ = {A:{B:{C:“无论”}}} 该算法应该接受一个种子的对象下手。在previous例如种子将 {} 。 如果我提供的 {A:{F:“任何其他”}} 作为种子,其结果
..
我的电子邮件地址列表,我需要发送电子邮件通知到每个地址。我想在同一时间做到这一点的25个地址块。是否有一个函数式语言如F#为“折叠”(串连)25电子邮件地址在一起......每个用分号隔开任何快捷方式。我知道有在.NET中的String.Split方法,但我需要Concat的25的时间。 什么是最优雅的方式来在F#中执行此? 解决方案 如果这仍然是相关的,这里是一个功能的加入使用的分隔符,但
..