Boost logo

Boost :

From: christopher diggins (cdiggins_at_[hidden])
Date: 2005-02-01 21:51:17


I have just completed a prototype for a functional programming language
called Unimperative, which is also valid C++. This language is implemented
in C++ by overloading the comma operator and use of the boost::any library.

The language syntax is similar to Scheme but with the significant difference
that a Function is called as (MyFxn, x, y). For instance where in Scheme you
might write a factorial function as:

  (define factorial
    (lambda (n)
      (if (zero? n)
          1
          (* n (fact (- n 1))))))

In Unimperative you could write it as:

    Function Factorial =
      (If,
        (Eq, _1, 0),
        1,
        (Mult, _1, (Eval, self, (Dec, _1))));

You can also write procedural code in Unimperative

    Function F =
        (Proc,
            (Output, 1),
            (Output, 2),
            (Output, 3),
        End);

I have written a bit more on the language and provided some code examples at
http://lambda-the-ultimate.org/node/view/512 .

Well anyway, my question to the group, is whether there is some potential
interest in this kind of library, and to find out if anyone wants to
collaborate. Also, any suggestions on the kinds of features that would make
this language/library more interesting to users and/or the boost community?

Thanks in advance.

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