На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (21) « Первая ... 12 13 [14] 15 16 ...  20 21  ( Перейти к последнему сообщению )  
> ООП - в топку!
    Цитата D_KEY @
    Нет. Тут суть в том, что ты уходишь от разрушающего присваивания и передаешь значение по цепочке следующей функции.
    А его там и не было. Там была инициализация. Не веришь, добавь const.
    D_KEY, если ты действительно хочешь объяснить кому-либо что-либо, делай это правильно, и не намёками.

    Добавлено
    Цитата D_KEY @
    Для монад. Сходи по ссылке, если время есть. Я там для иллюстрации накидал реализацию монад на крестах.
    Примерами сыт не будешь. Объяснять разницу между монадами и лямбдами на примерах всё равно что между интерфейсами и абстрактными классами.
    Сообщение отредактировано: Qraizer -
      Цитата Qraizer @
      Цитата D_KEY @
      Нет. Тут суть в том, что ты уходишь от разрушающего присваивания и передаешь значение по цепочке следующей функции.
      А его там и не было.

      Где там? Я про общую ситуацию.

      Цитата
      D_KEY, если ты действительно хочешь объяснить кому-либо что-либо, делай это правильно, и не намёками.

      А ты задай вопрос нормально :)

      Цитата
      Объяснять разницу между монадами и лямбдами на примерах

      О какой разнице между монадами и лямбдами идет речь?
        Цитата Астарот @
        Я еще тогда прочитал, но что такое монада - так и не понял Кстати, а что такое "do-нотация"? А то который раз слышу, но определения не знаю
        Дело в том, что в "настоящих" функциональных языках вроде х-я нет встроенной возможности вызывать функции последовательно друг за другом. Так как тотально отсутствуют языковые конструкции вроде циклов, блоков и т.п. А в реальной жизни время имеет очень важную роль, а последовательность операций следующих друг за другом во времени, мягко говоря, обычнейшее дело. В х-е же есть только вызовы функций которые могут вызывать другие функции, полиморфизм, паттерн-матчинг и прочие list comprehensions. Это еще усугублено тотальной ленивостью: пока результат не нужен функция выполняться не будет. Тогда ФП-фаги придумали костыль (они это считают наоборот величайшим благом) - do-нотацию, которая представляет из себя языковую конструкцию оборачивающую все говно в монаду и позволяющую таки просто тупо написать список операций и они, о бозе!, будут выполнены в том порядке в котором написаны в исходном коде.
        Механизм примитивен: функция, результат которой является аргументом другой функции физически должна быть вычислена раньше, чем эта самая другая функция. Вот do-нотация и превращает список операций в кучу функций, результаты которых являются аргументами других функций, результаты которых являются аргументами других функций... Все это является одним из видов монад.

        Любой нормальный язык дает возможность все это сделать без специальных do-нотаций. В сиобразных языках достаточно поставить точку с запятой, вот тебе и последовательность операций. Так сказать, неявная do-нотация.
        В этом плане erlang представляет из себя некий компромисс: это иммутабельный ФЯ с возможностью писать грязные функции и написанные друг за другом вызовы функций будут вызваны именно в том порядке в котором они написаны, такая же неявная do-нотация.
        Сообщение отредактировано: applegame -
          Цитата applegame @
          Любой нормальный язык дает возможность все это сделать без специальных do-нотаций. В сиобразных языках достаточно поставить точку с запятой, вот тебе и последовательность операций. Так сказать, неявная do-нотация.

          Именно поэтому меня веселят любые попытки притащить монады в императивные языки. :)
            Цитата applegame @
            Любой нормальный язык дает возможность все это сделать без специальных do-нотаций. В сиобразных языках достаточно поставить точку с запятой, вот тебе и последовательность операций. Так сказать, неявная do-нотация.

            Но только для одного вида монад. В haskell ты можешь использовать do-нотацию для работы со списками, Maybe(опциональные значения) и любыми другими монадами, не только IO.

            Добавлено
            Цитата Flex Ferrum @
            любые попытки притащить монады в императивные языки. :)

            А разве есть такие попытки?
              Цитата applegame @
              Цитата Астарот @
              Я еще тогда прочитал, но что такое монада - так и не понял Кстати, а что такое "do-нотация"? А то который раз слышу, но определения не знаю
              Дело в том, что в "настоящих" функциональных языках вроде х-я нет встроенной возможности вызывать функции последовательно друг за другом. Так как тотально отсутствуют языковые конструкции вроде циклов, блоков и т.п. А в реальной жизни время имеет очень важную роль, а последовательность операций следующих друг за другом во времени, мягко говоря, обычнейшее дело. В х-е же есть только вызовы функций которые могут вызывать другие функции, полиморфизм, паттерн-матчинг и прочие list comprehensions. Это еще усугублено тотальной ленивостью: пока результат не нужен функция выполняться не будет. Тогда ФП-фаги придумали костыль (они это считают наоборот величайшим благом) - do-нотацию, которая представляет из себя языковую конструкцию оборачивающую все говно в монаду и позволяющую таки просто тупо написать список операций и они, о бозе!, будут выполнены в том порядке в котором написаны в исходном коде.
              Механизм примитивен: функция, результат которой является аргументом другой функции физически должна быть вычислена раньше, чем эта самая другая функция. Вот do-нотация и превращает список операций в кучу функций, результаты которых являются аргументами других функций, результаты которых являются аргументами других функций... Все это является одним из видов монад.

              Любой нормальный язык дает возможность все это сделать без специальных do-нотаций. В сиобразных языках достаточно поставить точку с запятой, вот тебе и последовательность операций. Так сказать, неявная do-нотация.
              В этом плане erlang представляет из себя некий компромисс: это иммутабельный ФЯ с возможностью писать грязные функции и написанные друг за другом вызовы функций будут вызваны именно в том порядке в котором они написаны, такая же неявная do-нотация.

              Доходчиво! Спасибо!

              Добавлено
              Цитата Flex Ferrum @
              Именно поэтому меня веселят любые попытки притащить монады в императивные языки. :)

              Цитата D_KEY @
              А разве есть такие попытки?

              Монады Try и Either в ту же жабу вполне себе притащили, и ничего, удобненько.
                Цитата Астарот @
                Доходчиво!

                Но не совсем верно, посмотри мой коммент выше.

                Добавлено
                Цитата Астарот @
                Монады Try и Either в ту же жабу вполне себе притащили, и ничего, удобненько.

                Скорее притащили типы.
                  Цитата D_KEY @
                  Скорее притащили типы.

                  Они там вроде и без того были :scratch:
                    Цитата Астарот @
                    Цитата D_KEY @
                    Скорее притащили типы.

                    Они там вроде и без того были :scratch:

                    Хм. Тогда что ты имеешь в виду, может я просто не в курсе?
                      Цитата D_KEY @
                      Хм. Тогда что ты имеешь в виду, может я просто не в курсе?

                      Я про это, хотя, наверное, это только по названию монады :) https://www.vavr.io/vavr-docs/#_try

                      Добавлено
                      Кстати, кажется ныне почившего Армстронга, как-то спросили можно ли в erlang ждать монад, на что тот ответил в том духе, что монада - эта такая херня, которую придумали из-за того, что некоторые языки настолько упороты по математичности, чистоте, и прочей академичности, что писать на них практически невозможно, поэтому и пришлось приволочь туда эту хрень, которая привносит в ФП тонкую нотку императивщины, и что эрлангу, который изначально проектировался, как практичный язык оно в принципе нафиг не нужно :)
                        Цитата Астарот @
                        Кстати, кажется ныне почившего Армстронга, как-то спросили можно ли в erlang ждать монад, на что тот ответил в том духе, что монада - эта такая херня, которую придумали из-за того, что некоторые языки настолько упороты по математичности, чистоте, и прочей академичности, что писать на них практически невозможно, поэтому и пришлось приволочь туда эту хрень, которая привносит в ФП тонкую нотку императивщины, и что эрлангу, который изначально проектировался, как практичный язык оно в принципе нафиг не нужно :)

                        Ну норм ответ :)
                          Цитата Flex Ferrum @
                          Именно поэтому меня веселят любые попытки притащить монады в императивные языки.
                          Я так и не понял, на кой хрен кому-либо может пригодиться в Плюсовом коде переделать Плюсовый синтаксис в Хаскельный. Это же не ленность... блин, уже ж и она в Плюсах есть...
                            Ошибся чутка, это был не Армстронг :)
                            http://erlang.org/pipermail/erlang-questio...rch/042557.html
                              Цитата Qraizer @
                              Я так и не понял, на кой хрен кому-либо может пригодиться в Плюсовом коде переделать Плюсовый синтаксис в Хаскельный.

                              А кто об этом говорил-то?
                              И да, монады - это не про синтаксис. Про синтаксис - это do-нотация.
                                Цитата Flex Ferrum @
                                Именно поэтому меня веселят любые попытки притащить монады в императивные языки.
                                И не только в императивные. В эликсире тоже есть страстные любители тащить монады везде куда дотянутся шаловливые ручонки. Но надо признать, что кое-какие монады и правда пригождаются, но я считаю, что лучше ими не злоупотреблять.

                                Добавлено
                                Цитата Астарот @
                                Кстати, кажется ныне почившего Армстронга, как-то спросили можно ли в erlang ждать монад, на что тот ответил в том духе, что монада - эта такая херня, которую придумали из-за того, что некоторые языки настолько упороты по математичности, чистоте, и прочей академичности, что писать на них практически невозможно, поэтому и пришлось приволочь туда эту хрень, которая привносит в ФП тонкую нотку императивщины, и что эрлангу, который изначально проектировался, как практичный язык оно в принципе нафиг не нужно.
                                Полностью совпадает с моим мнением. Эрланг (а для меня лично эликсир) - это ФЯ с человеческим лицом и монады в нем особо не нужны, так кое-где немножко синтаксис подсластить.
                                Сообщение отредактировано: applegame -
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (21) « Первая ... 12 13 [14] 15 16 ...  20 21


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0538 ]   [ 16 queries used ]   [ Generated: 25.04.24, 20:46 GMT ]