functional-programming相关内容

Scala map/foreach 中的下划线

你能帮我理解下划线在下面第二种情况下的作用吗?我猜它为列表的每个元素定义了一个匿名函数,但为什么不像第一种情况那样调用该函数? scala>List(1,2,3,4).foreach(x => println("*" * x))**********标度>List(1,2,3,4).foreach(_ => println("*" * _))$line25.$read$$iw$$iw$$iw$$i ..
发布时间:2022-01-02 13:52:47 其他开发

java 8中构造函数引用有什么用

我正在阅读有关 Java 8 功能的信息,这使我想到了这个 文章 ,我想知道构造函数引用的实际用途,我的意思是为什么不直接使用 new Obj ? P.S,我试过谷歌搜索,但我没有找到有意义的东西,如果有人有代码示例、链接或啧啧,那就太好了 解决方案 首先,你应该明白构造函数引用只是方法引用的一种特殊形式.方法引用的要点在于它们不调用被引用的方法,而是提供了一种定义函数的方法,该函数 ..
发布时间:2022-01-02 13:52:30 其他开发

相当于python中的Haskell scanl

我想知道 python 中是否有一个内置函数用于等效的 Haskell scanl,因为 reduce 相当于 foldl>. 这样做的东西: 前奏>scanl (+) 0 [1 ..10][0,1,3,6,10,15,21,28,36,45,55] 问题不在于如何实现它,我已经有 2 个实现,如下所示(但是,如果您有更优雅的实现,请随时在此处展示). 第一个实现: # 低效, ..
发布时间:2022-01-02 13:52:17 Python

List Java 8 中 2 个字符串的每个组合

我想组合列表中的每两个字符串并使用 java8 流返回组合列表: List列表;Stream.concat(list.stream(), list.stream()).collect(toList()); 然而,这段代码不会产生组合,而只会产生列表的元素.我究竟做错了什么.我还希望将此代码并行化,以便它可以在多个内核上运行 解决方案 使用 flatMap 以组合方式组合字符串.每个字符 ..
发布时间:2022-01-02 13:52:01 Java开发

lambda 函数如何在 python 中引用它的参数?

我是 Python 新手.我的任务非常简单——我需要一个可用于批量处理的函数列表.所以我玩弄了一些例子,比如 fs = [lambda x: x + i for i in xrange(10)] 出人意料的是, [f(0) for f in fs] 给了我类似 [9, 9, 9, 9, 9, 9, 9, 9, 9, 9] 的结果.这不是我所期望的,因为我希望变量 i 在不同的函数中具有不同 ..
发布时间:2022-01-02 13:51:45 Python

在 Python 3 中的列表上从左到右应用操作

有什么可能的方法可以在 Python 中实现对列表的非惰性从左到右调用操作吗? 例如斯卡拉: val a = ((1 to 50).map(_ * 4).过滤器(_ s“结果[$n]=$x"}.mkString(" .. "))a: 字符串 = 结果[0]=20 .. 结果[1]=40 .. 结果[2]=60 .. 结果[3]=80 虽然我意识到很多人不会喜欢上面的语法,但我喜欢从左到 ..
发布时间:2022-01-02 13:51:35 Python

clojure 中的笛卡尔积

我正在尝试实现一种方法,该方法将获取列表列表并返回这些列表的笛卡尔积. 这是我目前所拥有的: (定义购物车([]'())([l1] (地图列表 l1))([l1 l2](地图(fn f[x] (地图(fn g [y] (列表 x y))l2))l1)))(定义笛卡尔积 [& 列表](减少购物车列表));测试用例(println (笛卡尔积'(a b) '(c d))) ;((a c) (a ..
发布时间:2022-01-02 13:51:14 其他开发

如何遍历模块的函数

我在导入 foo.py 后调用了这个函数.Foo 有几个我需要调用的方法,例如foo.paint, foo.draw: import foo代码如果 foo:getattr(foo, 'paint')() 我需要使用 while 循环来调用和迭代所有函数 foo.paint、foo.draw 等.我该怎么做? 解决方案 你可以像这样使用 foo.__dict__ : for name ..
发布时间:2022-01-02 13:51:08 Python

Java 8 用供应商填充数组

有没有办法使用 java 8 供应商 ? 我想写: 供应商供应商 = () ->新对象();对象[]数组=新对象[大小];Arrays.fill(数组,供应商); 注意:我知道我可以编写自己的方法. 解决方案 如果您想创建新数组填充由供应商生成的结果,您可以使用> Object[] array = Stream.generate(supplier).limit(数组大小).to ..
发布时间:2022-01-02 13:51:00 Java开发

Scala - 两个列表到元组列表

去年我在标准机器学习方面有相当多的经验,但我已经有大约 10 个月没有做过任何真正的函数式编程了.现在我已经加入了 Scala 的潮流,我在编写编译器时很难找到我在标准 ML 中广泛使用的操作(尽管公平地说,这个方法可能不是一个库方法). 基本上,我有两个列表: List("a","b","c")列表(1,2,3) 我想要一个操作,它会给我一个像这样的元组列表: List(("a",1 ..
发布时间:2022-01-02 13:50:49 其他开发

如何在功能组件中设置 displayName [React]

我知道有时需要设置 displayName,尤其是在处理生产版本时.我想知道如何使用我的功能组件设置它 - 是否可能/允许? 这是我的类组件中的内容: const MyComponent = React.createClass({displayName: '嘿嘿',渲染:函数(){控制台日志(this.displayName);}}); 如何在无状态组件中做同样的事情? 解决方案 ..
发布时间:2022-01-02 13:50:40 前端开发

如何使用 Lodash 流组合不同数量的函数?

我想做一些函数组合.我已经知道了: 如果 f3(x) 应与 f1(f2(x)) 相同然后 f3 = _.flowRight(f1,f2); 如果 f3(x,y) 应与 f1(x, f2(y)) 相同那么……? (用例是node.js/express中间件函数的组合.) 解决方案 在以下图像中,我使用 {_} 作为值的占位符.把它想象成代码中的一个洞,我们可以在其中传递 ..
发布时间:2022-01-02 13:50:31 前端开发

与通过循环调用函数相比,地图或列表理解实现的性能提升从何而来?

我知道在 map 的实现中使用内存可能比在循环中执行它的方式更有效.但是,我发现使用 map 函数而不是调用在循环上迭代的函数也可以提高速度. 这是否来自于存储内存的一些优化?我的意思的一个例子是以连续的方式放置内存.我也可以看到,如果操作并行运行,那么速度也会提高,但我认为情况并非如此.非常欢迎来自任何语言/包的地图实现的任何已知优化示例! -- 编辑:我觉得我之前的例子好像没有很好 ..
发布时间:2022-01-02 13:50:25 Python

我在哪里可以找到用于解释函数式编程的符号的解释/摘要,特别是 Ramda.js?

JavaScript 函数式编程库 Ramda.js 的 API 文档包含符号缩写,但未提供用于理解这些缩写的图例.有没有我可以去破译这些的地方(网站、文章、备忘单等)? Ramda.js API 文档中的一些示例: 数字 ->数字 ->数字应用 f =>f(a -> b) ->f a ->fb数字 ->[a] ->[[一个]](*... -> a) ->[*] ->一个{k: ((a, ..
发布时间:2022-01-02 13:50:06 前端开发

在 C# 中访问 F# 可区分联合类型的数据的最简单方法是什么?

我正在尝试了解 C# 和 F# 的配合效果如何.我从 F# for Fun & 中获取了一些代码.利润博客,它执行基本验证并返回可区分的联合类型: type Result=|'TSuccess 的成功|'TFailure 失败类型请求 = {名称:字符串;电子邮件:字符串}让 TestValidate 输入 =如果 input.name = "" 然后失败“名称不能为空"else 成功输入 当 ..
发布时间:2022-01-02 13:49:52 C#/.NET