Perl 6’s given: switch on steroids
Let’s see how we could set our greeting message in JavaScript:
switch (audience.number) {
case ‘singular’:
switch (audience.gender) {
case ‘masculine’:
switch (audience.formality) {
case ‘informal’:
message = ‘¿Cómo estás mi amigo?’ ;
break;
}
break;
break;
case ‘plural’:
switch (audience.gender) {
case ‘masculine’:
case ‘mixed’:
switch (audience.formality) {
case ‘informal’:
message = ‘¿Cómo estáis mis amigos?’ Now in the case of Spanish, because many of the oppositions are binary, one could argue that an if-then-else might be cleaner or even with some nested ternary operators, but it still doesn’t generate anything remotely as clean as the Perl 6 code:given $audience.number, $audience.gender, $audience.formality {
when ‘singular’, ‘masculine’, ‘informal’ { my $message = ‘¿Cómo estás mi amigo?’ }
Source: tenesianu.blogspot.com