www.digitalmars.com         C & C++   DMDScript  

c++ - Functional C++

reply Mark Evans <Mark_member pathlink.com> writes:
http://www.cc.gatech.edu/~yannis/fc++/
http://www.cc.gatech.edu/~yannis/fc++/funoo.pdf

"FC++ is a library for programming functionally in C++. Compared to other C++
functional programming libraries, FC++ is distinguished by its powerful type
system which allows manipulating parametrically polymorphic functions (e.g.,
passing them as arguments to other functions and returning them as results).

"In this paper, we show how FC++ can be used in common OO programming tasks. We
demonstrate FC++ implementations of several common design patterns (Adapter,
Builder, Command, and more). Compared to conventional C++ implementations of
these patterns, our implementations are either simpler (in that fewer
classes/dependencies are needed), more efficient, or more type-safe (thanks to
parametric polymorphism and type-inference)."
Mar 03 2003
next sibling parent reply John Fletcher <J.P.Fletcher aston.ac.uk> writes:
Mark Evans wrote:

 http://www.cc.gatech.edu/~yannis/fc++/
 http://www.cc.gatech.edu/~yannis/fc++/funoo.pdf

 "FC++ is a library for programming functionally in C++. Compared to other C++
 functional programming libraries, FC++ is distinguished by its powerful type
 system which allows manipulating parametrically polymorphic functions (e.g.,
 passing them as arguments to other functions and returning them as results).

 "In this paper, we show how FC++ can be used in common OO programming tasks. We
 demonstrate FC++ implementations of several common design patterns (Adapter,
 Builder, Command, and more). Compared to conventional C++ implementations of
 these patterns, our implementations are either simpler (in that fewer
 classes/dependencies are needed), more efficient, or more type-safe (thanks to
 parametric polymorphism and type-inference)."

Interesting. Has it been tried with DM C++? John
Mar 04 2003
parent reply Richard Grant <fractal clark.net> writes:
In article <3E6478DA.210C4159 aston.ac.uk>, John Fletcher says...
Mark Evans wrote:
 http://www.cc.gatech.edu/~yannis/fc++/
 http://www.cc.gatech.edu/~yannis/fc++/funoo.pdf


..
Interesting.  Has it been tried with DM C++?

Yes, the approach is interesting (Stepenov would be pleased - http://www.stlport.org/resources/StepanovUSA.html), but there are some problems with the library and DM C++. Nothing that appears to be a "show stopper" though. In the short implementation, there are problems that include the use of ::template and inline assignment to const members like: struct A { static const bool = true; }; int main() { } Pretty minor stuff to correct.. and uh, thanks Mark. Richard
Mar 04 2003
next sibling parent Mark Evans <Mark_member pathlink.com> writes:
I hope DMC can be improved quickly enough to make the library work out of the
box.

Anyway here is a compiler pass/fail chart.
http://www.cc.gatech.edu/~yannis/fc++/New/compilers.html

Mark
Mar 04 2003
prev sibling next sibling parent "Walter" <walter digitalmars.com> writes:
"Richard Grant" <fractal clark.net> wrote in message
news:b43d7g$rhr$1 digitaldaemon.com...
 Yes, the approach is interesting (Stepenov would be pleased -
 http://www.stlport.org/resources/StepanovUSA.html), but there are some

 with the library and DM C++. Nothing that appears to be a "show stopper"

 In the short implementation, there are problems that include the use of
 ::template and inline assignment to const members like:

Please send me any bug reports!
Mar 05 2003
prev sibling parent reply "Walter" <walter digitalmars.com> writes:
"Richard Grant" <fractal clark.net> wrote in message
news:b43d7g$rhr$1 digitaldaemon.com...
 but there are some problems
 with the library and DM C++. Nothing that appears to be a "show stopper"

 In the short implementation, there are problems that include the use of
 ::template and inline assignment to const members like:

 struct A {
 static const bool = true;
 };

 int main() {
 }

But bool is a keyword, so the above must fail to compile.
Mar 07 2003
parent reply Richard Grant <fractal clark.net> writes:
In article <b49q7j$1kpd$1 digitaldaemon.com>, Walter says...

But bool is a keyword, so the above must fail to compile.

Darn, you caught me. Yeah - in class static member assignment works. Richard
Mar 07 2003
parent reply Mark Evans <Mark_member pathlink.com> writes:
The FC++ library ships with a stock test harness covering all of its
functionality.  Is that what you're attempting?

Mark

In article <b4a14q$1om0$1 digitaldaemon.com>, Richard Grant says...
In article <b49q7j$1kpd$1 digitaldaemon.com>, Walter says...

But bool is a keyword, so the above must fail to compile.

Darn, you caught me. Yeah - in class static member assignment works. Richard

Mar 07 2003
parent Richard Grant <fractal clark.net> writes:
In article <b4asrv$29do$1 digitaldaemon.com>, Mark Evans says...
The FC++ library ships with a stock test harness covering all of its
functionality.  Is that what you're attempting?

At the moment, I am not attempting anything.. waiting on Walter. Richard
Mar 07 2003
prev sibling parent reply Ilya Minkov <midiclub 8ung.at> writes:
There, i've run into something interesting:

http://spirit.sourceforge.net/
	- a pervert parsing library

http://spirit.sourceforge.net/index.php?doc=docs/phoenix_v1_0/index.html
	- an alternative to FC++, more far-going and more portable.

-i.


Mark Evans wrote:
 http://www.cc.gatech.edu/~yannis/fc++/
 http://www.cc.gatech.edu/~yannis/fc++/funoo.pdf
 
 "FC++ is a library for programming functionally in C++. Compared to other C++
 functional programming libraries, FC++ is distinguished by its powerful type
 system which allows manipulating parametrically polymorphic functions (e.g.,
 passing them as arguments to other functions and returning them as results).
 
 "In this paper, we show how FC++ can be used in common OO programming tasks. We
 demonstrate FC++ implementations of several common design patterns (Adapter,
 Builder, Command, and more). Compared to conventional C++ implementations of
 these patterns, our implementations are either simpler (in that fewer
 classes/dependencies are needed), more efficient, or more type-safe (thanks to
 parametric polymorphism and type-inference)."
 
 

Apr 11 2003
parent roland <--rv ronetech.com> writes:
Ilya Minkov wrote:

 There, i've run into something interesting:
 
 http://spirit.sourceforge.net/
     - a pervert parsing library
 

. . interesting. do you try spirit with DM ?, does it works with DM ? it seems boost is required isn't it ? roland
Apr 17 2003