MapReduceって高階プロセスじゃね?
Unix哲学には、標準入力と標準出力があって、つまりプロセスは、関数だ。
関数型言語には、"関数をうけとる関数"がある。mapとか、foldとか。
じゃあOSで、"プロセスをうけとるプロセス"ってなんだろう。
MapReduceか。
MapReduceは未来では、OSの一機能になるんだろうな。
Unixには
"どれかのファイルディスクリプタが準備できたら"のselect()/poll()はあるけど、
"すべてのファイルディスクリプタが準備できたら"はどうだろう。
あるいは、複数のファイルをとって複数のファイルを返すコマンドはどうだろう。
こんな感じ。カレントディレクトリのファイルサイズの合計。
- lsがカレントディレクトリのすべてのファイルを返すコマンド、
- duをmapして、それぞれのサイズを調べて
- 足し算コマンドaddでreduceして、合計を求める。
$ ls | map du | reduce add
じゃあプロセスを返すプロセスってなんだろう??