MFR:用于列表/关联数组操作的 JSL 函数编程库我在开发大型 JSL 框架时开发了这个帮助程序库。在编写第 n 个 For() 循环来遍历列表(并修复了与索引变量的意外破坏相关的许多错误)之后,我意识到如果我使用更高的值,代码会看起来更干净(并且更容易维护) - 级别抽象,如函数式编程中常用的抽象。
该库实现了映射/过滤/归约三重奏,可在 Python 和 JavaScript 等语言中使用,另外还有一些类似应用、归约和比较等语言。它的灵感来自http://book.pythontips.com/en/latest/map_filter.html 。
检查使用示例的测试,如果您发现错误或改进方法,请告诉我!
MFR(来自 Map-Filter-Reduce)是 JSL 的函数式编程原语库。
包括基本测试。
灵感来自http://book.pythontips.com/en/latest/map_filter.html
分析应用开发公用事业回复:MFR:用于列表/关联数组操作的 JSL 函数编程库谢谢, @jcperkins12 。很高兴您发现它有用。
回复:MFR:用于列表/关联数组操作的 JSL 函数编程库这对于它本身提供的功能以及 JSL 中的抽象模板都非常有用。感谢您发布此内容。
回复:MFR:JSL 的函数式编程库更新 (8/2019):新版本 (MFR2.zip) 通过新命令扩展了原始功能。此重写使用类而不是命名空间来使代码更清晰(并支持混合)。使用表达式操作而不是传递匿名函数来进行行为定制(对每个容器元素做什么)。 .zip 文件包含测试和一个实现复合(多级密钥)字典的实际应用程序,对于实现缓存很有用。
以下是可用方法的列表:
Map:返回替换输入值后表达式求值的结果列表。
Map2dict:返回替换输入值后两个表达式的求值结果的字典(关联数组)。
化简:返回替换输入值后表达式求值结果的累加。
过滤器:返回给定列表中替换输入值后表达式的计算结果为 true 的元素
Any:如果给定列表中的任何元素在用于表达式求值时产生真值,则返回 1。
全部:如果给定列表中的任何元素在用于表达式求值时产生真值,则返回 1。
Zip:将两个相同长度的列表组合成一个由相应元素对组成的列表。不支持/定义关联数组
应用:将表达式应用于输入以产生副作用。
Flat:采用嵌套列表并返回一个列表,其中所有元素都位于同一级别,保持原始顺序
回复:MFR:用于列表/关联数组操作的 JSL 函数编程库自 Jmp 16 以来,大部分功能现已正式作为Filter Each、Transfrom Each提供...
非常好。
还有扁平化功能吗?