
Alexander
08.08.2018
22:14:46
со стекедж2никс чегото зависимости от разных версий либ, stack2nix пытается устанавливать ghc зачем-то
блин quality software


Александр
09.08.2018
06:10:49
Проблема значительной части материалов по продвинутым фишкам Haskell в том, что она пишется математиками и для математиков. И вместо того, чтобы объяснять и показывать использование, в этих материалах предмет вводится аксиоматически, а потом обсуждаются его свойства. Ну вроде такого:
"Такую-то вещь мы называем Type Family и записываем вот так:
blah-blah
И теперь мы получаем возможность записывать на уровне типов то-то и то-то, при этом мы должны следить, чтобы типы были такими-то и такими-то, потому что механизм вывода типов имеет недостатки"
Это ничуть не лучше, чем вводить понятие монады через пресловутый моноид в категории эндофункторов, а потом обсуждать, какие же у монады должны быть законы.
Меня совершенно не интересует математическая постановка проблемы и следствия из аксиоматически заданных конструкций. Я хочу видеть сначала практическую задачу, которую пытаются решить другим способом, и это получается не очень. Потом я хочу видеть объяснение, почему подфича Х-1 из набора большой фичи Х здесь может помочь лучше, чем что-то другое. Потом я хочу видеть конкретно этот пример, решенный с помощью подфичи Х-1, а не изучать аксиоматически введенный набор Х-1, Х-2, Х-3, потому что уже сказано, что Х-2 и Х-3 к задаче не имеют отношения. И уж тем более мне не интересно, что там у Х-1, Х-2 или Х-3 за математические следствия, распространяющиеся на дизайн языка.
Конечно, математикам такая форма подачи привычна и удобна. Даем вводную и разворачиваем следствие. Но это не то, как пишется реальный софт и решаются реальные задачи. И это не то, как мыслят большинство программистов.


Hot
09.08.2018
06:13:02
Проблема значительной части материалов по продвинутым фишкам Haskell в том, что она пишется математиками и для математиков. И вместо того, чтобы объяснять и показывать использование, в этих материалах предмет вводится аксиоматически, а потом обсуждаются его свойства. Ну вроде такого:
"Такую-то вещь мы называем Type Family и записываем вот так:
blah-blah
И теперь мы получаем возможность записывать на уровне типов то-то и то-то, при этом мы должны следить, чтобы типы были такими-то и такими-то, потому что механизм вывода типов имеет недостатки"
Это ничуть не лучше, чем вводить понятие монады через пресловутый моноид в категории эндофункторов, а потом обсуждать, какие же у монады должны быть законы.
Меня совершенно не интересует математическая постановка проблемы и следствия из аксиоматически заданных конструкций. Я хочу видеть сначала практическую задачу, которую пытаются решить другим способом, и это получается не очень. Потом я хочу видеть объяснение, почему подфича Х-1 из набора большой фичи Х здесь может помочь лучше, чем что-то другое. Потом я хочу видеть конкретно этот пример, решенный с помощью подфичи Х-1, а не изучать аксиоматически введенный набор Х-1, Х-2, Х-3, потому что уже сказано, что Х-2 и Х-3 к задаче не имеют отношения. И уж тем более мне не интересно, что там у Х-1, Х-2 или Х-3 за математические следствия, распространяющиеся на дизайн языка.
Конечно, математикам такая форма подачи привычна и удобна. Даем вводную и разворачиваем следствие. Но это не то, как пишется реальный софт и решаются реальные задачи. И это не то, как мыслят большинство программистов.
+

Google

Combot
09.08.2018
06:13:02
Hot Kosc (0) увеличил репутацию Александр Гранин (1)


Hot
09.08.2018
06:13:06
Проблема значительной части материалов по продвинутым фишкам Haskell в том, что она пишется математиками и для математиков. И вместо того, чтобы объяснять и показывать использование, в этих материалах предмет вводится аксиоматически, а потом обсуждаются его свойства. Ну вроде такого:
"Такую-то вещь мы называем Type Family и записываем вот так:
blah-blah
И теперь мы получаем возможность записывать на уровне типов то-то и то-то, при этом мы должны следить, чтобы типы были такими-то и такими-то, потому что механизм вывода типов имеет недостатки"
Это ничуть не лучше, чем вводить понятие монады через пресловутый моноид в категории эндофункторов, а потом обсуждать, какие же у монады должны быть законы.
Меня совершенно не интересует математическая постановка проблемы и следствия из аксиоматически заданных конструкций. Я хочу видеть сначала практическую задачу, которую пытаются решить другим способом, и это получается не очень. Потом я хочу видеть объяснение, почему подфича Х-1 из набора большой фичи Х здесь может помочь лучше, чем что-то другое. Потом я хочу видеть конкретно этот пример, решенный с помощью подфичи Х-1, а не изучать аксиоматически введенный набор Х-1, Х-2, Х-3, потому что уже сказано, что Х-2 и Х-3 к задаче не имеют отношения. И уж тем более мне не интересно, что там у Х-1, Х-2 или Х-3 за математические следствия, распространяющиеся на дизайн языка.
Конечно, математикам такая форма подачи привычна и удобна. Даем вводную и разворачиваем следствие. Но это не то, как пишется реальный софт и решаются реальные задачи. И это не то, как мыслят большинство программистов.
+


Combot
09.08.2018
06:13:07
Too fast! Try again later.

Алексей Ayaye :)
09.08.2018
06:13:12
И это не то, как мыслят большинство людей :) Я хоть математике и обучался, но такой подход не люблю )

Hot
09.08.2018
06:13:15
Лютобешено короче.

Александр
09.08.2018
06:17:30
Зато такой подход и правда помогает авойдить саксесс эт эни кост.

Pavel
09.08.2018
06:18:39
как и сообщение выше

Yuriy
09.08.2018
06:50:57
очевидно же, что человеку удобнее обучаться от частного к общему
разве нет?
а математические теории удобнее описывать в общем, потом доказывать для частных случаев, потому что если начать с частных, потом всё равно придётся доказывать и проходить по частным ещё раз. зачем бумагу переводить?
короче, описания теорий хороши для описания теорий и плохи для обучения навыкам
@bravit111, не так ли?

Google


Алексей
09.08.2018
06:55:23
Проблема значительной части материалов по продвинутым фишкам Haskell в том, что она пишется математиками и для математиков. И вместо того, чтобы объяснять и показывать использование, в этих материалах предмет вводится аксиоматически, а потом обсуждаются его свойства. Ну вроде такого:
"Такую-то вещь мы называем Type Family и записываем вот так:
blah-blah
И теперь мы получаем возможность записывать на уровне типов то-то и то-то, при этом мы должны следить, чтобы типы были такими-то и такими-то, потому что механизм вывода типов имеет недостатки"
Это ничуть не лучше, чем вводить понятие монады через пресловутый моноид в категории эндофункторов, а потом обсуждать, какие же у монады должны быть законы.
Меня совершенно не интересует математическая постановка проблемы и следствия из аксиоматически заданных конструкций. Я хочу видеть сначала практическую задачу, которую пытаются решить другим способом, и это получается не очень. Потом я хочу видеть объяснение, почему подфича Х-1 из набора большой фичи Х здесь может помочь лучше, чем что-то другое. Потом я хочу видеть конкретно этот пример, решенный с помощью подфичи Х-1, а не изучать аксиоматически введенный набор Х-1, Х-2, Х-3, потому что уже сказано, что Х-2 и Х-3 к задаче не имеют отношения. И уж тем более мне не интересно, что там у Х-1, Х-2 или Х-3 за математические следствия, распространяющиеся на дизайн языка.
Конечно, математикам такая форма подачи привычна и удобна. Даем вводную и разворачиваем следствие. Но это не то, как пишется реальный софт и решаются реальные задачи. И это не то, как мыслят большинство программистов.
+++++


Алексей Ayaye :)
09.08.2018
06:57:08

Oleg
09.08.2018
07:03:19
Я, конечно, не бравит, но опыт показывает, что нужно и то и то

Yuriy
09.08.2018
07:03:34

Oleg
09.08.2018
07:03:42
Хорошо дать пример в начале как "интуицию"
Но обязательно акцентировать внимание, что эти лишь пример и теоретическое описание гораздо шире
Лучше два-три примера
Потому что та же монада-буррито ничем не лучше монады-моноида
И слишком узкое и слишком формальное понимание оба одинаково непродуктивны

Alexander
09.08.2018
07:20:45

Combot
09.08.2018
07:20:45
Alexander Vershilov (0) увеличил репутацию Oleg ℕizhnik (1)

Alexander
09.08.2018
07:23:01
научиться по примерам без знания теории нельзя
приму как контр-аргумент наличие человека обучившегося языку по duolingvo
без теории

Andrey
09.08.2018
07:24:41
в какой-то момент в дуолинго (~26%) перелом наступает, и незнание теории сильно мешает двигаться дальше.. у тебя просто нет выбора, сорри за оффтоп

Александр
09.08.2018
07:36:59
> дуолинго
Что это? Гугль выдает только какое-то приложение

Pavel
09.08.2018
07:47:14
это как с интегралами было: Вот есть интегралы, они стремятся к бесконечности и/или имеют пределы. А нафиг они нужны - немного не понятно. Я стремился домой из школы, и не разделял драму интегралов по поводу стремления к бесконечности. А вот урок он по длинне был тоже как интеграл и был бесконечным. В этом плане у них было похожее своейство
тоже самое было в институте: Вот первообразные, а вот еще куча разной абстракции. Вот таблицы как одно в другое превращается. Обучите свою нейронку как одно в другое превратить и дальше надеюсь вам повезет на экзамене что вам попадется билет согласно тому как ваши способности замапить одну штуку на другую и привести к ожидаемому результату чтоб сдать экзамен.
я увы к примеру только типа пройдя 3ий курс универа и вышку

Google

Pavel
09.08.2018
07:51:56
просто понял смысл функции!
это лол если честно
потому что абстарктрые абстракторы обучают заезженному материалу

Andrey
09.08.2018
07:52:29

Timofey
09.08.2018
07:53:04
> Конечно, математикам такая форма подачи привычна и удобна. Даем вводную и разворачиваем следствие. Но это не то, как пишется реальный софт и решаются реальные задачи. И это не то, как мыслят большинство программистов.
Упс, не ответилось
В общем, фигня это

Pavel
09.08.2018
07:53:33

Combot
09.08.2018
07:53:34
Pavel Meledin (0) увеличил репутацию Timofey Zakrevskiy (1)

Alexander
09.08.2018
07:53:48
могу напомнить про метод демидовича в универах

Timofey
09.08.2018
07:53:54
Это очень пагубное последствие школы Бурбаки

Andrey
09.08.2018
07:54:02

Alexander
09.08.2018
07:54:07
слушаем теорию и потом ручку в руки и решаем 100500 задач

Timofey
09.08.2018
07:54:08
Которые этот подоход и придумали

Andrey
09.08.2018
07:54:26

Combot
09.08.2018
07:54:26
Andrey (0) увеличил репутацию Alexander Vershilov (1)

Alexander
09.08.2018
07:54:27
пример хорош один перед введением, чтобы понятно о чем речь

Timofey
09.08.2018
07:54:27
И стали так писать учебники, а потом все стали бездумно этот подход копировать

Pavel
09.08.2018
07:54:46

Combot
09.08.2018
07:54:46
Too fast! Try again later.

Google

Alexander
09.08.2018
07:54:57
и я не знаю почему все бросаются в экстремумы: теория без практики, практика без теории
какой strawman

Timofey
09.08.2018
07:55:46
Все приличные курсы математики построены как раз "от конкретной задачи - попытка решения, от попытки решения - теория и обобщения"

Alexander
09.08.2018
07:56:25
я понимаю, что вы очень хотите доказать, что я прав, спасибо за это

Pavel
09.08.2018
07:57:40

Timofey
09.08.2018
07:57:48
Хм, это не _blah, сорри. Просто я преподавал несколько лет математику на родине подхода Бурбаки, наболело

Alexander
09.08.2018
07:59:39
просто у меня есть ощущение что тут война против песочных башен, я не замечал книг и блогов, да даже статей, где нету ведущего и основных примеров
в основном сначала описывается решаемая задача
единственное место к которому может быть претензия это к ghc users guide


A64m
09.08.2018
08:45:39
Проблема значительной части материалов по продвинутым фишкам 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

Admin
ERROR: S client not available

Alexander
09.08.2018
08:46:56
в пейперах, особенно если там в соавторах спж, пример есть всегда
более того в его докладах как делать доклады и как писать пейперы это первый пункт - начинать с примера

A64m
09.08.2018
08:49:36
не обязательно спж, вообще в типичном пейпере есть и неформальное описание с примерами и формальное. Если уж на то пошло второго может не быть чаще, чем первого
(если речь про хаскельные пейперы)

Dmitry
09.08.2018
09:13:07
Это как монады учить -- если по туториалам, то нифига не понятно, а если по Typeclassopedia -- всё ясно

kana
09.08.2018
09:15:01
мне пришло осознание именно во время туториала по написанию своей стейт-монады

Dmitry
09.08.2018
09:16:42
А должно было - во время чтения Typeclassopedia!

Alexander
09.08.2018
09:18:45
you may have already invested Monad клевое было

Yuriy
09.08.2018
09:19:45

Google

A64m
09.08.2018
09:22:00
теория о том, что теория не предваряется примерами в хаскельных пейперах должна предваряться примерами пейперов в которых не предваряется
я вот посмотрел три пейпера про семейства, все с примерами Ж(((

Imants
09.08.2018
09:22:49
Вот к примеру линзы. Там чего больше: теории или примеров?

kana
09.08.2018
09:23:14
примеров наверное

A64m
09.08.2018
09:24:14
пейперы про линзы еще найти надо
я помню пару пейперов, причем ни один из них не по ван-лаарховенским, так что даже если там одна теория, то можно сказать что по линзам в основном только примеры

Alexander
09.08.2018
09:28:22
какой-то придуманную башню ломаем

Yuriy
09.08.2018
09:29:14

A64m
09.08.2018
09:31:01
проблема в том, что куча людей вообще не читают хаскельные доки (по причинам которые я все никак не могу узнать у них) только пересказывают друг другу какие они плохие

Alexander
09.08.2018
09:31:27
т.е. я так понял, что возможно проблема в том что в мануалах больно много теории, и лучше бы ее не было, а была практика

Александр
09.08.2018
09:33:45
Это что-то вроде профессиональной деформации

A64m
09.08.2018
09:34:47

Александр
09.08.2018
09:35:33
Могу но не стану
Может, позже. Сейчас лень искать

Yuriy
09.08.2018
09:36:03
значит, нет и противоречия

Александр
09.08.2018
09:36:59
И новички с тобой тоже согласятся?

Yuriy
09.08.2018
09:38:26

Александр
09.08.2018
09:40:16
почему со мной? ты сделал утверждение, и отказываешься его доказывать
Ну а почему если мир хаскелля, то нужно обязательно что-то доказывать? В документации - доказывают, что введенная конструкция норм. В чате - доказывают, что в документации математики минимум, а есть грамотное изложение материала с практической точки зрения.
Мне лень доказывать. Я делюсь опытом и мнением.

Imants
09.08.2018
09:42:12
пейперы про линзы еще найти надо
во, нашёл!
но да, маловато на эту тему.
https://dl.acm.org/citation.cfm?id=3236779
вот ещё, но этот закрыт :(
https://dl.acm.org/citation.cfm?doid=2784731.2784750

? animufag ?
09.08.2018
09:42:21
Хорошо дать пример в начале как "интуицию"
да это было бы здорово но так обычно не делают. примеры конечно могут и отводить внимание но лучше уж всё таки искаженное понимание работающее в частных случаях, чем заученное определение

Александр
09.08.2018
09:44:45
В приведенной доке по TF, например, первый же пункт (2.1) - не дожимает мысль до конца. Где пример того, как изменится функция readAndPrint после введения новой конструкции? Ну ввели, а использовать-то как? Что мне писать нужно в определении типа? Как задачу-то основную решили?