我已許久沒用中文寫計算科學方面的主題,發現許多辭彙都沒有、或不知道中譯。附表是本部落格暫時使用的翻譯,可能仍會變動。如有更好的譯法或已成慣例的翻譯,歡迎通知我或和我討論。
- 「編程」這詞似乎仍以大陸使用較多。台灣較常用的稱呼是「程式設計」。但若把 “functional programming” 翻成「函數(式)程式設計」似乎又太冗長。台灣的大學若開 FP 課程,習慣的課名是「函數語言」,但寫作上如果要談的是 FP 這個典範,要把句型改成指涉函數「語言」總是很不便。本站目前把 FP 譯成「函數編程」,其他時候仍說「程式設計」。以後再視我能不能習慣「編程」這詞而定…
- Continuation 的專家單中杰一次聊到不知該如何翻譯這個字。「繼續」是動詞,我隨口說,中文裡好像把動詞的兩個字轉過來就變成名詞,比如說洗筆的東西叫做「筆洗」… 這個翻譯就意外地產生了。:)
- Evaluation 一般譯成「評估」,日文譯成「評價」。個人感覺兩者都是 A 做了某工作,B 去評估或評價它。但 evaluation 是電腦自己在工作把值算出來。目前暫用另一個我見過的翻譯:「求值」。
- 侯捷建議把 lazy 譯為「緩式」,eager 譯為「急式」。這裡也這麼做。另外也見過「惰式」的翻譯。日文翻譯成「延遲」和「先行」。
- Fold 在日文譯做疊込み(或著只用平假名寫成たたみ込み),這詞似乎同時有折和疊的意思。這裡翻成「摺疊」。我不確定「摺疊」和「折疊」意思差多少。
- 濾過 (filter), 參照透明性 (referential transparency), 走查 (scan), 綴合 (zip) 等翻譯都參考武市正人在 Bird & Wadler 的 Introduction to Functional Programming 日文譯本中的翻譯。「濾過」剛好也是將過濾反過來成為名詞。我覺得 zip 譯為綴合很漂亮,但這麼一來不知道 unzip 要怎麼翻了。如果有俗成的中文翻譯請告訴我。
- 將 dependent type 譯成依值型別是 Josh Ko 的建議。另外見過的翻譯是「依存型別」。我想「依存」兩字中「存」已經成為贅字,換成有較多資訊的「依值」是個好主意。
abstract data type | 抽象資料型別 |
aliasing | 別名 |
assertion | 斷言 |
breadth-first | 先寬度 |
call-by-name | 傳名呼叫 |
compiler | 編譯器 |
computing science | 計算科學 |
continuation | 續繼 |
data abstraction | 資料抽象化 |
dependent type | 依值型別 |
eager evaluation | 急式求值 |
evaluation | 求值 |
exception | 例外 |
existential type | 既存型別 |
filter | 濾過 |
fold | 摺疊 |
functional programming | 函數編程 |
fusion | 融合 |
higher-order function | 高次函數 |
invariant | 不變量 |
lazy evaluation | 緩式求值 |
list | 串列 |
map | 映射 |
monad | 單子 |
non-determinism | 非確定性 |
parametric polymorphism | 參數化多型 |
polymorphism | 多型 |
precondition | 前提 |
programming | 程式設計 |
programmer | 程式員 |
referential transparency | 參照透明性 |
scan | 走查 |
stream | 串流 |
strict(ness) | 正格性 |
type | 型別 |
unfold | 展開 |
zip | 綴合 |