clojure-poland

jaen 2017-11-28T00:33:17.000273Z

W Clojure? No idea, nie próbowałem jeszcze czegoś takiego zaimplementować.

jaen 2017-11-28T00:33:34.000140Z

Ale bardzo ciekawie wygląda toto ze Scali - http://frees.io/

jaen 2017-11-28T00:34:08.000260Z

Od jakiegoś czasu mamy na Śląsku spotkania programistów funkcyjnych (aż nie wierzę) i jutro właśnie ktoś ma o tym prezentację, więc chętnie posłucham.

jaen 2017-11-28T00:38:19.000172Z

Ale pierwszy guess z brzegu to zrobienie makra które symbole operacji danej algebry podmienia na coś, co zresolvuje tą operację w danym kontekście (dynamic binding z mapą symbol -> interpretacja?). Albo po prostu pisanie cytowanymi listami (tylko to na pewno mniej wygodne jak się manualnie robi). Albo tagowanie operacji tagged literals?

jaen 2017-11-28T00:38:28.000071Z

Chociaż każda opcja brzmi na swój sposób trochę ułomnie

jaen 2017-11-28T00:40:06.000281Z

O, albo pisanie kodu a'la hiccup, keyword reprezentuje operację, kontekst dostarcza ich interpretacji. Tylko w sumie to też głupi pomysł, bo by wymagało reimplementacji rzeczy typu conditionale czy pętle, which is dumb.

jaen 2017-11-28T00:51:28.000125Z

Tak w kwestii nieimplementacyjnej to bardzo mi się podobał ten artykuł - https://deque.blog/2017/07/06/hexagonal-architecture-a-less-declarative-free-monad/

jaen 2017-11-28T00:51:38.000007Z

Piszą w nim o analogii między sześciokątem o free monads

2017-11-28T15:02:18.000301Z

mmm

2017-11-28T15:02:25.000399Z

cos podobnego mi sie kolatalo po glowie swego czasu

2017-11-28T15:02:46.000021Z

ale jak zaczalem w tym grzebac to dotarlo do mnie ze w sumie to pisze jezyk programowania z interpreterem

2017-11-28T15:03:00.000909Z

i to nie ma zadnego sensu

2017-11-28T15:03:18.000788Z

kiedy ma sie dobry jezyk programowania in the first place

2017-11-28T15:04:56.000504Z

chyba trampoliny mi wystarcza

2017-11-28T15:05:55.000180Z

a wlasnie probowalem zrobic taki “funkcyjny hexagon”

jaen 2017-11-28T22:00:56.000309Z

Znaczy, to trochę ma sens chyba, bo jednak np. taki program we free monadzie możesz łatwo przenosić mię∂zy interpreterami (to trochę jak DI - inny do testów, inny do bazy SQLowej, inny do bazy w pliku czy coś) i je komponować i ograniczasz też możliwość popełnienia błędu, ograniczając możliwe operacje, ale może rzeczywiście nie jest to taki duży sens w dynamicznym języku jak i tak nie możesz typecheckować poprawności programu. Nie wiem. It sounds enticing, ale nie jestem pewien czy by się to sensownie wpasowało w Klożer.