[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. В чем профит? Сохранение структуры позволяет сохранить представление о поведении но уже для другого типа.