Да понятно. Guards спасают в любом случае. Ну вот pattern matching как раз и делают, чтобы для "частых случаев" не выписывать условия, и чтобы вмесето f x | x == 1 = ... писать просто f 1 = ....
Вовсе не для этого, а для проверки полноты покрытие возможных вариантов. А с типами-суммами без PM работать вообще нельзя
Зато предсказуемо одинаково можно рассматривать в любых конструкциях языка, как существующих, так и добавляемых пользовательскими EDSL. В отличие от непредсказуемой синтаксической магии GHC extensions. В общем, кому что. :)
Ну образцы в аргументах функции (когда функциою можно определить несколько раз с разными образцами) это вроде как фишка исключительно присущая функциональным языкам. Вроде в более императивные языки их пока не затаскивали. Там вроде в целом принято функцию один раз определять.
Ну образцы в аргументах функции (когда функциою можно определить несколько раз с разными образцами) это вроде как фишка исключительно присущая функциональным языкам. Вроде в более императивные языки их пока не затаскивали. Там вроде в целом принято функцию один раз определять.
Ну образцы в аргументах функции (когда функциою можно определить несколько раз с разными образцами) это вроде как фишка исключительно присущая функциональным языкам. Вроде в более императивные языки их пока не затаскивали. Там вроде в целом принято функцию один раз определять.
ну хотя бы деструктуризацию произвольной глубины. в Питоне 2 такое было, а в 3 убрали почему-то
Да всё сахар. Просто весь этот сахар, когда его слишком много, начинает путаться и приводить к неоднозначностям и сложности понимания кода человеком. Компилятору-то все-равно. Он разберется в любой неоднозначности, если приоритеты расставлены. А вот человек, читающий код, не всегда может осилить.
Можно не банить (тем более - хороших людей), а просто удалять сообщения не по теме. Это довольно быстро сворачивает флуд и не даёт разгораться флейму. 😉
есть еще способ тушения ядерным взрывом, вкинуть чего-нибудь типа haskel vs python, а потом кто успел тот присел
ну хотя бы деструктуризацию произвольной глубины. в Питоне 2 такое было, а в 3 убрали почему-то
Ну она же там без вариантов. Деструктуризация и в JS есть, но это еще не совсем pattern matching. Грубо говоря, там разрешены только всегда успешные шаблоны. Там нельзя константы и выражения использовать и путаницы нет.
Ну она же там без вариантов. Деструктуризация и в JS есть, но это еще не совсем pattern matching. Грубо говоря, там разрешены только всегда успешные шаблоны. Там нельзя константы и выражения использовать и путаницы нет.
JS ведь может кинуть исключение, если нужного поля в рантайме не окажется. то же самое можно было бы сделать и для значений
Да всё сахар. Просто весь этот сахар, когда его слишком много, начинает путаться и приводить к неоднозначностям и сложности понимания кода человеком. Компилятору-то все-равно. Он разберется в любой неоднозначности, если приоритеты расставлены. А вот человек, читающий код, не всегда может осилить.
не важно сколько сахара, главное следить чтобы Perl дрожжей не подкинул...