Спасибо за столь развёрнутый ответ, очень интересно.

> -- Александр Ильин писал(а):
> Это отлично вписалось в идею расширить горизонты моего знания: функциональный - есть, а заодно ещё и стековый, что бы сие ни значило.Интересно, как они скомбинировали функциональность, то есть, работу с неизменяемым состоянием, и стековость, то есть, работу с изменяемым глобальным состоянием - стеком.

> -- Цитата:
> Хаскель в те времена ещё только зарождалсяПоясните, пожалуйста, что Вы имеете в виду, ведь Хаскель появился на 13 лет раньше Фактора.

> -- Цитата:
> Например, "5 days ago" - это валидный код на Факторе, который вернёт дату-время за 5 суток до текущего системного времени.Но выглядит как классический маленький пример кода для произведения эффекта на зрителей, но неприменимого для нормального использования. Например, из этого кода совсем неясно, что он делает, несмотря на родство с обычным языком.

> -- Цитата:
> Также естественно решаются задачи потоковой обработки данных - например, всё то, что в консоли мы написали бы через пайпы "|", в Факторе записывается точно так же, только через пробелыНе это ли подразумевалось под функциональностью?
> -- Цитата:
> При этом число входных и выходных параметров не ограничено, но строго проверяется компилятором.Проверка статическая? Если да, то как создатели этого добились?

> -- Цитата:
> Можно написать любые шаблоны, дать им имя и использовать из библиотекПо опыту использования отмечу и обратную сторону подобных шаблонов. Вместо того, чтобы написать то, что нужно в очевидном виде с ясными подробностями, приходится помнить кучу слов и постоянно уточнять в документации детали поведения, например, происходит ли поиск от начала и до конца, или он происходит в произвольном порядке, что характерно для некоторый типов хранилищ. С плохой памятью - это проблема, без подсказок в IDE сложно сориентироваться. Также, может запутывать ипользование правильных алгоритмов, но с неуместными для конкретного случая названием. Например, до того, как я изучил документацию, меня смутило в ревью требование использования метода стандартной библиотеки Java## Код:
```
HashMap.computeIfAbsent(key, mappingFunction)
```
для случая, когда было необходимо создать и положить элемент в хранилище, если по соответствующему ключу ничего не хранилось. Если трактовать HashMap, как cache вычислений, то название метода становится соответствующим смыслу, но это был не мой случай.