Как и FP, в конце концов, все наши программы структурированы. То есть не имеет значения, насколько чистыми или функциональными мы их создаем - они всегда переводятся в сборку, поэтому то, что на самом деле скрывается за капотами, это инструкции, состояния и циклы. Мы как бы подражаем ФП.
Как аппаратный нуб, мой вопрос: почему мы не используем компьютерные архитектуры, которые фактически вычисляют вещи в функциональном стиле? Например, компьютер может состоять из примитивных «функциональных микросхем», таких как «concat», «map» и «Reduce», и программа просто скажет компьютеру, как передавать данные между этими микросхемами, чтобы вычислить желаемый результат. Например, в конкатенационных языках.
Это не имеет смысла, но может проиллюстрировать, о чем я думаю.
if we could make a specialized chip for Filter, for example, it would need just a single clock for a Filter operation.
Не совсем, потому что Filter не является «операцией»; это функция высшего порядка, которая применяет произвольную внешнюю операцию к списку. Вы не можете уменьшить это до одного такта.