-Поиск по дневнику

Поиск сообщений в rss_forum_sources_ru

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 29.07.2007
Записей:
Комментариев:
Написано: 80


Что делать с жунами

Четверг, 29 Апреля 2021 г. 23:35 + в цитатник
korvin: applegame,

    main = myMain $ do
    myPutStrLn "first"
    myPutStrLn "second"
    myPutStrLn "third"


    third
    second
    first


impl

    import Control.Applicative
    data MyCoolIO a = MCIO (IO a)
    instance Functor MyCoolIO where
    fmap f (MCIO xIO) = MCIO $ fmap f xIO
    instance Applicative MyCoolIO where
    pure = MCIO . pure
    (MCIO fIO) <*> (MCIO xIO) = MCIO $ fIO <*> xIO
    instance Monad MyCoolIO where
    return = pure
    (MCIO xIO) >>= f = MCIO $ xIO >>= \x -> (let (MCIO r) = f x in r)
    (MCIO xIO) >> (MCIO yIO) = MCIO $ yIO >>= \y -> (xIO >> return y)
    myPutStrLn :: String -> MyCoolIO ()
    myPutStrLn s = MCIO $ putStrLn s
    myMain :: MyCoolIO () -> IO ()
    myMain (MCIO io) = io



https://ideone.com/9nbY5V

Давай, расскажи ещё про порядок в do-выражении.

Добавлено
Цитата applegame @
Значит таки можно писать императивно (по вашему определению) без мутабельных переменных?

В нашем определении есть изменяемое состояние, а не «мутабельные переменные».

Добавлено
Цитата applegame @
Последний - ИП, первые два ФП.

Не угадал.

Добавлено
Цитата applegame @
Откуда такой вывод? Почему все, если я говорил о хаскельном IO, в том числе и о монаде IO?

Оттуда, что do-нотация работает с любой монадой, а не только монадой IO.

Цитата applegame @
Раз возможно IO, значит возможны функции с побочными эффектами.

В Хаскелле нет функций с побочными эффектами.

Цитата applegame @
Потому что парадигма не может измениться если не меняется код Очевидно же.

Попробуй ещё раз поразмыслить над фразой «синтаксис != семантика».

Цитата applegame @
Пример чего?

Пример использования do-нотации с «чистыми» (не-IO) монадами.

Цитата applegame @
В чистой ФП-композиции порядок может быть любым, уже обсуждали и ты вроде согласился. Опять по кругу?

По-моему, это ты согласился, что (foo . bar) и (bar . foo) — не одно и то же. Или ты так и не понял, что это значит?

Цитата applegame @
Ага, а то что эти критерии коррелируют с порядком стейтментов в do-нотации - это просто совпадение?

Не коррелируют.

https://forum.sources.ru/index.php?showtopic=421266&view=findpost&p=3846982

Метки:  

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку