Size: a a a

Scala User Group

2020 April 14

D

Daniel in Scala User Group
Друзья, не позволяйте вашим друзьям юзать трансформеры
источник

λ

λoλcat in Scala User Group
Юрий Бадальянц
Правда? Я никогда не юзал его, только видел
Ну очевидно, что Nested универсальная штука, поэтому дает только композируемые тайпклассы
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Ну для того, чтобы избежать дабл мэпа достаточно аппликатива
источник

ЮБ

Юрий Бадальянц in Scala User Group
λoλcat
Ну очевидно, что Nested универсальная штука, поэтому дает только композируемые тайпклассы
Погоди, но ведь map внутри функтора, так что этого достаточно
источник

λ

λoλcat in Scala User Group
Для дабл мэпа да
источник

λ

λoλcat in Scala User Group
Но чел спросил про трансформеры, и мы не знаем, что у него за код
источник

ЮБ

Юрий Бадальянц in Scala User Group
Скаланы, может есть какие либы или что-то такое, где на литералах из 2.13 сделаны массивы с длиной в типе? Толко без шейплеса пожалуйста
источник

Oℕ

Oleg ℕizhnik in Scala User Group
встроенные операции над сигнлтонами есть по-моему только в дотти
источник

ЮБ

Юрий Бадальянц in Scala User Group
А мне не нужны операции. Мне нужно просто в типе выразить, что размер вот такой-то
источник

ЮБ

Юрий Бадальянц in Scala User Group
И потом в рантайме через valueOf его достать при необходимости
источник

Oℕ

Oleg ℕizhnik in Scala User Group
а что тебе даст размер, если ты даже компайлтайм не сможешь чекнуть, что индекс не выходит за рамки?
источник

ЮБ

Юрий Бадальянц in Scala User Group
На самом деле мне в рантайме просто нужно такое число, которое описывает длину массива. У меня есть тайплкасс, который сериализует данные в массив фиксированной длины. Я могу добавить просто ещё одно полюшко в трейт, реализующий тайпкласс, типа arraySize, но хочу попробовать на литералах сделать
источник

Oℕ

Oleg ℕizhnik in Scala User Group
ну кажется, что если ничего не требуется, тогда и библиотека не нужна
источник

ЮБ

Юрий Бадальянц in Scala User Group
Выход за границы массива никак не проверю, но так как код работы с массивом будет только там, где я создаю инстанс, то и ничего страшного
источник

ЮБ

Юрий Бадальянц in Scala User Group
Oleg ℕizhnik
ну кажется, что если ничего не требуется, тогда и библиотека не нужна
Ну может думал есть уже что-то
источник

ЮБ

Юрий Бадальянц in Scala User Group
ну ладно
источник

VE

Vasiliy Efimov in Scala User Group
Есть ли какой-нибудь человеческий способ скомбинировать частичную функцию с обычной?

val partial: PartialFunction[T, R] = ???
val fallback: T => R = ???
partial.orElse {
 case x => fallback(x)
}


этот вариант даёт Partial как результат, хотя fallback «тотальная»
источник

Oℕ

Oleg ℕizhnik in Scala User Group
partial.applyOrElse(_, fallback)
источник

VE

Vasiliy Efimov in Scala User Group
Грустно, что аргумент надо снаружи передавать, и вывод типов из-за этого какой-то не очень
источник

M

Mikhail in Scala User Group
Юрий Бадальянц
На самом деле мне в рантайме просто нужно такое число, которое описывает длину массива. У меня есть тайплкасс, который сериализует данные в массив фиксированной длины. Я могу добавить просто ещё одно полюшко в трейт, реализующий тайпкласс, типа arraySize, но хочу попробовать на литералах сделать
обычный рефайнд ньютайп с перекрытием основных функций массива(чтобы убрать мутабельность? или не убирать, но можно проверить выход за рамки) и кодированием в типе
источник