[Haskell-cafe] Object Oriented programming for Functional Programmers

Jay Sulzberger jays at panix.com
Mon Dec 31 03:12:35 CET 2012



On Mon, 31 Dec 2012, MigMit <miguelimo38 at yandex.ru> wrote:

> Well, "functional programmer" is a relatively broad term. If
> you're coming from academia, so that for you Haskell is some
> sort of lambda-calculus, spoiled by practical aspects, then I'd
> suggest Luca Cardelli's book "Theory of Objects".
>
> Also, as Daniel told you already, don't start from C++, it

Name typo, should be "Jay", noted.

> really has very little to do with OOP. It's primary merit is a
> very powerful system of macros (called "templates" in C++
> world), not objects. If you want something mainstream, Java
> would be a good choice, and C# even better one (although it
> would be more convenient for you if you use Windows).
>
> Or you can try OCaml, which is functional enough for you not to
> feel lost, and object-oriented as well.
>
> Отправлено с iPad

For systems to look at I recommend Simula, some early version,
Smalltalk, Common Lisp, and Erlang.  My guess is that Haskell's
type classes are a mechanism for creating something like Common
Lisp's "generic functions".  I know too little about Haskell to
say whether type classes immediately give you "single dispatch"
things, or "multiple dispatch" things.

These two Wikipedia articles are useful, I think:

   http://en.wikipedia.org/wiki/Generic_function
   [page was last modified on 15 November 2012 at 03:50]

   http://en.wikipedia.org/wiki/Common_Lisp_Object_System
   [page was last modified on 15 December 2012 at 23:57]

The Diamond Problem and its cousin(s) are worth looking at:

   http://en.wikipedia.org/wiki/Diamond_problem#The_diamond_problem
   [page was last modified on 27 December 2012 at 04:53]

   http://www.ibm.com/developerworks/java/library/j-clojure-protocols/

   http://stackoverflow.com/questions/4509782/simple-explanation-of-clojure-protocols

oo--JS.



30.12.2012, в 23:58, Daniel Díaz Casanueva <dhelta.diaz at gmail.com> написал(а):

> Hello, Haskell Cafe folks.
> 
> My programming life (which has started about 3-4 years ago) has always been in the functional paradigm. Eventually, I had to program in Pascal and Prolog for my University (where I learned Haskell). I also did some PHP, SQL and HTML while building some web sites, languages that I taught to myself. I have never had any contact with JavaScript though. 
> 
> But all these languages were in my life as secondary languages, being Haskell my predominant preference. Haskell was the first programming language I learned, and subsequent languages never seemed so natural and worthwhile to me. In fact, every time I had to use another language, I created a combinator library in Haskell to write it (this was the reason that brought me to start with the HaTeX library). Of course, this practice wasn't always the best approach.
> 
> But, why I am writing this to you, haskellers?
> 
> Well, my curiosity is bringing me to learn a new general purpose programming language. Haskellers are frequently comparing Object-Oriented languages with Haskell itself, but I have never programmed in any OO-language! (perhaps this is an uncommon case) I thought it could be good to me (as a programmer) to learn C/C++. Many interesting courses (most of them) use these languages and I feel like limited for being a Haskell programmer. It looks like I have to learn imperative programming (with side effects all over around) in some point of my programming life.
> 
> So my questions for you all are:
> 
> * Is it really worthwhile for me to learn OO-programming?
> 
> * If so, where should I start? There are plenty of "functional programming for OO programmers" but I have never seen "OO programming for functional programmers".
> 
> * Is it true that learning other programming languages leads to a better use of your favorite programming language?
> 
> * Will I learn new programming strategies that I can use back in the Haskell world?
> 
> Thanks in advance for your kind responses,
> Daniel Díaz.
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe at haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe



More information about the Haskell-Cafe mailing list