Size: a a a

2021 March 04

VD

Velvet Darkness in Haskell
Идея интересная. Можно даже попробовать сделать что-то в духе type Key = (Bits a) => a или как там правильно записать "любое значение с Bits инстансом".
источник

VD

Velvet Darkness in Haskell
Прям можно записать в список "прикольная штука, которая возможно всем пригодится, но я её никогда не сделаю" :D
источник

JS

Jerzy Syrowiecki in Haskell
Velvet Darkness
Идея интересная. Можно даже попробовать сделать что-то в духе type Key = (Bits a) => a или как там правильно записать "любое значение с Bits инстансом".
полиморфные поля хранятся по ссылке, так что потеряете в памяти
источник

JS

Jerzy Syrowiecki in Haskell
Jerzy Syrowiecki
а, да, хранится общий префикс ключа
ключ в худшем случае тоже хранится, когда он один на блок
источник

VD

Velvet Darkness in Haskell
Хм. А по аналогии с массивами сделать просто общий интерфейс и мешок прихардкоженых реализаций для всяких Word8, Word16?
источник

JS

Jerzy Syrowiecki in Haskell
Velvet Darkness
Хм. А по аналогии с массивами сделать просто общий интерфейс и мешок прихардкоженых реализаций для всяких Word8, Word16?
источник

VD

Velvet Darkness in Haskell
Уф, ну тогда без меня разберутся, наверное. Пришло время заваривать чай и писать код.
источник

JS

Jerzy Syrowiecki in Haskell
хотя там не по аналогии с массивами. в vector другая стратегия специализации
источник

A

Aleksandr Khristenko in Haskell
А в хаскеле есть какой-нибудь инструмент, который бы показал все возможные синхронные исключения которые могут вылететь из функции?
источник

[

[BRM]White Rabbit in Haskell
да зачем вообще нужны эти ваши исключения?🤔
источник

A

Aleksandr Khristenko in Haskell
[BRM]White Rabbit
да зачем вообще нужны эти ваши исключения?🤔
Ну а зачем нужны исключения в других языках?
источник

[

[BRM]White Rabbit in Haskell
Aleksandr Khristenko
Ну а зачем нужны исключения в других языках?
Чтобы забить последний гвоздь в дизайн языка
источник

A

Aleksandr Khristenko in Haskell
[BRM]White Rabbit
Чтобы забить последний гвоздь в дизайн языка
Интересная точка зрения. А ты пробовал писать на каких-нибудь языках, где исключений нет вообще?
источник

[

[BRM]White Rabbit in Haskell
Исключения должны валить программу, потому что это либо ошибка со стороны рантайма(StackOverflow, OutOfMemory) либо ошибка программиста, когда он не обработал кейс, который обязан был (OutOfRange). И в обоих случаях программа не валидна и её надо убивать.
Для иных ситуаций у языка обязаны быть другие способы обработки ошибок. В идеале - которые насильно навязывают вызывающему коду обработку этих самых ошибок(Result<T> в расте, Maybe в хаскеле)
источник

A

Aleksandr Khristenko in Haskell
[BRM]White Rabbit
Исключения должны валить программу, потому что это либо ошибка со стороны рантайма(StackOverflow, OutOfMemory) либо ошибка программиста, когда он не обработал кейс, который обязан был (OutOfRange). И в обоих случаях программа не валидна и её надо убивать.
Для иных ситуаций у языка обязаны быть другие способы обработки ошибок. В идеале - которые насильно навязывают вызывающему коду обработку этих самых ошибок(Result<T> в расте, Maybe в хаскеле)
Ну а ты вообще пробовал на расте писать?
источник

[

[BRM]White Rabbit in Haskell
Не то что бы особо много. А там что, в корпоративной разработке при имени с маленькой буквой кидают panic! ?
источник

K

Kir in Haskell
[BRM]White Rabbit
Исключения должны валить программу, потому что это либо ошибка со стороны рантайма(StackOverflow, OutOfMemory) либо ошибка программиста, когда он не обработал кейс, который обязан был (OutOfRange). И в обоих случаях программа не валидна и её надо убивать.
Для иных ситуаций у языка обязаны быть другие способы обработки ошибок. В идеале - которые насильно навязывают вызывающему коду обработку этих самых ошибок(Result<T> в расте, Maybe в хаскеле)
Эффект Error Err1 в системах эффектов, например. Оно потребует его обработать.
источник

JS

Jerzy Syrowiecki in Haskell
[BRM]White Rabbit
Исключения должны валить программу, потому что это либо ошибка со стороны рантайма(StackOverflow, OutOfMemory) либо ошибка программиста, когда он не обработал кейс, который обязан был (OutOfRange). И в обоих случаях программа не валидна и её надо убивать.
Для иных ситуаций у языка обязаны быть другие способы обработки ошибок. В идеале - которые насильно навязывают вызывающему коду обработку этих самых ошибок(Result<T> в расте, Maybe в хаскеле)
есть языки, в которых OutOfRange и вообще частичные вычисления исключены
источник

[

[BRM]White Rabbit in Haskell
Ты щас про языки с завтипами?
источник

JS

Jerzy Syrowiecki in Haskell
нет, про тотальные языки. но на тотальном языке без завтипов писать, наверно, совсем нереально
источник