函数式编程 2 - 函数式的pipeline模式

pipeline(管道) 借鉴于 Unix Shell 的管道操作 -- 把若干命令串起来, 前面命令的输出成为后面命令的输入,
如此完成一个流式计算.
(注:管道绝对是一个伟大的发明,它的设计哲学就是KISS - 让每个功能就做一件事,并把这件事做到极致,软件或程序的拼装会变得
更为简单和直观. 这个设计理念影响非常深远, 包括今天的Web Service,云计算,以及大数据的流式计算等)

比如,shell命令:

ps auwwx | awk '{print $2}' | sort -n | xargs echo

上面例子是查看一个用户执行的进程列表,列出来后,取第二列,第二列是它的进程ID,排个序,再把它显示出来.

抽象成函数式的样子,我们就可以反过来,一层套一层:

xargs( echo, sort(n,awk('print $2',ps(auwwx))) )

也可以把函数放进数组里面,然后顺序执行一下.

pids = for_each(result,[ps_auwwx,awk_p2,sort_n,xargs_echo])
posted @ 2020-10-05 19:51  ukyo--夜王  阅读(205)  评论(2编辑  收藏  举报