@andrzejfryczmodrzewski1503:

1. do clojure czy sml - nie. Do Haskella - też niby nie do pisania programów, ale do czytania dokumentacji i forów i tutoriali itp - już tak, bo wszyscy Haskelowcy są #!$%@?ęci na punkcie teorii grup i monad ( ͡° ͜ʖ ͡°)

2. da się. Programowanie funkcyjne jest niezależne od programowania obiektowego. Są pewne analogie (domknięcie to tak naprawdę obiekt a zmienne domykane to jak
#naukaprogramowania pamiętajcie najważniejsze to dobrać technologię do problemu!
De fakto każdy język jest kompletny w sensie Turinga... ale w tym wpisie napiszę kiedy jaki język jest odpowiednim do nauki

#ada -> dość ciekawy, stosowany tylko w US-Army język, fajnie można się nauczyć pisać aplikacje wielowątkowe. Składnia sama pilnuje byśmy nie robili bzdur. Jeśli to się kompiluje to znaczy że będzie działać, dlatego używa tego US-Army.

#asembler -> Język najprostszy w tym zestawieniu,
@wytrzzeszcz: W biznesie niestety są rzadko wykorzystywane. Po części to na pewno kwestia przyzwyczajeń ludzi, którzy uczą się programować imperatywnie i nie potrafią się przestawić na myślenie funkcyjne. Do tego dochodzi fakt, że jeśli języki nie są czysto funkcyjne i dopuszczają konstrukcje imperatywne (np. OCaml, Scala), to nieproporcjonalnie duża część kodu jest zazwyczaj napisana imperatywnie i wychodzi z tego niezły bałagan, bo między dopuszczaniem paradygmatu imperatywnego a jego wspieraniem jest duża
konkretyzacja typu

@MirkoStats: @KrzaQ2: Dokładnie. Ogólnie nie trzeba tego pisać, ale jak się gdzieś pomylisz to taka deklaracja pozwala kompilatorowi zweryfikować czy na pewno funkcja przyjmuje i zwraca to co trzeba.
W ogóle haskell to zajebisty język, polecam napisać chociaż jeden projekcik, można przekonać się jak wiele daje silne typowanie i podejście funkcyjne. Brak stanu mocno ułatwia pisanie i debugowanie kodu, potem aż chce się używać takiego podejścia w innych
@alkan: a spoko. Można zrobić wprowadzenie do Scali... się tylko zastanawiam którego ze Scalowców można by od ręki zaprosić. Typy mam tu dwa Runara Bjarnasona, który zaczynał od Haskell, a potem przeszedł na Scalę, czy też kogoś ze Scalac albo TypeSafe...
Dobra. Żarty sie skończyly. Mam problem.

karplus :: AudSF Double Double
karplus = proc input -> do
rec filtered <- filterLowPass -< (delayed, 2000)
delayed <- delayLine 1.25 -< filtered + input
outA -< filtered + input

Mam taki kod. Nie wykonue sie rekurencyjnie. Powinno działać jak na zdjęciu. A feedback jest jednorazowy zamiast kręcic sie w kółko.

Miał ktoś z problem z rekursją przy Arrowsach?

#haskell
Pobierz Wolfik1024 - Dobra. Żarty sie skończyly. Mam problem.

karplus :: AudSF Double Doub...
źródło: comment_Szksv74QRFSpZPolVsAmYKey9uWMxFGu.jpg
@Wolfik1024: dokonca nie rozumiem
, ale na twoim miejscu bym probowal "kodowac" od jednego elementu (s.z.) i sprawdzal czy dziala potem dodawal kolejne i szukal po goglach. Powinno szybko blad sie znalezc. Ale to taka bardzo luzna rozkmina.
@helbards: Tak z ciekawości: gdzie wspominali? Bo obserwuję #haskell i #programowaniefunkcyjne i staram się wyłapywać wszystkie wzmianki na ten temat i wtrącać swoje 3 grosze, bo jestem pasjonatem funkcyjności w ogólności, a Haskella w szczególności. :)

Chciałem iść do pracy jako haskellowiec, ale w Polsce raczej nie ma gdzie. Szukałem i była tylko jedna oferta na cały kraj, w dodatku wisząca od nie wiadomo kiedy, więc raczej nieaktualna. Ale regularnie korzystam
@korri: co Ty, nie przeszłoby. Z resztą wszystko co osiągnąłem póki co (niewiele :D) to zrobiłem sam.. jakimś cudem. Ehh tak tylko śmieję, bo mi się nie chce trochę już. Język może i fajny, ale bardzobardzo nie lubię czegoś robić z przymusu, nauka dla siebie to byłoby coś całkiem innego :)
@Veuch: Składniowo wszystko jest OK, ale w Haskellu odstępy są ważne. Widzę, że w ST masz ustawione tabulacje. To się może lekko gryźć ze spacjami. Ustaw, żeby tabulacje były robione spacjami i spróbuj wtedy odpalić.
Mireczki, męczę się od rana i nie mogę napisać prostej zdawałoby się funkcji. Jakby co to jestem nowy w Haskellu.

Chciałbym mieć funkcję, która przyjmuje listę niepustych list i zwraca wszystkie listy możliwe do uzyskania w taki sposób, że z każdej spośród pierwotnych list wybierany jest dokładnie jeden element.

Przykład:
Wejście:
[[1,2,3], [4,5]]
Wyjście:
[[1,4], [1,5], [2,4], [2,5], [3,4], [3,5]]

Oczywiście na wejściu może być dowelnej długości lista list dowolnej, niezerowej długości.
nie wiem co rozwijającego jest w robieniu rzeczy trudniejszą drogą


@lukasz1985m: Właśnie chodzi o to, że funkcyjność nie jest "trudniejszą drogą" - a przynajmniej nie zawsze. Oczywiście nie ma uniwersalnych języków idealnych do wszystkich zastosowań, więc i języki funkcyjne mają słabe strony. Ale mają też mnóstwo pozytywów, które sprawiają, że są coraz popularniejsze.

Oprócz wymienionyego przez @KrzaQ2 "kodu prostszego do zrozumienia, optymalizacji i modularyzacji" dodałbym następujące kwestie:
- transparentność referencyjna,
@Ginden: Kiedys to samo mowili o C, C++ - wiadomo ze ciezko przewidziec w ktorym kieunku pojdzie branza i tak przeskok na funkcyjne programowanei bedzie duzo trudniejszy w porownaniu do kolejnej iteracji tego samego podejscia ale jednak po otoczeniu znajomych i obserwacjach rynku widze ze jest ruch na plus.
Programirki! Dzisiaj opublikowałem na blogu post opisujący monady. Każdy, kto kiedykolwiek zetknął się z #programowaniefunkcyjne już pewnie słyszał o tych stworkach.

Chciałbym pokazać, że przydają się także, kiedy uskuteczniamy klasyczne #programowanie. Dodatkowo wołam @archlinuxuser bo chciałeś zobaczyć jak ten koncept wytłumaczę:

http://blog.radoszewski.pl/programming/scala/2015/05/31/mighty-monad.html

Post po angielsku, ale pisany językiem raczej prostym (i prawdopodobnie z błędami ;)). Zapraszam i miłej lektury!

Dodatkowo proszę mirków od #haskell aby przyjrzeli się moim przykładom i sprawdzili,
@moriturius: Dobry artykuł, plus za nieporównywanie monad do burrito tudzież biurka - te analogie zawsze prędzej czy później sprawiają, żę człowiek ma mętlik w głowie ; F

Co do wołania Mirków od #haskell - nie jestem prawdziwym haskellfagiem (quicksort to szczyt moich możliwości aktualnie), ale spróbuję:
a) wydaje mi się, że z treści artykułu trochę za bardzo wynika powiązanie monad z kolejnością operacji i stanem, na co prawdziwi Haskellowcy by się