列阵第七

赋曰

单骑虽捷,不成行伍;众值既集,乃列成阵。列之为器也,或空营而无卒,曰 ;或前锋领首、余众随后,曰 。一首一尾,尾复为列;寸寸相衔,可短可长。观其本,不过二形;推其用,则簿册、词章、树叶、令牌,皆可载焉。

欲治其列,法亦因形。逢罄而止,是为基;逢缀而取头,复治其尾,是为递。基若堤岸,止水无涯;递若驿传,逐站而前。无基则奔流不返,无递则只见一端。两者相济,虽千军万数,终可一一阅之。

解章

标准之库有多态列,以二构造器成之:「罄」 者,空列也;「缀」于「头」于「尾」 者,置一素于旧列之首也。故二、三、五之列,可曰:

「缀」于「二」于(「缀」于「三」于(「缀」于「五」于「罄」))

其类为 「列」于「整数」「列」 本类型构造器也;受素之类,乃成一具体列类。故整数列与字符串列,类各有别,不得相杂。

欲求列中诸数之和,循其二形而递之:

「列求和」乃化(「列」于「整数」)而「整数」也。
「列求和」者会「数列」而
    鉴「数列」而
        有「罄」则「零」
        或有(「缀」于「头」于「尾」)则
            「加」于「头」于(「列求和」于「尾」)也。

全篇曰:

寻观「标准库」之书。

「列求和」乃化(「列」于「整数」)而「整数」也。
「列求和」者会「数列」而
    鉴「数列」而
        有「罄」则「零」
        或有(「缀」于「头」于「尾」)则
            「加」于「头」于(「列求和」于「尾」)也。

「数列」乃「列」于「整数」也。
「数列」者「缀」于「二」于
    (「缀」于「三」于(「缀」于「五」于「罄」))也。

「打印行」于(「整数表示」于(「列求和」于「数列」))。

其出十。同例见列阵。豫

循环之所在

命令之式,常改计数而为循环;函数之式,多循数据而递归。「列求和」 每治一头,复以较短之尾自召,至罄而止。其间无潜藏之序数,亦无越尾之患。

标准库已有 「长度」「态射」「滤」「从左折叠」「从右折叠」 诸列术。然初学者宜亲书一次结构递归;盖诸高阶术,正自反复之递归骨架提炼而来。不识其本,则虽能调用,未明其所以然也。

试策

仿 「列求和」 而作 「列长度」:罄则零,缀则一加尾长。复作 「列乘积」:罄则一,缀则头乘尾积。比二术之文,察其同骨而异者安在。