- @0xd34df00d: *haskell *programming *?Хаскель-жуйк, в хаскеле же можно задавать ограничения, условия и взаимосвязи на значения в типах? Например, есть
data SessionParams = SessionParams {
numBlocks :: Int,
pieceSize :: Int
}
и я хочу, чтобы pieceSize всегда нацело делилось на numBlocks, пусть иначе валится с ошибкой сразу. Чтоделац? Я же знаю, в хаскеле же это есть. Ну или хотя бы в гохаце. - @0xd34df00d: *programming *haskellЖуйк, подкинь идей, что можно было бы реализовать на хаскеле и позадрачиваться с матанно-научной точки зрения заодно.10 months ago; 49 replies
- @komar: А сколько времени ты готов на них потратить?
- @Crazy-Owl: *haskell *lurkmore *lol"остальным программистам батхёрт доставляет глобальный троллинг, проводимый сообществом haskell"10 months ago; 19 replies
- @0xd34df00d: *haskell *programmingГоспода, что за TH? Template Haskell, прозреваю? А зачем оно?10 months ago; 24 replies
- @L29Ah: *петросян
- @0xd34df00d: *haskellЭто злой оператор, жуйк, познакомься: *Main Data.Traversable Data.Sequence> :t (><)
(><) :: Seq a -> Seq a -> Seq a11 months ago; 16 replies - @0xd34df00d: *haskellУ меня уже вторые или третьи сутки ментальный оргазм от хаскеля. Секс не нужен, ботайте матан.11 months ago; 86 replies
- @0xd34df00d: *haskellВсе-таки hlint писец умный. Фап-фап. Все мои костыли фиксит:
Simulation.hs:60:49: Error: Use fromMaybe
Found:
maybe EQ id
Why not:
fromMaybe EQ - @0xd34df00d: *haskell *programmingЧто-то у меня сейчас родится эмуляция TCP/IP, чую, в рамках моей симуляции и взаимодействия между нодами в симуляции — многие ко многим, ограниченная пропускная способность, ненадежный канал.11 months ago
- @0xd34df00d: *haskell *programming *говноДа, это write-only-язык. Кусочек объявления в where:
nodesMap' = M.map (\ni -> ni { lackingBlocks = lackingBlocks ni ++ map GBlockID (zip [0..(numBlocks $ sesParms $ net st)] (repeat $ curPiece st)) }) (nodesMap st)11 months ago; 11 replies - @0xd34df00d: *haskell *programmingХаскель-жуйк, когда ты явно выписываешь сигнатуры функций? Я вот посидел пописал что-то более-менее объемное, и понял, что лучше всегда. Вообще всегда. Даже в банальных вещах типа
addOutBlock :: ONodeInfo -> GBlockID -> ONodeInfo
addOutBlock info block = info { outBlocks = block : outBlocks info } - @0xd34df00d: *haskellМне сегодня приснился замечательный сон. В нем информации о типах — сигнатур функций — было достаточно, чтобы построить работающую программу. И мир был такой, абстрактный, который это позволял.
- @0xd34df00d: *programming *haskellЖуйк, как бы ты повторил одну и ту операцию (преобразование a -> a) N раз, имея соответствующий изначальный объект?
Пусть операция — foo, объект — smth, мне ничего умнее foldl (\obj _ -> foo obj) smth (replicate N 0) в голову не приходит.11 months ago; 16 replies