Alla fine come FP ha fatto, alla fine, tutti i nostri programmi sono strutturati. Cioè, non importa quanto li facciamo puri o funzionali: sono sempre tradotti in assemblaggio, quindi ciò che scorre dietro le cappe sono istruzioni, stati e loop. Stiamo emulando FP.
Come noob dell'hardware, la mia domanda è: perché non stiamo usando architetture di computer che in realtà calcolano le cose in uno stile funzionale? Ad esempio, un computer potrebbe consistere in "chip funzionali" primitivi come "concat", "map" e "ridurre", e un programma direbbe semplicemente al computer come far fluire i dati tra quei chip per calcolare il risultato desiderato , come nelle lingue concatenative.
Questo non ha davvero senso, ma potrebbe illustrare ciò che sto pensando.
if we could make a specialized chip for Filter, for example, it would need just a single clock for a Filter operation.
Non proprio, perché Filter non è "un'operazione"; è una funzione di ordine superiore che applica un'operazione esterna arbitraria a un elenco. Non si può ridurre il che per un singolo ciclo di clock.