[R] Programming Concepts and Philosophy

Simon Blomberg s.blomberg1 at uq.edu.au
Fri Jun 20 06:57:39 CEST 2008


I try to use a functional programming style. I define functions within
functions when it is helpful in terms of information hiding. I avoid
writing functions with side-effects as much as possible, so the only
communication of the called function with the caller function is through
the arguments and the returned value. I try to keep the code as simple
and clear as possible (this is one of the things I fail at most). An
appropriate amount of comments is also useful, especially when returning
to old code after a long break. OOP is useful for really big projects,
but I find OOP unnecessarily complicated for small jobs.

I found "Code Complete", by McConnell (http://www.cc2e.com/) to be very
helpful. I'm sure there are other books around with similar tips. Before
I switched to R, I used XLisp-Stat. I found learning Lisp to be a really
good way to learn good programming practices. Good Lisp code is the
closest thing you can get to poetry in computer programming. "Lisp Style
& Design", by Miller and Benson was helpful. I'd like to see an "S Style
& Design."

Cheers,

Simon.


On Fri, 2008-06-20 at 14:35 +1200, Murray Jorgensen wrote:
> I am wondering if people on the list could recommend books that they 
> have found helpful about programming concepts and style? I often find 
> that students write R programs by copying existing code but could really 
> benefit from the understanding of more general programming ideas. An 
> example would be to avoid writing functions which attempt to modify 
> their parameters. Another principle would be not to write programs with 
> numbers used as constants but to assign them to named objects as in
> 
> n <- 120 # number of observations
> p <- 10  # number of variables
> 
> near the beginning of a program rather than using "10" and "120" 
> throughout the script.
> 
> This sort of stuff is not specifically R but can be a problem for 
> students with little programming background.
> 
> I am happy to summarise responses.
> 
> Murray Jorgensen
> 
-- 
Simon Blomberg, BSc (Hons), PhD, MAppStat. 
Lecturer and Consultant Statistician 
Faculty of Biological and Chemical Sciences 
The University of Queensland 
St. Lucia Queensland 4072 
Australia
Room 320 Goddard Building (8)
T: +61 7 3365 2506
http://www.uq.edu.au/~uqsblomb
email: S.Blomberg1_at_uq.edu.au

Policies:
1.  I will NOT analyse your data for you.
2.  Your deadline is your problem.

The combination of some data and an aching desire for 
an answer does not ensure that a reasonable answer can 
be extracted from a given body of data. - John Tukey.



More information about the R-help mailing list