Coding in Wenyan

August 3, 2022

夫唐虞之世,結繩而足治,屈指而足算。是時豈料百代之後,計算機械之巧,精於公輸之木鳶,善於武侯之流馬;程式語言之多,繁若天官之星宿,奇勝山經之走獸。鼠蟹鑽魚,或以速稱。蛇象駱犀,各爭文采。方知鬼之所以夜哭,天之所以雨粟。然以文言編程者 ,似所未有。此誠非文脈之所以傳,文心之所以保。嗟予小子,遂有斯志。然則數寸之烏絲猶覆於頭,萬卷之素書未破於手;一身長羈於遠邦,兩耳久曠于雅言。然夫文章者吾之所宿好,程式者偶承時人之謬譽。故希孟不慚年少,莊生不望無涯。乃作斯言。 (黃令東)

链接:文言 / wenyan-lang

写了一个力扣爬虫。/ Wrote a LeetCode web scraper.

吾嘗觀「「異步秘術」」之書。
吾嘗觀「「列經」」之書。方悟「遍施」之義。

今有令。

或云「「夫「甲」者,「乙」也」」。
蓋謂「「加「「: 」」於「甲」。加其以「乙」。加其以「「\n」」。」」。

吾有一言。曰「"https://leetcode-cn.com/graphql"」。名之曰「猨翼」。
吾有一言。名之曰「記註」。
吾有一列。名之曰「時政記」。
吾有一數。名之曰「總計」。

吾有一言。曰「"@uWaterloo, @Autodesk\n\n"」。名之曰「任職」。
夫「「Locale」」者,「「Toronto, CA」」也。名之曰「地區」。
夫「「Website」」者,「「kefan.me」」也。名之曰「網站」。
夫「「Email」」者,「「me@kefan.me」」也。名之曰「竹筒」。

吾有一物。名之曰「頭」。其物如是。
  物之「「Content-Type」」者。言曰「「application/json」」。
  物之「「Accept」」者。言曰「「application/json」」。
是謂「頭」之物也。

吾有一物。名之曰「身」。其物如是。
  物之「「query」」者。言曰「「query userQuestionProgress($userSlug: String!) {\n userProfileUserQuestionProgress(userSlug: $userSlug) {\n numAcceptedQuestions {\n difficulty\n count\n }\n }\n }」」。
  物之「「variables」」者。數曰「0」。
是謂「身」之物也。

吾有一物。名之曰「名」。其物如是。
  物之「「userSlug」」者。言曰「「dkf-a」」。
是謂「名」之物也。

吾有一物。名之曰「结构体」。其物如是。
  物之「「method」」者。言曰「「POST」」。
  物之「「headers」」者。數曰「0」。
  物之「「body」」者。數曰「0」。
是謂「结构体」之物也。

昔之「身」之「「variables」」者。今名是矣。
施「JSON.stringify」於「身」。名之曰「身」
昔之「结构体」之「「headers」」者。今頭是矣。
昔之「结构体」之「「body」」者。今身是矣。

注曰。「「獲物術欲行之體備矣」」。

吾有一術名之曰「誌之」。欲行是術。必先得一物。曰「甲」。是術曰。
  夫「甲」書之。
是謂「誌之」之術也。

吾有一術名之曰「處理」。欲行是術。必先得一物。曰「甲」。是術曰。
  昔之「記註」者。今「甲」是矣。
是謂「處理」之術也。

吾有一術名之曰「獲物」。欲行是術。必先得二言。曰「源」。曰「體」。一術。曰「理」。行是術以俟其畢。是術曰。
  施「(x=>y=>z=>require("node-fetch").default(x, y).then(e=>e.json()).then(z))」於「源」於「體」於「理」。名之曰「物」。
  乃得「物」。
是謂「獲物」之術也。

施「獲物」於「猨翼」於「结构体」於「處理」。以俟其畢。名之曰「獲物令」。

昔之「記註」者。今「記註」之「「data」」是矣。
昔之「記註」者。今「記註」之「「userProfileUserQuestionProgress」」是矣。
昔之「記註」者。今「記註」之「「numAcceptedQuestions」」是矣。

凡「記註」中之「考」。
  昔之「考」者。今「考」之「「count」」是矣。

  充「時政記」以「考」。

  加「總計」於「考」。名之曰「得數」。
  昔之「總計」者。今「得數」是矣。
云云。

夫「時政記」之一。名之曰「下策」。
夫「時政記」之二。名之曰「中策」。
夫「時政記」之三。名之曰「上策」。

夫「「Leetcode」」者,「總計」也。名之曰「總策考」。
夫「「Easy」」者,「下策」也。名之曰「下策考」。
夫「「Medium」」者,「中策」也。名之曰「中策考」。
夫「「Hard」」者,「上策」也。名之曰「上策考」。

銜「「```\n」」以「任職」。以「地區」。以「網站」。以「竹筒」。以「總策考」。以「下策考」。以「中策考」。以「上策考」。以「「```\n」」。名之曰「總錄」。

吾有一言。曰「總錄」。書之。

吾有一術名之曰「如是我聞」。欲行是術。必先得一言。曰「囑」。是術曰。
  施「(x=>require("fs").writeFileSync("README.md", x, () => {}))」於「囑」。
是謂「如是我聞」之術也。

施「如是我聞」於「總錄」。名之曰「如是我聞令」。

行之。

中文编程不能说是任重道远吧,至少也可以说是走投无路。