问题标签 [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.
functional-programming - 在 Ramda 中重构复杂计算中的功能差异
我刚刚开始使用 Ramda,而且我对函数式编程总体来说还比较陌生。我开始掌握如何构建我的程序的窍门,但我一直对某个方面感到困惑。我觉得我一定遗漏了一些关键概念。
我什至不确定如何表达我的问题,所以我将从一个例子开始。此代码片段是任意多边形质心计算的一部分:
centroidX
请注意,和之间的唯一区别centroidY
是 X 坐标调用x1
和x2
靠近中间,而 Y 坐标调用y1
和y2
靠近中间。
是否有一些简单的方法来重构这种共性,以便我可以执行以下操作:
我知道这还不算接近。我只是想表达我想要完成的事情。有什么建议吗?
javascript - 使用 Ramda.js 的函数的无点版本
我正在尝试使以下功能无点。不过,我不确定如何将争论传递给内部函数。我正在使用 Ramda.js,但我认为这个概念比这更笼统。这是我的代码。
在这里,您会注意到id
参数被传递给内部函数propEq
。这是我不确定的部分。
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 ?有没有更惯用的方法来解决这个问题?
javascript - 用另一个对象的细节填充对象
我有两个项目:
列表:
收藏:
如何使用 Ramda.js 或函数式样式,使用Collection中的详细信息填充List ,并通过其键映射?结果应该是这样的
我现在拥有的是
该populate
函数对我来说看起来非常不起作用,因为它仍然传递状态。有没有更简洁的方法来完成同样的任务,使用 Ramda.js?步骤分解是
- 迭代列表项
- 收
key
进物品 - 在Collection中查找详细信息对象
key
- 合并回项目
javascript - 这个 Ramda.js 数据转换可以改进吗?
我有一个商店列表和一个 ID 列表:
我想获取与列表中的 id 匹配的商店名称:
这是我想出的:
我的目标是学习函数式编程概念,同时生成可以在现实生活中使用的代码,但我认为我的解决方案既不可读也不高性能(我正在迭代两次),所以可以对此进行哪些改进代码?
javascript - 在 javascript 函数中使用类似 Haskell 的函数式累加器
我目前正在研究 Haskell,我对它的一些特性很着迷,例如使用累加器的末端递归函数。
问题:
- javascript中是否有类似的构造?还是因为 javascript 的功能不如 Haskell,所以它在效率方面是否有意义?
- 有没有像 ramda、lodash 等支持这种编程方式的库
如果是这样,例如,您将如何在 javascript 中编写此代码:
/li>
javascript - 这个使用 Ramda.js 的 javascript 代码看起来不错吗?
此代码有效,但我不知道它是否看起来不错以及 ramda.js 是否正确使用。它看起来实用且可读吗?
我也用 Q 表示承诺。
readDir 读取目录下的所有文件,包括统计信息,这个函数也用在其他地方
你怎么看?
非常感谢。
javascript - 为什么folktale和ramda如此不同?
我正在通过阅读 DrBoolean 的书来学习 javascript FP 。
我四处寻找函数式编程库。我找到了 Ramda 和 Folktale。两者都声称是函数式编程库。
但它们是如此不同:
Ramda似乎包含处理列表的实用函数:map、reduce、filter 和纯函数:curry、compose。它不包含任何处理 monad、functor 的内容。
但是, Folktale不包含任何用于列表或函数的实用程序。它似乎在javascript中实现了一些代数结构,例如monad:Maybe,Task ...
实际上我发现了更多的库,它们似乎都属于这两类。Underscore 和 lodash 就像 Ramda。幻想世界,无点幻想就像民间故事。
这些非常不同的库都可以称为函数库吗?如果可以,是什么让每个库都成为函数库?
node.js - RangeError:超出最大调用堆栈大小(Babel Ramda)
此代码在其下方生成堆栈跟踪:
堆栈跟踪:
我虽然那个 babel 会处理尾调用优化?不管怎样,这么短的名单,应该没那么深吧?
javascript - 理解 Ramda.js
问题一:
检查的目的是a['@@functional/placeholder'] === true
什么?
问题2:
http://ramdajs.com/0.18.0/docs/#reduce
我如何阅读符号?
(a,b -> a) -> a -> [b] -> a
这是我第一次看到这样的符号,它来自哪里?