漢文風プログラミング言語
今日のネットニュースで流れてきました。作者の恐るべき実力に敬服!
言語としては代入が面倒で糞w
コメントが欄外注になるのは実にいい。すべての言語で、整形文はこういう感じに綺麗にして欲しい。入力は ASCII でいいが。
オンライン実行環境あり。
http://wenyan-lang.lingdong.works/ide.html
分割数プログラムを漢文風に
参考
var pp = function (n, m) { if (n == 0) {return 1}; if (m == 1) {return 1}; if (n <= 0) {return 0}; if (m <= 0) {return 0}; return pp(n - m, m) + pp(n, m - 1); } var partition = function (n) { return pp(n, n) }; for(i = 1; i < 11; i++) { console.log(partition(i)); };
ソース・プログラム
吾有一術。名之曰「制限分割」。欲行是術。必先得二數。曰「甲」。曰「乙」。乃行是術曰。 若「甲」等於零者。乃得一也。 若「乙」等於一者。乃得一也。 若「甲」小於零者。乃得零也。 若「乙」小於一者。乃得零也。 減「甲」以「乙」。名之曰「丙」。 減「乙」以一。名之曰「丁」。 施「制限分割」於「丙」。於「乙」。名之曰「戊」。 施「制限分割」於「甲」。於「丁」。名之曰「己」。 加「戊」以「己」。名之曰「庚」 乃得「庚」 是謂「制限分割」之術也。 吾有一術。名之曰「分割」。欲行是術。必先得一數。曰「甲」。乃行是術曰。 施「制限分割」於「甲」。於「甲」。名之曰「乙」。 乃得「乙」 是謂「分割」之術也。 吾有一數。曰四十。名之曰「甲」。 有數一。名之曰「乙」。恆為是。若「乙」大於「甲」者乃止也。 施「分割」於「乙」。名之曰「丙」。 吾有五言。曰「「 分割数 」」。曰「乙」。曰「「 是 」」。曰「丙」。曰「「 焉。」」。書之。 加「乙」以一。昔之「乙」者。今其是矣。 云云。
書き下し文(テキトーw)
吾に一つ術あり。これを名付けて制限分割という。この術を行わんと欲すれば、必ずやまず二数を得よ。甲といい乙という。 すなわちこの術を行いて曰く。
もし甲の零に等しきは、すなわち一を得るなり。 もし乙の一に等しきは、すなわち一を得るなり。 もし甲の零より小さきは、すなわち零を得るなり。 もし乙の一より小さきは、すなわち零を得るなり。
甲を減ずるに乙を以てす。これを名付けて丙という。 乙を減ずるに一を以てす。これを名付けて丁という。 制限分割に施すに、丙に、乙においてす。名付けてこれを戊という。 制限分割に施すに、甲に、丁においてす。名付けてこれを己という。 戊に加うるに己を以てす。これを名付けて庚という。 すなわち庚を得る。
これを制限分割の術と謂うなり。
吾に一つ術あり。これを名付けて分割という。この術を行わんと欲すれば、必ずやまず一数を得よ。甲という。すなわちこの術を行いて曰く。
制限分割に施すに、甲に、甲においてす。名付けてこれを乙という。 すなわち乙を得る。
これを分割の術と謂うなり。
吾に一つの数あり。四十という。これを名付けて甲という。
数の一なるあり。これを名付けて乙という。つねに是となす。もし乙の甲より大なればすなわち止む。
分割に施すに乙においてす。これを名付けて丙という。 吾に五言あり。曰く「 分割数 」、曰く乙、曰く「 是 」、曰く丙、曰く「 焉。」。これを書せ。 乙に加うるに一を以てす。昔の乙は、今はそれこれなり。
うんぬん。
実行結果
OUTPUT 分割数 一 是 一 焉。 分割数 二 是 二 焉。 分割数 三 是 三 焉。 分割数 四 是 五 焉。 分割数 五 是 七 焉。 分割数 六 是 一十一 焉。 分割数 七 是 一十五 焉。 分割数 八 是 二十二 焉。 分割数 九 是 三十 焉。 分割数 一十 是 四十二 焉。 分割数 一十一 是 五十六 焉。 分割数 一十二 是 七十七 焉。 分割数 一十三 是 一百零一 焉。 分割数 一十四 是 一百三十五 焉。 分割数 一十五 是 一百七十六 焉。 分割数 一十六 是 二百三十一 焉。 分割数 一十七 是 二百九十七 焉。 分割数 一十八 是 三百八十五 焉。 分割数 一十九 是 四百九十 焉。 分割数 二十 是 六百二十七 焉。 分割数 二十一 是 七百九十二 焉。 分割数 二十二 是 一千零二 焉。 分割数 二十三 是 一千二百五十五 焉。 分割数 二十四 是 一千五百七十五 焉。 分割数 二十五 是 一千九百五十八 焉。 分割数 二十六 是 二千四百三十六 焉。 分割数 二十七 是 三千零一十 焉。 分割数 二十八 是 三千七百一十八 焉。 分割数 二十九 是 四千五百六十五 焉。 分割数 三十 是 五千六百零四 焉。 分割数 三十一 是 六千八百四十二 焉。 分割数 三十二 是 八千三百四十九 焉。 分割数 三十三 是 一萬零一百四十三 焉。 分割数 三十四 是 一萬二千三百一十 焉。 分割数 三十五 是 一萬四千八百八十三 焉。 分割数 三十六 是 一萬七千九百七十七 焉。 分割数 三十七 是 二萬一千六百三十七 焉。 分割数 三十八 是 二萬六千零一十五 焉。 分割数 三十九 是 三萬一千一百八十五 焉。 分割数 四十 是 三萬七千三百三十八 焉。