论 R 语言中惰性的设计、实现与使用
编程语言
2019-09-20 v1
摘要
R 编程语言保持惰性已超过二十五年。本文综述了 R 中按需求调用(call-by-need)的设计与实现,并基于数据驱动研究了历代程序员如何在代码中运用惰性。我们分析了 16,707 个包,观测到创建了 270.9 B 个 promise。我们的数据表明,几乎没有支撑证据表明程序员使用惰性来避免不必要的计算或操作无限数据结构。多数 R 代码看似是在不依赖、且在许多情况下甚至不知晓延迟参数求值的情况下编写的。唯一的显著例外是少数利用按需求调用进行元编程的包。
引用
@article{arxiv.1909.08958,
title = {On the Design, Implementation, and Use of Laziness in R},
author = {Aviral Goel and Jan Vitek},
journal= {arXiv preprint arXiv:1909.08958},
year = {2019}
}
备注
27 pages, 4 tables, 21 figures