Size: a a a

2021 February 24

VS

Vitaliy S in Haskell Start
1 2
кто-то подсунул ссылку вместо Javascript start
Хех =)

А в целом коллега достаточно не мейнстримовый программист, ЕМНИП
источник
2021 February 25

R

Roman in Haskell Start
newtype Writer w a = Writer { runWriter :: (a, w) } deriving Show

instance Functor (Writer w) where
 fmap f (Writer (a, w)) = Writer (f a, w)

instance Monoid w => Applicative (Writer w) where
 pure a = Writer (a, mempty)
 Writer (f, w) <*> Writer (a, w') = Writer (f a, w <> w')

instance Monoid w => Monad (Writer w) where
 return = pure
 Writer (a, w) >>= f = let (b, w') = runWriter (f a) in Writer (b, w <> w')

tell :: w -> Writer w ()
tell w = Writer ((), w)

half :: Int -> Writer String Int
half x = do
 tell ("I just halved " ++ show x ++ "!")
 return (x `div` 2)


Подскажите плиз, почему half 8 возвращает
Writer {runWriter = (4,"I just halved 8!")}

Мне не понятно, как return связался с результатом предпоследней строки, которая возвращает Writer [Char] ()

Вижу что
pure a = Writer (a, mempty)


но почему в качестве mempty выступает "I just halved 8!"
источник

DG

Denis Gabidullin in Haskell Start
Roman
newtype Writer w a = Writer { runWriter :: (a, w) } deriving Show

instance Functor (Writer w) where
 fmap f (Writer (a, w)) = Writer (f a, w)

instance Monoid w => Applicative (Writer w) where
 pure a = Writer (a, mempty)
 Writer (f, w) <*> Writer (a, w') = Writer (f a, w <> w')

instance Monoid w => Monad (Writer w) where
 return = pure
 Writer (a, w) >>= f = let (b, w') = runWriter (f a) in Writer (b, w <> w')

tell :: w -> Writer w ()
tell w = Writer ((), w)

half :: Int -> Writer String Int
half x = do
 tell ("I just halved " ++ show x ++ "!")
 return (x `div` 2)


Подскажите плиз, почему half 8 возвращает
Writer {runWriter = (4,"I just halved 8!")}

Мне не понятно, как return связался с результатом предпоследней строки, которая возвращает Writer [Char] ()

Вижу что
pure a = Writer (a, mempty)


но почему в качестве mempty выступает "I just halved 8!"
В качестве mempty выступает "".
Результат "связался" благодаря использованию (>>=) — к существующему логу ("I just halved 8!") добавился лог от return ("").
источник

AP

Aleksei (astynax) Pi... in Haskell Start
tell задаёт тип
источник

R

Roman in Haskell Start
Denis Gabidullin
В качестве mempty выступает "".
Результат "связался" благодаря использованию (>>=) — к существующему логу ("I just halved 8!") добавился лог от return ("").
ааа, тогда все встаёт на свои места, спасибо
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Если tell закомментировать, то тип half будет полиморфный: Monoid a => Writer a Int
источник

DG

Denis Gabidullin in Haskell Start
Aleksei (astynax) Pirogov
Если tell закомментировать, то тип half будет полиморфный: Monoid a => Writer a Int
Ну, формально нет)
У half тип лога явно указан, поэтому просто закомментировать строку с tell будет недостаточно.
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Да, надо бы ещё ослабить руками написанную сигнатуру
источник

АВ

Андрей Вилинский... in Haskell Start
открыл папочку с стэкскриптами чтоб попробовать что нового в HLS 1.0 в вскоде, а там что-то про cradle, кто знает к чему это? Раст тут ни при чем вроде
No cradle found for filename.hs. Proceeding with implicit cradle. You should ignore this message, unless you see a 'Multi Cradle: No prefixes matched' error.
могу конечно и игноре, но не работать перестало что-то
источник

AP

Aleksei (astynax) Pi... in Haskell Start
cradle это просто кроватка или колыбель, слово такое. Rust тут ни при чём
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Почитайте про hie-bios и про то, что нужно писать для stack в hie.yaml
источник

D

Dreamerinnoise in Haskell Start
Андрей Вилинский
открыл папочку с стэкскриптами чтоб попробовать что нового в HLS 1.0 в вскоде, а там что-то про cradle, кто знает к чему это? Раст тут ни при чем вроде
No cradle found for filename.hs. Proceeding with implicit cradle. You should ignore this message, unless you see a 'Multi Cradle: No prefixes matched' error.
могу конечно и игноре, но не работать перестало что-то
источник

JS

Jerzy Syrowiecki in Haskell Start
Андрей Вилинский
открыл папочку с стэкскриптами чтоб попробовать что нового в HLS 1.0 в вскоде, а там что-то про cradle, кто знает к чему это? Раст тут ни при чем вроде
No cradle found for filename.hs. Proceeding with implicit cradle. You should ignore this message, unless you see a 'Multi Cradle: No prefixes matched' error.
могу конечно и игноре, но не работать перестало что-то
You should ignore this message
источник
2021 February 27

A

Artem 🏳️‍🌈 USSR Gay ... in Haskell Start
источник

A

Artem 🏳️‍🌈 USSR Gay ... in Haskell Start
и вот такая ошибка
источник

A

Artem 🏳️‍🌈 USSR Gay ... in Haskell Start
источник

A

Artem 🏳️‍🌈 USSR Gay ... in Haskell Start
не пойму откуда она берется
источник

к

кана in Haskell Start
методы Currency не импортированы
источник

к

кана in Haskell Start
import qualified Money(Amount, Currency(..))
источник

к

кана in Haskell Start
кроме того, сам Money модуль не экспортирует методы Currency
источник