就像FP一样,最终,我们所有的程序都是结构化的。也就是说,我们制作它们的纯度或功能无关紧要-它们始终会转换为汇编,因此实际上在幕后运行的是指令,状态和循环。我们有点模仿FP。
作为硬件新手,我的问题是:为什么我们不使用实际上以功能样式计算事物的计算机体系结构?例如,一台计算机可能由原始的“功能芯片”组成,例如“ concat”,“ map”和“ reduce”,而程序只会告诉计算机如何在这些芯片之间流动数据以计算所需的结果,例如连接语言。
这真的没有道理,但可以说明我在想什么。
5
没有链接,但是制造了Haskell芯片,专家系统也具有专用的Lisp硬件。我认为您可能比其他任何人都更接近于硬件的map / reduce模式。FP的唯一优势是并行性的可伸缩性。在其他所有方面,fp的性能均较差,因为由于具有较高的抽象水平,因此fp在指令中的粒度较小。在金属级别上,性能是至高无上的,除了在数学的抽象级别上,在执行中,一切都是必不可少的。计算2 * 3 + 5,而无需执行两个有序步骤。一切都势在必行
—
Jimmy Hoffa
—
Dan D.
@Dokkat:
—
梅森惠勒
if we could make a specialized chip for Filter, for example, it would need just a single clock for a Filter operation.
并非如此,因为Filter不是“操作”;这是一个高阶函数,可将任意外部操作应用于列表。您不能将其减少到单个时钟周期。
@Dokkat这是一个高阶函数,因为它以输入为函数。荒谬的特殊性使您的示例可以“一次操作”完成。特定谓词函数是常量,因此它并不是真正的过滤器。制作具有任意谓词功能的过滤器不能减少到单个时钟周期,因为您无法控制输入函数所占用的时钟周期。
—
耐嚼口香糖