Tan rápido como lo ha hecho FP, al final, todos nuestros programas están estructurados. Es decir, no importa cuán puro o funcional los hagamos, siempre se traducen al ensamblaje, por lo que lo que realmente funciona detrás de las campanas son instrucciones, estados y bucles. Somos una especie de emulación de FP.
Como novato en hardware, mi pregunta es: ¿por qué no estamos usando arquitecturas informáticas que realmente computan las cosas en un estilo funcional? Por ejemplo, una computadora podría consistir en "chips funcionales" primitivos como "concat", "map" y "reduce", y un programa simplemente le diría a la computadora cómo hacer fluir los datos entre esos chips para calcular el resultado deseado , como en lenguajes concatenativos.
Esto realmente no tiene sentido, pero podría ilustrar lo que estoy pensando.
if we could make a specialized chip for Filter, for example, it would need just a single clock for a Filter operation.
En realidad no, porque Filter no es "una operación"; Es una función de orden superior que aplica una operación externa arbitraria a una lista. No puede reducir eso a un solo ciclo de reloj.