LIMITATIONS
古典漢語模組限制 / ClassicalChinese Module Limitations
概要 / Summary
本模組為 Raku 提供古典漢語函數和運算符,但由於 Raku 當前限制(issue #2404),無法修改語言的基礎語法。
This module provides Classical Chinese functions and operators for Raku, but cannot modify the fundamental language syntax due to current Raku limitations (issue #2404).
可用功能 / What Works
✅ 翻譯函數 / Translated Functions
超過 200 個函數翻譯為古典漢語
所有數學、字符、列表、輸入輸出等函數
範例:
言("天下大同"); # say "世界大同" my $和 = 求和([1,2,3,4,5]); # sum([1,2,3,4,5]) my $文字 = 大寫("古典"); # uc("古典")
✅ 自定義運算符 / Custom Operators
算術運算符:
加、減、乘、除、餘、冪比較運算符:
等、不等、大於、小於、大於等於、小於等於邏輯運算符:
和、且、或、非字符運算符:
連接字符、重複字符範圍運算符:
至、至前賦值運算符:
加等、減等、乘等、除等
重要注意:運算符需要括號來確保優先級:
# 正確
my $結果 = (5 加 3 乘 2); # (5+3)*2 = 16
my $結果 = (5 加 (3 乘 2)); # 5+(3*2) = 11
# 在條件中
若(($年齡 大於等於 18), { ... });✅ 常數 / Constants
真 # True
偽 # False
無 # Nil
無窮 # Inf
圓周率 / π # 3.14159...
自然常數 / e # 2.71828...✅ 控制流函數 / Control Flow Functions
雖然不能使用古典漢語關鍵字,但提供了函數形式:
# 條件判斷
若(
{ $年齡 大於等於 18 },
{ 言("成年") },
{ 言("未成年") }
);
# 循環
當(
{ $i 小於 10 },
{
言($i);
$i++;
}
);
# 遍歷
遍歷(@數列, {
言("數字:$_");
});
# 條件匹配
依據($值, {
遇("甲", { 言("是甲") });
遇("乙", { 言("是乙") });
預設({ 言("其他") });
});不可用功能 / What Does NOT Work
❌ 語言關鍵字 / Language Keywords
無法翻譯控制結構關鍵字:
# 無法使用:
若 ($x > 5) { ... } # if
當 ($x < 10) { ... } # while
為 @列表 { ... } # for
# 必須使用原始語法:
if ($x > 5) { ... }
while ($x < 10) { ... }
for @列表 { ... }❌ 變數宣告 / Variable Declaration
# 無法使用:
吾 $變數 = 5; # my
我等 $共享 = 10; # our
# 必須使用:
my $變數 = 5;
our $共享 = 10;❌ 類和方法語法 / Class and Method Syntax
# 無法使用:
類 我類 { ... } # class
法 函數() { ... } # method
# 必須使用:
class 我類 { ... }
method 函數() { ... }❌ 語句修飾符 / Statement Modifiers
# 無法使用:
言("你好") 若 $條件; # if modifier
# 必須使用:
言("你好") if $條件;技術原因 / Technical Reason
Rakudo(Raku 實現)存在 issue #2404,阻止模組完全修改語言語法。子語言(slangs)目前無法:
改變保留關鍵字
修改宣告語法
改變基本控制結構
但是,它們可以:
定義新函數
創建自定義運算符
導出符號到命名空間
替代方案 / Workarounds
控制結構 / For Control Structures
使用提供的函數和區塊:
# 替代 if/while 語法
若($x 大於 5, { 言("大") }, { 言("小或等") });
當({ $x 小於 10 }, {
言($x);
$x++;
});
遍歷([1,2,3,4,5], -> $n {
言("數字:$n");
});
# 替代 given/when
依據($值, {
遇("紅", { 言("紅色") });
遇("綠", { 言("綠色") });
預設({ 言("其他顏色") });
});改善可讀性 / For Better Readability
使用古典漢語註釋:
# 若使用者已成年
if ($年齡 大於等於 18) {
言("已成年");
}
# 為每個學生進行處理
for @學生 -> $學生 {
言("處理:$學生");
}文學化程式設計 / Literary Programming
利用古典漢語的表達特色:
# 定義文學化的函數名
sub 觀其所由($行為) { 分析行為($行為) }
sub 察其所安($狀態) { 檢查狀態($狀態) }
# 使用古典句式
my $君子 = 檢查品德($人物);
若(
{ $君子 },
{ 言("君子也") },
{ 言("非君子也") }
);文化特色 / Cultural Features
詩詞程式設計 / Poetic Programming
# 詩詞風格的變數命名
my $明月 = 獲取月相();
my $清風 = 獲取風向();
my @山河 = 獲取地理();
# 文學化的邏輯表達
若(
{ ($明月 等 "滿月") 和 ($清風 等 "徐來") },
{ 言("良辰美景") },
{ 言("時機未至") }
);哲學化表達 / Philosophical Expression
# 道家風格
my $道 = 無;
當({ 非 定義($道) }, {
$道 = 自然演化();
});
# 儒家風格
sub 修身齊家治國平天下(@步驟) {
遍歷(@步驟, -> $步驟 {
實踐($步驟);
若({ 完成($步驟) }, { 進入下階段() });
});
}未來狀態 / Future Status
當 Rakudo issue #2404 解決後,將可能實現:
翻譯所有關鍵字
創建完全古典漢語語法
修改語言語法
目前,本模組在現有限制內提供最大可能的功能。
建議 / Recommendation
教育用途 / For Educational Use
此模組非常適合:
向中文使用者教授程式設計
展示概念而無語言障礙
創建更易理解的範例
傳統文化與現代技術結合
藝術創作 / For Artistic Creation
數位詩詞創作輔助
古典文學分析工具
文化算法實現
哲學概念程式化
研究用途 / For Research
古典文本數位化處理
傳統文化數據分析
中文自然語言處理
跨文化程式設計研究
生產環境 / For Production
對於生產專案,建議:
使用古典漢語註釋配合英文程式碼
創建描述性的中文函數名
詳細的中文文檔
團隊內部約定使用規範