
----- Original Message ----- From: "Joel de Guzman" <joel@boost-consulting.com> To: <boost@lists.boost.org> Sent: Wednesday, February 02, 2005 6:32 AM Subject: [boost] Re: Gauging Interest: New Functional Library and Programming Language
christopher diggins wrote: Jeez, you and I should really talk. I have a project started 2 years ago called "Rave" which is reminiscent of this. Example:
object factorial; factorial = if_(_1 == 0) [ 1 ] .else_ [ _1 * factorial(_1-1) ];
object is a dynamic type (ala scheme/lisp). The difference is that I use a syntax closer to c++. I don't quite like lots of parens and commas.
Hi Joel, That is pretty neat. What status is Rave in? Is there any documentation or code examples I can look at? In Rave, is evaluation lazy? Are there lambda expressions in Rave? In Unimperative a function is unevaluated when not at the beginning of a list. For instance you can write: Function AddOrSub = (If, (Eq, _1, 0), Add, Sub); Function F1 = (Eval, (AddOrSub, 0), 4, 3); Function F2 = (Eval, (AddOrSub, 1), 4, 3); f1.Evaluate(empty); // evaluates to 7 f1.Evaluate(empty); // evaluates to 1 How would this be done in Rave? Christopher Diggins Object Oriented Template Library (OOTL) http://www.ootl.org