Dear Saad Lamjadli,

В Thu, 12 Feb 2026 13:01:26 +0100
SAAD LAMJADLI <[email protected]> пишет:

> I have analyzed and rewritten dozens of base R functions, and this
> process has been very instructive. However, I still find it difficult
> to write more complex and robust functions on my own.
> 
> I would be very grateful for any advice you might have — whether in
> the form of recommended books, learning strategies, advanced
> resources, or suggestions for progressing toward more advanced
> functional programming skills in R.

If you're solely focused on functional programming, try Structure and
Implementation of Computer Programs [1] or How to Design Programs [2],
but be ready to learn some theory and an unfamiliar language (Scheme).
For purely functional programming, you can try learning OCaml or
Haskell, but it's not a task for the faint of heart. Once you're done,
you'll be saying things like "a monad is just a monoid in the category
of endofunctors" and not understanding why people are giving you
strange looks in return.

If you'd like to make your programs more complex and robust, you need
to study software architecture. The Architecture of Open Source
Applications [3] is a free resource on the topic. Clean Architecture by
Robert C. Martin is a more fundamental book, very much worth obtaining.

As for learning software development in R... R is an environment where
you can interact with data; it only moonlights as a programming
language when you develop packages in it. To this end you can read
Extending R by John M. Chambers, Writing R Extensions
(RShowDoc("R-exts")) and many other free resources on the Web.

Finally, Functional Programming by Thomas Mailund predates the native R
pipe (|>) and the currently experimental tail call support (Tailcall(),
Exec()), so it's probably worth spending some time to learn the new
tools as well.

-- 
Best regards,
Ivan

[1]
https://mitp-content-server.mit.edu/books/content/sectbyfn/books_pres_0/6515/sicp.zip/index.html

[2]
https://htdp.org/2025-12-27/Book/index.html

[3]
https://aosabook.org/en/

______________________________________________
[email protected] mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to