L4K ︰ 通往 Python 的道路 ── GvR 語言參考

《三字經》

人之初 性本善 性相近 習相遠 茍不教 性乃遷 教之道 貴以專
昔孟母 擇鄰處 子不學 斷機杼 竇燕山 有義方 教五子 名俱揚
養不教 父之過 教不嚴 師之惰 子不學 非所宜 幼不學 老何為
玉不琢 不成器 人不學 不知義 為人子 方少時 親師友 習禮儀
香九齡 能溫席 孝於親 所當執 融四歲 能讓梨 弟於長 宜先知
首孝弟 次見聞 知某數 識某文 一而十 十而百 百而千 千而萬
三才者 天地人 三光者 日月星 三綱者 君臣義 父子親 夫婦順
曰春夏 曰秋冬 此四時 運不窮 曰南北 曰西東 此四方 應乎中
曰火水 木金土 此五行 本乎數 十干者 甲至癸 十二支 子至亥
曰黃道 日所躔 曰赤道 當中權 赤道下 溫暖極 我中華 在東北
曰江河 曰淮濟 此四瀆 水之紀 曰岱華 嵩恆衡 此五岳 山之名
曰士農 曰工商 此四民 國之良 曰仁義 禮智信 此五常 不容紊
地所生 有草木 此植物 遍水陸 有蟲魚 有鳥獸 此動物 能飛走
稻梁菽 麥黍稷 此六穀 人所食 馬牛羊 雞犬豕 此六畜 人所飼
曰喜怒 曰哀懼 愛惡慾 七情具 青赤黃 及黑白 此五色 目所視
酸苦甘 及辛鹹 此五味 口所含 羶焦香 及腥朽 此五臭 鼻所嗅
匏土革 木石金 絲與竹 乃八音 曰平上 曰去入 此四聲 宜調協
高曾祖 父而身 身而子 子而孫 自子孫 至玄曾 乃九族 人之倫
父子恩 夫婦從 兄則友 弟則恭 長幼序 友與朋 君則敬 臣則忠
此十義 人所同 當順敘 勿違背 斬齊衰 大小功 至緦麻 五服終
禮樂射 御書數 古六藝 今不具 惟書學 人共遵 既識字 講說文
有古文 大小篆 隸草繼 不可亂 若廣學 懼其繁 但略說 能知原
凡訓蒙 須講究 詳訓詁 明句讀 為學者 必有初 小學終 至四書
論語者 二十篇 群弟子 記善言 孟子者 七篇止 講道德 說仁義
作中庸 乃孔伋 中不偏 庸不易 作大學 乃曾子 自修齊 至平治
孝經通 四書熟 如六經 始可讀 詩書易 禮春秋 號六經 當講求
有連山 有歸藏 有周易 三易詳 有典謨 有訓誥 有誓命 書之奧
我周公 作周禮 著六官 存治體 大小戴 註禮記 述聖言 禮樂備
曰國風 曰雅頌 號四詩 當諷詠 詩既亡 春秋作 寓褒貶 別善惡
三傳者 有公羊 有左氏 有穀梁 經既明 方讀子 撮其要 記其事
五子者 有荀揚 文中子 及老莊 經子通 讀諸史 考世系 知終始
自羲農 至皇帝 號三皇 居上世 唐有虞 號二帝 相揖遜 稱盛世
夏有禹 商有湯 周文武 稱三王 夏傳子 家天下 四百載 遷夏社
湯伐夏 國號商 六百載 至紂王 周武王 始誅紂 八百載 最長久
周轍東 王綱墜 逞干戈 尚游說 始春秋 終戰國 五霸強 七雄出
贏秦氏 始兼併 傳二世 楚漢爭 高祖興 和業建 至孝平 王莽篡
光武興 為東漢 四百年 終於獻 魏蜀吳 爭漢鼎 號三國 迄兩晉
宋齊繼 梁陳承 為南朝 都金陵 北元魏 分東西 宇文周 與高齊
迨至隋 一土宇 不再傳 失統緒 唐高祖 起義師 除隋亂 創國基
二十傳 三百載 梁滅亡 國乃改 梁唐晉 及漢周 稱五代 皆有由
炎宋興 受周禪 十八傳 南北混 遼與金 皆稱帝 元滅金 絕宋世
輿圖廣 超前代 九十年 國祚廢 太祖興 國大明 號洪武 都金陵
迨成祖 遷燕京 十六世 至崇禎 權閹肆 寇如林 李闖出 神器焚
清世祖 應景命 靖四方 克大定 由康雍 歷乾嘉 民安富 治績誇
道咸間 變亂起 始英法 擾都鄙 同光後 宣統弱 傳九帝 滿業歿
革命興 廢帝制 立憲法 建民國 古今史 全在茲 載治亂 知興衰
史雖繁 讀有次 史記一 漢書二 後漢三 國志四 兼證經 參通鑑
讀史者 考實錄 通古今 若親目 口而誦 心而惟 朝於斯 夕於斯
昔仲尼 師項橐 古聖賢 尚勤學 趙中令 讀魯論 彼既仕 學且勤
披蒲編 削竹簡 彼無書 且知勉 頭懸梁 錐刺股 彼不教 自勤苦
如囊螢 如映雪 家雖貧 學不輟 如負薪 如掛角 身雖勞 猶苦卓
蘇老全 二十七 始奮發 讀書籍 彼既老 猶悔遲 爾小生 宜早思
若梁灝 八十二 對大廷 魁多士 彼既成 眾稱異 爾小生 宜立志
瑩八歲 能詠詩 泌七歲 能賦碁 彼穎悟 人稱奇 爾幼學 當效之
蔡文姬 能辨琴 謝道韞 能詠吟 彼女子 且聰明 爾男子 當自警
唐劉宴 方七歲 舉神童 作正字 彼雖幼 身已仕 有為者 亦若是
犬守夜 雞司晨 茍不學 何為人 蠶吐絲 蜂釀蜜 人不學 不如物
幼兒學 壯而行 上致君 下澤民 揚名聲 顯父母 光於前 裕於後
人遺子 金滿籯 我教子 惟一經 勤有功 戲無益 戒之哉 宜勉力

 

如果對比

三字經

三字經》是中國的 傳統兒童啟蒙教材,在中國古代經典當中,三字經是最淺顯易懂的讀本之一,歷久不衰。《三字經》取材典故廣範,包括中國五千年傳統文化的文學、歷史、哲學、 天文地理、人倫義理、忠孝節義等等,內容相當豐富。背誦《三字經》的同時,就了解了常識、傳統國學及歷史故事,以及故事內涵中做人做事的道理。[1]

在格式上,三字一句朗朗上口,因其文通俗、順口、易記等特點,使其與《百家姓》、《千字文》、《千家詩》同為中國古代私塾的初級入門課本,合稱「三百千千」。

作者

原典作者

  • 一說是宋代人王應麟。初著傳說為宋朝王應麟,明、清兩代人(如清初康熙年間王相與清末大學問家章太炎)多認定作者是王應麟。其次,從文風看,王應麟的其他著作也多三字句,幾年前 ,在鄞州還出土了王應麟用「三字經」句式作結尾撰寫的廟記。另外,王應麟是一個關心兒童教育的學者,除了《三字經》,他還有六本兒童啟蒙讀物(《詞學指南》、《小學紺珠》、《姓氏急就篇》、《小學諷詠》、《蒙訓》……)。[2]這些都是非常有力的證據。
  • 一說是宋代人區適子。明末清初屈大均在「廣東新語」卷十一中記載:「童蒙所誦三字經乃宋末區適子所撰。適子,順德登洲人 ,字正叔,入元抗節不仕」,認為廣東順德人區適子才是《三字經》的真正作者。
  • 一說是明代人黎貞。清代邵晉涵詩:「讀得貞黎三字訓」,自註 :「《三字經》,南海黎貞撰。」即以為明代黎貞撰。

中國寧波大學文學院教授張如安在《北京大學學報》2009年第二期上發表了《歷史上最早記載〈三字經〉的文獻——〈三字經〉成書於南宋中期新說》一文,判斷《三字經》應成書於南宋紹熙(1190年-1194年)至嘉定(1208年-1224年)年間,其時代要早於王應麟(1223年-1296年)和區適子。而寧波是目前已知的《三字經》最早流傳的地區。

增改作者

原典內容之外,後經章太炎等人多次增改,故三字經內容在「敘史」部份,也已包含民國時期。

 

與後繼者為兒童啟蒙而編修之學語文知綱目的宗旨。

以及於吉多 Guido 機器人程式語言之目的

Guido van Robot Language Reference

【極簡的基本指令字詞】

The Five Primitive Guido van Robot Instructions:

    move
    turnleft
    pickbeeper
    putbeeper
    turnoff

 

【逐行堆壘指令字詞,符合一定留白,形成程式區塊。】

Block Structuring

Each Guido van Robot instruction must be on a separate line. A sequence of one or more Guido van Robot instructions that are all indented the same number of spaces compose a block of code.   <instruction> refers to any of the five primitive instructions above, the conditional branching or iteration instructions below, or a user defined instruction.

    <instruction>
    <instruction>
      ...
    <instruction>

 

【三種條件句選擇程式區塊流程】

Conditional Branching

Conditional branching refers to the ability of a program to alter it’s flow of execution based on the result of the evaluation of a conditional. The three types of conditional branching instructions in Guido van Robot are if and if/else and if/elif/else.   <test> refers to one of the eighteen conditionals below.

    if <test>:
        <block>
    if <test>:
        <block>
    else:
        <block>
    if <test>:
        <block>
    elif <test>:
        <block>
    ...
    elif <test>:
        <block>
    else:
        <block>

 

【十八種內建條件測試】

Conditionals

GvR has eighteen built-in tests that are divided into three groups: the first six are wall tests, the next four are beeper tests, and the last eight are compass tests:

    front_is_clear
    front_is_blocked
    left_is_clear
    left_is_blocked
    right_is_clear
    right_is_blocked

    next_to_a_beeper
    not_next_to_a_beeper
    any_beepers_in_beeper_bag
    no_beepers_in_beeper_bag

    facing_north
    not_facing_north
    facing_south
    not_facing_south
    facing_east
    not_facing_east
    facing_west
    not_facing_west

 

【重複、迴圈程式區塊組織結構】

Iteration

Iteration refers to the ability of a program to repeate an instruction (or block of instructions) over and over until some condition is met. The two types of iteration instructions are the do and while instructions.   <positive_number> must be an integer greater than 0.

    do <positive_number>:
        <block>
    while <test>:
        <block>

 

【定義新的指令功能】

Defining a New Instruction:

New instructions can be created for Guido van Robot using the define statement.   <new_name> can be any sequence of letters or digits as long as it begins with a letter and is not already used as an instruction. Letters for Guido van Robot are A..Z, a..z, and the underscore (_) character. Guido van Robot is case sensitive, so TurnRight, turnright, and turnRight are all different names.

    define <new_name>:
        <block>

 

【正確程式之規定】

Simplest GvR Program

Execution of a GvR program ends with the turnoff instruction. Any program which reaches the end of its instruction sequence without encountering turnoff is considered in error. Thus the simplest GvR program is:

    turnoff

An Example Program

Given the following world:

rightWall world

The following program will make Guido follow the right wall until he encouters a beeper:

    define turnright:
        do 3:
            turnleft

    define follow_right_wall:
        if right_is_clear:
            turnright
            move
        elif front_is_clear:
            move
        else:
            turnleft

    while not_next_to_a_beeper:
        follow_right_wall

    turnoff

 

皆是有所謂擇取安排之作為。

難道果不同於『吉多理念』的耶??

 

220px-PythonProgLogo 1990s-2005

Python 語言的創造者吉多‧范羅蘇姆 Guido van Rossum 先生非常注重『程式風格』!主導著整體 Python 語言之內蘊。一九九四年元月,那時網際網路還盛行用『地鼠』 Gopher 挖掘資訊的時代, Python 1.0 發布。同年七月 Michael McLay (mclay@eeel.nist.gov)
Wed, 29 Jun 94 10:07:42 EDT 寫了一篇

If Guido was hit by a bus? 》 ── 萬一吉多被巴士撞了? ──

的文章,或許促進了 Python 語言的開始標準化。之後 Python 社群開始稱呼 Guido 『生殺決策之慈悲獨裁者BDFL Benevolent dictator for life︰

BDFL is a title given to a small number of open-source software development leaders, typically project founders who retain the final say in disputes or arguments within the community.

無疑的吉多是第一位擁有這個殊榮稱號的第一人。二零零一年三月六日『 Python軟體基金會』 PSF Python Software Foundation 成立,一個月後 Python 2.1 發行,所有的發行版開始使用 PSF 授權。事實上吉多的熱情與睿智,更多的展現在『 Python 改進提案PEPs Python Enhancement Proposals 的發文裡。有關『可讀性』之『程式風格』的論述主要集中在︰

PEP 7 – Style Guide for C Code

PEP 8 – Style Guide for Python Code

也許吉多的理念是︰

程式雖是一時一人之寫作,確有多時多人的閱讀,因此『可讀性』是十分重要的事情。

─── 摘自《Physical computing ︰ python 《補充》︰ IDE 用法 ……