kb 24.07.2012 22:42

Слушайте, а что за долбоёб такой @Elemir? Пришёл ко мне в #tziztg и начал (еще и с обзывательствами) доказывать, что в цитате

> The only thing a function can do in Haskell is give us back some result based on the parameters we gave it. If a function is called two times with the same parameters, it has to return the same result.

нет логической ошибки. Причём начал это доказывать, приводя дебильные цитаты вроде "Типичная функция «getValue :: IO Int» возвращающает не значение поле, а лишь «ссылку» на состояние этого поля." (ссылку :). То есть, в ответ на логическую ошибку, в принципе, не зависящую от ЯП (то, что если в ЯП отсутствует мутабельность означает одинаковость возвращаемых значений при одних и тех же аргументах) начал рассказывать про то, что Хаскель возвращает ссылку. Ну что за кретин?

Recommended by:

@0xd34df00d: Даже незнакомые с Лямиркой люди говорят. что он долбоеб.

and @DZhon, @kurkuma
1. 0xd34df00d 24.07.2012 22:44 Azoth_primary

Надеюсь, ты его забанил?

2. hirthwork 24.07.2012 22:44 talkonaut-iphone_5.91_67b1c873

meet the Elemir

3. hirthwork0xd34df00d /1 24.07.2012 22:45 talkonaut-iphone_5.91_67b1c873

я знал, что встречу тебя в этом треде

4. 0xd34df00dhirthwork /3 24.07.2012 22:46 Azoth_primary

:3

5. hirthwork0xd34df00d /4 24.07.2012 22:47 talkonaut-iphone_5.91_67b1c873

этот тред слишком узок для нас двоих. застрянем

6. 0xd34df00dhirthwork /5 24.07.2012 22:50 Aedalus

Нормик.

7. 0xd34df00d 24.07.2012 22:50 Aedalus

Олсо, формально Лямир в каком-то смысле прав. Функция сама ничего не делает и не выполняет, она лишь возвращает некоторый объект, который можно выполнить.

8. kb0xd34df00d /1 24.07.2012 22:54

зафрендил. но подумываю чтоб забанить.

9. 0xd34df00d0xd34df00d /7 24.07.2012 22:56 Aedalus

Условный readSmth :: IO Int ничего сам не читает и не делает, а лишь возвращает объект, который можно особым образом потыкать, чтобы получить конкретный Int. Очевидно, это тыканье нечистое и возвращает каждый раз разные объекты, поэтому его можно выполнять только в нечистом блоке. IO в сигнатуре об этом и говорит.
Система типов хаскеля построена таким образом, что ты можешь комбинировать функции, возвращающие всякие там IO, как будто они возвращали бы чистые ФПшные иммутабельные хуйни. Но расковырять сам IO ты можешь только в «грязном» IO-монадическом коде. Собственно, отсюда и вся хуйня про монады, про правила работы с ними и прочую теорию категорий.

10. kb0xd34df00d /7 24.07.2012 22:58

моя претензия в том, что:
1. твоё утверждение специфично для х-ля.
2. когда человек говорит о "чистых функциях", в особенностях х-ля речь будет идти о выполнении этого объекта (о котором ты написал, что функция его возвращает). и когда речь идёт о гарантии одинаковости возвращаемого значения, речь идёт не о гарантии одинаковости возвращения объекта, который можно выполнить, а о гарантии одинаковости результата выполнения этого объекта (ох я тут снова пиздец какими научными терминами заговорил)

11. kb0xd34df00d /9 24.07.2012 23:01

да, х-ль крут, но по сути это всё обёртки над простой логикой, которую поменять мне видится сложным, что есть сайд-эффекты, и они ничем толком от мутабельного состояния не отличаются. и утверждать "нет мутабельного состояния, значит можно делать выводы о возвращаемом значении на основании только лишь аргументов" неверно.

12. 0xd34df00d0xd34df00d /9 24.07.2012 23:02 Aedalus

Собственно, про монады говорят, что это эндофунктор в категории Hask.
Категория Hask — категория типов языка Haskell, где стрелками являются функции из одного типа в другой. Очевидно, что все аксиомы категорий для такого объекта выполняются.
Функтор — это такая особая функция, которая действует из одной категории в другую (то есть, преобразовывает объекты категории и отношения между ними по некоторым правилам). Эндофунктор — функтор из категории в нее же. Что разумно: если какой-нибудь Int — тип в хаскеле, то IO Int тоже тип. И Maybe Int. И хуе-мое. При этом также легко проверить, что если для некоторых типов a, b, c выполняются аксиомы категорий, то для m a, m b и m c, где m — некоторая монада, все это тоже будет выполняться. Поэтому все заебись.

Надеюсь, хоть что-то понято.

13. 0xd34df00dkb /10 24.07.2012 23:05 Aedalus

А гарантии одинаковости выполнения этого объекта нет. Поэтому это и нечистый код. Опять же, все это так устроено, что из чистого кода (вне IO-монады) ты можешь вызывать только чистый код. Ты можешь кидать туда-сюда эти IO, но не можешь их раскручивать. Единственная «точка входа», в которой можно что-то делать и откуда вызывать нечистое говно — main. Как только ты вызвал чистую функцию, в ее контексте ты потерял всякую возможность раскручивать IO и вызывать нечистый код.

14. 0xd34df00dkb /11 24.07.2012 23:05 Aedalus

Ну почему же.

15. kb0xd34df00d /13 24.07.2012 23:24

ну, я об этом и говорю. если есть IO — значит это нечистый код. и значит нельзя гарантировать одинаковость выполнения.

16. 0xd34df00dkb /15 24.07.2012 23:25 Aedalus

Именно. Поэтому стараются минимизировать объем IO-части.

17. kb0xd34df00d /12 24.07.2012 23:28

Если первый кусок еще как-то понимал, начиная с "Что разумно: если какой-нибудь Int — тип в хаскеле, то IO Int тоже тип." — перестал (я просто не понял, что за IO Int). Но ты не парься, разберусь попозже уж.

18. 0xd34df00dkb /17 24.07.2012 23:29 Aedalus

Рекомендую сначала освоить понятие монады, и что в них общего, а потом переходить к монаде IO.
Maybe и List — примеры хороших, годных и простых монад. Потом уже можно пообмазываться и поломать голову над State :3

19. 238328kb /15 24.07.2012 23:38

позерский язык

20. kb238328 /19 24.07.2012 23:43

чё?

21. DZhon 25.07.2012 05:22

Формально элемирка прав, но его манера общения в любом случае говорит о полнейшем мудачестве :)

22. lukish 25.07.2012 06:09

уёбки оба два

23. kurkuma 25.07.2012 07:09 Gajim

Это такой буйный поциент

25. 0xd34df00dDZhon /21 25.07.2012 08:29 Aedalus

Лол, читай тред :3

26. DZhon0xd34df00d /25 25.07.2012 08:44

Да почитал вот, у тебя манера изложения в этом вопросе не показалась мудаческой :3

27. 0xd34df00dDZhon /26 25.07.2012 08:48 Aedalus

:(

28. 0xd34df00dlukish /22 25.07.2012 08:51 Aedalus

Привет, пукиш.

29. 238328kb /20 25.07.2012 15:36

хачкелль — говно

30. 238328 25.07.2012 19:11

#tzithz у всех треснула жопа, запидорлистил всех в этом треже

Do you really want to delete ?