Real World Functional Programming in Scala

Soooo...

Półgrupy, Monoidy, Monady, Funktory, Soczewki, Katamorfizmy, Anamorfizmy, Strzałki... Wszystko to brzmi dobrze, a po ćwiczeniu lub dwóch (lub dziesięciu) możesz zrozumieć ich istotę. A z Scalaz dostajesz je za darmo...

[1]} jednakże, jeśli chodzi o programowanie w świecie rzeczywistym, staram się znaleźć zastosowanie do tych pojęć. Tak, oczywiście zawsze znajduję w sieci kogoś, kto używa Monad do IO lub obiektywów w Scali, ale... mimo to...

What I am trying to znajdź coś wzdłuż "nakazowych" linii wzoru. Coś w stylu: "tutaj próbujesz rozwiązać to , A dobrym sposobem na rozwiązanie tego jest użycie soczewek w ten sposób!"

Sugestie?


Update: coś w tym stylu, z książką lub dwiema, byłoby świetne (dzięki Paul): przykłady wzorców projektowych GoF w podstawowych bibliotekach Javy

Author: Community, 0000-00-00

2 answers

Wygłosiłem wykład we wrześniu skoncentrowany na praktycznym zastosowaniu monoidów i funktorów aplikacyjnych/monad przez scalaz.Walidacja . Podałem inną wersję tej samej rozmowy w Scali Lift Off, gdzie nacisk był bardziej na walidację. Oglądałem pierwszą rozmowę, dopóki nie zacząłem sprawdzania, a następnie przeskoczyłem do drugiej rozmowy(27 minut).

Jest też gist, który napisałem, który pokazuje, jak można użyć walidacji w "praktyczne" zastosowanie. Oznacza to, że jeśli projektujesz oprogramowanie dla bramkarzy klubów nocnych.

 12
Author: oxbow_lakes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-11 17:44:53

Kluczem do programowania funkcyjnego jest Abstrakcja, i komponowalność abstrakcji. Monady, strzały, soczewki, to abstrakcje, które okazały się przydatne, głównie dlatego, że są kompozytowe. Prosiłeś o "nakazową" odpowiedź, ale odmówię. Być może nie jesteś przekonany, że Programowanie funkcyjne ma znaczenie?

Jestem pewien, że wiele osób na StackOverflow z chęcią spróbuje ci pomóc

 18
Author: ,
Warning: date() expects parameter 2 to be long, string given in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54