你能想到Perl 6 的聯結有什麼用途? (What uses can you think ...

文章推薦指數: 80 %
投票人數:10人

問題描述你能想到Perl 6 的聯結有什麼用途? (What uses can you think of for Perl 6's junctions?) More information from the Perl 6 Wikipedia entry Junctions ... 你能想到Perl6的聯結有什麼用途?(WhatusescanyouthinkofforPerl6'sjunctions?)問題討論你能想到Perl6的聯結有什麼用途?(WhatusescanyouthinkofforPerl6'sjunctions?)問題描述你能想到Perl6的聯結有什麼用途?(WhatusescanyouthinkofforPerl6'sjunctions?)更多信息來自Perl6維基百科條目JunctionsPerl6引入了junctions的概念:由其他值組合而成的值。

[24]在Perl6設計的早期,這些被稱為“疊加”,類似於量子物理學中的量子疊加概念——可以同時佔據多個狀態的波形,直到觀察“崩潰”它們。

DamianConway在2000年發布的一個名為Quantum::Superpositions[25]的Perl5模塊提供了初步的概念證明。

起初,這種疊加的價值觀似乎只是一種程序性的好奇心,隨著時間的推移,它們的實用性和直觀性得到了廣泛的認可,並且聯結現在在Perl6的設計中佔據了中心位置。

在最簡單的形式中,聯結是通過將一組值與聯結運算符組合來創建的: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) |表示一個等於其左側或右側參數的值。

&表示一個值,它等於它的左參數和右手參數。

這些值可以在任何使用正常值的代碼中使用。

在一個聯結上執行的操作平等地作用於該聯結的所有成員,並根據聯結運算符進行組合。

所以,("apple"|"banana")~"s"會產生"apples"|"bananas"。

在比較中,聯結會返回一個true或false比較結果。

“任何”如果對聯結的任何一個元素的比較為真,則聯結返回真。

如果比較對於連接的所有元素都為真,則“所有”連接返回true。

連接還可以通過引入一種限制為的泛型編程風格來更豐富地擴充類型系統類型的連接點:subget_tint(RGB_Color|CMYK_Color$color,num$opacity){...} substore_record(Record&Storable$rec){...} 參考解法方法1:Howmanydaysareinagivenmonth?given($month){ whenany(qw'135781012'){ $day=31 } whenany(qw'46911'){ $day=30 } when2{ $day=29 } } 方法2:Themostattractivefeatureofjunctionsisthatyoudon'tneedtowritealotofcodetestforcomplexsituations.Youdescribethesituationwiththejunctions,thenapplythetest.Youdon'tthinkabouthowyougettheanswer(forinstance,usingshortcircuitoperatorsorifblocks)butwhatquestionyouareasking.方法3:Autothreadingsoundscool,althoughIdon'tknowwhatitscurrentstatusis.forall(@files)‑>$file{ do_something($file); } Junctionshavenoorder,sotheVMisfreetospawnathreadforeveryelementin@filesandprocessthemallinparallel.(bymbac32768、BradGilbert、briandfoy、Eevee)參考文件WhatusescanyouthinkofforPerl6'sjunctions?(CCBY‑SA2.5/3.0/4.0)#perl相關問題保持特定位數的簡單Perl數學(simplePerlmathwhilekeepingaspecificnumberofdigits)如何在Windows批處理腳本或Perl中將文件移動到回收站?(HowcanImovefilestotheRecycleBininaWindowsbatchscriptorPerl?)從子程序返回數組(Returnarrayfromsubroutine)我可以以與操作系統無關的方式限制Perl進程使用的內存嗎?(CanIIimitthememoryusedbyaPerlprocessinanOS-agnosticway?)$#在perl中接受什麼作為輸入?(whatdoes$#acceptasinputinperl?)PerlText::CSV_XS從字符串中讀取(PerlText::CSV_XSreadfromstring)使用excel2010更新批處理文件中的變量(useexcel2010toupdatevariablesinbatchfile)在perl中為哈希添加值(Addingvaluetoanhashinperl)為什麼perl會忽略我的正則表達式中的多餘字符?(Whydoesperlignoreextracharactersinmyregex?)boost::regex-\bb?(boost::regex-\bb?)如果小於X天,如何從磁盤讀取文件,如果舊,則重新獲取html文件(HowtoreadafilefromthediskiflessthanXdaysold,ifolder,refetchthehtmlfile)使用Devel-Cover獲取覆蓋率報告(UsingDevel-Covertogetcoveragereports)留言討論提交送出編輯提交送出編輯提交送出回覆提交送出歡迎回家×使用Github帳號登入使用Google帳號登入取消免費加入CoderBridge×使用Github帳號註冊使用Google帳號註冊取消



請為這篇文章評分?