Open
Description
最典型的,如java8 Stream流式编程。
假设,我注册了几个自定义函数,分别为:
trim(charSequence),对字符串进行trim处理
toStream( listOrArray, fn1, fn2, ...fnN ) ,最终输出非空Stream
toList( Stream ),最终输出为List
则,java代码:
List<String> strings = Arrays.asList("a", "b ", " c"); List<String> trimedStrings = strings.stream().map(String::trim).toList();
可以用表达式表示为:
toList( toStream(strings, 'trim(this)') )。此处this是中间迭代时临时变量,trim(this)是表达式
这种配置,个人是觉得阅读起来相对比较反直觉,期望类似形式为:
toStream(strings, 'trim(this)').toList()。此处,上一个toStream函数的输出,默认为下一个函数toList的第1个输入。
或者,类似java8 Stream类似编程,假设我再新增一个自定义的map函数,作用等同于Stream.map,则写成:
toStream(strings).map('trim()').toList()
类似的玩法还可以是:
trim(string).replace('a', 'b'),表示,先对string变量进行trim处理,再进行字符a替换成字符b。
Metadata
Metadata
Assignees
Labels
No labels