问题标签 [ramda.js]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
127 浏览

functional-programming - 在 Ramda 中重构复杂计算中的功能差异

我刚刚开始使用 Ramda,而且我对函数式编程总体来说还比较陌生。我开始掌握如何构建我的程序的窍门,但我一直对某个方面感到困惑。我觉得我一定遗漏了一些关键概念。

我什至不确定如何表达我的问题,所以我将从一个例子开始。此代码片段是任意多边形质心计算的一部分:

centroidX请注意,和之间的唯一区别centroidY是 X 坐标调用x1x2靠近中间,而 Y 坐标调用y1y2靠近中间。

是否有一些简单的方法来重构这种共性,以便我可以执行以下操作:

我知道这还不算接近。我只是想表达我想要完成的事情。有什么建议吗?

0 投票
3 回答
601 浏览

javascript - 使用 Ramda.js 的函数的无点版本

我正在尝试使以下功能无点。不过,我不确定如何将争论传递给内部函数。我正在使用 Ramda.js,但我认为这个概念比这更笼统。这是我的代码。

在这里,您会注意到id参数被传递给内部函数propEq。这是我不确定的部分。

0 投票
1 回答
121 浏览

javascript - 无点符号的二维数组映射?

我正在玩功能/默认风格的编程,特别是创建蛇游戏(游戏示例:http: //patorjk.com/games/snake/

具体问题是我正在使用一系列字符串,例如:

并希望按“值”的数字顺序获取坐标列表。在域中,0 是蛇的头,2 是尾,整个就是棋盘。

所以我建立了:

这让我回来了:

[ [ { x: '0', y: '0', val: '2' }, { x: '0', y: '1', val: ' ' } ], [ { x: '1', y: '0', val: '1' }, { x: '1', y: '1', val: '0' } ] ] 然后我可以对其进行排序并获取我的坐标列表。它有效,但我对风格有疑问。

有没有办法以无点风格编写 findSnake ?有没有更惯用的方法来解决这个问题?

0 投票
1 回答
289 浏览

javascript - 用另一个对象的细节填充对象

我有两个项目:

列表:

收藏:

如何使用 Ramda.js 或函数式样式,使用Collection中的详细信息填充List ,并通过其映射?结果应该是这样的

我现在拥有的是

populate函数对我来说看起来非常不起作用,因为它仍然传递状态。有没有更简洁的方法来完成同样的任务,使用 Ramda.js?步骤分解是

  • 迭代列表
  • key进物品
  • 在Collection中查找详细信息对象key
  • 合并回项目
0 投票
2 回答
184 浏览

javascript - 这个 Ramda.js 数据转换可以改进吗?

我有一个商店列表和一个 ID 列表:

我想获取与列表中的 id 匹配的商店名称:

这是我想出的:

我的目标是学习函数式编程概念,同时生成可以在现实生活中使用的代码,但我认为我的解决方案既不可读也不高性能(我正在迭代两次),所以可以对此进行哪些改进代码?

0 投票
4 回答
276 浏览

javascript - 在 javascript 函数中使用类似 Haskell 的函数式累加器

我目前正在研究 Haskell,我对它的一些特性很着迷,例如使用累加器的末端递归函数。

问题:

  1. javascript中是否有类似的构造?还是因为 javascript 的功能不如 Haskell,所以它在效率方面是否有意义?
  2. 有没有像 ramda、lodash 等支持这种编程方式的库
  3. 如果是这样,例如,您将如何在 javascript 中编写此代码:

    /li>
0 投票
1 回答
153 浏览

javascript - 这个使用 Ramda.js 的 javascript 代码看起来不错吗?

此代码有效,但我不知道它是否看起来不错以及 ramda.js 是否正确使用。它看起来实用且可读吗?

我也用 Q 表示承诺。

readDir 读取目录下的所有文件,包括统计信息,这个函数也用在其他地方

你怎么看?

非常感谢。

0 投票
1 回答
12323 浏览

javascript - 为什么folktale和ramda如此不同?

我正在通过阅读 DrBoolean 的来学习 javascript FP 。

我四处寻找函数式编程库。我找到了 Ramda 和 Folktale。两者都声称是函数式编程库。

但它们是如此不同:

  • Ramda似乎包含处理列表的实用函数:map、reduce、filter 和纯函数:curry、compose。它不包含任何处理 monad、functor 的内容。

  • 但是, Folktale不包含任何用于列表或函数的实用程序。它似乎在javascript中实现了一些代数结构,例如monad:Maybe,Task ...

实际上我发现了更多的库,它们似乎都属于这两类。Underscore 和 lodash 就像 Ramda。幻想世界,无点幻想就像民间故事。

这些非常不同的库都可以称为函数库吗?如果可以,是什么让每个库都成为函数库?

0 投票
1 回答
760 浏览

node.js - RangeError:超出最大调用堆栈大小(Babel Ramda)

此代码在其下方生成堆栈跟踪:

堆栈跟踪:

我虽然那个 babel 会处理尾调用优化?不管怎样,这么短的名单,应该没那么深吧?

0 投票
2 回答
469 浏览

javascript - 理解 Ramda.js

问题一:

检查的目的是a['@@functional/placeholder'] === true什么?

问题2:

http://ramdajs.com/0.18.0/docs/#reduce

我如何阅读符号?

(a,b -> a) -> a -> [b] -> a

这是我第一次看到这样的符号,它来自哪里?