Dear useRs, I'm pleased to announce that version 1.1.0 of lambda.r is now available on CRAN (http://cran.r-project.org/web/packages/lambda.r/). This package provides a complete functional programming environment within R (and is backwards compatible with S3). Lambda.r introduces many concepts including:
. Multipart function definitions . Guard statements to control execution of functions . Pattern matching in function definitions . An intuitive type system . Optional strong typing via type constraints . Type variables . Cleaner syntax for attributes Using these techniques, systems can be written more efficiently and with less headache. Here is a brief example of what you can do with lambda.r. fib(n) %::% numeric : numeric fib(n) %when% { n < 0 } %as% { stop("Negative numbers not allowed") } fib(0) %as% 1 fib(1) %as% 1 fib(n) %as% { fib(n-1) + fib(n-2) } > fib(-1) Error in function (n) : Negative numbers not allowed > fib(5) [1] 8 Documentation is available at the following locations: . http://cartesianfaith.wordpress.com/category/r/lambda-r/ . https://github.com/muxspace/lambda.r A more complete discussion on why analytical systems should be designed using functional programming principles will be available in my forthcoming book on functional programming and computational finance. Warm Regards, Brian Rowe _______________________________________________ R-packages mailing list r-packa...@r-project.org https://stat.ethz.ch/mailman/listinfo/r-packages ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.