Comments 24
Никлаус Вирт считал использование знака «=» в качестве оператора присваивания «плохой идеей» – и не только из-за трудности понимания, но и из-за нарушения логики – с его точки зрения введение такого обозначения приводит к появлению нового логического концепта – «принуждения к равенству»
Ну в ряде языков программирования он записывает не как просто:
a=b+c
а как:
LET a=b+c
или
SET a=b+c
где «LET» дословно означает «пусть», а «SET» — дословно «установить». Возможно, есть языки, где пишется «ASSIGN» — «присвоить».
0
Подписываюсь под каждым пунктом. Добавлю что для меня одним из сложных концепций для понимания (javascript) было асинхронное исполнение, setTimeout, коллбэки и т.д. Нельзя было просто так взять и представить что, допустим, значение из асинхронной функции не сразу возвращается :) точнее даже не так, а то, что при выполнения кода асинхронная функция запускается и дальнейший код, нисколько не прерываясь, продолжает выполнение. И потом только, спустя время, коллбэк запускается. А, еще было сложно с замыканиями)
+1
В моем понимании — функции — это мясорубка, в которую кидаешь мясо, а она выдает фарш.
А коллбеки — это когда из мясорубки валится что-то еще и в зависимости от того, что валится, нужно подключить свою мясорубку.
А коллбеки — это когда из мясорубки валится что-то еще и в зависимости от того, что валится, нужно подключить свою мясорубку.
0
Это легко объясняется на примере, скажем, заказа из интернет магазина. «Ты сделал заказ в магазине, и пошел чай пить, телевизор смотреть и т.д. А когда почтальон принесет посылку, ты распишешься в ее получении и распакуешь. В случае же синхронной обработки, ты бы остался без телевизора и чая, а сидел бы перед дверью и ждал бы прихода почтальона»
0
UFO just landed and posted this here
И некоторые из них точно не удастся легко и быстро объяснить «простым смертным», если они не математики.
Вы считаете, что рекурсию, вложенные циклы, параллелизм и разницу между = и == нельзя объяснить за 5 минут?
+1
Для объяснения рекурсии — достаточно красивой картинки, а ещё можно вспомнить стих «у попа была собака...».
(простейший цикл без вложенности — «на колу мочало — начинай сначала!»)
(простейший цикл без вложенности — «на колу мочало — начинай сначала!»)
0
В англоязычном мире есть цикличные песни, вроде «10 зеленых бутылок стояло на стене». Самая наглядная иллюстрация цикла.
0
Ну и мое любимое простое объяснение транзакций:
У тебя 3 хвоста за сессию. Ты договорился с двумя преподами, проплатил им, а третий не соглашается. И тогда первые 2 возвращают тебе деньги.
У тебя 3 хвоста за сессию. Ты договорился с двумя преподами, проплатил им, а третий не соглашается. И тогда первые 2 возвращают тебе деньги.
+1
Если преподы в разных городах, а денег на проплату следующего экзамена не хватает — это уже CAP-теорема.
+1
И тогда первые 2 возвращают тебе деньги.
С чего это вдруг? Две оценки уже проставленные в зачетку, что тоже уберут?
0
Ничего сложного во всем этом не вижу. Есть куда более сложные концепции.
Например всякие монады, но пожалуй сложность для меня лично связана с отсутствием желания разбираться с Haskell, а примеров для других языков крайне мало.
Далее, неблокирующие структуры данных (на Хабре была серия статей) — в связи с достаточно высокой сложностью и одновременно низкоуровневостью кода
Метапрограммирование на шаблонах С++ — но это скорее с особенностями реализации именно в С++.
А что может быть сложного в рекурсии, вложенных циклах и тем более операции присваивания — ума не приложу)
Например всякие монады, но пожалуй сложность для меня лично связана с отсутствием желания разбираться с Haskell, а примеров для других языков крайне мало.
Далее, неблокирующие структуры данных (на Хабре была серия статей) — в связи с достаточно высокой сложностью и одновременно низкоуровневостью кода
Метапрограммирование на шаблонах С++ — но это скорее с особенностями реализации именно в С++.
А что может быть сложного в рекурсии, вложенных циклах и тем более операции присваивания — ума не приложу)
0
Монады это в сущности всего лишь некое обобщение над функциями. Если вы понимаете скажем композицию f(g(x)), то для вас тут ничего сложного быть не должно.
а примеров для других языков крайне мало.
В сети полно примеров монад на любых языках, где вообще есть функции. javascript первое что приходит на ум.
0
В сети полно примеров монад на любых языках
Правда, не все авторы таких примеров сами понимают монады :-)
0
Sign up to leave a comment.
Пятничный формат: «Нельзя просто так взять и объяснить непрограммисту…»