[Russian Speaking] Scala User Group
@optician_owlМожно задавать любые вопросы по теме, от совсем базовых, до требующих многолетних исследований. Но если постите примеры кода, то делайте его компилируемым. Шансы на помощь возрастают многократно. Подойдут сервисы https://scastie.scala-lang.org, https://scalafiddle.io. В крайнем случае gist, там хотя бы история и комменты есть.
Telegram
- Russian chat: https://t.me/scala_ru (правила - https://gist.github.com/fomkin/5ff77f44ddbdc54ef149b16ee8515b25)
- English chat: https://t.me/scala_en
- Jobs chat [En]: https://t.me/scala_jobs_en
- Jobs chat [Ru]: https://t.me/scala_jobs
- Jobs channel (without flood): https://t.me/scala_jobs_feed
- Канал с полезняшками: https://t.me/scala_channel_ru
- Канал Дениса Михайлова aka @notxcain: https://t.me/notxcain_tech_feed
- ПОНВ (отщепенцы, флудильня, место где не страшно быть глупым): https://t.me/scala_ponv
- Газетка участников ПОНВа. https://t.me/daily_ponv
- Чат по теоркату: https://t.me/ru_catheory
- Хацкеллевый чат (если вы чувствуете себя как Фоммил или Моррис): https://t.me/haskellru
- Зав. типы и идрис в частности (когда и скалы и хацкелля мало, делать нечего и хочется по лезвию еще не отполированного ножа ходить): https://t.me/joinchat/Ai4h2D9SWO_RDx2jMUbzqw
Gitter
- От сообщества dev-ua: https://gitter.im/dev-ua/scala
- От телеграмовского сообщества: https://gitter.im/scala-russian/Lobby
- ПОНВ (отщепенцы, дорвавшиеся до TeX): https://gitter.im/scala-russian/ponv
Meetup
Media
- Подкаст "Скалалаз" https://scalalaz.ru
- Scala digest https://scalanews.org/
Ребята ищут постоянного редактора в помощь: "Нам нужно больше редакторов! Материала много и выжимание сути занимает приличное время. Хочешь сам быть вкурсе событий и делиться этим с сообществом - пиши Вадиму Челышову (@dos65)."
Если у вас есть слухи, драмы, инсайды, а молчать невозможно. Если вы хотитет попиарить свой продукт. Это ваша площадка. - Англоязычный подкаст "Скалалав" https://scala.love/hello-scala/ от неугомонной @oli_kitty
Youtube
Образование
- Проект fp speedrun. Веб занятия со студентами, желающими освоить функциональной программирование и средства для него в scala. https://github.com/scala-russian/fpspeedrun/wiki
- Основы языка на русском от одного из Олегов https://stepik.org/course/16243
- Подборки "Как вкатиться в скалу?" - https://gist.github.com/d1egoaz/2180cbbf7d373a0c5575f9a62466e5e1, https://stackoverflow.com/tags/scala/info
- Путь Олега: "для популярных языков общего назначения в первую очередь я пишу хелловорлд, потом пишу какие-то олимпиадные задачки, потом ищу самую хайповую на текущий момент хттп либу и пишу в ней что-то".
- Кружок изучающих Proof Theory под руководством @clayrat
https://t.me/proof_theory
https://www.youtube.com/channel/UC8reF8xuw05LOYLeWNRV0pg
https://github.com/sequents
Символика и искусство
https://github.com/angel608/pero_scala_art - исходный арт геральдики сообщества
http://scalarussiafeather.printdirect.ru/ - сразу заказать
https://github.com/scala-russian/scala_ru_stickers - подборка стикеров от Вадима Челышева
https://impurepics.com - Работы наскального художника @Zelenya (https://twitter.com/impurepics)
https://drive.google.com/drive/folders/1ZyYWvbs6TKa5U7dKsGlS6ru3t7QGp3gL - его же шаурма-cat
FAQ
- Что за FT все упоминают? Final Tagless - подход для создания EDSL, альтернатива Free и просто модно в 2018. Почитать стоит http://okmij.org/ftp/tagless-final/course/lecture.pdf и славянофильское https://habr.com/post/325874/
- А как сделать вот такую хитрую вещь? - возможно ответ есть в https://github.com/Odomontois/manatki
- Нужно ли изучать хацкелль, чтоб писать на скалке с котами и прочими крутыми штуками? Нет.
- Нужно ли изучать теорию категорию и прочий функан (с), чтобы писать на скалке с котами и прочими крутыми штуками? Нет. Хотя может дать некоторую интуицию и разочарование в происходящем, предварительно пожрав время. (Спойлер. Для хацкелля ответ такой же.)
- Что такое функтор? - Специальное преобразование, сохраняющее структуру - типы и функции между типами. В скалке реализуется с помощью конструктора (отображение объектов на новую структуру) и метода map (переносит связи между объектами). Примеры: List, Option и т.д. К примеру есть у нас Int и Boolean вместе со всем набором функций из первого во второй. Берем функтор List (важно, kind * -> *) и получаем List[Int] (отображение Int) с помощью List.apply. Все функции Int => Boolean переносим с помощью List.map. В чем профит? Сохранение структуры позволяет сохранить представление о поведении но уже для другого типа.