Sözdizimi :: Anahtar Kelime :: Topla

Sözdizimi :: Anahtar Kelime :: Perl Sınıfını Topla
Şimdi İndirin

Sözdizimi :: Anahtar Kelime :: Topla Sıralama ve Özet

Reklamcılık

  • Rating:
  • Lisans:
  • Perl Artistic License
  • Fiyat:
  • FREE
  • Yayıncı adı:
  • Arthur Axel Schmidt
  • yayıncı web sitesi:
  • http://search.cpan.org/~frew/

Sözdizimi :: Anahtar Kelime :: Topla Etiketler


Sözdizimi :: Anahtar Kelime :: Topla Açıklama

Söz dizimi :: Kelimeler Perl sınıfı toplayın :: Geçici değişken için gerek kalmadan, listeler prosedür inşa edilmesini sağlar - toplamak - Perl 6 yeni bir kontrol yapısını sağlamaktadır. Bir toplama tarafından kontrol edilen blok / kapatma içinde, herhangi bir çağrının alınması için herhangi bir çağrı, argüman listesini dolaylı olarak oluşturulan bir diziye iter. döndürür o aldı öğelerin sayısını alır. Kullanımı :: Anahtar :: toplamak kontrol bloğunun yürütme ucunu structure.At bu alet, döndürür (bir liste bağlamında) dizi içinde depolanmış değerler listesi toplamak bir Perl modülü ya da dizinin bir referans (içinde yazma yerine örneğin .Çalıştırıcılı bir skaler bağlam): print {benim @wanted yoktur; (Ki $ hattı =) {itme @wanted ise, $ çizgi halinde $ çizgi = ~ / \ D /; Push @ Wanted, - $ satır ise bir something_other_condition ($ satır); } Push @wanted, 'eof'; q birleştirme}, {, @wanted; }, Onun yerine biz yazabiliriz: Baskı q}, {katılmak, (benim $ hat =) {$ hattı alırken {toplarsak $ hat = ~ / \ D /; ALACAK - $ SINATA AŞAĞIDAKİ BAZI TOTHER_CONDION ($ LINE); } 'eof' al; } Ve yerine: my $ text = {my $ dize yapmak; () {İken sonraki eğer / ^ # | ^ \ s * $ /; Geçen eğer / ^ __ __ \ n $ /; $ string. = $ _; } $ string; }; Yazabiliriz: my $ text = katılmak q {}, {) (ederken {toplamak sonraki eğer / ^ # | ^ \ s * $ /; Geçen eğer / ^ __ __ \ n $ /; $ Almak _; }}; Üçüncü bir fonksiyonu da vardır - toplandı - toplanmakta örtülü dizi için bir başvuru verir. Bu varsayılan işlemek için yararlıdır: benim @odds = @data {$ almak için {toplamak _ $ eğer _% 2; To_num ($ _) alırsanız / $ /; toplanan sürece} (1,3,5,7,9) almak; } O - bir işlem ile örtülü bir dizi oluşturmak için toplanan işlev boolean, sayısal bir Perl 6 dizi referans gibi davranan bir özel Perl 5 dizi referans verir, ve dizi contexts.It en da kullanışlı - ima yukarıdaki örnekte olduğu gibi daha karmaşık itme basit sıralı göre daha. biz sayısal olmayan öğelerin sayısını öne eklemek gerekirse Örneğin,: my @odds = toplamak {@data için {$ almak _ $ eğer _% 2; to_num ($ _) alırsak / $ /; } Unshift toplandı, + grep (/ / i, @Data); } Kavramsal olarak toplamak / almak, hem haritanın hem de GREP'in türetildiği genelleştirilmiş formdur. Yani biz bu iki işlevi uygulayabileceği şöyledir: alt haritası (@) {my $ coderef = vardiya; Benim @list = @ {kaydırma @_}; toplamak dönmek {$ coderef almak -> için ($ _) (@list)}; } Alt grep (@) {benim $ coderef = vardiya; Benim @list = @ {kaydırma @_}; toplamak dönmek {$ _ almak $ coderef eğer -> ($ _) @list için}; } A toplamak da kısa devre bir liste inşasını bir çok kullanışlı bir yoldur. Örneğin, iki sıralanmış dosyadan tek bir sıralanmış satır listesi oluşturmak istediğimizi varsayalım, ancak yalnızca ortak olan ilk satıra kadar. Bunun gibi çizgileri toplayabiliriz: benim @merged_diff = topla {$ a = <$ fh_a>; $ B = $ fh_b>; ise (1) {halinde (tanımlanmış $ tanımlanmış $ b) ($ bir eşdeğer $ b) {son} # Yinelenen aracı ($ bir LT $ b) elsif listenin sonuna halinde {{$ almak bir; $ a = <$ fh_a>; } else {$ b almak; $ B = <$ fh_b>; }} Elsif {$ alır ($ a tanımlanmıştır); $ a = <$ fh_a>; } (Aşağıda tanımlandığı $ b) elsif {$ b almak; $ B = <$ fh_b>; } Else {son}}} ÖZET kullanımı sözdizimi :: Kelime toplayın ::; '_ $' (Dokuz) $ / / (bir | üç | beş | | yedi) {almak qq {benim @list = toplamak {# {(@data) için ... tek sayılar ve tek sayı adlarını ayıklamak için deneyin eğer }} elsif (/ ^ \ d + $ / $ _% 2) {toplanan sürece @defaults almak ...}} _ $ almak # Ama herhangi birinin bulunmuyorsa varsayılan kümesi kullanmak; } Gereksinimler: · Perl


Sözdizimi :: Anahtar Kelime :: Topla İlgili Yazılım