Po kilku miesiącach przerwy powracam z nową serią artykułów - tym razem na tapet weźmiemy przede wszystkim dwa języki - Haskell oraz Prolog. Oba deklaratywne, oba dosyć niszowe i - co najważniejsze - oba są niezwykle ciekawe!

Nie będzie to tutorial od podstaw, bowiem w tym zakresie nie brakuje dobrych materiałów (jak coś, to mogę zarzucić odpowiednimi linkami ( ͡° ͜ʖ ͡°)). Można za to spodziewać się wpisów,
Pobierz informatyk - Po kilku miesiącach przerwy powracam z nową serią artykułów - tym razem ...
źródło: comment_1612874011J0IZZ5hizuMoVk8rHeWXwh.jpg
@FREEQ: mam już przygotowanych parę kolejnych artykułów o Haskellu - m.in. o klasach typów, funktorach oraz o funktorach aplikatywnych, a i coś o monoidach oraz monadach też się tworzy więc zachęcam do śledzenia. ;)

Wiadomo - tematu bynajmniej nie wyczerpię, a jeśli chodzi o jakość, to można znaleźć w sieci lepsze treści od moich, ale z doświadczenia wiem, że zgłębiając dany temat (zwłaszcza związany z różnymi dzikościami FP) warto jest poznać
Cześć! Zastanawiam się jak to jest z podejściem funkcyjnym w ramach platform, które znane są głównie z podejścia imperatywnego. Wydaje mi się, że choćby w takiej Javie (czy też raczej JVM) dużo dobrego zrobiło wprowadzenie takich języków jak Scala i Clojure.
Jeśli chodzi o .Net to podobna jest sytacja z promowanym swego czasu przez Microsoft - F#.

Zastanawiam się jak wiele osób w jakikolwiek sposób zostało skłonionych do tego by spróbować swoich
via Wykop Mobilny (Android)
  • 2
@secret_passenger: w Javie to funkcyjnie używa się streamów z Javy 8.

Na Scalę był hype, ale obecnie to zabawka dla znudzonych (chociaż fanboje bronią jej). Prawdziwe zastosowanie ma nadal w Spark i Akka. Tutaj podejście funkcyjne ma się dobrze.

W Clojure nie widziałem żadnego projektu komercyjnego. W sumie to ciekawe bo to chyba najbardziej funkcyjne na JVM. Wiesz coś więcej?

Jak ktoś chce się bawić z funkcyjnym to idzie w Haskell.
@secret_passenger: dostępność na pewno ma znaczenie, ale też dziedzina problemów jest inna i paradygmat niejako "przegrał".
Jest popularny tam gdzie się tego uczy (MIT, tam uczą compsci na Scheme).
Stamtąd pochodził (długa historia) system Genera ( https://en.wikipedia.org/wiki/Genera_(operating_system) ) na Lisp Machines, były do tego specjalne procesory. Pokładano w tym paradygmacie nadzieje odnośnie rapid development (program tworzący program ze specyfikacji), ai (MIT ai lab).
Po drodze James Gosling stworzył Gosling Emacs, itd.
krótkie info dla osób zainteresowanych #programowanie a dokładniej #programowaniefunkcyjne i to szczególnie w takich językach jak #erlang czy #elixir:

dziś odbędzie się webinar: https://twitter.com/ElixirWroclaw/status/1285139686873272322

dzisiejsza prelekcja odbędzie się w języku polskim.

więcej info: https://www.meetup.com/Elixir-Wroclaw/events/271515278/

dla wygody dodaję info (skopiowane z meetup.com):

"Niezawodność języków programowania na bazie Elixir i Erlang."

Zapewne nigdy Twoja rozmowa telefoniczna nie została przerwana z powodu aktualizacji oprogramowania na urządzeniach telekomunikacyjnych. Dzieje się tak ze względu na niezawodność
dla wygody dodaję info (skopiowane z meetup.com):

"Niezawodność języków programowania na bazie Elixir i Erlang."

Zapewne nigdy Twoja rozmowa telefoniczna nie została przerwana z powodu aktualizacji oprogramowania na urządzeniach telekomunikacyjnych. Dzieje się tak ze względu na niezawodność języka programowania jakim jest Erlang.


W prelekcji opowiem trochę o tym języku i o jego młodszym bracie, Elixirze, stworzonym przez członka core teamu Ruby on Rails, brazylijczyka mieszkającego w Polsce, który to język, z uwagi
mamy wiele różnych managerów pakietów, jedne są lepsze, inne gorsze. nawet #windows dorobił się ostatnio oficjalnego managera pakietów - coś zatem musi być na rzeczy.

Nix jest jedną z mało znanych technoloogii, a bardzo ciekawą. wołam osoby zainteresowanie #programowanie w szczególności #programowaniefunkcyjne oraz tych, którzy siedzą w #devops bo może dla Was ciekawe być to, że jutro odbędzie się #webinar, na którym będzie mowa właśnie o Niksie: https://twitter.com/fp_wroc/status/1278058219978526724
@secret_passenger: taki gryps z #postapo

@yggdrasil: no nie do końca, bo k8s też trzeba jakoś skonfigurować.

1. Czemu zrobili nowy jezyk programowania zamiast jaki shallow DSL?


@nie_lubie_nowego_odtwarzacza: bo istniejące języki nie spełniały oczekiwań?

2. Caly soft, ktory sam zarzadza swoimi zaleznosciami to mega bol. Julia chyba nadal sie nie dorobila translacji ze swojego package managera do Nixa.


Nie potrzebujesz używać Niksa do wszystkiego, część pakietów można obsługiwać "standardowo". Ja
chcialbym nauczyc sie jakiegos jezyka #programowaniefunkcyjne dla samej przyjemnosci pisania. Bardziej sie skupiam na pisaniu w innym jezyku, ale fajnie by bylo sobie cos poklepac co jakis czas. Spodobalo mi sie pisanie w prologu, ktorym wiem ze nie jest funkcyjny, ale tez jest jezykiem dekleratywnym, wiec stad taki pomysl. Jako ze wywodze sie z srodowiska javy (chociaz teraz staram sie pisac w kotlinie) to dobrym pomyslem jest scala? Czy moze lepiej haskell,
@crocodiler: Zacząłem się interesować FP w miarę niedawno i sam planuję za jakiś czas usiąść do Haskella. Ale najpierw chcę przebrnąć przez wykłady Bartosza Milewskiego dot. Category Theory, a potem pewnie właśnie dot. Haskella. Jestem w trakcie, i póki co mega się jaram. Fajnie jest tak uporządkować sobie wiedzę i np. zrozumieć w końcu defnicję monady, a nie tylko mniej więcej ją rozumieć na podstawie przykładów i intuicji. :)
Na początek
@tomp3: Jezu, zaczynać FP od teorii kategorii to jak zaczynać budowanie auta to zrozumienia fizyki elementarnej. Nie twierdzę że to zła droga ale łatwo się zrazić. Można w 100% używać FP bez wchodzenia głęboko w CT. A monada to interfejs z dwoma metodami + 3 prawa te metody obowiązujące i takie zrozumienie jest wystarczające dla 99.999% praktycznych zastosowan. Oczywiście można próbować ją zrozumieć od strony CT ale to będzie duuuzo cięższe
krótkie ogłoszenie związane z #programowanie a szczególnie z #programowaniefunkcyjne - czy jest na sali :) ktoś kto chciałby usłyszeć coś o #ocaml? jeśli tak, to świetnie się składa, bo okazuje się, że wrocławska grupa funkcyjna już niedługo organizuje webinar właśnie na temat tego języka: https://twitter.com/fp_wroc/status/1258503650512691212

OCaml jest o tyle ciekawy że jest bazą dla #reasonml (ReasonML wprowadza jedynie małe zmiany by łatwiej pracować w świecie #javascript)

...

dajcie spokój już
mam trochę takie #przemyslenia dotyczące #programowanie a tak konkretnie to #programowaniefunkcyjne

temat jest mi bliski od dłuższego czasu. nie, nie czuję się ekspertem. ale jako że lubię eksperymentować napisałem kilka aplikacji w różnych językach funkcyjnych by "zobaczyć jak to będzie działać". myślę że sama nauka konceptów funkcyjnych pozwoliła mi inaczej pisać w językach imperatywnych. ale to truizmy.

kilka lat temu wydawało mi się, że #programowaniefunkcyjne przebija się do mainstreamu. miałem wrażenie, że
@secret_passenger: Dostawałem sporo faj nie wyglądających ofert z Monachium, Londynu, Holandii czasem Berlina, ale wszystko na miejscu, nawet częściowa praca zdalna (3 tyg. na miejscu, tydzień z domu) nie pasowała. Teraz jakoś mało ofert się pojawia i nic interesującego. Tylko jak mówiłem, sam nie szukam, opieram się na tym, co dostawałem.
@parmezan2004: ok. to ciekawe. ja w niszy Elixra np. widzę bardzo dużo ofert zdalnych, tak samo jak np. dla Rusta (tak, to nie jest fp). dziwi mnie zatem że Scala jest tak odmienna w tym temacie, ale może to wynika z nieco innej niszy w jakiej Scala zdobyła popularność? nie wiem.

w każdym razie mam nadzieję że teraz, szczególnie po zapowiedziach Zuckerberga, sytuacja zacznie zmieniać się na naszą korzyść.
cześć, dzisiaj chciałbym zadać kolejne pytanie związane z #programowanie a w szczególności #programowaniefunkcyjne

chciałbym się dowiedzieć w jakim języku funkcyjnym najczęściej piszecie?

Bardzo proszę o odpowiadanie osoby, które napisały coś więcej niż "Hello World". może to być język, którego ktoś się uczy, ale niech będzie to język, w którym ta osoba napisała coś większego samodzielnie.

co znaczy "coś większego"?... powiedzmy jakaś mała biblioteczka - choćby coś typu: rozwiązywanie sudoku, może jakieś narzędzie

Jakiego języka funkcyjnego używasz (najczęściej)

  • Scala 45.2% (14)
  • Clojure/ClojureScript 6.5% (2)
  • F# 9.7% (3)
  • Erlang 3.2% (1)
  • Elixir 9.7% (3)
  • Haskell 19.4% (6)
  • Elm 3.2% (1)
  • ReasonML 3.2% (1)
  • OCaml 0% (0)
  • inny (zaznacz i daj znać w komentarzu jaki) 0% (0)

Oddanych głosów: 31

ciekawi mnie rynek programowania funkcyjnego w Polsce (choć jeśli ktoś mieszka za granicą, pracuje dla klienta z zagranicy, to proszę również odpowiedzieć)

jak wiele osób tutaj z #programowanie jest into #programowaniefunkcyjne ?

używacie fp raczej we własnych projektach? czy w pracy?

Jak używasz fp?

  • w pracy 50.0% (10)
  • swoje własne projekty - hobby 45.0% (9)
  • własne projekty - komercyjnie 5.0% (1)
  • projekty społecznościowe 0% (0)

Oddanych głosów: 20

Z takiej ankiety ci za wiele nie wyjdzie, raz że wykop juz dawno przestał być zasiedlany przez programistów, dwa że nie dałeś opcji "nigdzie" więc nie dostaniesz odpowiedzi na jak wiele osób tutaj ...

Generalnie Polska jest dosyć silna jeśli chodzi o Scalę, mamy przynajmniej 4 stricte scalowe softwarehousy(softwaremill, scalac, iterators, virtuslab), które eksportują na cały świat + sporo firm które używają Scali na codzień do własnych projektów. Mamy 3 konferencje stricte
@BrudnyAnonim:

1. google "mutually recursive functions", https://stackoverflow.com/questions/28431125/mutual-recursion-in-odd-even-functions-in-haskell , tutaj twoje zadanie ale takie wywolanie sie nigdy nie zatrzyma wiec nie wiem do konca co ma byc wynikiem https://repl.it/repls/MonumentalQuirkyType

2. @BrudnyAnonim: "błąd" niestety mało mówi. Google: "haskell system random examples" a jak wyskoczy błąd to google "treść błędu"

3. wciągasz tekst jako linie (google) po czym robisz na nich fold/reduce i zwijasz taka kolekcje do tupli albo rekordu (liczbalinijek, liczba