This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-05-01
Channels
- # beginners (121)
- # boot (12)
- # cider (14)
- # clara (19)
- # cljsjs (1)
- # clojure (124)
- # clojure-italy (4)
- # clojure-nl (2)
- # clojure-russia (47)
- # clojure-spec (20)
- # clojure-uk (7)
- # clojurescript (102)
- # cursive (16)
- # datomic (10)
- # emacs (2)
- # events (2)
- # immutant (3)
- # luminus (5)
- # lumo (33)
- # off-topic (2)
- # om (5)
- # onyx (22)
- # parinfer (1)
- # pedestal (32)
- # protorepl (1)
- # re-frame (6)
- # reagent (2)
- # ring-swagger (2)
- # rum (1)
- # spacemacs (8)
- # specter (17)
- # yada (1)
кто-то недавно спрашивал, как с ошибками работать в цепочках асинхронных запросов: https://youtu.be/E8I19uA-wGY?t=2175
дак монады да или там чота новое чувак грит? (классный кста мужик - 100500 клевых статей и през на его сайте http://fsharpforfunandprofit.com)
конечно монады, он просто очень плавно и понятно между стандартным примером с кучей ифочек в монады переходит
а ну да, я наверно по его докладам и понял монады наконец, по крайней мере Maybe/Either
оффтоп: Никто не пробовал F#? Как оно вааще? У меня счас бекэнд ком на C#, грусть и печаль, может F# протащить ?:)
@misha круто, как раз в тему, 2artemyarulin : переходи на жаву, современную, реактивную
да неа, у нас бекэндщики жаву не могут да и если JVM то мы все знаем какой язык надо брать 🙂
@artemyarulin frege? ceylon? fantom?
кстати, насчет монад, вчера вечером игрался с http://fluokitten.uncomplicate.org/articles/functors_applicatives_monads_in_pictures.html
To continue with the spirit of the original article, we continue by providing the Clojure version of the Learn you a Haskell for Great Good book
о ня, хотя на динамичной кложе многое прощену и смотришь, иногда в канву основного оно вписывается, а иногда прям обнять и плакать
все наверное видели, но на всякий http://adit.io/posts/2013-04-17-functors,_applicatives,_and_monads_in_pictures.html
часто для уяснения не хватает банального примера кода на js/java/python/ruby/go/ocaml (подчеркнуть нужное), чтобы на картинки замапить.
а то все объяснения монад с примерами кода на языках, где они в порядке вещей и ссапортом в языке - это как хело ворлд очередного фреймворка, с которым левее/правее хело ворлда хз что делать
For example, here's how you work with a database record in a language without Maybe:
post = Post.find_by_id(1)
if post
return post.title
else
return nil
end
But in Haskell:
fmap (getPostTitle) (findPost 1)
лист кста это монада 🙂 поэтому Post.find_by_id(i).map(|p| p.title)
дак круто же - вы тут все по 100500 раз это юзали. Заместо Maybe юзаете лист/вектор. Чейните map 100 штук, если в монаде есть значние (больше нуля элементов) то все функции отработают, если массив пустой то функции не выполнятся, те что надо как раз.
Так что если нужно Maybe V
то проще завернуть в вектор и не париться про монады 🙂
(map inc [nil])
NullPointerException clojure.lang.Numbers.ops (Numbers.java:1013)
( ͡° ͜ʖ ͡°)cljs.user=> (map inc [nil])
(1)
wtfjs, JVM такое не прощает
app:cljs.user=> (inc nil)
1
кто-то использует https://github.com/jonase/kibit ? как он?
мне после js, чего-то на подобии eslint не хватает