Haskell.
В haskell клёвый оператор мультивыбора: x = | условие1 -> значение1 | условие2 -> значение2 причём, если ни одно из условий не сработает, то будет выброшено исключение. А вот в perl мультивыбор просто вернёт undef: use common::sense; local $_ = "*"; my $x = do { 1 when /-/; 2 when /!/; }; use DDP; p $x; и если нужен эксепшн, то его придётся выбросить самому: use common::sense; local $_ = "*"; my $x = do { 1 when /-/; 2 when /!/; default { die "exception!" }; };
Не используй экспериментальную функциональность
причем это в 99% и нужно 🙂
local $_ = "!"; my $x = /-/ ? 1 : /!/ ? 2 : die "exception!"; say $x;
Так else же: x = | условие1 -> значение1 | условие2 -> значение2 | * -> значение3
Мне не нужно "значение3". Мне надо просто работать, не меняя никаких значений и ничего не делая.
Такое поведение нарушает функциональную парадигму )
Это последнее, о чём я задумываюсь, когда пишу код. ))
Почему нас должны волновать проблемы какой-то парадигмы?
Вы же перловики, поэтому – не должны. А в хаскеле только функциональщина )
Обсуждают сегодня