[Rd] On implementing zero-overhead code reuse
Konrad Rudolph
konrad.rudolph+r-devel at gmail.com
Tue Oct 4 13:07:31 CEST 2016
Check out ‹klmr/modules› on Github (distinct from CRAN’s ‹modules›!). It
looks pretty much exactly like what you want:
https://github.com/klmr/modules
It has an extensive README and vignette explaining the usage.
Cheers,
Konrad
--
Konrad Rudolph
On Sun, 2 Oct 2016 at 18:31 Kynn Jones <kynnjo at gmail.com> wrote:
> I'm looking for a way to approximate the "zero-overhead" model of code
> reuse available in languages like Python, Perl, etc.
>
> I've described this idea in more detail, and the motivation for this
> question in an earlier post to R-help
> (https://stat.ethz.ch/pipermail/r-help/2016-September/442174.html).
>
> (One of the responses I got advised that I post my question here instead.)
>
> The best I have so far is to configure my PROJ_R_LIB environment
> variable to point to the directory with my shared code, and put a
> function like the following in my .Rprofile file:
>
> import <- function(name){
> ## usage:
> ## import("foo")
> ## foo$bar()
> path <- file.path(Sys.getenv("PROJ_R_LIB"),paste0(name,".R"))
> if(!file.exists(path)) stop('file "',path,'" does not exist')
> mod <- new.env()
> source(path,local=mod)
> list2env(setNames(list(mod),list(name)),envir=parent.frame())
> invisible()
> }
>
> (NB: the idea above is an elaboration of the one I showed in my first
> post.)
>
> But this is very much of an R noob's solution. I figure there may
> already be more solid ways to achieve "zero-overhead" code reuse.
>
> I would appreciate any suggestions/critiques/pointers/comments.
>
> TIA!
>
> kj
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
[[alternative HTML version deleted]]
More information about the R-devel
mailing list