Czy istnieje metoda idiomatyczna lub wbudowana metoda na concatenate dwóch Sets
ciągów?Jak połączyć dwa zestawy ciągów w Perl 6?
Oto, czego chcę:
> my Set $left = <start_ begin_>.Set
set(begin_ start_)
> my Set $right = <end finish>.Set
set(end finish)
> my Set $left_right = ($left.keys X~ $right.keys).Set
set(begin_end begin_finish start_end start_finish)
Lub, jeśli istnieje więcej niż dwa z nich:
> my Set $middle = <center_ base_>.Set
> my Set $all = ([X~] $left.keys, $middle.keys, $right.keys).Set
set(begin_base_end begin_base_finish begin_center_end begin_center_finish start_base_end start_base_finish start_center_end start_center_finish)
Dlaczego dodamy funkcję, która jest używana tylko w tej jednej sytuacji? Zwłaszcza, że nie uczyniłoby to kodu bardziej przejrzystym. Jednym z celów projektu jest zmniejszenie liczby specjalnych przypadków. Myślę, że najlepszą rzeczą, na jaką możesz liczyć, jest posiadanie "X" zachowującego się specjalnie, jeśli otrzymasz dwa zestawy, aby można było usunąć ".keys". –
W moim rozwiązaniu nie lubię używać '.keys', konwertując w ten sposób' Set' na 'Seq', a następnie łącząc, a następnie wracając do' Set'. Może się mylę oczywiście, a teraz jestem absolutnie zadowolony z tego, jak to robię. :) –