9.10 F# 1.0 -- 機能コアの改善:字下げを認識する構文
2021-09-25 00:00:21
F# 1.0期間中のもう1つの機能追加は、2006年9月23日にリリースされた、字下げを認識する構文の追加[Syme 2006h]です。
F# の字下げを認識する構文オプションは、明示的な言語構文の保守的な拡張です。 どういう意味かと言うと、パーサーにインデントを考慮させることによって
in
や;;
などの特定のトークンを省略できるだけだからです。 これはコードの可読性に驚くべき違いを生む可能性があります。注:この機能は、PythonおよびHaskellによるインデントの使用と考え方は似ています。 なお、この機能の設計および実装手法のスケッチを手伝ってくれた、(Haskellで高名な)Simon Marlowに感謝します。 MSR CambridgeのF# ユーザー全員にも、この機能の詳細を固める手助けをしてくれたことに感謝します。
この機能の起源の一つは、1999頃にDarren Plattが私にPythonコードのサンプルを見せてくれた時(それがPythonを見た最初でした)の私の経験です。
もう一つは、非関数型プログラミングのオーディエンスから「なぜF# は let x = ... in
の in
トークンが必要なのですか」とよく聞かれることです。
私は、これらの余分なトークンの存在がF# の採用可能性を制限する要因であると個人的に判断しました。
この機能はその後のイテレーションによって改良され、2010年のF# 2.0でF# コードのデフォルトになりました。