arrays - 如果Array.append没有部分应用可变参数,则可以删除lambda

标签 arrays lambda f#

我有字符串数组的数组。我需要将它们弄平,然后使用:

Array.fold (fun acc el -> Array.append acc el) [||] arr2d

Lint对我说:

"If Array.append has not mutable arguments partially applied then the lambda can be removed"



这是什么意思?如何删除lambda?

最佳答案

任何形式为(fun x -> f x)的lambda函数都可以表示为f。保持不变的条件。

在您的代码中,您拥有fun acc el -> Array.append acc el,它具有与Array.append相同的类型并且具有相同的类型,因此您可以将其缩短为:

Array.fold Array.append [||] arr2d

关于arrays - 如果Array.append没有部分应用可变参数,则可以删除lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33898648/

相关文章:

node.js - 如何创建从 HTTP/HTTPS API 获取数据的 Alexa 技能(在 AWS Lambda 上对 Node.js 使用 "Alexa Skills Kit")

java - 简化 Java 流中的 Lambda 表达式

multithreading - F# 是函数式语言的糟糕选择吗

php 获取数组的第一个值(关联与否)

java - 使用 Mockito 2.0.7 模拟 lambda 表达式

javascript - 如何将新属性推送到对象数组中的每个现有对象中?

scala - 应用风格的实际用途是什么?

visual-studio - 如何在 Visual Studio 2015 中测试 F#?

c - 从 uint32_t[16] 数组到 uint32_t 变量序列的 64 位副本

arrays - Julia:函数式编程:根据另一个值数组验证数组条目