This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-05-05
Channels
- # admin-announcements (4)
- # beginners (47)
- # boot (69)
- # cider (11)
- # cljsjs (1)
- # cljsrn (5)
- # clojure (163)
- # clojure-austin (17)
- # clojure-russia (27)
- # clojure-uk (46)
- # clojurescript (109)
- # core-async (28)
- # cursive (2)
- # data-science (1)
- # datavis (1)
- # datomic (9)
- # dirac (33)
- # funcool (8)
- # hoplon (1)
- # lein-figwheel (1)
- # leiningen (1)
- # luminus (23)
- # mount (3)
- # nyc (2)
- # off-topic (25)
- # om (3)
- # onyx (4)
- # perun (7)
- # re-frame (10)
- # reagent (2)
- # ring-swagger (4)
- # spacemacs (4)
- # uncomplicate (1)
- # untangled (21)
- # vim (2)
- # yada (2)
Привет, а есть возможность запустить clojure интерпретатор из командной строки на OSX? Без приседаний с java, и не создавая целый проект brew install clojure кидает ошибку что надо использовать leiningen, но в доке leiningen я не нашел как запустить repl не создавая проекта. 😞
lein repl
ему проект не нужен
можно использовать planck, это cljs, но в целом просто посмотреть на синтаксис и поиграться хватает
тут java не нужна и ставится просто brew install planck
@bernik: и core.async и future будут выполняться на пуле ниток. go-block нужен для корпоративной многозадачности - когда ты пишешь в канал или читаешь из канала легковесная нитка снимается с выполнения - паркуется, уступая реальный thread следующей. Если ты каналами не пользуешься, то go block тебе не нужен.
@andfadeev: первое у меня работает, а второе падает с OutOfMemory
синтетика, конечно, и довольно бессмысленный тест, но все-таки показывает, что го блоки отличаются от futures
К сожалению, эрланг — это всё-таки гетто, так что и будет смотреть свысока в одиночестве :)
@dottedmag: ну любой гошник на 10k тоже так может смотреть
Для тех, кто хочет погрузиться в дебри теории CSP вот книженция http://www.computing.surrey.ac.uk/personal/st/S.Schneider/books/CRTS.pdf
как я себе вижу c введением core.async появились примитивы более высокого уровня чем просто promise, future, delay или atom. Теперь вместо конкурентого доступа к стейту предоставляется возможность писать логику в однопоточном стиле, считая что у нас одно ядро и один поток. вместо конкурентного доступа к стейту со многих мест в коде теперь можно написать функцию, которая читает из канала одно за одним сообщение и мутирует стейт в "однопоточном" коде. Коммуникации через каналы существенно упрощают reasoning about the code.
@mike1452: Ещё полезно прочитать статьи про эрланговый OTP. Там типичные поведения распределённого софта тупо вбили на уровень стандартной библиотеки.
Например, gen_server
. "Хочу клиент-сервера, чтобы он вот так отзывался на события". Пишешь последовательный код в хэндлерах, а вся параллельность — в библиотеке.
Такая штука творит чудеса с читабельностью, поддерживаемостью и тестируемостью кода.
@dottedmag а реально ли повторить ОТР семантику на core.async? применимы ли абстракции Erlanga в Clojure?
у нас в ходе проекта вырисовалась библиотечка otplike, скоро заоупенсорсим. @aav расскажешь на каком-нибудь из следущих хэнгаутов?