Replies (172)

  • @rxn, да с чего угодно, Real world Haskell (подустарело местами), LYAH (картинки смешные но местами странная), Haskell wiki (отличное место, но разрозненно), да хоть Душкин.
  • @qnikst, А что за Душкин?
  • @rxn, ты не знаешь великого и ужастного рускоязычного популяризатора хацкеля? вот этот: users.livejournal.com

    Но, "да хоть" не зря стояло, если душкин не сумеет отпугнуть то языка, то можно дальше по другим ресурсам нормально изучить.
  • @qnikst, У него есть и справочник и практика. А что для новичков предназначено?
  • @rxn, Я, вроде, справочник читал. Но не забудь и про остальные указанные в треде ресурсы.
  • @qnikst, Я лучше learnyouahaskell буду читать :3
  • @rxn, и это правильно.
  • @qnikst, Неправильно. Пусть читает викикнигу.
  • @rkit, На сайте learnyouahaskell оформление прикольное. Когда прочитаю буду читать остальное.
  • @rxn, ohaskell.ru
  • @rxn, Плюсую LYAH. А потом сразу садишься писать что-нибудь.
  • @rxn, Лоботомия или лсд.
  • @rxn, С книжек по лямбда исчислению и теории категорий.
  • @loz, Зачем же так издалека? Как horse whisperer, к лошади по дуге подходить.
  • @loz, глупая шутка, а основы которые можно знать описаны в других книгах, при этом знакие CT не обязательно даже для программиста выше среднего уровня. Под знанием я естественно имею ввиду не базовое знакомство, а хорошее понимание.
  • @rxn, С получения ученой степени по математике
  • @vt, блин, пока меня тут не было кто-то провёл курсы молодого Петросяна?
  • @qnikst, Но ведь х-ль это и есть творчество петросянов от математики
  • @vt, спасибо за мнение, оно очень интересно.
  • @rxn, С целибата.
  • @rufuse, Потому что авторы книг по хаскелю сразу начинают шпарить математикой, объяснять на практических примерах они не умеют. У меня так 10 лет назад преподаватели в институте объясняли — предмет Х это просто! И пошли шпарить на доске формулы, бубня себе под нос, и никому из аудитории ничего не понятно. Авторы книг по хаскелю — ведут себя в точности.
  • @vt, Акедемичный язык же.
  • @rxn, Так это хорошо же — осталось найти переводчика на человеческий, проблема как раз в этом
  • @vt, А самому качать такой полезный скил?
  • @vt, Что за хуйню несут в этой ветке?
  • @rkit, Про проблеми чтения "акедемических" книг. Ну и про понимания академических людей.
  • @rxn, Так и я о том — начинать надо с книг по математике
  • @vt, Уйди в треды про xmpp, пожалуйста, там твои знания полезны
  • @rxn, Какие "академические книги"?
  • @rkit, присоединяюсь к вопросу
  • @rkit, abandon_thread.gif
  • @sopvop, how_about_no.gif
  • @qnikst, Я умею объяснить xmpp и профессору математики и посонам в подворотне. Перебрал десяток книг по хаскелю — эти посоны объяснить человеку без математического бекграунда не могут. О том собственно и боль.
  • @vt, Зачем что-то объяснять человеку без математического бекграунда? Какая от этого польза?
  • @klapaucius, Стоп-стоп, пятью сообщениями выше любители хаскеля говорили что я все вру и математика для понимания хаскеля не нужна. Вы там определитесь уже, а?
  • @vt, Смотря для чего — писать успешные джабберы^W веб фреймворки ты и без мат аппарата (в смысле СТ, ТТ, и т.п. сможешь), с другой стороны та базовая математика, которая нужна для любого ЯП, нужна и тут. Но для сложных вещей , которые для понимания требуют математику используется математика, впрочем для обобщения эдементарщины она тоже используется, о чем всегда добавляют запетку в книгах.
  • @qnikst, "Добавляют заметку" в случае хаскеля обычно выглядит так — "вот здесь мы применим сильное колдунство, описанное в таком-то разделе математики", что естественно не способствует пониманию. Хорошее же объяснение должно заинтересовать человека так, чтобы он сам пошел читать соответствующую теорию, при этом простейший случай просто необходимо разобрать на пальцах, а не подразумевать, что читатель остановился и быстренько изучил нужный научный раздел.
  • @vt, в случае хаскеля обычно выглядит так — "вот здесь мы применим сильное колдунство, описанное в таком-то разделе математики"Какая-то параллельная реальность прям.
  • @vt, Не видел такого. Математика есть в научных статьях из рецензируемых журналов, но вроде ТСу их никто не предлагает.. Даже в хотт пирса все элементарно и вся теория вводится. Если "математическая магия" это использование терминов монада, функтор и аппликейтив, то я даже не знаю что сказать :)
  • @vt, Пятью сообщениями выше — не мое сообщение, не понятно, с какой стати все так называемые "любители хаскеля" должны консолидированную позицию вырабатывать.
    Я зада простой вопрос, можете вы на простой вопрос ответить?
  • @qnikst, applicativeВы наверно хотели сказать strong lax semi-monoidal endofunctor?
  • @sopvop, !
    На самом деле я в книгах этого не видел, вот что монада это эндофунктор в ... встречалось но и то не серьёзно.
  • @qnikst, ты имел в виду моноид?
  • @qrilka, Да, моноид в категории эндофункторов
  • @klapaucius, То есть от "позиции" зависит, нужна математика для хаскеля или нет? Это ли не глупость? Позиция может быть разная — кто-то хочет "популяризации" хаскеля как инструмента для написания реальных программ, пишет книги "для чайников" и "для измученных джавой". Кто-то может ничего не хотеть, и как ты говоришь, "не видеть смысл" в объяснении человеку без нужных скиллов. Но факт того, что без приличного уровня в математике — вероятность освоить хаскель крайне мала — никуда от "позиции" не денется.
  • @vt, Там не было про "не видеть смысл", там было про зачем объяснять, и этот вопрос пока ещё остался без ответа.
  • @qnikst, Зачем преподаватель объясняет свой предмет ?
  • @vt, Аналогия не принимается — в случае преподавателя все prerequisites выполнены, тебя спросили про случай, где это не обязано выполняться. Ответь чётко, без аналогий и переадресаций вопроса, пожалуйста.
  • @qnikst, Я тебе четко отвечаю — вот я человек, который хочет изучить хаскель. Я как раз и хочу получить четкий список "prerequisites", а не петросянство о том, что математика для этого не нужна. Оно может в кругах кандидатов наук и не считается математикой вовсе, может это у них юмор такой, математики так шутят, типа тылохштолекакможнонезнать какую-нибудь там теорию категорий, непосвященному человеку же надо четко представлять требования.
  • @vt, Зависит для начала от того, что вы понимаете под "математикой" в данном случае. Но это мы возможно и узнаем, когда вы ответите на мой вопрос.
  • @vt, М.. Я вижу, что это описывает твой вопрос и позицию, но я не вижу, как это явно отвечает на вопрос "зачем рассказывать про хацкель, человеку не знающему математику", видимо все же стоит сформулировать это явно.
    По мне — знать CT, Type Theory — не нужно, а все что требуется для понимания сложности и т.п. во всех языках — нужно. В общем это только повысит твою эффективность как программиста, и в итоге на каком-то уровне ты это выучишь, но это не является требованием.
  • @qnikst, Ну вот видишь, ты даже в этом посте неявно проводишь агитацию о том, что хаскель необходим программисту для повышения квалификации :) Собственно, я вот и ведусь на эту агитацию и пытаюсь повышать квалификацию, но упираюсь в некачественные книжки, с некачественными примерами и некачественными объяснениями. А "любитель хаскеля" обижается — "зачем ты вообще сюда полез, раз тебе это не нравится". Я и отвечаю — хочу повысить уровень "программиста", это снова не ответ на вопрос "зачем"?
  • @vt, Для освоения хаскеля, как и любого другого ЯП на базовом уровне углубленное знание математики не требуется. Для повышения квалификации программиста знание математики наоборот требуется, безотносительно того, на хаскеле этот программист писать собирается или еще на чем-то.
  • @qnikst, знание CT не обязательно для программиста любого уровня, ибо уровень программиста определяется уровнем задач, которые он способен решать
  • @klapaucius, Я согласен с этим утверждением, но проблема описана в /24 — отсутствие книг, соответствующих уровню типичного "желающего повысить квалификацию", и что самое главное — отсутствие у типичного "адепта хаскеля" понимания уровня собеседника — он пишет книгу!!!!!!11 — и уровень его объяснений постоянно скачет от шуточек и смешных картинок до тяжелых абстракций. (он думает что они легкие, да, у него же есть математический бекграунд)
  • @4DA, И как из второго следует первое?
  • @klapaucius, расскажи мне про практические задачи, которые выражаются только в категории hask
  • @vt, Я же говорю, вы под "знанием математики" подразумеваете не то, что ваши собеседники. Лично я навскидку не могу вспомнить ни одного учебника по хаскелю, который бы требовал глубокого знания математики. Т.е. насчет "отсутствие у типичного "адепта хаскеля" понимания уровня собеседника" вы правы, но насчет того, что у всех этих "адептов" математический бекграунд, возможно заблуждаетесь. Что за бекграунд имеется в виду? Я, например, физик по образованию, но какой-то такой мат.бэкграунд у большинства программистов. Может конечно есть и выпускники театральных училищь и кулинарных техникумов, но это не типичный вариант.
  • @4DA, А это какое отношение имеет к вопросу?
  • @klapaucius, а каких уточнений вы от меня хотите? сделайте s/задач/программистских задач/ в 57, если так будет угодно.
  • @4DA, Хочу ответа на вопрос "И как из второго следует первое?".
  • @rxn, Со срача.
  • @klapaucius, потому что я не знаю такие практические программерские задачи, которые бы безусловно требовали CT. Вы знаете? Расскажите!
  • @4DA, Знание CT повышает эффективность программиста в проектировании API, т.е. при прочих равных есть такие задачи которые программист знающий CT решит за заданное время, а не знающий — не успеет, например.
  • @klapaucius, Каким образом CT повышает эффективность при проектировании API?

    Если вместо модулей, интерфейсов, контрактов и компонентов будут функторы, монады и стрелки, то API будет лучше чтоли? Чем?

    есть такие задачи которые программист знающий CT решит за заданное время, а не знающий — не успеетреквестирую примеры таких задач.

  • @klapaucius, который бы требовал глубокого знания математикиЯ про это и написал — со стороны научного работника эти теории категорий вероятно являются сущей ерундой, со стороны рядового программиста — нет.
    какой-то такой мат.бэкграунд у большинства программистов.Адепты хаскеля видимо путают программистов и всяких там победителей олимпиад по программированию, что к программированию не имеет особого отношения :)
  • @4DA, Потому, что прикладное значение CT в программировании — инструмент для разработки "хорошо стыкующихся" элементов. Функторы, монады и категории не будет вместо модулей и интерфейсов, они подсказывают какими эти модули и интерфейсы должны быть.
  • @klapaucius, Потому, что прикладное значение дзена в программировании — инструмент для разработки "хорошо стыкующихся" элементов. Дхарма, атман, сансара не будет вместо модулей и интерфейсов, они подсказывают какими эти модули и интерфейсы должны быть.
  • @vt, Я, например, не научный работник, на олимпиадах по программированию никогда не побеждал и даже не участвовал в них. Вообще, если бы я хорошо понимал математику — я бы и занимался физикой, но плохие физики никому не нужны, поэтому я и стал программистом. На программистов же хороший спрос, даже тупых. Учебников с "этими теориями категорий" нет, по крайней мере я таких не видел. Я вообще знаю только один учебник программирования с теорией категорий внутри — "Алгебра программирования" Берда, и никакого хаскеля в нем нет, его можно сказать, что и вовсе не было, когда этот учебник был написан.
  • @4DA, Надо было сразу про проблему шаманизма в некоторых районах севера спрашивать, а вы каким-то окольным путем пошли, через дзен.
  • @qnikst, На хаскеле смогу? Мне пришлось немало почитать в том числе и чисто математических статей чтобы понять какой смысл вобще вкладывается в категории, функторы, моноиды и монады.
    P.S. и я так и не понял — как моноид можно рассматривать как категорию из одного объекта.
  • @klapaucius, Совершенно верно, учебников по хаскелю с теорией категорий внутри нет, о чем собственно и разговор :) В существующих учебниках вместо объяснений автор показывает свой восторг от того, как элегантно в х-ле выражаются те математические абстракции, которые он выучил где-то в другом месте, до объяснения же сего колдунства автор обычно не опускается. Когда же автор сталкивается с реальными задачами программирования — красный шарик блин на экране отобразить вот anton-k.github.io — все элегантность хаскеля сразу улетучивается и на выходе получается нечитаемый ужас, этот вот хоть честно про это написал.
  • @klapaucius, да хоть шаманизм, пожалуйста. просто без конкретики эти оба утверждения равносильны.
  • @vt, 1) Таких учебников я не знаю. 2) "Отображение красного шарика" — не реальная задача программирования, а игрушечная. 3) Утверждение спорное, я вот считаю, что элегантность хаскеля только ярче проявляется по мере усложнения задачи, и "отображения шариков", конечно, можно написать на хаскеле лучше, чем на многих других языках. Естественно, если вы считаете, что это не так, тратить время на хаскель вам не нужно, занимайтесь языками в которых, по вашему, элегантность не улетучивается.
  • @loz, в CT имеет смысл вкладываться если вы работаете в таких областях математики как гомологическая алгебра, алгербраическая геометрия, гомотопическая теория типов, теория пучков etc. в инженерии я пользы от CT не вижу
  • @4DA, Они, разумеется, не равносильны потому, что CT — математический инструмент, а дзен — какая-то хиромантия-френология. Конкретные примеры я привести могу легко: из моего опыта следует, например, что интерфейсы библиотек библиотек, разработанных без применения CT вроде conduit и курсоры xml-conduit менее удобны, чем интерфейсы библиотек, которые разрабатывались с применением CT вроде pipes и xml-lens, потому утверждения о том, что знание СT повышает уровень программиста при разработке интерфейсов кажется мне вполне убедительными.
  • @klapaucius, "отображения шариков", конечно, можно написать на хаскеле лучше,Наверное можно, наверняка в далеком будущем напишут "чистый" заменитель того "грязного" opengl, которой несчастному адепту "чистоты функций" приходится подключать к элегантной программе на хаскеле для отображения шариков и лепить дополнительные абстракции-костыли, но боюсь что до этого момента не все доживут.
  • @vt, там еще старый opengl юзается с его fixed pipeline. non-example короче
  • @vt, Нет, я имею в виду, уже сегодня лучше, не в каком-то далеком будущем.
  • @4DA, Что, уже написали?? Где посмотреть?
  • @vt, я про пример по ссылке
  • @4DA, Ты говоришь плохой пример, в новом opengl типа лучше. Или что?
  • @vt, плохой пример, потому что он использует старый opengl
  • @klapaucius, а есть пример решения двух одинаковых задач на кондуитах и на пайпах? у меня нет времени проверять ваше утверждение без того, чтобы лезть в эти библиотеки и писать на них хелоуворды, пытаясь понять что проще использовать и где лучший composability.
  • @4DA, а есть пример решения двух одинаковых задач на кондуитах и на пайпах?
    Есть.

    у меня нет времени проверять ваше утверждение без того, чтобы лезть в эти библиотеки и писать на них хелоуворды, пытаясь понять что проще использовать и где лучший composability.
    Ну нет — так нет. Никто же не заставляет. Но навряд ли вы когда-нибудь проверите чье-нибудь утверждение, объясняя всем какой вы занятой, одновременно требуя от своих оппонентов все больше работы. Их время тоже не безгранично.
  • @klapaucius, естьну так покажите.

    почему формулирование этой проблемы именно в CT позволяет добиться самой правильной архитектуры? почему не в виде графов или транспортной сети?
  • @4DA, почему формулирование этой проблемы именно в виде графов или транспортной сети позволяет добиться самой правильной архитектуры? почему не в CT?
  • @fmap, ты скучный
  • @fmap, Более того, Графы и транспортные сети это категории.
  • @rufuse, и что тебе дает рассуждение о транспортной сети как о категории?
  • @4DA, стажируюсь прост.
  • @klapaucius, а рендерить json это реальная задача программирования или игрушечнкая?
  • @rxn, Начинают с того, что слушают советы @rkit, @klapaucius и @qnikst . Они говна не посоветуют. Ну и наоборот, не слушают тех, кто не осилил, ибо они будут советовать то, как не осилить.
  • @4DA, Каким образом CT повышает эффективность при проектировании API?Не так давно пришлось писать систему, накапливающую параметры разных типов — целые, дробные, строки, таймштампы, булевы флажки отказов, где отказ — логический нуль, булевы флажки отказов, где отказ — логическая единица и мн. др.
    Так как данных много встала задача объединения этих параметров по временным интервалам — вместо 1231 значения, показать одно за неделю, либо одно за час, вместо 0 собранных значений за заданный интервал показать отсутствие данных, либо данные за предыдущий период.

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

    Конечно моноид — это не совсем понятие теории категорий, но принцип повышения эффективности тут общий.
  • @nyuufac, свертка моноида — полезная концепция, но это как бы далеко не теоркат с топосами.
  • @nyuufac, моноиды это из абстрактной алгебры, что уж там
  • @rxn, с изучения хохм типа "монада это моноид в категории эндофункторов"
  • @rxn, ohaskell.ru
  • @rxn, Неужели выигрыш с применения хаскеля превышает затраты на его изучение? Если хорошо подумать, можно и на ассемблере красивый во всех смыслах код написать, со всякими абстракциями (если есть макроязык), если так нужно
  • @Renha, 1) Что это за особенные затраты на обучение хаскелю? 2) Нет, на подавляющем большинстве языков красивый код написать в принципе невозможно, и от квалификации пишущего это никак не зависит.
  • @Renha, Если хорошо подумать, то изучить хаскель будет попроще, чем изобрести собственный аналог, а потом реализовать его на макроязыке ассемблера.
  • @klapaucius, 1) по сравнению с подавляющим большинством языков, изучающему требуется изучить гораздо больше новых терминов и понятий. Если с традиционными ЯП всё понятно (они подобны друг другу, и изучающий скорее всего знаком с другим подобным языком), то есть и экзотические, которые всё равно легко изучаются — тот же Forth (тот же тест на crowdtest.org , который все валят, любой сможет пройти после прочтения максимум странички текста), где всего и терминов то слово да словарь.

    2) приведите такое определение понятия красоты кода, при котором ваше утверждение будет истинным. Только без читерства типа "Красивый код — код написанный на Хаскелле" или "Красивый код — код с моноидными пространствами эндокринных систем в селекционной фазе липукции".
  • @rkit, стоит задача написать красивый код. Почему для этого нужно изобретать хаскель?
  • @Renha, Эту задачу ты сам придумал.
  • @Renha, Я думаю, что хорошо бы услышать и от вас определение "красивого кода", который можно написать на чем угодно.
    Никаких особенных сложностей в изучении Haskell нет, язык как язык, простой очень.
  • @rkit, разумеется, и поставил её в /102, на который вы и отвечали в /104
  • @qnikst, красивым считается код, соответствующий усиленным критериям хорошего кода, плюс обладающий элегантностью. Под элегантностью можно понимать в данном случае то, что при прочтении кода у читающего возникнет мысль "Ого, как здорово придумано, я бы до такого не додумался!". Для возникновения такой мысли код должен быть читаемым, понятным, достаточно простым (это из критериев хорошести). Прочие критерии хорошести кода можно считать общепринятые, только построже.
  • @Renha, И там же ты подразумевал, что для этого нужен хаскель. А тебе вдруг я должен это доказывать.
  • @Renha, *...код также должен быть...
  • @Renha, 1) Нет, если этот язык из "подавляющего большинства" — первый. Если человек уже какой-то язык знает, то изучить клон этого языка, конечно, проще простого.
    2) Код красивый если a) можно рассуждать (в смысле reasoning) о том, что он делает, не опускаясь до операционной семантики языка, т.е. "интерпретации в уме". б) его можно переиспользовать, т.е. стыковать с другим кодом.
  • @klapaucius, 1) ну да, это я и сказал. Но и про не-клоны оговорился ведь

    2а) ну вот, я уже не понял. Всё связанное с хаскеллем такое сложное(

    2б) реализуется даже просто UNIX-wayем при написании программ.
  • @Renha, Гы-гы 50% при околонулевом знакомстве с фортом, хороший тест.. правда к чему он тут не ясно.
  • @qnikst, ну просто я его написал и мне приятно когда его решают :) дык к тому, что пройдя его можно вполне сносно прогать на Forth, а пройти его можно поизучав 1 страничку А4 текста. Именно что тест простой, а вопросы последние уже вымучивались — потому что там нечего толком изучать, вот. В отличие от.
  • @Renha, Мне этот разговор кажется слегка бессмысленным. 1. Если ты начинаешь с си-подобной императивщины, то си-подобная императивщина кажестся клонами, если с ML — то темным лесом. При этом у каждого языка есть достаточно много особенностьей умение быстро понимать которые приходит с опытом.

    Пункт 2а относится к хацкелю в той же степент, что и к другим языкам, а 2б является следствием 2а. В противном случае 2б может выполняться только с кучей оговорок, и юниксвей тут ни при чем (хотя и помогает писать утилиты в условиях отсутствия инструментов)
  • @Renha, критерии хорошести кода можно считать общепринятые, только построжеА где на эти "общепринятые критерии" можно посмотреть?
  • @Renha, Так.. Давай уточним, простой ли брейнфак, я утверждаю, что сложный, хотя изучить его и ответить на тесты можно прочитав 1 предложение.
  • @qnikst, для изучения (тут же оно обсуждается) простой он. Писать сложные программы — сложно, читать тоже. А изучать просто
  • @rkit, не знаю, я для надёжности добавил, чтобы на "а как же ...?" сказать "а ... входит в общепринятые критерии". А так я основное вне категории перечислил, просто мог что забыть, вот и перестраховался.
  • @Renha, Что по твоему значит 'знать язык'? По моему это способность писать на нем программы и разбираться в чужих. Знание это состоит из знаний синтаксиса (нулевой уровень), знания библиотек, знания рантайма и опыта написания программ с требуемыми свойствами. И в этом отношении форт не кажется мне очень простым языком во всяком случае по сравнению с функциональщиной :)
  • @qnikst, ну пока я понял 2а так, что если например функциям даны поясняющие их суть имена, то программа на любом языке где есть именованные функции и нет множества скобок))))))). Если я не прав, то запрашиваю пояснение
  • @Renha, Говорить, что я изучил язык если знаешь синтаксис это сильно :) я тогда tcl знаю и даже j!
  • @Renha, Что там перечислено-то?
    Ого, как здорово придумано, я бы до такого не додумалсяСубъективно. Кто-то додумался бы, а кто-то нет.
    читаемым, понятным, достаточно простымЭто три синонима. И абсолютно субъективно. Для кого-то понятно, а у кого-то недостаточно подготовки и потому тарабарщина.
  • @qnikst, синтаксис, теория, особенности, эффективные приёмы, какие-то ещё пояснения — для простых языков это в А4 имхо хорошо умещается. У хаскелля один только пункт теории наверняка не уместится на листке
  • @rkit, дык да, красота — понятие субъективное
  • @Renha, Уместится, только никто не хочет писать человеческим языком.
  • @Renha, Так и чего ты тогда приперся сюда своими субъективными ощущениями? Излей их в бложик.
  • @rkit, это бложик
  • @Renha, @rkit повержен.
    Лямбдабоги 1 демагоги 0.
  • @Renha, Я могу попробовать, но лучше дождаться комментария @klapausius т.к. у него с простой формулировкой лучше, а я слишком запутанно расскажу.
  • @qnikst, Вся суть преподавателей хаскеля :)
  • @Renha, Ок так и запишем стандарт с — один лист А4. :)
  • @vt, Если бы я был преподавателем, то у меня бы был более существенный опыт формулировки мыслей. Но я преподавателем не являюсь, и хацкелю учился сам и CS предметов тоже не было из чего и результат.
  • @vt, Кстати, я в универе преподаю хаскель в качестве факультатива, люди ходят и не жалуются.
    Хаскель гораздо проще С++, например.
  • @rkit, я пришёл узнать ответ на вопрос из /102, вот прям на первое предложение. Вместо того, чтобы дать ответ, с меня тут затребовывают кучу уточнений и пояснений, тут же их оспаривая. Конкретно про это: я правильно понимаю что кто-то обладает объективным определением красоты кода? И вообще не понимаю, чего все к красоте привязались, я просто предположил в /102 что профит от хаскеля в ней. Если не в ней — то я вообще не понимаю в чём :'(
  • @Renha, Под элегантностью можно понимать в данном случае то, что при прочтении кода у читающего возникнет мысль "Ого, как здорово придумано, я бы до такого не додумался!"
    Ну пиздец просто
  • @arrowdodger, с тем что C++ сложный, я целиком согласен
  • @netoneko, а что, нельзя (понимать)? почему?
  • @Renha, с каких пор элегантность это "я бы до такого не додумался"?
  • @qnikst, С — довольно сложный язык. Но простой для многих, т.к. многие знают С-подобные языки (тогда на А4 нужно умещать лишь отличия от известных им языков)
  • @arrowdodger, Ну ты нашел с чем сравнить, лучше дай лекции почитать :)
  • @netoneko, ну вот почему бы и нет? Ну смог я придумать только такое определение, глупый наверное, и чо
  • @Renha, В простоте! На хацкеле просто писать сложные программы (не считая некоторых областей, где нужно знать особенности рантайма). Так же там просто писать edsl (в общем-то это даже странно называть edsl) и легко переносить задачу в язык. Так же на записанную на хацкеле задачу легко ложатся мат абстракции а терминах которых удобно думать дальше.
  • @qnikst, о, спасибо! это ответ, подобного которому я ждал). Правда, не знаю что такое edsl, пойду почитаю, потом отвечу
  • @vt, Это факультатив, поэтому я не озабачивался такими рудиментарными вещами как рабочая программа и тексты лекций.
    Я иногда показываю презентации, а чаще всего мы со студентами вместе открывает fpcomplete.com и вместе ковыряемся в коде и обильно его комментируем.
    Получается что-то вроде конспекта с "живыми" кусками кода, которые еще и у каждого студента на своем аккаунте сохраняется.
  • @arrowdodger, ну а презентации сохранились?
  • @arrowdodger, А сначала студенты, конечно же, ходят послушать теорию категорий, так?
    Иначе к хаскелю допускать нельзя! Да и не поймут ничего!
  • @Renha, Embedded domain specific language, встроенный язык для описания узкой предметной области, опирающийся на конструкции host языка. Таким образом для решения задачи в этой области можно пользоваться только им, что упрощает работу (в т.ч. для пользователей плохо знакомых с языком), щас может скину классические статьи :)
  • @sopvop, prerequisites: hirsch index >2
  • @sopvop, Жырновато.
  • @arrowdodger, Сарказм
  • @sopvop, А, не распарсил, извиняйте.
  • @Renha, Ну одна есть, но я ее делал с тем, чтобы объяснять что там на слайдах. Если очень интересно могу скинуть, конечно, она про лямбда-исчисление.
  • @arrowdodger, без пояснений наверное не сильно пригодится
  • @Renha, Статьи лень искать, (классика это про учёт электричества на яве). Вот, например, презентации Лёха из Ulrich Univ и well typed в случае хацкеля:

    www.andres-loeh.de/HaskellForDSLs.pdf

    Прекрасно объясняет вживую :)
  • @arrowdodger, В вот этого и боится @vt.
  • @qnikst, по описанию похоже на типовое применение словарей в форте)
  • @qnikst, Ну не скажи. Как по мне, с одной стороны — заумно, но реально самому разобраться во всем. С другой стороны — наглядно, но надо чтобы кто-то картинки пояснял.
  • @Renha, В форте, кстати, тоже должно быть приятно их делать в силу большой гибкости языка, с поправкой на то, что там все параметры идут через стек (сильное ограничение) и адскую последовательность записи (ограничение). Ну на моём уровне понимания форта.
  • @Renha, красивый код — это который легко читать и который легко реюзать.
    поскольку реюзать и читать будет человек, то красивость контекстно-зависима.
  • @arrowdodger, @vt ругается на то, что начинают чистую теорию писать.. Это как машина Тьюринга в качестве первой лекции в императивщие. (Хотя я согласен с тем, что это нужно говорить)
  • @rxn, edx.org онлайн курс на edx, скоро начнётся — хороший шанс начать учить.
  • @qnikst, Let us consider an extremely simple DSL:
    () :: Expr ! Expr ! Expr
    У меня даже закорючки не все скопировались. Кто там что говорил про брейнфак?
  • @qnikst, кстати да, есть надежды что это будет очень хороший курс
  • @4DA, спасибо, отличное определение
  • @qnikst, мне показалось он скорее ругается на то, что не начинают ее писать, а начинают на неё ссылаться
  • @qnikst, спасибо!
  • @qnikst, примерно так, я даже читал такое высказывание что написание программы на форте состоит из написания языка для этой задачи, затем решения на этом языке. теперь знаю как это по-умному называется)

    так можно и про си сказать что все параметры идут в скобках, и это ограничение :) я в общиз чертах представляю себе как реализовать на форте например инфиксную нотацию да передачу параметров в скобках и с выбором по значению или по ссылке. хотя с трудом представляю себе задачу где это было бы необходимо
  • @4DA, это точно не про хацкиль
  • @kuzyalittle, А про что?