|
Boost : |
From: christopher diggins (cdiggins_at_[hidden])
Date: 2005-02-02 10:35:52
----- Original Message -----
From: "Joel de Guzman" <joel_at_[hidden]>
To: <boost_at_[hidden]>
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
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk