Шелл и реактивность

Листая публикацию про scsh 1 наткнулся на пару интересных иллюстраций:

Это мне напомнило другую матрицу, объясняющую что такое observables в rxjs:

Узнали? Согласны?

И там (раздел The Tao of Scheme and Unix2) подаётся интересная мысль и интересная находка для scheme-оболочки:

Большинство попыток встроить системную оболочку в функциональные языки программирования пытаются скрыть разницу между вызовом программы и вызовом объявленной функции. Если пользователь вводит

(lpr "notes.txt")

оболочка сначала воспринимает lpr как функцию. Если lpr не найдена среди объявленных функций, оболочка выполняет поиск программы в PATH. Эта прозрачность - аналогия к вызову функций в традиционных оболочках, таких как ksh.

Это фундаментальная ошибка

Эти две вычислительные модели фундаментально разные. Любая попытка их смешать, а не разграничить, приведет к уродливой и неконсистентной семантике.

В мире прилагаемых3 функций, агенты исполняются последовательно, и организованы с помощью функциональной композиции: (g (f x)).

В мире процессов, агенты исполняются одновременно, и организованы в конвейеры (pipes) потоков данных: f | g.

Есть о чём подумать. И о том, что классические шеллы (ksh, bash и прочие) действительно, смешивают эти вещи для упрощения, так и то, что это, и правда, несочетаемые вещи.

  1. A Scheme Shell Olin Shivers [Personal Information Architecture Note 3 4/1994](сохраненная копия) 

  2. признаюсь, меня привлекло tao в оглавлении, решил посмотреть. 

  3. Прикладных? Прикладываемых?