On the Design, Implementation, and Use of Laziness in R

09/19/2019
by   Aviral Goel, et al.
0

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.

READ FULL TEXT

page 1

page 12

page 14

page 17

page 18

page 19

page 20

page 21

research
05/17/2017

Nemo/Hecke: Computer Algebra and Number Theory Packages for the Julia Programming Language

We introduce two new packages, Nemo and Hecke, written in the Julia prog...
research
08/30/2023

The Janus System: Multi-paradigm Programming in Prolog and Python

Python and Prolog express different programming paradigms, with differen...
research
06/15/2022

Current state and prospects of R-packages for the design of experiments

Re-running an experiment is generally costly and in some cases impossibl...
research
11/29/2019

Juniper: A Functional Reactive Programming Language for the Arduino

This paper presents the design and implementation of Juniper: a function...
research
05/28/2020

Sound Regular Corecursion in coFJ

The aim of the paper is to provide solid foundations for a programming p...
research
10/15/2020

World Age in Julia: Optimizing Method Dispatch in the Presence of Eval (Extended Version)

Dynamic programming languages face semantic and performance challenges i...
research
08/30/2022

How much does it cost to complete a sticker collection? A simulation study using R

This paper considers some computational issues related to the problem of...

Please sign up or login with your details

Forgot password? Click here to reset