考虑一些语言特性,我有时会想知道有人会如何实现这样的功能。所以我的问题是,现有的语言功能中哪一个最难实现?解释为什么如此受欢迎(甚至可能需要?)。
为了维持订单,每个帖子只能使用一个功能。
答案 0 :(得分:4)
MHMH - 以前没有问过这个问题吗?
高效的封闭处理。 由于闭包在Lisp和Smalltalk(在那里称为“Block”)中使用 MUCH 比在几乎任何其他编程语言中使用更多,因此实现必须非常快。因此堆栈分配是我们想要的速度。但是,由于“真正的”闭包可以比定义的方法堆栈帧更长,因此必须注意在需要时将它们从堆栈中移除。 闭包在任何地方都很有用:回调,枚举/收集协议,longjump,action-worker队列,观察者协议,延迟评估(期货和懒惰)等等。 顺便说一句:JavaScript也支持闭包!
答案 1 :(得分:2)
即使是最奇怪和最复杂的语言功能,例如C ++模板,实际上也相对容易实现。真正困难的是有效地实现这些功能。
对我而言,最难的功能就是使用类似ML的语言。对于临时实现而言,如果您希望它在库存硬件上高效,则非常棘手。有关详细信息,请参阅任何体面的ML实现。