Size: a a a

2020 October 26

AV

Alexander Vershilov in Haskell
там можно заменить ввод (кажется флаг -I) и через ${%%#_boot#} точный символ в man bash
источник

AV

Alexander Vershilov in Haskell
% или # всегда забываю
источник

VD

Velvet Darkness in Haskell
Как-то не очень представляю себе как циклические импорты при разбивке здорового человека могут быть. Есть у тебя Foo и Bar в двух модулях. В Foo лежит одноименный тип и мешок каких-нибудь функций для работы с ним. Bar использует и импортит Foo. Чтоб получился циклический импорт - нужно в Foo начать использовать Bar, т.е. заиметь либо функцию, которая одновременно и Foo и Bar использует, либо еще какую-то функцию, которая просто использует Bar.
Во втором случае очевидно, что эта функция должна лежать в модуле Bar, в первом она либо должна лежать в Bar, либо в третьем модуле, который будет зависеть от Foo и Bar 🤔
источник

VD

Velvet Darkness in Haskell
И в обоих случаях непонятно зачем может понадобиться Foo.Types. Приведите чтоль третий случай, где надобится
источник

JS

Jerzy Syrowiecki in Haskell
Velvet Darkness
Как-то не очень представляю себе как циклические импорты при разбивке здорового человека могут быть. Есть у тебя Foo и Bar в двух модулях. В Foo лежит одноименный тип и мешок каких-нибудь функций для работы с ним. Bar использует и импортит Foo. Чтоб получился циклический импорт - нужно в Foo начать использовать Bar, т.е. заиметь либо функцию, которая одновременно и Foo и Bar использует, либо еще какую-то функцию, которая просто использует Bar.
Во втором случае очевидно, что эта функция должна лежать в модуле Bar, в первом она либо должна лежать в Bar, либо в третьем модуле, который будет зависеть от Foo и Bar 🤔
есть модуль А с типом А.

есть функция преобразования А в форму Б, которая совсем сбоку и не является частью А. положим в модуль Б, который зависит от А.

есть сторонний тайпкласс В, надо реализовать инстанс В А. где? конечно, в модуле А, больше негде. но для реализации надо использовать преобразование А в Б, так возникает зависимость от Б.
источник

AV

Alexander Vershilov in Haskell
А вот если не для A, а для newtype A инстанс, то было бы ок!
источник

AV

Alexander Vershilov in Haskell
Всё от лени!
источник

AV

Alexander Vershilov in Haskell
(не хаскеля)
источник

AV

Alexander Vershilov in Haskell
((шутка))
источник

VD

Velvet Darkness in Haskell
@cblp_su звучит относительно валидно. Это пример по мотивам практически случая или умозрительный?
источник

VD

Velvet Darkness in Haskell
Меня тут смущает момент, что реализации В нужно преобразование А -> Б и из этого кажется, что определять такое в А возможно не совсем правильно семантически уже.
источник

JS

Jerzy Syrowiecki in Haskell
Velvet Darkness
@cblp_su звучит относительно валидно. Это пример по мотивам практически случая или умозрительный?
да, из недавнего практики. вообще ужасно редко циклы возникают
источник

JS

Jerzy Syrowiecki in Haskell
Velvet Darkness
Меня тут смущает момент, что реализации В нужно преобразование А -> Б и из этого кажется, что определять такое в А возможно не совсем правильно семантически уже.
определять реализацию можно где угодно, но как связать с инстансом?
источник

VD

Velvet Darkness in Haskell
Под реализацией я имею в виду инстанс. Т.е. кусок кода с instance B A where.
источник

VD

Velvet Darkness in Haskell
И если форма Б совсем сбоку от А и при этом В А её требует, то возможно В это больше про Б, чем про А 🤔
источник

VD

Velvet Darkness in Haskell
И если плясать от этого, то наверное можно избежать и орфанов и A.Types.
источник

IK

Ilya Kos in Haskell
Есть какие-то императивные языки, который immutable by default?
источник

IK

Ilya Kos in Haskell
Хочу язык который не хаскель, но без shared mutable state
источник

IK

Ilya Kos in Haskell
И не функциональный (что бы это ни значило)
источник

IK

Ilya Kos in Haskell
По идее immutability и функциональность ортогональные (?)
источник