Tout comme FP l'a fait, au final, tous nos programmes sont structurés. Autrement dit, peu importe à quel point nous les fabriquons, purs ou fonctionnels - ils sont toujours traduits en assemblage, donc ce qui se passe réellement derrière les capots, ce sont les instructions, les états et les boucles. Nous sommes une sorte d'émulation de FP.
En tant que noob matériel, ma question est: pourquoi n'utilisons-nous pas des architectures informatiques qui calculent réellement les choses dans un style fonctionnel? Par exemple, un ordinateur pourrait être constitué de "puces fonctionnelles" primitives telles que "concat", "mapper" et "réduire", et un programme dirait simplement à l'ordinateur comment faire circuler les données entre ces puces afin de calculer le résultat souhaité , comme dans les langues concaténatives.
Cela n'a pas vraiment de sens mais pourrait illustrer ce que je pense.
if we could make a specialized chip for Filter, for example, it would need just a single clock for a Filter operation.
Pas vraiment, car Filter n'est pas "une opération"; c'est une fonction d'ordre supérieur qui applique une opération externe arbitraire à une liste. Vous ne pouvez pas réduire cela à un seul cycle d'horloge.