Size: a a a

2021 February 27

G

GNU/Vsevolod in Haskell
Понял
источник

JS

Jerzy Syrowiecki in Haskell
GNU/Vsevolod
lines <$> readFile ведь прочтет сначала весь файл, нет?
Prelude.readFile — ленивый, читает через буфер (строчный или блочный)
источник

AP

Aleksei (astynax) Pi... in Haskell
lines тоже ленивый
источник

AP

Aleksei (astynax) Pi... in Haskell
Получается что-то вроде итератора
источник

JS

Jerzy Syrowiecki in Haskell
GNU/Vsevolod
lines <$> readFile ведь прочтет сначала весь файл, нет?
BS.readFile прочитает целиком, BSL.readFile тоже ленивый
источник

к

кана in Haskell
можно еще явно построчно читать hGetLine каким-нибудь в цикле
источник

JS

Jerzy Syrowiecki in Haskell
кана
можно еще явно построчно читать hGetLine каким-нибудь в цикле
там тот же самый буфер, что и в readFile.

хотя с явным хэндлом код чуть безопаснее будет
источник

AP

Aleksei (astynax) Pi... in Haskell
с handle можно явно обозначить закрытие через bracket
источник

IR

IC Rainbow in Haskell
Jerzy Syrowiecki
BS.readFile прочитает целиком, BSL.readFile тоже ленивый
BS.readFile прочитает целиком и положит в запиненую память - можно будет потом слайсить за константы и без копий нарезать на много маленьких буферят. ❤️

BSL.readFile начнёт читать, а потом прищемит даунстриму хвост если тот замешкается. ☠️
источник

KV

Kirill Valyavin in Haskell
> (TypeError ('Text "Use 'let x = param \"..\"' instead of 'x <- param \"..\"'") :: Constraint) => ParamReader (IO param)
З — забота
источник

к

кана in Haskell
не могу понять как это работает, это же в любом случае даст ошибку
источник

KV

Kirill Valyavin in Haskell
В любом случае, если есть IO слой внешний
источник

к

кана in Haskell
чет мне захотелось закрытых тайпклассов
источник

MK

Maxim Koltsov in Haskell
instance {-# OVERLAPPING #-} TypeError ... => Foo a
источник

MK

Maxim Koltsov in Haskell
наверное
источник

к

кана in Haskell
Maxim Koltsov
instance {-# OVERLAPPING #-} TypeError ... => Foo a
о мб поможет
источник

MK

Maxim Koltsov in Haskell
А зачем
источник

к

кана in Haskell
ну вот есть тайпкласс, который заменяет матчинг по натуральным числам на типе

class Foo n
instance Foo Zero
instance Foo n => Foo (Succ n)

и мне хочется, чтобы ghc знал, что для любых значений n, Foo n есть всегда
источник

к

кана in Haskell
а сейчас он этого не знает, и ругается, что не может найти инстанс
источник

к

кана in Haskell
ну то есть банально такой чек хочется чтобы проходил:

foo :: (forall n. Foo n) => ()
foo = ()
источник