递归火山软件开发平台

标题: 火山PC语法扩充和语法糖 [打印本页]

作者: 龙纹    时间: 2022-9-27 03:11
标题: 火山PC语法扩充和语法糖
本帖最后由 龙纹 于 2023-2-6 22:22 编辑

这个类库为火山PC提供了匿名函数(lambda), 3 个常用高阶函数, 过滤(filter)、映射(map)、折叠(fold), 语法糖则是"创建数组类"与"数组连续加入成员".
其实这个类库写了挺久了, 也写了非常多, 远不止这几个函数, 编写过程不是很顺利, 主要是因为语法, 其次为迭代器, 因为火山数组没有迭代器, 导致不能使用C++标准库算法, 后来我魔改了火山核心库, 给数组添加了迭代器, 虽然结果还行, 但无法发布出来使用, 因此我重新封装了上述部分.

更新日志:
23-2-6
新增了一系列数组类v, 例如 整数数组类v、文本数组类v,还有对应的二维数组类v,在此之上提供了更多方便的函数,文本_分行,文本_分块等等
新增了数组排序和对二元组与哈希表的增强操作, 相关的可以查看例子中的"测试哈希表到数组"方法
23-2-1
增加了 <algorithm> 头文件引用, 感谢 @ziv 的反馈
23-1-31
增加了新的方法:具名函数、具名函数2、FP返回、传递具名函数、调用具名函数
11-20
增加了连续加入数组方法
10-30
连续加入成员方法现在支持字节集数组
9-28
增加了一系列操作数组的方法并更新了对应例程,具体为:
            提取、提取_直到、提取_尾、提取_尾_直到、删除、删除_直到、删除_尾、删除_尾_直到
            求和、求最大值、求最小值、是否相同
创建数组类 更名为 创建数组, 数组连续加入成员 更名为 连续加入成员

以下为使用方法示例
过滤:
(, 下载次数: 86)
映射:
(, 下载次数: 70)
折叠:
(, 下载次数: 77)


我是从函数式编程中学习到的这些, 正确的使用可以简化代码, 考虑到很多人不了解函数式编程, 我写了详细例子和图解来帮助理解和使用这3个高阶函数, 都在压缩包内.
压缩包: (, 下载次数: 90)
















作者: zhqyong    时间: 2022-9-27 06:44
厉害了我的哥。
作者: 山梦    时间: 2022-9-27 07:29

厉害了我的哥
作者: itismine    时间: 2022-9-27 08:54
学习一下。
作者: kyozy    时间: 2022-9-28 08:04
厉害了,666
作者: 沉默流星    时间: 2022-9-28 09:41
支持
作者: 阿丘    时间: 2022-9-28 10:04
支持,
学习一下
作者: htpmcj    时间: 2022-9-30 16:57
学习一下
作者: matali    时间: 2022-10-22 20:31
本帖最后由 matali 于 2022-10-22 21:19 编辑

安装你的模块后,最新版火山调试运行你的例子出错
作者: 龙纹    时间: 2022-10-23 08:33
matali 发表于 2022-10-22 20:31
安装你的模块后,最新版火山调试运行你的例子出错

麻烦把报错截图发一下, 尽量截全, 或者看我个人签名, 进裙聊, 这样效率高一些
作者: 790806514    时间: 2022-12-12 16:44

支持,
学习一下
作者: 龙纹    时间: 2023-1-31 21:24
根据火山12-12更新包提供的语法支持, 新增了具名函数, 简单的说就是创建一个可以多次复用的函数.
配合此类库提供的一些函数, 掌握之后或许可以改变你写代码的方式.
另外值得一提的是, 根据具名函数的编写方式, 或许可以把C++20提供的协程支持较好的封装到火山中使用.
作者: ziv    时间: 2023-2-1 10:12
matali 发表于 2022-10-22 20:31
安装你的模块后,最新版火山调试运行你的例子出错

"min": 不是 "std" 的成员
#include <algorithm>
作者: 龙纹    时间: 2023-2-1 15:25
ziv 发表于 2023-2-1 10:12
"min": 不是 "std" 的成员
#include

已修复, 增加了这个头文件引用.
可能是环境原因?我并没有这个报错, 你添加这个头文件引用之后现在运行例子正常吗?
作者: Inverse    时间: 2023-2-1 21:26
感谢分享。。。。支持支持
作者: 龙纹    时间: 2023-2-6 22:28
关于 2-6 新增了数组排序和对二元组与哈希表的增强操作
本论坛的一个帖子:【一道题】如何在10万个名字中找出多少是重复的?
使用"FP扩展函数"类库核心代码不超过10行就解决了,实现如下:
(, 下载次数: 54)
输出:
(, 下载次数: 51)

更具体的可以下载模块和例子, 完整代码在"测试哈希表到数组"方法中





欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4