Oleg
Но обязательно акцентировать внимание, что эти лишь пример и теоретическое описание гораздо шире
Oleg
Лучше два-три примера
Oleg
Потому что та же монада-буррито ничем не лучше монады-моноида
Oleg
И слишком узкое и слишком формальное понимание оба одинаково непродуктивны
Alexander
Combot
Alexander Vershilov (0) увеличил репутацию Oleg ℕizhnik (1)
Alexander
научиться по примерам без знания теории нельзя
Alexander
приму как контр-аргумент наличие человека обучившегося языку по duolingvo
Alexander
без теории
Andrey
в какой-то момент в дуолинго (~26%) перелом наступает, и незнание теории сильно мешает двигаться дальше.. у тебя просто нет выбора, сорри за оффтоп
Alexander
> дуолинго
Что это? Гугль выдает только какое-то приложение
Pavel
это как с интегралами было: Вот есть интегралы, они стремятся к бесконечности и/или имеют пределы. А нафиг они нужны - немного не понятно. Я стремился домой из школы, и не разделял драму интегралов по поводу стремления к бесконечности. А вот урок он по длинне был тоже как интеграл и был бесконечным. В этом плане у них было похожее своейство
Pavel
тоже самое было в институте: Вот первообразные, а вот еще куча разной абстракции. Вот таблицы как одно в другое превращается. Обучите свою нейронку как одно в другое превратить и дальше надеюсь вам повезет на экзамене что вам попадется билет согласно тому как ваши способности замапить одну штуку на другую и привести к ожидаемому результату чтоб сдать экзамен.
Pavel
я увы к примеру только типа пройдя 3ий курс универа и вышку
Pavel
просто понял смысл функции!
Pavel
это лол если честно
Pavel
потому что абстарктрые абстракторы обучают заезженному материалу
Andrey
Timofey
> Конечно, математикам такая форма подачи привычна и удобна. Даем вводную и разворачиваем следствие. Но это не то, как пишется реальный софт и решаются реальные задачи. И это не то, как мыслят большинство программистов.
Timofey
Упс, не ответилось
Timofey
В общем, фигня это
Pavel
Combot
Pavel Meledin (0) увеличил репутацию Timofey Zakrevskiy (1)
Alexander
могу напомнить про метод демидовича в универах
Timofey
Это очень пагубное последствие школы Бурбаки
Andrey
Alexander
слушаем теорию и потом ручку в руки и решаем 100500 задач
Timofey
Которые этот подоход и придумали
Andrey
Combot
Andrey (0) увеличил репутацию Alexander Vershilov (1)
Alexander
пример хорош один перед введением, чтобы понятно о чем речь
Timofey
И стали так писать учебники, а потом все стали бездумно этот подход копировать
Pavel
Combot
Too fast! Try again later.
Alexander
и я не знаю почему все бросаются в экстремумы: теория без практики, практика без теории
Alexander
какой strawman
Timofey
Все приличные курсы математики построены как раз "от конкретной задачи - попытка решения, от попытки решения - теория и обобщения"
Alexander
я понимаю, что вы очень хотите доказать, что я прав, спасибо за это
Timofey
Хм, это не _blah, сорри. Просто я преподавал несколько лет математику на родине подхода Бурбаки, наболело
Alexander
просто у меня есть ощущение что тут война против песочных башен, я не замечал книг и блогов, да даже статей, где нету ведущего и основных примеров
Alexander
в основном сначала описывается решаемая задача
Alexander
единственное место к которому может быть претензия это к ghc users guide
A64m
Проблема значительной части материалов по продвинутым фишкам Haskell в том, что она пишется математиками и для математиков. И вместо того, чтобы объяснять и показывать использование, в этих материалах предмет вводится аксиоматически, а потом обсуждаются его свойства. Ну вроде такого:
"Такую-то вещь мы называем Type Family и записываем вот так:
blah-blah
И теперь мы получаем возможность записывать на уровне типов то-то и то-то, при этом мы должны следить, чтобы типы были такими-то и такими-то, потому что механизм вывода типов имеет недостатки"
Это ничуть не лучше, чем вводить понятие монады через пресловутый моноид в категории эндофункторов, а потом обсуждать, какие же у монады должны быть законы.
Меня совершенно не интересует математическая постановка проблемы и следствия из аксиоматически заданных конструкций. Я хочу видеть сначала практическую задачу, которую пытаются решить другим способом, и это получается не очень. Потом я хочу видеть объяснение, почему подфича Х-1 из набора большой фичи Х здесь может помочь лучше, чем что-то другое. Потом я хочу видеть конкретно этот пример, решенный с помощью подфичи Х-1, а не изучать аксиоматически введенный набор Х-1, Х-2, Х-3, потому что уже сказано, что Х-2 и Х-3 к задаче не имеют отношения. И уж тем более мне не интересно, что там у Х-1, Х-2 или Х-3 за математические следствия, распространяющиеся на дизайн языка.
Конечно, математикам такая форма подачи привычна и удобна. Даем вводную и разворачиваем следствие. Но это не то, как пишется реальный софт и решаются реальные задачи. И это не то, как мыслят большинство программистов.
да нет такой проблемы у значительной части материалов, к примеру, в реальном пейпере про семейства типов все не так как в этом описании гипотетического пейпера https://www.cs.tufts.edu/~nr/cs257/archive/simon-peyton-jones/typefun.pdf
Alexander
в пейперах, особенно если там в соавторах спж, пример есть всегда
Alexander
более того в его докладах как делать доклады и как писать пейперы это первый пункт - начинать с примера
A64m
не обязательно спж, вообще в типичном пейпере есть и неформальное описание с примерами и формальное. Если уж на то пошло второго может не быть чаще, чем первого
A64m
(если речь про хаскельные пейперы)
Dmitry
Это как монады учить -- если по туториалам, то нифига не понятно, а если по Typeclassopedia -- всё ясно
кана
мне пришло осознание именно во время туториала по написанию своей стейт-монады
Dmitry
А должно было - во время чтения Typeclassopedia!
Alexander
you may have already invested Monad клевое было
A64m
теория о том, что теория не предваряется примерами в хаскельных пейперах должна предваряться примерами пейперов в которых не предваряется
A64m
я вот посмотрел три пейпера про семейства, все с примерами Ж(((
Anonymous
Вот к примеру линзы. Там чего больше: теории или примеров?
кана
примеров наверное
A64m
пейперы про линзы еще найти надо
A64m
я помню пару пейперов, причем ни один из них не по ван-лаарховенским, так что даже если там одна теория, то можно сказать что по линзам в основном только примеры
Alexander
Alexander
какой-то придуманную башню ломаем
Cheese
A64m
проблема в том, что куча людей вообще не читают хаскельные доки (по причинам которые я все никак не могу узнать у них) только пересказывают друг другу какие они плохие
Alexander
т.е. я так понял, что возможно проблема в том что в мануалах больно много теории, и лучше бы ее не было, а была практика
Alexander
Это что-то вроде профессиональной деформации
A64m
Alexander
Могу но не стану
Alexander
Может, позже. Сейчас лень искать
Cheese
значит, нет и противоречия
Alexander
И новички с тобой тоже согласятся?
Alexander
почему со мной? ты сделал утверждение, и отказываешься его доказывать
Ну а почему если мир хаскелля, то нужно обязательно что-то доказывать? В документации - доказывают, что введенная конструкция норм. В чате - доказывают, что в документации математики минимум, а есть грамотное изложение материала с практической точки зрения.
Мне лень доказывать. Я делюсь опытом и мнением.
Anonymous
пейперы про линзы еще найти надо
во, нашёл!
но да, маловато на эту тему.
https://dl.acm.org/citation.cfm?id=3236779
вот ещё, но этот закрыт :(
https://dl.acm.org/citation.cfm?doid=2784731.2784750
Alexander
В приведенной доке по TF, например, первый же пункт (2.1) - не дожимает мысль до конца. Где пример того, как изменится функция readAndPrint после введения новой конструкции? Ну ввели, а использовать-то как? Что мне писать нужно в определении типа? Как задачу-то основную решили?
Cheese
Алексей
Alexander
Ну и дальше. Вводим примеры того, как конструировать некие TF и типы, и обсуждаем далее их свойства. Открытые / закрытые. Мне не пример открытых/закрытых TF нужен, мне пример использования открытых/закрытых TF нужен, и желательно разные, по очереди