Size: a a a

2021 January 28

JS

Jerzy Syrowiecki in Haskell
Aleksandr Khristenko
Да вроде все там связано. В других языках call stack есть. В хаскеле нет.
и в чём противоречие?
источник

AP

Aleksei (astynax) Pi... in Haskell
certifiable fleece
Я же могу сочитать fix вместе с IO? Не наткнусь ни на какие ужасы, связанные с ленивостью?
Концепт примерно такой:

action :: IO ()
action = do
 ...
 let
   fun = \loop -> do ... ; loop
 fix fun
 ...
Вам нужно выполнить предыдущее IO перед тем, как сделать следующий виток?
источник

JS

Jerzy Syrowiecki in Haskell
certifiable fleece
Я же могу сочитать fix вместе с IO? Не наткнусь ни на какие ужасы, связанные с ленивостью?
Концепт примерно такой:

action :: IO ()
action = do
 ...
 let
   fun = \loop -> do ... ; loop
 fix fun
 ...
да вроде это не сочетание. просто рекурсивное вычисление объекта, который случайно оказывается действием.

а fixIO действительно сочетает, рекурсивно строить объект внутри IO
источник

AP

Aleksei (astynax) Pi... in Haskell
Вроде как оно нормально работает. Такое писал, например
fix $ \loop -> do
   l <- getLine
   unless (null line) $ do
     putStrLn l
     loop
источник

c

certifiable fleece in Haskell
Aleksei (astynax) Pirogov
Вроде как оно нормально работает. Такое писал, например
fix $ \loop -> do
   l <- getLine
   unless (null line) $ do
     putStrLn l
     loop
Понятно, спасибо!
источник

AP

Aleksei (astynax) Pi... in Haskell
Само по себе это выражение вычислится в IO (). А запустится только тогда, когда вы это IO () сделаете частью main
источник

AP

Aleksei (astynax) Pi... in Haskell
Т.е. оно не более лениво, чем IO вообще
источник

AP

Aleksei (astynax) Pi... in Haskell
flip fix 3 $ \loop i -> do
 print i
 unless (i == 0) $
   loop (i - 1)
ещё так можно — цикл со счётчиком :)
источник

AP

Aleksei (astynax) Pi... in Haskell
(flip fix 🙈)
источник

NI

Nick Ivanych in Haskell
> Alexander Granin Uses Free Monads in Real Production
Нифига себе!!
источник

AP

Aleksei (astynax) Pi... in Haskell
Недостаточно кликбейтно
источник

AP

Aleksei (astynax) Pi... in Haskell
"IS IT LEGAL?!?!?!" нужно было добавить
источник

NI

Nick Ivanych in Haskell
> Alexander Granin Uses Free Monads in Real Production
IS IT LEGAL!?!?
источник

YS

Yan Shkurinskiy in Haskell
Предлагаю Real заменить на Unreal
источник

YS

Yan Shkurinskiy in Haskell
Для кликбейтности
источник

KV

Kirill Valyavin in Haskell
Вещественный код, мнимый прод
источник

AP

Aleksei (astynax) Pi... in Haskell
Alexander Granin Uses Free Monads in Paid Production (How dare he is?!?!)
источник

AP

Aleksei (astynax) Pi... in Haskell
GNU Monads
источник

NI

Nick Ivanych in Haskell
Aleksei (astynax) Pirogov
Alexander Granin Uses Free Monads in Paid Production (How dare he is?!?!)
Надо ещё как-то ввернуть, что он не использует их в качестве систем эффектов.
источник

AP

Aleksei (astynax) Pi... in Haskell
Effectless Effects. Freer than beer!
источник