Больше информации от the Perl 6 Wikipedia entryЧто вы можете использовать для переходов Perl 6?
Junctions
Perl 6 вводит понятие переходов:. Значений, которые являются композиты из других значений [24] В ранние дни дизайна Perl 6 они назывались «суперпозициями», по аналогии с понятием в квантовой физике квантовых суперпозиций - формы волны, которые могут одновременно занимать несколько состояний, пока наблюдение «не разрушит» их. Модуль Perl 5, выпущенный в 2000 году Дамианом Конвей под названием Quantum :: Superpositions [25], предоставил первоначальное доказательство концепции. Хотя сначала такие суперпозиционные ценности казались просто программным любопытством, со временем их полезность и интуитивность стали широко узнаваемыми, а соединения теперь занимают центральное место в дизайне Perl 6.
В своей простейшей форме, перекрестки создаются путем объединения множества значений с junctive операторами:
my $any_even_digit = 0|2|4|6|8; # any(0, 2, 4, 6, 8)
my $all_odd_digits = 1&3&5&7&9; # all(1, 3, 5, 7, 9)
| указывает значение, равное либо его левым, либо правым аргументам. & указывает значение, равное его левым и правым аргументам. Эти значения могут использоваться в любом коде, который будет использовать нормальное значение. Операции, выполняемые на стыке, действуют на всех членов соединения одинаково и объединяются в соответствии с юнктирующим оператором. Итак, («яблоко» | «банан») ~ «s» даст «яблоки» | «бананы». В сравнении, переходы возвращают единственный истинный или ложный результат для сравнения. «любые» соединения возвращаются true, если сравнение верно для любого из элементов соединения. «все» соединения возвращаются true, если сравнение верно для всех элементов соединения.
Junctions также может быть использован для более богато дополнить систему типов, вводя стиль обобщенного программирования, ограничиваемый в стыки типов:
sub get_tint (RGB_Color|CMYK_Color $color, num $opacity) { ... }
sub store_record (Record&Storable $rec) { ... }
Я мог бы также использовать `one()` вместо `any()`, но `any()`, вероятно, будет быстрее. – 2008-09-24 03:51:44
На самом деле для февральского случая, может быть, я должен был вернуть один (28,29); – 2008-12-11 05:16:29