gpt4 book ai didi

programming-languages - 让一种语言同时提供按名称调用和按值调用怎么样?

转载 作者:行者123 更新时间:2023-12-05 00:38:53 25 4
gpt4 key购买 nike

让一种语言提供按需调用 (CBN) 和按值调用 (CBV) 评估策略是否可以?我的意思是不修复它并模拟另一个但让用户在需要时选择哪个。例如,让语言有一个 eval与 Scheme 中一样的功能可用,它可以接受用户的另一个参数,指定他想要的评估策略。

最佳答案

在一种语言实现中结合按需求调用(惰性)和按值调用(严格性)当然是可能的,只要注意避免使具有副作用的计算变得惰性并使发散计算变得严格。

Strictness analysis用于惰性 (CBN) 函数式语言,以检测何时可以使用 CBV 策略安全地评估函数。 CBV 评估通常更快,但对非严格函数使用这种评估策略会改变程序的语义。

Wadler描述了如何在函数式语言中结合惰性计算和严格计算。

lambda 终极版 thread也解决了这个问题。

Scala有关键字 lazy用于说明某些计算将被延迟执行。其他语言也有类似的结构。

关于programming-languages - 让一种语言同时提供按名称调用和按值调用怎么样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5133581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com