Zastosowanie programowania funkcujnego

0

Witam

Do tej pory programowałem głównie imperatywnie i obiektowo, ale nadszedł czas aby zaznajomić się z paradygmatem funkcyjnym. Jak wiadomo najlepiej uczy się robiąc jakiś większy i nietrywialny (na tyle, aby się nie nudził) projekt.
Niestety mam problem ze znalezieniem jakiegoś ciekawego zastosowania dla programowania funkcyjnego.

Czy możę ktoś z Was ma jakiś pomysł na program funkcyjny (w Scali, Ocamlu dowolnie), aby naturalnym było zstosowanie paradygmatu funkcyjnego. Tylko może coś innego niż interpreter jakiegoś języka.

Większość problemów, którymi się zajmowałem do tej pory to były albo jakieś algorytmy (grafowe, dynamiczne to chyba nienaturalnie w PFU się robi) albo aplikacje biznesowe, gdzie nie ma specjalnie miejsca na takie historie.

Pozdrawiam

Bazyli

0

Sztuczna inteligencja na przyklad.

0

Eeee, programowanie funkcyjne można wszędzie wcisnąć :) Dla przykładu np wyciąganie jakichś pól z obiektów - dla przykładu kod w Scali:

val listaImion = listaOsób.map(_.imię)

da nam to samo co kod w Javie:

List listaImion = new ArrayList<String>();
for (Osoba osoba : listaOsób) {
  listaImion.add(osoba.imię);
}

Oprócz samej funkcyjności można używać np pattern matching (i tym samym pozbyć się kaskady/ drabinki ifów), leniwych wartości.

Sam system typów w Scali jest kompletny w sensie Maszyny Turinga i można z nim ciekawe rzeczy robić, np:
http://jim-mcbeath.blogspot.com/2009/09/type-safe-builder-in-scala-part-4.html

Królik z powodzeniem połączył programowanie dynamiczne i funkcyjne: http://4programmers.net/Forum/672547#id672547

Jeżeli się zastanawiasz co ciekawego można napisać w Scali to znaczy że za mało znasz Scalę :)

0

Dziękuję użytkownikom [losowa nazwa] i donkey7.
Jeżeli chodzi o SI to rzeczywiście myślałem o jakiejś gierce z zaimplementowanym algorytmem UCT, ale w końcu chyba
wybiorę algorytm kompresji. Dane przedstawię w postaci strumienia a i miejsce dla funktorów tu się znajdzie.

Jeżeli chodzi o wybór zadania to zależało mi na użyciu jak największej liczby mechanizmów tj. f. wyższych rzędów, funktory, strumienie etc. Tu nie chodziło mi o pokazanie znajomości Scali czy innego języka ale zmuszenie się, a raczej dobranie tak tematyki zadania, abym najlepiej całe wykonał w duchu paradygmatu funkcyjnego.

0

a ja mam takie trochę z innej beczki - jak wygląda sprawa GUI np. w scali? Jest coś pod "okienka" (nie tylko na jedyny słuszny system), jak z przenośnością między systemami?

0

Scala Swing (nakładka na Swinga)

Zresztą nikt nie broni korzystać bezpośrednio z Javowych klas w Scali. W końcu po to zrobili Scalę na JVM, żeby móc korzystać z ogromu bibliotek stworzonych pod Javę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1