Thanks. Workarounds are interesting but... what's the point of the NOTE in the first place?
H. On 2/4/24 09:07, Duncan Murdoch wrote: > On 04/02/2024 10:55 a.m., Izmirlian, Grant (NIH/NCI) [E] via R-devel > wrote: >> Well you can see that yeast is exactly weekday you have. The way out >> is to just not name the result > > I think something happened to your explanation... > >> >> toto <- function(mode) >> { >> ifelse(mode == 1, >> function(a,b) a*b, >> function(u, v, w) (u + v) / w) >> } > > It's a bad idea to use ifelse() when you really want if() ... else ... > . In this case it works, but it doesn't always. So the workaround > should be > > > toto <- function(mode) > { > if(mode == 1) > function(a,b) a*b > else > function(u, v, w) (u + v) / w > } > > >> >> >> ________________________________ >> From: Grant Izmirlian <izmirlidr...@gmail.com> >> Date: Sun, Feb 4, 2024, 10:44 AM >> To: "Izmirlian, Grant (NIH/NCI) [E]" <izmir...@mail.nih.gov> >> Subject: Fwd: [EXTERNAL] R-devel Digest, Vol 252, Issue 2 >> >> Hi, >> >> I just ran into this 'R CMD check' NOTE for the first time: >> >> * checking R code for possible problems ... NOTE >> toto: multiple local function definitions for �fun� with different >> formal arguments >> >> The "offending" code is something like this (simplified from the real >> code): >> >> toto <- function(mode) >> { >> if (mode == 1) >> fun <- function(a, b) a*b >> else >> fun <- function(u, v, w) (u + v) / w >> fun >> } >> >> Is that NOTE really intended? Hard to see why this code would be >> considered "wrong". >> >> I know it's just a NOTE but still... > > I agree it's a false positive, but the issue is that you have a > function object in your function which can't be called > unconditionally. The workaround doesn't create such an object. > > Recognizing that your function never tries to call fun requires global > inspection of toto(), and most of the checks are based on local > inspection. > > Duncan Murdoch > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel -- Hervé Pagès Bioconductor Core Team hpages.on.git...@gmail.com [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel