There's also base::declare() in R (>= 4.4.0), which people are
exploring to programmatically declare types and other things
(https://github.com/HenrikBengtsson/Wishlist-for-R/issues/169). For
example, Tomasz Kalinowski uses it in 'quickr' for guiding the "R to
Fortran Transpiler" (https://github.com/t-kalinowski/quickr).

/Henrik

On Wed, Sep 17, 2025 at 10:38 AM Duncan Murdoch
<murdoch.dun...@gmail.com> wrote:
>
> On 2025-09-17 1:23 p.m., IVO I WELCH wrote:
> >
> > Suggestion for Syntax Sugar:
> >
> > Would it make sense to permit a simple way to allow a coder to document the 
> > function argument type?
> >
> > f <- function( a:chr, b:data.frame, c:logi ) { … }
> >
> > presumably, what comes behind the ‘:’ should match what ‘str’ returns.
> >
> > however, this need not be checked (except perhaps when a particular option 
> > is set).  catching errors as soon as possible makes code easier to debug 
> > and error messages clearer.
>
> We already have that:  the Rd file should give a text description, and
> it can be enforced by run-time tests in the function body, e.g.
>
>   stopifnot(is.char(a), is.data.frame(b), is.logical(c))
>
> What we don't have, and I don't think it would be feasible, is a way to
> do this at compile time.  In general variables and expressions in R
> don't have a fixed type that is known before they are evaluated.
>
> Duncan Murdoch
>
> ______________________________________________
> R-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to