【詩詞賞析】《埃拉托斯芬篩法》

perl

《埃拉托斯芬篩法》

用籌兮用嚴 井涸兮無礙。 use integer; use strict; # 涸; 無礙;
印曰最高矣 又道數然哉。 print ‘最高’, “數:";
截起吾純風 賦小入大合。 chomp (my $z = );
習予吾陣地 並二至純風。 study unshift my @w, 2 .. $z;
當起段賦取 加陣地合始。 while ($/ = shift [email protected]) {;
陣地賦篩始 繫繫此雜段。 @w = grep { ~~ $_ % $/;
終陣地兮印 正道次標哉。 } @w; print +"next :";
輸空接段點 列終註泰來。 printf " “.$/."
" } # 泰來;

-唐鳳 2002


 

〖詩詞欣賞〗

唐鳳,當代程式員、作家(blogger)、詩人。

作者以perl程式語為基礎,創造古文言程式語,以中文字為程式關鍵字,並借「天干地支」「地水火風」二十六字用作程式變數代稱。作者編成perl文言程式語後,賦《埃拉托斯芬篩法》作示範。《埃》乃五言詩,描述質數的運算。在多種質數運算方法中,作者選用最簡單的「埃拉托斯特尼篩法」,把二至「風」(即用家輸入的數字)的整數記在「陣地」裡,然後逐個進行篩除,並把餘下未被篩走的質數印出來。詩中選用「風」、「地」並非偶然,而是刻意配合其變數的性質1,「風」對「純」($)、「地」對「陣」(@)。「純風」有「作風純僕」之意,意境高遠,而「陣地」相對「純風」,兩者呈現鮮明對比。詩中「井涸兮無礙」、「註泰來」皆為「虛詞」,沒有程式意義。作者使用虛詞,一來示範虛詞的運用,二來使詩句的鋪排井然有序,在詩文中不可或缺。另外,「繫繫此雜段」中的「繫繫」亦算虛詞。數學有言「負負得正」,文中「繫繫」的意思,是把「零」及「壹」反轉兩次,復歸原本,正正帶著「負負得正」的概念。

在《挨》詩中,我們可見唐鳳的程式語及詩詞造詣皆精,更難得是她創意無限,創造出獨樹一格的文體,並以此賦詩。她創作perl文言程式語時,正值弱冠之年,可見其天才橫溢。當其時,她可能仕途失意,閒置在家,百無聊賴,所以決意在開源軟體上闖開新天地。她見Perl程式語有大秦(古羅馬)程式語,有所感悟,認為中華語文博大精深,亦應有一套相當的程式語,故此自創perl文言程式語,讓後世喜好文言文的程式員可以用其作出程式論述。

 

  1. 詳情可在網上查找「perl sigils」