Scala Nishtyaki Channel
951 subscribers
76 photos
8 videos
36 files
626 links
Сборник всеразличного sheeta для пограммистов.
Все материалы опубликованы сугубо для ознакомления, покупайте книжечки, поддержите авторов.

Одмены: @pomadchin @vndzzz @oli_kitty

Скала чат: https://t.me/scala_ru
Download Telegram
Forwarded from lgor
Смотрите какую штуку я запилил для многомерных массивов: https://github.com/Kright/ArrayView
Идея примерно как в numpy - поверх одномерного массива делается вьюшка для многомерного и операции типа "взять кусочек массива" или "интвертировать какую-то ось" делаются созданием новых вьюшек.

Из фич третьей скалы, которые очень пригодились - инлайн функции и context functions.
типа можно написать array4d.view(size / 2 until size, all.reversed, 2, size - 1) - и для каждой оси size свой из контекста (как и all, который весь Range вдоль оси).

А благодаря инлайн функциям можно избежать боксинга для примитивных типов.
trait ArrayView1d[T]:  def data: Array[T]
def offset: Int
def stride0: Int

def getIndex(i0: Int): Int = offset + stride0 * i0

inline def apply(i0: Int): T = data(getPos(i0))

Если бы не было inline, то был бы возврат generic типа и боксинг в объект.

Чего мне не хватило - скала не даёт иметь несколько методов с одинаковыми именами и параметрами по-умолчанию.
В итоге мой метод view это некоторый костыль в transparent inline - потому что я хочу принимать в качестве значения по оси принимать и Int (фиксированное значение, количество осей снижается на 1) и range (тогда количество осей то же самое)

P.S. Я сначала писал какой-то специальный класс для 3д, потом вдруг осознал что оно хорошо обобщается и эффективно работает.
🔥11💩2
Forwarded from Ekaterina
16 августа — на ИТ-пикник

Событие месяца — семейный фестиваль для опытных ИТ-специалистов. Что в программе:
— Лекции топов индустрии.
— Интерактивы, квесты, мастер-классы.
— Общение, знакомства.
— Выступления известных музыкантов: «тима ищет свет», Тося Чайкина, «Второй Ка» и секретного артиста.

Фестиваль пройдет в музее-заповеднике «Коломенское»

Время отжигать, пока лето не закончилось. Подробности и билеты — на сайте ИТ-пикника
💩61
Forwarded from Oleg ℕižnik
Круто, тайные страницы документации
https://docs.scala-lang.org/scala3/reference/experimental/cc-advanced.html
🤯3🤔2
Forwarded from Ekaterina
30 августа пройдет конференция JVM Day

Приглашают опытных разработчиков — прокачать навыки и завести полезные знакомства. Часть стоимости билетов пойдет на поддержку региональных вузов.

Основная программа состоит из трех секций: Java, Scala и Backend. Днем участников ждут доклады спикеров из Т-Банка, Яндекса, 2ГИС, Squad, 01. tech, а вечером — афтепати.

Подробности по ссылке
👍3