day*_*day 4 programming-languages
是否可以使用语言提供按需调用(CBN)和按值调用(CBV)评估策略?我的意思是不修复它并在另一个模拟,但让用户在需要时选择哪个.例如,让语言具有evalScheme中可用的功能,该功能可以接受来自用户的另一个参数,指定他想要的评估策略.
eval
Dav*_*rke 6
在一种语言实现中组合按需调用(懒惰)和按值调用(严格)当然是可能的,只要一个人注意避免使副作用懒惰的计算并使分歧计算严格.
在惰性(CBN)函数语言中使用严格性分析来检测何时可以使用CBV策略安全地评估函数.CBV评估通常更快,但对非严格函数使用此评估策略会改变程序的语义.
Wadler描述了如何在函数式语言中组合惰性和严格计算.
最终线程的lambda 也解决了这个问题.
Scala有一个关键字,lazy用于声明某些计算将被懒惰地执行.其他语言也有类似的结构.
lazy
归档时间:
15 年 前
查看次数:
158 次
最近记录: