Что такое закон Крокфорда?

Кто-то недавно ссылался на "закон Крокфорда" в отношении монад. Google показывает очень мало результатов. Кто-нибудь знает, что это?

1 ответ

Предполагая, что "закон Крокфорда" - это "Проклятие", о котором он упоминает в начале видео, он ссылается на это распространенное явление (описанное здесь гораздо более красноречиво):

  1. человек Х не понимает монад
  2. человек X работает долго и трудно, и groks монады
  3. человек X испытывает удивительное чувство просветления, удивляется, почему другие не столь же просветлены
  4. человек X дает ужасное, неполное, неточное, слишком упрощенное и запутанное объяснение монад другим, что, вероятно, заставляет их думать, что монады глупы, тупы, бесполезны, чрезмерно усложнены, излишни, что-то неправильное или психическое извращение

Вот некоторые из причин, почему я думаю, что Проклятие существует:

  • забывая, как отличается функциональное программирование от так называемого "основного" программирования. Если вы еще не понимаете, что такое FP, и почему люди это делают, вещи, построенные с использованием FP, не будут иметь смысла. Такие вещи требуют времени и усилий
  • забывая, как отличается эффект захвата, как у первоклассных граждан, от эффектов, предоставляемых системой (например, исключения или изменяемое состояние): то же, что и выше
  • отсутствиехороших мотивирующих примеров. Вы знаете, что-то вроде "это проблема, вот типичное решение, но, подождите, типичное решение имеет эти проблемы, так что давайте посмотрим, как мы можем точно исправить те, которые используют монады!" Это намного больше работы, чем утомленный старый пример об исключениях нулевого указателя
  • забывая о том, что дает монада - множество "монадных" примеров, которые я вижу, на самом деле прекрасно работают как примеры Functor или Applicative Functor
  • забывая, что монады строятся в Haskell. Вопрос: если бы монады внезапно исчезли, вы бы все еще могли делать ввод / вывод в Хаскеле?
  • полагая, что монады требуют синтаксической поддержки или системы определенного типа
  • думая, что монады только о изменяемом состоянии или I/O

Я стал жертвой Проклятия.:(

Это звучит так же, как и у Крокфорда, основываясь на одном из вопросов в конце: "Значит, монады - это просто паттерн Строителя?" ИМХО, это отличное видео для изучения офигенных техник Javascript, но не настолько, если вы действительно хотите узнать о монадах.

Если вы пытаетесь изучить монады, просто потратьте время и силы и приведите много примеров. Переопределите все экземпляры монады и комбинаторы с нуля. В конце концов вы также сможете стать жертвой Проклятия!

Загадка Крокфорда - неспособность новичков в Haskell помочь другим новичкам в Haskell понять монады до или после того, как они сами это поймут; явление, обычно наблюдаемое у новичков в Haskell, которые пытались понять, как печатать"Hello, world!". Иногда предлагается в качестве доказательства бесполезности представления новичкам Haskell модели ввода-вывода, основанной на абстрактном типе данных (ADT), интерфейс которого основан на одной из самых абстрактных областей математики. Иногда это одна из причин для преподавания JavaScript на вводных курсах вместо Haskell. По слухам, Институт математики Клея рассматривает возможность включения в задачи тысячелетия.

Альтернативные названия: комплекс Крокфорда, закон Крокфорда.

Другие вопросы по тегам