Size: a a a

Scala User Group

2020 August 23

Oℕ

Oleg ℕizhnik in Scala User Group
Ещё одна (или не одна) особенность, дающая потенциал для оптимизаций в ФП, должна быть включена в язык, но пока не включена в scala, хотя и обсуждалась
источник

OO

Oleksandr Olgashko in Scala User Group
а что-то ж было про представление гарантированно-чистых функций, емнип через синтаксис -> вместо =>
источник

OO

Oleksandr Olgashko in Scala User Group
но это года 3-4 назад было, так что заглохло, видимо
источник

EB

Eugene Bosiakov in Scala User Group
Oleg ℕizhnik
scala только только собирается получить первый компилятор с промежуточным представлением перед JVM bytecode, все нетривиальные оптимизации требуют такого представления.
Некоторые даже должны были быть включены в релиз, но пока отложены.
Я тоже полагаю, что есть у ФП кода есть потенциал производить более эффективно работающие приложения, но это вопрос следующего этапа и вовлечённости сообщества в компилятор.
Я помню, в этом чате обсуждалось, что в скала в рамках одного метода мутируемая структура это норм, главное чтобы результат функции был иммутабельный. А у вас в продакшн коде есть методы которые внутри себя реализуют алгоритмы с мутабельными структурами? или у вас все очень строго?
источник

NV

Nikita Vilunov in Scala User Group
Eugene Bosiakov
Я помню, в этом чате обсуждалось, что в скала в рамках одного метода мутируемая структура это норм, главное чтобы результат функции был иммутабельный. А у вас в продакшн коде есть методы которые внутри себя реализуют алгоритмы с мутабельными структурами? или у вас все очень строго?
Стандартная либа коллекций наполовину такая
источник

OO

Oleksandr Olgashko in Scala User Group
Eugene Bosiakov
Я помню, в этом чате обсуждалось, что в скала в рамках одного метода мутируемая структура это норм, главное чтобы результат функции был иммутабельный. А у вас в продакшн коде есть методы которые внутри себя реализуют алгоритмы с мутабельными структурами? или у вас все очень строго?
не столько "результат иммутабельный" (это иррелевантно целям), сколько "созданные внутри метода мутабельные вещи никак не экспозятся наружу"
источник

NV

Nikita Vilunov in Scala User Group
Oleksandr Olgashko
не столько "результат иммутабельный" (это иррелевантно целям), сколько "созданные внутри метода мутабельные вещи никак не экспозятся наружу"
А какая разница?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Oleksandr Olgashko
а что-то ж было про представление гарантированно-чистых функций, емнип через синтаксис -> вместо =>
да
источник

OO

Oleksandr Olgashko in Scala User Group
Nikita Vilunov
А какая разница?
вопрос терминологии

может, там в методе сайдэффектом изменяется публично доступная переменная класса, но именно результат метода все еще остается иммутабельным

например, счетчик числа вызовов этого метода
источник

EB

Eugene Bosiakov in Scala User Group
но на определение чистоты функции же не влияет, использует она внутри мутабельные структуры или нет?
источник

OO

Oleksandr Olgashko in Scala User Group
не влияет
источник

Oℕ

Oleg ℕizhnik in Scala User Group
На определение кем?
источник

EB

Eugene Bosiakov in Scala User Group
скала чатом
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Уверен, что скалачат не сможет прийти к консенсусу относительно ни одного даже самого простого определения
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Oleksandr Olgashko
не столько "результат иммутабельный" (это иррелевантно целям), сколько "созданные внутри метода мутабельные вещи никак не экспозятся наружу"
Ну вот например cats.Eval[Int] может быть результатом иммутабельной функции согласно этому определению?
источник

OO

Oleksandr Olgashko in Scala User Group
Oleg ℕizhnik
Ну вот например cats.Eval[Int] может быть результатом иммутабельной функции согласно этому определению?
может, если внутри нет сайдэффектов
источник

OO

Oleksandr Olgashko in Scala User Group
(и я не очень понял, что такое "иммутабельная функция")
источник

AD

Apache DOG™ in Scala User Group
Oleksandr Olgashko
(и я не очень понял, что такое "иммутабельная функция")
Код который не меняется с выполнением инструкций?
источник

OO

Oleksandr Olgashko in Scala User Group
Apache DOG™
Код который не меняется с выполнением инструкций?
принимается
источник

AH

Ayrat Hudaygulov in Scala User Group
Apache DOG™
Код который не меняется с выполнением инструкций?
konst комбинатор)
источник