functional-programming相关内容

如何在 Python 3 中使用过滤器、映射和缩减

filter、map 和 reduce 在 Python 2 中完美运行.这是一个例子: >>>定义 f(x):返回 x % 2 != 0 和 x % 3 != 0>>>过滤器(f,范围(2, 25))[5, 7, 11, 13, 17, 19, 23]>>>定义立方体(x):返回 x*x*x>>>地图(立方体,范围(1, 11))[1, 8, 27, 64, 125, 216, 343, 51 ..
发布时间:2021-12-02 16:33:31 Python

在 Swift 数组上设置操作(联合、交集)?

是否有任何标准库调用可用于对两个数组执行设置操作,或自己实现此类逻辑(理想情况下,功能和效率尽可能高)? 解决方案 是的,Swift 有 Set 类. let array1 = ["a", "b", "c"]让 array2 = ["a", "b", "d"]让 set1:Set= 设置(数组 1)让 set2:Set= 设置(数组 2) Swift 3.0+ 可以对集合进行操作: ..
发布时间:2021-12-02 15:59:44 移动开发

为什么不可变性在 JavaScript 中如此重要(或需要)?

我目前正在研究 React JS 和 React Native 框架.在中途我遇到了 Immutability 或 Immutable-JS 库,当时我正在阅读有关Facebook 的 Flux 和 Redux 实现. 问题是,为什么不变性如此重要?改变对象有什么问题?这不是让事情变得简单吗? 举个例子,让我们考虑一个简单的新闻阅读器应用,其打开屏幕是新闻标题的列表视图. 如果我 ..
发布时间:2021-12-02 10:05:36 前端开发

如何使用 underscore.js 作为模板引擎?

我正在尝试了解 javascript 作为服务器端语言和函数式语言的新用法.几天前我听说了 node.js 和 express 框架.然后我看到 underscore.js 是一组实用函数.我在stackoverflow上看到了这个问题.它说我们可以使用 underscore.js 作为模板引擎.任何人都知道关于如何使用 underscore.js 进行模板制作的好教程,尤其是对于高级 javas ..
发布时间:2021-12-01 21:56:17 前端开发

Swift 编译器错误:“表达式太复杂"在字符串连接上

我觉得这比什么都有趣.我已经解决了,但我想知道原因.这是错误:DataManager.swift:51:90:表达式太复杂,无法在合理的时间内解决;考虑将表达式分解为不同的子表达式.它为什么抱怨?这似乎是最简单的表达方式之一. 编译器指向columns + ");";部分 func tableName() ->字符串{返回(“用户");}func createTableStatement( ..
发布时间:2021-12-01 18:02:00 移动开发

Javascript 相当于 Python 的 zip 函数

是否有与 Python 的 zip 函数等效的 javascript 函数?也就是说,给定多个长度相等的数组,创建一个成对数组. 例如,如果我有三个看起来像这样的数组: var array1 = [1, 2, 3];var array2 = ['a','b','c'];var array3 = [4, 5, 6]; 输出数组应该是: var 输出数组:[[1,'a',4], [2,'b ..
发布时间:2021-11-30 22:39:02 前端开发

什么是“咖喱"?

我在几篇文章和博客中看到了对柯里化函数的引用,但我找不到很好的解释(或至少一个有意义的解释!) 解决方案 柯里化是指将带有多个参数的函数分解为一系列函数,而每个函数只采用一个参数.这是 JavaScript 中的示例: function add (a, b) {返回 a + b;}添加(3, 4);//返回 7 这是一个函数,它接受两个参数 a 和 b,并返回它们的总和.我们现在将柯里 ..
发布时间:2021-11-30 22:25:16 前端开发

如何避免在 Node.js 中长时间嵌套异步函数

我想制作一个页面来显示来自数据库的一些数据,所以我创建了一些从我的数据库获取数据的函数.我只是 Node.js 的新手,据我所知,如果我想在一个页面(HTTP 响应)中使用所有这些,我必须将它们全部嵌套: http.createServer(function (req, res) {res.writeHead(200, {'Content-Type': 'text/html'});var htm ..
发布时间:2021-11-30 13:47:48 前端开发

Scala 赋值计算 Unit 而不是赋值的动机是什么?

Scala 赋值而不是赋值给 Unit 的动机是什么? I/O 编程中的一个常见模式是做这样的事情: while ((bytesRead = in.read(buffer)) != -1) { ... 但这在 Scala 中是不可能的,因为... bytesRead = in.read(buffer) .. 返回 Unit,而不是 bytesRead 的新值. 将函数式语言排除 ..
发布时间:2021-11-30 12:26:31 其他开发

函数执行什么操作?

int 函数(uint32_t *r, const uint32_t *a, const uint32_t *b, int n){国际我;uint32_t ri,c=0;for (i = 0; i 下面给出的 C 函数有四个参数:r、a 和 b 是指向数组的指针uint32_t 类型.整数 n 指定这些数组的长度(即所有三个数组包含相同数量的元素).返回值是 int 类型.任何人都可以帮助我了 ..
发布时间:2021-11-28 17:58:04 其他开发

什么是尾递归?

在开始学习 lisp 时,我遇到了尾递归这个词.具体是什么意思? 解决方案 考虑一个将前 N 个自然数相加的简单函数.(例如 sum(5) = 0 + 1 + 2 + 3 + 4 + 5 = 15). 这是一个使用递归的简单 JavaScript 实现: function recsum(x) {如果(x === 0){返回0;} 别的 {返回 x + recsum(x - 1);} ..
发布时间:2021-11-26 23:49:46 其他开发

映射并返回已解析的 Promise 数组的函数的名称?

也许这是一个愚蠢的问题,但我最近发现自己经常使用这种抽象: 异步函数 giveMeAName(cbAsync, initValue) {返回等待 Promise.all(initValue.map(cbAsync),);} 问题:这是其他人的共同任务吗?如果有,它有名字吗?如果没有,也许只是部分意识到,那么它是否让您想起了什么?否则,我可以删除问题. 目前我正在将这个函数用于这组指令.下 ..
发布时间:2021-11-26 17:34:06 前端开发

映射并返回已解析的 Promise 数组的函数的名称?

也许这是一个愚蠢的问题,但我最近发现自己经常使用这种抽象: 异步函数 giveMeAName(cbAsync, initValue) {返回等待 Promise.all(initValue.map(cbAsync),);} 问题:这是其他人的共同任务吗?如果有,它有名字吗?如果没有,也许只是部分意识到,那么它是否让您想起了什么?否则,我可以删除问题. 目前我正在将这个函数用于这组指令.下 ..
发布时间:2021-11-26 17:33:38 前端开发

在这个简单的例子中展示一流的功能

请使用这两个重叠的 Clojure 函数为初学者演示代码重用的一流函数(或其他一些函数式编程概念).基本上,使用函数式编程方法简化下面的代码块. 作为比较,你会如何用你选择的其他函数式语言来做到这一点? insertR 和 insertL 是简单的首次出现插入函数.如您所见,它们仅相差一行. ;测试用例(定义新键:蛋糕)(定义旧键:和)(def lat '(:培根:生菜:和:番茄:和 ..
发布时间:2021-11-26 17:32:49 其他开发

函数式编程和依赖倒置:如何抽象存储?

我正在尝试创建一个具有较低级别库的解决方案,该库将知道在调用某些命令时需要保存和加载数据,但保存和加载功能的实现将在平台中提供- 引用低级库的特定项目. 我有一些模型,例如: type User = { UserID: UserID情况:SituationID 列表 }type Situation = { SituationID: SituationID } 而我想要做的是能够定义和调用 ..
发布时间:2021-11-26 17:31:35 其他开发

抽象和概括有什么区别?

我理解抽象就是将一些更具体的东西变得更抽象.那个东西可能是一个数据结构或一个过程.例如: 数据抽象:矩形是正方形的抽象.它专注于正方形有两对对边这一事实,而忽略了正方形相邻边相等的事实. 过程抽象:高阶函数map是一个过程的抽象,它对值列表执行一些操作以产生一个全新的值列表.它专注于这样一个事实,即该过程循环遍历列表的每个项目以生成一个新列表,并忽略对列表的每个项目执行的实际操作. ..
发布时间:2021-11-26 17:25:19 其他开发

将集合作为函数使用

来自 FP 课程: type Set = Int =>布尔值//谓词/*** 指示集合是否包含给定元素.*/def contains(s: Set, elem: Int): Boolean = s(elem) 为什么这样做有意义? assert(contains(x => true, 100)) 基本上它的作用是为函数 x => 提供值 100;真的.即,我们提供 100,它返回 true ..
发布时间:2021-11-26 17:24:38 其他开发

为什么是高阶程序?

因此,如果一种语言提供更高阶的过程,那么我可以拥有返回过程的过程.类似的东西: (define (Proc a b c)(lambda (x) ( #| 方法体在这里是 a b c 和 x |# ))) 要创建新程序,我会执行以下操作: (define ProcA (Proc a1 b1 c1)) ;将创建具有 1 个参数的 ProcA 通过定义采用 4 个而不是 3 个参数的 Proc ..
发布时间:2021-11-26 17:23:33 其他开发

泄漏抽象的含义?

术语“泄漏抽象"是什么意思?(请举例说明.我经常很难理解单纯的理论.) 解决方案 这里有一个 meatspace 示例: 汽车有司机的抽象.最纯粹的形式是方向盘、油门和刹车.这种抽象隐藏了很多引擎盖下的细节:发动机、凸轮、正时皮带、火花塞、散热器等. 这个抽象的巧妙之处在于,我们可以用改进的部分替换部分实现,而无需重新培训用户.假设我们用电子点火替换了分配器盖,我们用可变凸轮替 ..
发布时间:2021-11-26 17:22:11 其他开发

Java 8 的 Optional.ifPresent 和 if-not-Present 的功能风格?

在 Java 8 中,如果 Optional 对象存在,我想对它做一些事情,如果它不存在,则做另一件事. if (opt.isPresent()) {System.out.println("找到");} 别的 {System.out.println("未找到");} 不过,这不是一种“功能风格". Optional 有一个 ifPresent() 方法,但我无法链接一个 orElse() ..
发布时间:2021-11-25 21:03:08 Java Web开发