Показаны сообщения с ярлыком functional programming. Показать все сообщения
Показаны сообщения с ярлыком functional programming. Показать все сообщения

четверг, 20 января 2011 г.

Abracadabra in my mind. Part2

   The second story with functional programming - it's my familiarity with scientific language Haskell. He is no more and no less mystical than LISP. The most common myth - Haskell created to study the properties of Haskell.
  In the last century - yes, perhaps. But today, Haskell is a powerful tool for software development. Yes, he is a bit nonstandard, for people accustomed to the imperative style. But he has one undeniable advantage - he is very strong in the calculations, and it is truly an aesthetic code.
  I'll make a formal presetation. Haskell it is a polymorphically statically typed, lazy, purely functional language, quite different from most other programming languages. The language is named for Haskell Brooks Curry, whose work in mathematical logic serves as a foundation for functional languages. [link]
   Materials for the study of this language is sufficient if a good search. Russian-speaking is the fundamental book of the author Dushkin. However, in my opinion in many respects an explanation in this book was much too confusing and complicated. But to study just syntactic core, this book is good. Just for learning the basics, I found a very popular book - Learn you haskell for Great Good. But it is in English. Although it is much better to pick up the material and style of its presentation.
   Again, to test their new knowledge in a "battle", I turned to freelancing. A familiar pattern - Odesk -> Project -> employer -> contract -> completed the project - got money.
   The familiar feeling that I chopped nuts with microscope. Understanding that I'm not understand everything in the language. And once again return to the folio, and again to study, but more detailed and thorough. With the retreat to the books with the necessary additional information.
   In future posts, I will report "progress" in learning the two languages that are interesting to me at the moment, apart from the language of algebraic rewriting, with whom I have associated dissertation.

вторник, 18 января 2011 г.

Abracadabra in my mind

   Ones apon a time I decided to find out about mystery programming language called - LISP. The number of myths surrounding this language surpasses all reasonable limits.
The most common myths that I have heard by myself:
  1. Its the godlike language that can everything, and nothing couldn't be better that LISP.
  2. It can be usefull only at narrow scientific enviroment.
  3. Lisp is - Lots of Idiotic Silly Parentheses, and source-files of LISP in unreadable.
   All this myths are still myths. At least for me.
   Writing LISP programms before long years of uni life and learning at unversity imperative programming languages, like C#, Java, etc. - its something crazy.
   So I started with the bases of the language. For example, not bad option for russian-language people is the course at the INTUIT, or the posts at Habrahabr. Of course we can take the book, aren't we? After some time of searching via global web, I found some interesting books about LISP. All collection of books you can find here. Its all russian-language, except the SICP.
   Some time studying on courses INTUIT and some books, I decided to test the knowledge in action. Where can I do it? FreeLance - of course. On the advice of a friend chose the site odesk.com. I found 2 project with the requirements of knowledge LISP. Not bad payment, and no competition. Great! I've got it. Because of the lack of PayPal or WebMoney account, I decided to contact to employer directly. Agreed on the timing of work and payment method, passing the site odesk, and 3 weeks later I passed the project and received payment.
   After that, I realized that I did not know anything about LISP. I tried to wrote code in non-imperative manner, but I had not enough knowledges. So I went to study Lisp more closly. In the process of learning, I bumped into another functional language - Haskell. But its the topic of future posts.