Chyba nie sposób znaleźć zapalonego programistę, który nie słyszał o tym konkursie.
Ciekawe jakie zadanie tym razem przygotują nam organizatorzy.
Ja po cichu liczę na jakąś heurezę :)
Chyba nie sposób znaleźć zapalonego programistę, który nie słyszał o tym konkursie.
Ciekawe jakie zadanie tym razem przygotują nam organizatorzy.
Ja po cichu liczę na jakąś heurezę :)
Hm, albo mi się zdaje albo w poprzednich latach Ocamla nie było. Buce jedne, mogli dać Haskella jak już cos z funkcyjnych dają. Chociaż z Ocamlem da się żyć, jak dla mnie to lepiej pasuje do tego rodzaju zadań niż pozostałe dozwolone języki. Cóż, zobaczymy.
A datę z tematu poprawiłem, 2007 już był ;-P.
Ocaml i Java doszły niedawno.
Ps. Nigdy nie zrozumiem ludzi, którzy z przyjemnością klepią w językach funkcyjnych ;)
sprobuj cos napisac w rubym, nie jest on 100% funkcyjny, ale moze to Cie oswieci..
Ruby tylko wspiera programowanie funkcyjne ale jest ono niewygodne generalnie. Lispy też czysto funkcyjne nie są, do tego składnia potrafi odstraszyć na początku. W sumie najbardziej eleganckim i najprzyjemniejszym językiem funkcyjnyjnym, z którym pracowałem jest Haskell. Jak ma się trochę pojęcia o programowaniu funkcyjnym to jest językiem szalenie naturalnym.
Co jest takiego przyjemnego w programowaniu funkcyjnym? O tym można książkę napisać, jakieś arty na 4P o tym nawet były. Upraszczając - zupełnie inne podejście do programowania, zdecydowanie wyższa abstrakcja, więcej myślenia niż klepania, kod jest krótszy i czytelniejszy... ogółem bliższe to matematyki niż machania łopatą.
Szczerze powiedziawszy to gdy wracam od Haskella do C++ to mnie szlag trafia po prostu, brak leniwej ewaluacji, brak silnego typowania, inny model funkcji... no i nawet z STL+Boost sporo klepania więcej.
deus napisał(a)
Jak ma się trochę pojęcia o programowaniu funkcyjnym to jest językiem szalenie naturalnym.
Co jest takiego przyjemnego w programowaniu funkcyjnym? O tym można książkę napisać, jakieś arty na 4P o tym nawet były. Upraszczając - zupełnie inne podejście do programowania, zdecydowanie wyższa abstrakcja, więcej myślenia niż klepania, kod jest krótszy i czytelniejszy... ogółem bliższe to matematyki niż machania łopatą.
Dobrze rozumiem? Mówisz o wyższości języka (czy programowania?) funkcyjnego nad obiektowym czy ogólnie o zaletach funkcyjnego?
Wiesz, np. Ocaml udostępnia OOP, Common Lisp ma jeden z najlepszych systemów OOP jakie w ogóle powstały, ale to nie są języki czysto funkcyjne. Pomiędzy OOP a funkcyjnością nie ma porównania. To inne podejścia do rozwiązania i reprezentacji problemu w ogóle. Funkcyjność jest bardziej ścisła, wiele klas problemów w imperatywnym OOP przedstawia się zdecydowanie gorzej. Co nie zmienia faktu, że są języki łączące atuty OOP i funkcyjności, jak wspomniany CL, Ruby czy np. Smalltalk.
Programowanie czysto funkcyjne bez wsparcia w postaci monad czy innych mechanizmów ma też trochę minusów - ze względu na to, że obiekty są stałe, nie mozna ich modyfikować, nie wszystkie algorytmy da się zaimplementować w optymalnej złożoności.
Po prostu istnieje podejście odmienne niż wykonywanie kolejnych instrukcji... programowanie deklaratywne daje wyższą abstrakcę, pozwala opisać problem a nie drobiazgi rozwiązania, tutaj leży jego przewaga.