This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-11-28
Channels
- # adventofcode (2)
- # bangalore-clj (3)
- # beginners (171)
- # boot (28)
- # chestnut (3)
- # cljs-dev (20)
- # cljsjs (5)
- # clojure (280)
- # clojure-austin (1)
- # clojure-czech (1)
- # clojure-dev (9)
- # clojure-dusseldorf (2)
- # clojure-greece (20)
- # clojure-italy (6)
- # clojure-poland (16)
- # clojure-russia (7)
- # clojure-serbia (4)
- # clojure-sg (1)
- # clojure-spec (18)
- # clojure-uk (153)
- # clojurescript (57)
- # core-async (9)
- # cursive (21)
- # data-science (29)
- # datomic (18)
- # dirac (8)
- # docker (6)
- # duct (1)
- # emacs (50)
- # fulcro (15)
- # hoplon (56)
- # klipse (3)
- # leiningen (14)
- # lumo (1)
- # off-topic (5)
- # onyx (13)
- # other-languages (14)
- # pedestal (1)
- # perun (5)
- # planck (17)
- # re-frame (10)
- # reagent (2)
- # ring (1)
- # spacemacs (51)
- # sql (14)
- # test-check (16)
- # testing (1)
- # unrepl (93)
Ale bardzo ciekawie wygląda toto ze Scali - http://frees.io/
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.
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?
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.
Tak w kwestii nieimplementacyjnej to bardzo mi się podobał ten artykuł - https://deque.blog/2017/07/06/hexagonal-architecture-a-less-declarative-free-monad/
ale jak zaczalem w tym grzebac to dotarlo do mnie ze w sumie to pisze jezyk programowania z interpreterem
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.