- 1
- 2
# ugh
task = task.task.task
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−87
# ugh
task = task.task.task
http://programmingisterrible.com/post/50285403468/a-lifetime-of-terrible-code
Xom94ok 18.12.2013 18:22 # +3
kegdan 18.12.2013 18:40 # +3
Something.Do().Do().Do().Do().Do().Do()
bormand 18.12.2013 18:43 # +2
Флюент интерфейсы, имхо, больше распространены в c#, чем в жабе :)
kegdan 18.12.2013 18:46 # +2
Например в исходниках (или псевдоисходниках) майнкрафта
3.14159265 18.12.2013 19:49 # +1
kegdan 18.12.2013 19:55 # 0
Мне не нравиться как это выглядит. Лично я Linq использую исключительно в SQL подобной манере
roman-kashitsyn 18.12.2013 19:37 # +1
3.14159265 18.12.2013 19:48 # +7
bormand 18.12.2013 20:17 # +2
1024-- 18.12.2013 20:31 # +3
bormand 18.12.2013 20:41 # +7
roman-kashitsyn 18.12.2013 21:57 # +2
Abbath 19.12.2013 23:55 # −1
Stertor 19.12.2013 23:58 # 0
Abbath 20.12.2013 08:33 # 0
DBdev 20.12.2013 18:00 # +9
bormand 20.12.2013 18:12 # +1
kegdan 20.12.2013 18:19 # 0
Набрал в гугле - "это такое монады"
6 ссылка "Монады - оккультизм"
http://www.fire70.ru/monada.htm
Что символизирует.
Вопрос как бы невзначай - где можно прочитать, что такое монады, комонады и как их есть?
bormand 20.12.2013 18:20 # +2
kegdan 20.12.2013 18:25 # 0
roman-kashitsyn 20.12.2013 18:26 # +2
bormand 20.12.2013 18:33 # 0
— Вспомни, мы говорили про Смысленность. Мы с тобой думаем о чём-то. Символы у нас в голове что-то означают. Вопрос в том, может ли синтаксический аппарат думать или просто обрабатывает цифры, лишённые смысла.
— Без всякого семантического наполнения, — сказал Самманн.
— Да. Так вот, Фаана была пе-эр синтаксической группы — сторонников Проца — в конценте светителя Мункостера вскоре после Реконструкции. Она утверждала, что никакой Смысленности нет — что это иллюзия, которую создаёт для себя каждый достаточно развитый синап. Эвенедрик, живший чуть раньше Фааны, вслед за Халикаарном считал, что мозг способен решать задачи, с которыми не справится синап. Что Смысленность и впрямь существует.
— Что в наших мыслях есть семантическое наполнение помимо нулей и единиц.
— Да. Это связано с убеждением, что наш разум способен воспринимать идеальные формы Гилеина теорического мира.
— Ну знаете, ребята! — не выдержал Юл. — Мы вроде на отдых встали!
— Вот так мы отдыхаем, — отозвался Самманн.
— Да, — подхватил я. — Если бы мы работали, то говорили о вещах сложных и занудных.
roman-kashitsyn 20.12.2013 18:36 # +1
У моноида ведь две операции - единичка и сложение. У Монады
return :: a -> m a
join :: m (m a) -> m a
LispGovno 21.12.2013 00:02 # 0
guest 21.12.2013 06:31 # 0
В хаскеле с этим прокол, но не принципиально.
LispGovno 21.12.2013 11:16 # 0
LispGovno 21.12.2013 00:04 # +2
LispGovno 21.12.2013 00:05 # +2
Представим себе, что находящиеся за дверью комнаты люди, понимающие китайский язык, передают в комнату наборы символов и что в ответ я манипулирую символами согласно правилам и передаю обратно другие наборы символов. В данном случае книга правил есть не что иное, как «компьютерная программа».
LispGovno 21.12.2013 00:05 # +2
Предположим далее, что книга правил написана так, что мои «ответы» на «вопросы» не отличаются от ответов человека, свободно владеющего китайским языком. Например, люди, находящиеся снаружи, могут передать непонятные мне символы, означающие; «Какой цвет вам больше всего нравится?» В ответ, выполнив предписанные правилами манипуляции, я выдам символы мне также непонятные и означающие, что мой любимый цвет синий, но мне также очень нравится зелёный. Таким образом, я выдержу тест Тьюринга на понимание китайского языка. Но все же на самом деле я не понимаю ни слова по-китайски. К тому же я никак не могу научиться этому языку в рассматриваемой системе, поскольку не существует никакого способа, с помощью которого я мог бы узнать смысл хотя бы одного символа. Подобно компьютеру, я манипулирую символами, но не могу придать им какого бы то ни было смысла. Этот пример соответствует системе быстрого обучения формальным знаниям для решения типовых задач, которая сегодня стала вытеснять в коммерческих школах аналитическую систему образования. Такие специалисты с программным мышлением способны быстро, не раздумывая, решать задачи из заученного набора, но абсолютно беспомощны в нестандартной ситуации. Аналитическое мышление, используя собственные знания, может путем сопоставления комбинаций символов и анализа порядка в передаваемых сообщениях для ответа, определить устойчивые сценарии их применения, а значит построить классификатор условных понятий и форм применения.
LispGovno 21.12.2013 00:06 # +2
bormand 21.12.2013 09:58 # +4
Есть какое-нибудь доказательство этого утверждения, кроме фразы "таким образом"?
Эта система, по определению, не обучается, все ее состояние прошито в "книгу правил". И любой несложный вопрос, который не предусмотрели авторы прошивки, поставит ее в тупик.
eth0 22.12.2013 18:33 # +2
Если предположить, что система правил достаточно большая, а язык формализован, вполне вероятно, что такой тест и может быть пройден. Кроме того, можно жульничать и отвечать "не понимаю" и "не знаю".
Только всё это построение не даёт ни малейших представлений, как разум устроен, где он находится в этой комнате (если находится).
bormand 22.12.2013 18:42 # +1
"Да откуда он всё это знает?! Это явно не человек!"
> Совсем необязательно, чтобы разум мог обучаться.
Почему? Имхо, если "разум" не может обучаться, то это тупой набор рефлексов, прошивка грубо говоря.
> Система китайской комнаты в каком-то смысле разумна.
В том же смысле, в каком разумен банальный HashMap<String, String> :P
LispGovno 22.12.2013 19:00 # +1
Это совсем грустно:
Я: Я вчера получил 5ку.
Китайская комната: Занятно.
Я: Да, много занимался. Так что я вчера получил?
Китайская комната: Ты у меня сейчас по заднице получишь. Неужели думаешь я не знаю какую оценку получил мой сын?
Я снова и снова задаю вопросы, ответы на которые я только что рассказал. В конце я решаю что тест Тьюринга провален.
При условии, что мой настоящий отец в соседней комнате не будет вести себя также необучаемо, как соседняя комната.
По сути Тест Тьюринга ни сколько не формализует понятия разума, тк в данном случае отличить человека в комнате от китайской комнаты можно только если человек не будет маскироваться под разум китайской комнаты (кк).
Можно конечно отличить человека от кк по усталости, но кк тоже может эмитировать усталость.
bormand 22.12.2013 19:06 # +5
Проблема теста Тьюринга в том, что у некоторых индивидов меньше разума, чем у компьютерной программы ;) Если бы мне дали выбирать между гуглоботом и одним из проявлений орлежки, кричащим "какой багор", я бы сказал, что гуглобот это человек :)
> эмитировать усталость.
Китайская комната испускала усталось.
Lure Of Chaos 22.12.2013 19:09 # +2
anonimb84a2f6fd141 22.12.2013 19:32 # 0
Орлы?
Lure Of Chaos 22.12.2013 19:35 # +1
anonimb84a2f6fd141 22.12.2013 21:18 # +1
bormand 22.12.2013 21:33 # 0
Блин, цитируй, пожалуйста, кусок поста, на который отвечаешь. Иначе без хтмл отладчика хер поймешь кому адресован коммент.
inkanus-gray 22.12.2013 21:44 # 0
http://userscripts.org/scripts/review/172756
eth0 23.12.2013 20:22 # −1
Хренасебе, вот до чего технологии дошли.
eth0 22.12.2013 20:20 # 0
> Имхо, если "разум" не может обучаться, то это тупой набор рефлексов
Рефлексы тоже приобретаются.
Я не спорю, мы привыкли относить к разумности также какой-никакой учёт прошлых ошибок. Но вот я лично знаю кучу людей, которые ничему не учатся. Следовательно, они не существуютнеразумны.
@LispGovno
> Я снова и снова задаю вопросы, ответы на которые я только что рассказал.
"Это всё чёртов Альцгеймер, хорошо, что хотя бы Альцгеймера у меня нет".
Посмотри на людей с деменцией. Формально они разумны.
P.S. Тут интересный момент про разум, тест Тьюринга и безумие.
kegdan 22.12.2013 20:53 # 0
Человек не может определить насколько разумен ли он сам. Он не может адекватно определить свое положение среди других людей. Поэтому приходит неадекватное мироощущение - то бишь самооценка. На этом основан парадокс - названия не помню
суть в том, что человек, обладающий большими знаниями обладает и большим осознанием своего незнания, то есть чем больше человек в чем то знает, тем больше ему открывается ранее не видимых для него областей. А потому он склонен больше сомневаться в своих знаниях, нежели человек, который знает меньше. Поэтому люди с меньшими знаниями считают себя более умными, а люди с большими знаниями - менее умными
Не знаю к чему. просто оффтоп
kegdan 20.12.2013 21:37 # 0
wvxvw 20.12.2013 22:51 # 0
ЗЫ. Монады в программировании только похожи на моноиды в ТК. Это просто есть язык в котором очень популярно прикручивать идеи из абстрактной математики к плохому пониманию программирования, а потом этим сильно гордиться.
kegdan 21.12.2013 00:01 # 0
wvxvw 21.12.2013 00:11 # +1
bormand 21.12.2013 09:59 # +1
Вообще говоря, начинать лучше с просто и доступно. Ибо формально и с погружением, имхо, намного лучше усваивается, если есть хоть какие-то базовые знания в этой области.
kegdan 21.12.2013 10:54 # 0
wvxvw 21.12.2013 12:24 # +1
Смысл вообще монад в Хаскелле в том, что нужно как-то хранить и извлекать состояние. Но в Хаскелле нельзя просто взять и сохранить, или извлечь, нужно найти конструкцию в абстрактной математике, которая бы делала что-нибудь похожее, и реализовать ее. В итоге получается примерно как в том анекдоте про человека, который искал ключи под фонарем, вместо того, чтобы искать их там, где потерял.
С точки зрения математики, способность монады хранить что-то не имеет значения / не рассматривается как какое-то полезное свойство. По большому счету, это случайность, что именно этот инструмент был выбран для реализации записи и извлечения состояния.
roman-kashitsyn 21.12.2013 13:09 # +3
Монады в хаски и в математике - не разные вещи. Главное, что надо понять о монадах - это такая же абстрактная вещь, как Моноид, Группа или Кольцо. То есть структура с операциями, подчиняющимися аксиомам. Ни больше, ни меньше. Все утверждения вроде "монады нужны для хранения состояния" или "монады нужны для действий с побочными эффектами" очень однобоки и не выражают реальности. Они могут быть использованы для этого, но в них самих никакой магии нет. Это просто абстрактная структура.
Почему она оказалась полезна в программировании? Просто потому, что многие вещи можно свести к структуре, которая подходит под монадический "интерфейс". Моноиды, группы и кольца тоже могут быть полезны для написания обобщённого кода (Степанов много такого описывает в Elements of Programming, правда, книга довольно занудная). Но монады обладают более простой структурой и на практике встречаются чаще.
В хаски они появились не сразу, и нужны они там в основном как стандарт проектирования библиотек: найди в своей области монаду и реализуй инстанс класса, в комплекте огромное число операций для работы с ними.
Известно, что хаски изначально проектировался с идеей разделения чистого кода и кода с побочными эффектами. К примеру, первоначальный дизайн библиотеки ввода/вывода основывался на продолжениях (continuations), которые не давали "грязному" коду вылезти из продолжения. Дизайн с монадой IO появился позднее. Кроме того, это далеко не единственная абстрактная структура, используящаяся в хаски - есть (Аппликативные) Функторы, Моноиды, Стрелки и много чего ещё. Свет не сошёлся клином на монадах, просто у них есть интересные приложения. Не всё хорошо выражается в виде монад, их нетривильно комбинировать (monad transformers для меня когда-то были выносом мозга), но ознакомиться и побаловаться с ними однозначно стОит.
wvxvw 21.12.2013 13:55 # 0
Пошагово,
1. Сначала процедура называется функцией.
2. Потом под это название подгоняется соответствующий математический формализм.
3. Потом оказывается, что формализм точно не описывает исходную структуру.
4. У фанатиков рушится хрупкий и богатый внутренний мир от несоответствия ожидаемого дейстивельности, и они замыкаются в воображаемом мире, где в языках программирования функции должны возвращать одно значение, монады должны возвращать монады при извлечении значения и т.д.
Это явление в более глобальном плане известно как реакционизм, и Хаскелл, как нельзя лучше подходит для людей с такими видами на жизнь. Другое проявление реакционизма, например, молодежное течение "готов" - людей пессиместично настроеных относительно настоящего и томно вздыхающих о прошлом. И как в конвергентной зоологии мы видим подтверждения этому факту: Хаскелл библиотеки и продукты очень любят использовать аллюзии на средневековье (как и "готы"). Тот же Кабал, например.
Хаскелл всеми тентаклями цепляется за арахаизмы типа бесполезной инфиксной записи, готическому и барочному символизму математических формул, в большинстве случаев обусловленном отсутствием у авторов мало-мальского опыта работы с символическими знаниями.
Упаднечиство, разложение и декаданс - вот истинная суть Хаскелла.
roman-kashitsyn 22.12.2013 15:26 # +3
kegdan 21.12.2013 16:15 # 0
Монада — это просто моноид в категории эндофункторов
То есть Монада - это просто категория преобразований из А в А, обладающая ассоциативностью и нейтральным элементом (типа тождественного функтора)?
anonimb84a2f6fd141 21.12.2013 16:38 # +1
LispGovno 22.12.2013 10:08 # +1
Foldable - моноид.
3.14159265 20.12.2013 18:21 # +3
Apple, как известные плагиаторы идей, дружно идут в направлении трёх букв.
Это слово Эйплер запатентовал еще 300 лет назад.
http://upload.wikimedia.org/wikipedia/commons/thumb/3/35/E-to-the-i-pi.svg/800px-E-to-the-i-pi.svg.png
1024-- 20.12.2013 19:27 # 0
kegdan 20.12.2013 21:36 # 0
3.14159265 18.12.2013 20:36 # +1
bormand 18.12.2013 20:42 # +6
Lure Of Chaos 22.12.2013 13:33 # +1
kegdan 22.12.2013 16:23 # +2
Lure Of Chaos 22.12.2013 16:34 # +1
kegdan 22.12.2013 16:44 # 0
Lure Of Chaos 22.12.2013 16:48 # +1
bormand 22.12.2013 16:51 # 0
Lure Of Chaos 22.12.2013 16:54 # 0
roman-kashitsyn 20.12.2013 10:21 # +2
LispGovno 22.12.2013 10:14 # 0
roman-kashitsyn 22.12.2013 12:30 # +2
Lure Of Chaos 22.12.2013 13:37 # +2
bormand 18.12.2013 20:18 # +6
kegdan 18.12.2013 20:20 # +7
JeremyW 19.12.2013 01:27 # +2
Lowezar 20.12.2013 12:21 # +3