Por mais que a FP tenha feito, no final, todos os nossos programas estão estruturados. Ou seja, não importa o quão puro ou funcional nós os tornemos - eles sempre são traduzidos para montagem, então o que realmente passa por trás dos capuzes são instruções, estados e loops. Estamos meio que emulando FP.
Como noob de hardware, minha pergunta é: por que não estamos usando arquiteturas de computadores que realmente computam as coisas em um estilo funcional? Por exemplo, um computador poderia consistir em "chips funcionais" primitivos, como "concat", "map" e "reduce", e um programa simplesmente informaria ao computador como fluir os dados entre esses chips para calcular o resultado desejado. , como em idiomas concatenativos.
Isso realmente não faz sentido, mas pode ilustrar o que estou pensando.
if we could make a specialized chip for Filter, for example, it would need just a single clock for a Filter operation.
Na verdade não, porque o Filter não é "uma operação"; é uma função de ordem superior que aplica uma operação externa arbitrária a uma lista. Você não pode reduzir isso a um único ciclo de relógio.