Сообщение Re[3]: А скалисты тут есть? от 29.03.2024 20:23
Изменено 30.03.2024 18:46 novitk
Re[3]: А скалисты тут есть?
Здравствуйте, scf, Вы писали:
scf>А давайте. Я бы сказал, что пациент жив и развивается, просто функциональный хайп вокруг него угас, а нового (пока) нет.
Фиг знает, но не вижу энтузиазма. У нас все на двойке и переход на тройку сильно затруднен, а моя контора один из крупнейших пользователей языка.
scf>Для затравки — как вы используете inline? Я не очень люблю метапрограммирование из-за невозможности отладки, сложности написания и странных багов, но конкретно inline позволяет писать интересные абстракции без оверхеда.
Не использую. В плюсах тоже не использовал, возможно в силу специфики — я использую фундаментальный и числодробительные библиотеки, а не пишу.
scf>Например, переписать scala.util.chaining в более любимый мне по котлину let и also. Кто не знаком, это очень простые и очень полезные операции для структурирования кода. Например:
scf>"hello".let(_ + " world").also(println)
pipe использую, но синтаксически предпочел бы |>, как в F#. "Let/also" имхо не интуитивно.
Другое дело, что в скале оно так не нужно, так как операции над коллекциями сделаны через методы и сцепляются через точку.
scf>Или написать foreach, который можно использовать везде, а не рисовать руками while по индексу в критичном коде.
Честно говоря я предпочту рисовать руками и не забивать голову усложненной семантикой foreach. У тебя ведь итератор никуда не делся и ты просто помогаешь компилятору с unboxing в частном случае.
Однако подобная техника имеет право на жизнь. Известный мне пример в стандартной библиотеке здесь. Однако от него отказались в следующих версиях выделив search в SeqOps и используя обычный adhoc полиморфизм.
scf>А давайте. Я бы сказал, что пациент жив и развивается, просто функциональный хайп вокруг него угас, а нового (пока) нет.
Фиг знает, но не вижу энтузиазма. У нас все на двойке и переход на тройку сильно затруднен, а моя контора один из крупнейших пользователей языка.
scf>Для затравки — как вы используете inline? Я не очень люблю метапрограммирование из-за невозможности отладки, сложности написания и странных багов, но конкретно inline позволяет писать интересные абстракции без оверхеда.
Не использую. В плюсах тоже не использовал, возможно в силу специфики — я использую фундаментальный и числодробительные библиотеки, а не пишу.
scf>Например, переписать scala.util.chaining в более любимый мне по котлину let и also. Кто не знаком, это очень простые и очень полезные операции для структурирования кода. Например:
scf>"hello".let(_ + " world").also(println)
pipe использую, но синтаксически предпочел бы |>, как в F#. "Let/also" имхо не интуитивно.
Другое дело, что в скале оно так не нужно, так как операции над коллекциями сделаны через методы и сцепляются через точку.
scf>Или написать foreach, который можно использовать везде, а не рисовать руками while по индексу в критичном коде.
Честно говоря я предпочту рисовать руками и не забивать голову усложненной семантикой foreach. У тебя ведь итератор никуда не делся и ты просто помогаешь компилятору с unboxing в частном случае.
Однако подобная техника имеет право на жизнь. Известный мне пример в стандартной библиотеке здесь. Однако от него отказались в следующих версиях выделив search в SeqOps и используя обычный adhoc полиморфизм.
Re[3]: А скалисты тут есть?
Здравствуйте, scf, Вы писали:
scf>А давайте. Я бы сказал, что пациент жив и развивается, просто функциональный хайп вокруг него угас, а нового (пока) нет.
Фиг знает, но не вижу энтузиазма. У нас все на двойке и переход на тройку сильно затруднен, а моя контора один из крупнейших пользователей языка.
scf>Для затравки — как вы используете inline? Я не очень люблю метапрограммирование из-за невозможности отладки, сложности написания и странных багов, но конкретно inline позволяет писать интересные абстракции без оверхеда.
Не использую. В плюсах тоже не использовал, возможно в силу специфики — я использую фундаментальные и числодробительные библиотеки, а не пишу.
scf>Например, переписать scala.util.chaining в более любимый мне по котлину let и also. Кто не знаком, это очень простые и очень полезные операции для структурирования кода. Например:
scf>"hello".let(_ + " world").also(println)
pipe использую, но синтаксически предпочел бы |>, как в F#. "Let/also" имхо не интуитивно.
Другое дело, что в скале оно так не нужно, так как операции над коллекциями сделаны через методы и сцепляются через точку.
scf>Или написать foreach, который можно использовать везде, а не рисовать руками while по индексу в критичном коде.
Честно говоря я предпочту рисовать руками и не забивать голову усложненной семантикой foreach. У тебя ведь итератор никуда не делся и ты просто помогаешь компилятору с unboxing в частном случае.
Однако подобная техника имеет право на жизнь. Известный мне пример в стандартной библиотеке здесь. Однако от него отказались в следующих версиях выделив search в SeqOps и используя обычный adhoc полиморфизм.
scf>А давайте. Я бы сказал, что пациент жив и развивается, просто функциональный хайп вокруг него угас, а нового (пока) нет.
Фиг знает, но не вижу энтузиазма. У нас все на двойке и переход на тройку сильно затруднен, а моя контора один из крупнейших пользователей языка.
scf>Для затравки — как вы используете inline? Я не очень люблю метапрограммирование из-за невозможности отладки, сложности написания и странных багов, но конкретно inline позволяет писать интересные абстракции без оверхеда.
Не использую. В плюсах тоже не использовал, возможно в силу специфики — я использую фундаментальные и числодробительные библиотеки, а не пишу.
scf>Например, переписать scala.util.chaining в более любимый мне по котлину let и also. Кто не знаком, это очень простые и очень полезные операции для структурирования кода. Например:
scf>"hello".let(_ + " world").also(println)
pipe использую, но синтаксически предпочел бы |>, как в F#. "Let/also" имхо не интуитивно.
Другое дело, что в скале оно так не нужно, так как операции над коллекциями сделаны через методы и сцепляются через точку.
scf>Или написать foreach, который можно использовать везде, а не рисовать руками while по индексу в критичном коде.
Честно говоря я предпочту рисовать руками и не забивать голову усложненной семантикой foreach. У тебя ведь итератор никуда не делся и ты просто помогаешь компилятору с unboxing в частном случае.
Однако подобная техника имеет право на жизнь. Известный мне пример в стандартной библиотеке здесь. Однако от него отказались в следующих версиях выделив search в SeqOps и используя обычный adhoc полиморфизм.