Size: a a a

2020 July 03

AV

Alexander Vershilov in Haskell
Но в этой книжке главная мысль похоже "вы не гугл"
источник

AV

Alexander Vershilov in Haskell
А рсскажите мне в чем прикол кодека в кассаве для чисел:
источник

AV

Alexander Vershilov in Haskell
formatDecimal i
   | i < 0     = minus Mon.<>
                 if i <= -128
                 then formatPositive (-(i `quot` 10)) Mon.<> digit (-(i `rem` 10))
                 else formatPositive (-i)
   | otherwise = formatPositive i
источник

AV

Alexander Vershilov in Haskell
Чот вообще не понимаб зачем так делать надо было
источник

AV

Alexander Vershilov in Haskell
почему, при <-128 мы отделяем десяток, а иначе нет?
источник

AV

Alexander Vershilov in Haskell
formatPositive = go
 where go n | n < 10    = digit n
            | otherwise = go (n `quot` 10) Mon.<> digit (n `rem` 10)
источник

AV

Alexander Vershilov in Haskell
digit :: Integral a => a -> Builder
digit n = word8 $! i2w (fromIntegral n)
источник

AV

Alexander Vershilov in Haskell
Там есть специализации под обычные типы, но что-то я не уверен, что они разумно выстрелят
источник

AV

Alexander Vershilov in Haskell
а инстансы:
-- | Uses decimal encoding with optional sign.
instance
ToField Int64 where
   
toField = decimal
   {-# INLINE toField #-
источник

AV

Alexander Vershilov in Haskell
при этом что мешало сделать
class F a where
 fb :: a -> Builder

newtype Fast a = Fast a

instance F a => ToField (Fast a) where
  toField (F a) = toStrict . toLazyByteString $ fb a

deriving via F Int64 instance ToField Int64

?
источник

AV

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

AV

Alexander Vershilov in Haskell
И какого черта ToField сразу делает строгую байтостроку, что мешает держать билдер, я конвертить его в строгую байтостроку хотя бы по рядам
источник

AV

Alexander Vershilov in Haskell
чот hvr меня иногда удивляет
источник

AV

Alexander Vershilov in Haskell
Поидее надо смотреть кору, но не хочу 🙁
источник

MK

Maxim Koltsov in Haskell
Спать надо
источник

AV

Alexander Vershilov in Haskell
У меня 2 MR в очереди
источник

AV

Alexander Vershilov in Haskell
Доедут - отпишусь и лягу
источник

AV

Alexander Vershilov in Haskell
Чего с csv делать то?
источник

AV

Alexander Vershilov in Haskell
Ну кроме того, чтобы свою либу писать (не хочу)
источник

AV

Alexander Vershilov in Haskell
Документация, которую мы заслужили :(
источник