The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

lambda Function Builder

John Mount

2023-08-19

The CRAN version of the R package wrapr package now includes a concise anonymous function constructor: l().

To use it please do the following: attach wrapr and ask it to place a definition for l() in your environment:

library("wrapr")
wrapr::defineLambda(name = "l")
ls()
##  [1] "LEFT_NAME"       "OTHER_SYMBOL"    "X"               "Y"              
##  [5] "angle"           "d"               "d2"              "df"             
##  [9] "f"               "inputs"          "l"               "plotb"          
## [13] "variable"        "variable_name"   "variable_string" "x"

Note: throughout this document we are using the letter “l” as a stand-in for the Greek letter lambda, as this non-ASCII character can cause formatting problems in some situations.

You can use l() to define functions. The syntax is: l(arg [, arg]*, body [, env=env]). That is we write a l()-call (which you can do by cutting and pasting) and list the desired function arguments and then the function body. For example the function that squares numbers is:

l(x, x^2)
## function (x) 
## x^2

We can use such a function to square the first four positive integers as follows:

sapply(1:4, l(x, x^2))
## [1]  1  4  9 16

Dot-pipe style notation does not need the l() factory as it treats pipe stages as expressions parameterized over the variable “.”:

1:4 %.>% { .^2 }
## [1]  1  4  9 16

And we can also build functions that take more than one argument as follows:

l(x, y, x + 3*y)
## function (x, y) 
## x + 3 * y

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.