Зрештою, як це зробив FP, зрештою, всі наші програми структуровані. Тобто, не має значення, наскільки чистими чи функціональними ми їх робимо - вони завжди переводяться на збірку, тому те, що насправді працює за капотами, - це інструкції, стани та петлі. Ми наче наслідуємо FP.
Як апаратний ноб, моє питання: чому ми не використовуємо комп'ютерні архітектури, які насправді обчислювали речі у функціональному стилі? Наприклад, комп'ютер може складатися з примітивних "функціональних мікросхем", таких як "concat", "map" і "reduct", а програма просто розповість комп'ютеру, як передавати дані між цими мікросхемами, щоб обчислити бажаний результат , як, наприклад, в конкатенативних мовах.
Це насправді не має сенсу, але може ілюструвати те, що я думаю.
if we could make a specialized chip for Filter, for example, it would need just a single clock for a Filter operation.
Не дуже, тому що Filter не є "операцією"; це функція вищого порядку, яка застосовує до списку довільну зовнішню операцію. Ви не можете звести це до одного тактового циклу.