惰性求值:SAS宏与R函数的比较分析
编程语言
2026-01-16 v1
摘要
惰性求值是一种强大的技术,它通过将求值推迟到需要其结果时才进行,从而优化代码执行,提高效率。在大多数现代编程语言(如R)中,惰性求值通常应用于函数参数。然而,惰性求值在SAS中的应用尚未得到广泛探索。本文重点研究SAS宏和R函数中的惰性求值机制,并对驱动这些过程的底层原理进行比较分析。R的惰性求值由一种称为Promise的数据结构驱动,它推迟求值,直到需要该值时才会占用内存,采用按需调用的策略。另一方面,SAS通过其符号表实现惰性求值,利用内存存储参数,并基于按名调用的方式运行。这些惰性求值策略的差异会显著影响R函数和SAS MACRO的结果。通过考察这些不同的方法,本文借助示例阐明了惰性求值对编程效率的影响。随着从SAS向R的转变在制药行业日益普遍,理解这些技术使程序员能够优化其代码以获得更高的效能。本探索可作为提升两种语言编程能力和性能的指南。
引用
@article{arxiv.2601.09839,
title = {Lazy Evaluation: A Comparative Analysis of SAS MACROs and R Functions},
author = {Chen Ling and Yachen Wang},
journal= {arXiv preprint arXiv:2601.09839},
year = {2026}
}
备注
This paper was originally published in SESUG 2025 Conference Proceedings. Cary, NC: SouthEast SAS Users Group