{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,9]],"date-time":"2026-01-09T03:31:20Z","timestamp":1767929480901,"version":"3.49.0"},"reference-count":27,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA","license":[{"start":{"date-parts":[[2019,10,10]],"date-time":"2019-10-10T00:00:00Z","timestamp":1570665600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/100007297","name":"Office of Naval Research","doi-asserted-by":"publisher","award":["503353"],"award-info":[{"award-number":["503353"]}],"id":[{"id":"10.13039\/100007297","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100007601","name":"Horizon 2020","doi-asserted-by":"publisher","award":["695412"],"award-info":[{"award-number":["695412"]}],"id":[{"id":"10.13039\/501100007601","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100001823","name":"Czech Ministry of Education, Youth and Sports","doi-asserted-by":"crossref","award":["CZ.02.1.010.00.015_0030000421"],"award-info":[{"award-number":["CZ.02.1.010.00.015_0030000421"]}],"id":[{"id":"10.13039\/501100001823","id-type":"DOI","asserted-by":"crossref"}]},{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["1518844, 1544542, 1617892"],"award-info":[{"award-number":["1518844, 1544542, 1617892"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2019,10,10]]},"abstract":"<jats:p>The R programming language has been lazy for over twenty-five years. This paper presents a review of the design and implementation of call-by-need in R, and a data-driven study of how generations of programmers have put laziness to use in their code. We analyze 16,707 packages and observe the creation of 270.9 B promises. Our data suggests that there is little supporting evidence to assert that programmers use laziness to avoid unnecessary computation or to operate over infinite data structures. For the most part R code appears to have been written without reliance on, and in many cases even knowledge of, delayed argument evaluation. The only significant exception is a small number of packages which leverage call-by-need for meta-programming.<\/jats:p>","DOI":"10.1145\/3360579","type":"journal-article","created":{"date-parts":[[2019,10,11]],"date-time":"2019-10-11T14:53:33Z","timestamp":1570805613000},"page":"1-27","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":9,"title":["On the design, implementation, and use of laziness in R"],"prefix":"10.1145","volume":"3","author":[{"given":"Aviral","family":"Goel","sequence":"first","affiliation":[{"name":"Northeastern University, USA"}]},{"given":"Jan","family":"Vitek","sequence":"additional","affiliation":[{"name":"Czech Technical University, Czechia \/ Northeastern University, USA"}]}],"member":"320","published-online":{"date-parts":[[2019,10,10]]},"reference":[{"key":"e_1_2_2_1_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796800000617"},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/366193.366201"},{"key":"e_1_2_2_3_1","volume-title":"Wilks","author":"Becker Richard A.","year":"1988","unstructured":"Richard A. Becker , John M. Chambers , and Allan R . Wilks . 1988 . The New S Language. Chapman & amp; Hall. Richard A. Becker, John M. Chambers, and Allan R. Wilks. 1988. The New S Language. Chapman &amp; Hall."},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/3276945.3276946"},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/3359619.3359744"},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1186\/gb-2004-5-10-r80"},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/72551.72554"},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1238844.1238856"},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1093\/comjnl\/32.2.98"},{"key":"e_1_2_2_10_1","first-page":"3","article-title":"R: A Language for Data Analysis and Graphics","volume":"5","author":"Ihaka Ross","year":"1996","unstructured":"Ross Ihaka and Robert Gentleman . 1996 . R: A Language for Data Analysis and Graphics . Journal of Computational and Graphical Statistics 5 , 3 . http:\/\/www.amstat.org\/publications\/jcgs\/ Ross Ihaka and Robert Gentleman. 1996. R: A Language for Data Analysis and Graphics. Journal of Computational and Graphical Statistics 5, 3. http:\/\/www.amstat.org\/publications\/jcgs\/","journal-title":"Journal of Computational and Graphical Statistics"},{"key":"e_1_2_2_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/2576195.2576205"},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/3213846.3213863"},{"key":"e_1_2_2_13_1","unstructured":"Uwe Ligges. 2017. 20 Years of CRAN (Video on Channel9). In UseR! Conference. Uwe Ligges. 2017. 20 Years of CRAN (Video on Channel9). In UseR! Conference."},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-31057-7_6"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.18637\/jss.v087.i04"},{"key":"e_1_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796800001489"},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.32614\/RJ-2015-009"},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/800087.802804"},{"key":"e_1_2_2_19_1","volume-title":"The R Ecosystem. In The R User Conference","author":"Smith David","year":"2011","unstructured":"David Smith . 2011 . The R Ecosystem. In The R User Conference 2011. David Smith. 2011. The R Ecosystem. In The R User Conference 2011."},{"key":"e_1_2_2_20_1","unstructured":"Luke Tierney. 2019. A Byte Code Compiler for R. www.stat.uiowa.edu\/~luke\/R\/compiler\/compiler.pdf Luke Tierney. 2019. A Byte Code Compiler for R. www.stat.uiowa.edu\/~luke\/R\/compiler\/compiler.pdf"},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380090105"},{"key":"e_1_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-15975-4_26"},{"key":"e_1_2_2_23_1","doi-asserted-by":"publisher","DOI":"10.1023\/A:100772063"},{"key":"e_1_2_2_24_1","volume-title":"ggplot2: Elegant Graphics for Data Analysis","author":"Wickham Hadley","unstructured":"Hadley Wickham . 2016. ggplot2: Elegant Graphics for Data Analysis . Springer-Verlag . http:\/\/ggplot2.org Hadley Wickham. 2016. ggplot2: Elegant Graphics for Data Analysis. Springer-Verlag. http:\/\/ggplot2.org"},{"key":"e_1_2_2_25_1","doi-asserted-by":"crossref","unstructured":"Hadley Wickham. 2017. tidyverse: Easily Install and Load the \u2019Tidyverse\u2019. https:\/\/CRAN.R-project.org\/package=tidyverse Hadley Wickham. 2017. tidyverse: Easily Install and Load the \u2019Tidyverse\u2019. https:\/\/CRAN.R-project.org\/package=tidyverse","DOI":"10.32614\/CRAN.package.tidyverse"},{"key":"e_1_2_2_26_1","unstructured":"Hadley Wickham Romain Francois Lionel Henry and Kirill M\u00fcller. 2018. dplyr: A Grammar of Data Manipulation. https:\/\/CRAN.R-project.org\/package=dplyr Hadley Wickham Romain Francois Lionel Henry and Kirill M\u00fcller. 2018. dplyr: A Grammar of Data Manipulation. https:\/\/CRAN.R-project.org\/package=dplyr"},{"key":"e_1_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.1006\/inco.1994.1093"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3360579","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3360579","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3360579","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T23:22:59Z","timestamp":1750202579000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3360579"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,10,10]]},"references-count":27,"journal-issue":{"issue":"OOPSLA","published-print":{"date-parts":[[2019,10,10]]}},"alternative-id":["10.1145\/3360579"],"URL":"https:\/\/doi.org\/10.1145\/3360579","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2019,10,10]]},"assertion":[{"value":"2019-10-10","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}