ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 610|回复: 13

[原创] JSA加载前端流行库之二(ramda库)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-7-6 14:23 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

本来想跟lodash一样,只安装min版本的库,但是ramda的min版本是一个超级长的长字串,以至于vscode解析起来都有些吃力,更不要说wps的编辑器,导入就是崩溃。因此,改为导入完全的版本。

以下为ramda的介绍:

目前已经存在许多优秀的函数式的库。通常它们作为通用工具包,可以用于多种编程范式。Ramda 的目标更为专注:专门为函数式编程风格而设计,更容易创建函数式 pipeline、且从不改变用户已有数据。




Ramda 主要特性如下:

Ramda 强调更加纯粹的函数式风格。数据不变性和函数无副作用是其核心设计理念。这可以帮助你使用简洁、优雅的代码来完成工作。

Ramda 函数本身都是自动柯里化的。这可以让你在只提供部分参数的情况下,轻松地在已有函数的基础上创建新函数。

Ramda 函数参数的排列顺序更便于柯里化。要操作的数据通常在最后面。

最后两点一起,使得将多个函数构建为简单的函数序列变得非常容易,每个函数对数据进行变换并将结果传递给下一个函数。Ramda 的设计能很好地支持这种风格的编程。



使用 Ramda 时,应该感觉像使用原生 JavaScript 一样,它是实用且函数式的 JavaScript。Ramda 没有在字符串中引入 lambda 表达式,也没有借用 consed 列表,更不是要移植所有的 Clojure 函数。
Ramda 基本的数据结构都是原生 JavaScript 对象,我们常用的集合是 JavaScript 的数组。Ramda 还保留了许多其他原生 JavaScript 特性,例如,函数是具有属性的对象。
函数式编程优势主要体现在数据不变性和函数无副作用两方面。虽然 Ramda 没有对此特别加强,但它在这两方面支持的非常好。
我们尽量让实现(编程和 API 实现)简洁、优雅。但 API 为王。为此我们牺牲了大量优雅、简洁的实现。
最后,Ramda 非常注重运行性能。可靠和快速的实现胜过过于强调函数式的纯度。

QQ截图20240706141138.png
QQ截图20240706141153.png

ramda(v0.26.0).rar

99.91 KB, 下载次数: 29

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-7-7 09:08 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
感谢楼主分享,这个ramda库有跟lodsh库一样的说明文档么,谢谢

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-7-8 09:04 | 显示全部楼层
sunya_0529 发表于 2024-7-7 09:08
感谢楼主分享,这个ramda库有跟lodsh库一样的说明文档么,谢谢

正在进行注释这项工作,等全部注释完毕再上传.

TA的精华主题

TA的得分主题

发表于 2024-7-8 11:20 | 显示全部楼层
感谢楼主大佬分享!
JS只是初步入门,【自动柯里化】之类的完全不懂,只好用AI搜索,得到如下解释,才稍微明白意思了,照抄如下:

Ramda算法的技术特点和基本原理介绍
Ramda是一个专门为函数式编程风格而设计的JavaScript工具库。它旨在使函数式编程更加纯粹、简洁和优雅。以下是关于Ramda的一些基本信息和技术特点:

纯粹的函数式风格:Ramda强调更加纯粹的函数式风格,这有助于使用简洁、优雅的代码来完成工作。
自动柯里化:Ramda函数本身都是自动柯里化的,这意味着即使只提供部分参数,也可以轻松地在已有函数的基础上创建新函数。
参数排列顺序:Ramda函数参数的排列顺序更便于柯里化,要操作的数据通常在最后面。
Ramda的主要功能和应用场景
Ramda提供了一系列功能强大的函数,这些函数可以帮助开发者更高效地进行函数式编程。以下是一些常见的应用场景:

数据处理:Ramda提供了许多用于处理数组和对象的函数,如map, reduce, filter等,这些函数可以帮助开发者更简洁地处理数据。
函数组合:Ramda使得函数组合变得更加容易,通过组合不同的函数,可以创建出功能更为复杂的函数。
类型检查和处理:Ramda提供了一些用于类型检查和处理的函数,如is, type, prop, propOr等,这些函数可以帮助开发者更方便地处理不同类型的数据。
Ramda的使用示例
以下是一些使用Ramda的示例代码:

const R = require('ramda');

// 示例1:使用map函数处理数组
const double = R.map(x  => x * 2);
console.log(double([1,  2, 3])); // 输出: [2, 4, 6]

// 示例2:使用reduce函数求和
const sum = R.reduce((acc,  val) => acc + val, 0);
console.log(sum([1,  2, 3, 4])); // 输出: 10

// 示例3:使用filter函数过滤数组
const isEven = R.filter(x  => x % 2 === 0);
console.log(isEven([1,  2, 3, 4, 5])); // 输出: [2, 4]

Ramda与其他工具库的比较
与其他类似的工具库(如Lodash、Underscore.js )相比,Ramda更加专注于函数式编程。以下是Ramda与Lodash和Underscore.js 的一些主要区别:

函数式编程风格:Ramda的设计更加偏向于函数式编程,而Lodash和Underscore.js 则更加通用。
自动柯里化:Ramda函数默认是自动柯里化的,而Lodash和Underscore.js 则没有这个特性。
参数排列顺序:Ramda的参数排列顺序更适合柯里化,而Lodash和Underscore.js 则更倾向于传统的参数排列方式。
Ramda的生态系统和社区
Ramda有一个活跃的社区和丰富的生态系统。开发者可以在GitHub、Stack Overflow等平台上找到大量的资源和帮助。此外,Ramda还提供了一些额外的工具和库,如ramda-fantasy、ramda-adjunct等,这些工具和库可以进一步扩展Ramda的功能。

总结
Ramda是一个功能强大且专注于函数式编程的JavaScript工具库。通过使用Ramda,开发者可以写出更加纯粹、简洁和优雅的函数式代码。无论是数据处理、函数组合还是类型检查,Ramda都能提供强有力的支持。

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-7-10 14:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
注释工作才进行到一半,先发张网络上的大佬制作的思维导图给坛友.
Ramda库思维导图.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-7-10 15:53 | 显示全部楼层
耗时好几个小时,终于把261个函数的注释都写好了,同时也把版本有0.26更新为0.28,分享给坛友.
1.png
2.png
3.png
4.png

Ramda库(v0.28.0).rar

173.83 KB, 下载次数: 15

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-7-18 16:59 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-8-12 23:17 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
一江春水1688 发表于 2024-7-8 11:20
感谢楼主大佬分享!
JS只是初步入门,【自动柯里化】之类的完全不懂,只好用AI搜索,得到如下解释,才稍微 ...

map, reduce这些函数似乎是js自带的,不用加载这个库

TA的精华主题

TA的得分主题

发表于 2024-8-14 09:38 | 显示全部楼层
spaghetti8 发表于 2024-7-10 15:53
耗时好几个小时,终于把261个函数的注释都写好了,同时也把版本有0.26更新为0.28,分享给坛友.

大神,能不让这个公式有提示,不然每次都要复制函数名称,名称太多了,记不住

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-14 17:47 | 显示全部楼层
江林 发表于 2024-8-14 09:38
大神,能不让这个公式有提示,不然每次都要复制函数名称,名称太多了,记不住

在铭佬的指点下,R的所有方法都实现了自动补全功能,具体见附件。

Ramda库(v0.28.0)带方法提示.rar

177.99 KB, 下载次数: 7

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-9-8 09:02 , Processed in 0.054063 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表