Perl:
send $sock, $msg1;
send $sock, $msgN;
OZ:
{send Sock Msg1}
{send Sock MsgN}
Haskell:
send sock msg1
send sock msgN
Много раз повторяется "send sock" - попробуем избавиться от дублирования.
Perl:
my $snd = sub { send $sock, @_ };
$snd->($msg1);
$snd->($msgN);
# или &$send($msgN);
OZ:
local Snd = fun {$ M} send Sock M end
{Snd Msg1}
{Snd MsgN}
Haskell:
let snd = send sock
snd msg1
snd msgN
Как видим, Perl закорючки (@#$%&) путаются под ногами.
2 комментария:
Зато в отрыве от контекста (и даже не видя объявление функции), в Perl можно понять что происходит, а вот, например, в хаскелле - нет.
Разве, что из-за неявного карринга.
А так вроде-бы тоже ясно все. Или что-то есть еще?
Отправить комментарий