F# ドキュメント翻訳向上委員会(仮)を始めました

趣味のOCaml – F# 日本語ドキュメント
http://d.hatena.ne.jp/taka-island/20100424/1272096524

なところで、コメントを書きましたが、MSDNライブラリの Visual F# の翻訳がアレなので、wiki を立てました。

MSDN – Visual F#
http://msdn.microsoft.com/ja-jp/library/dd233154%28v=VS.100%29.aspx

F# 日本語ドキュメント Wiki
http://moonmile.net/fsdoc/

# Wiki のほうは、もう少し目的が明確な名前にするかな?

このあたりの主旨/流れとしては、

  1. Visual Studio 2010 から F# と呼ばれる関数言語が導入された。
  2. F# は OCaml の方言である。
  3. F# のドキュメントは主に英語で、日本語はほとんどない。
  4. F# に関するブログも数か所しかない(盛り上がりに欠ける)。

なところで、一方で関数言語としては、Haskell や Scala があるのですが、まあ、個人的に .NET系を触る機会が多いので、Visual F# です。

# そう言えば、「Visual F#」となっているけど、現状、Visual Studio 2010 では、F# の Windows アプリケーションのプロジェクトテンプレートがありません。なので、「Visual」を冠するのは、いつわりですよね~。まあ、手打ちでがしがしやるか、UI を C# で作るのがベターです。

さて、わからんときは英語を読む。日本語の先行ブログを読む、でもいいんですが、ちょっと「オブジェクト指向脳」の方には、かなりハマります(悪い意味で)。きちんと、関数言語の意図がわかっていないと、forループを連発してしまうコードを書きます。

まあ、それでもいいんですが、どうせならば、最初の関数言語の意図とは何だったのか?を抑えて、勉強なり翻訳なりをしたいですよね。

なので、

「関数プログラミング」P.バード、P.ワドラー
http://www.amazon.co.jp/dp/4764901811

を買いました(苦笑)。

これは大学の教科書に使うようなものなのですが、出版が1991年になっています。

原著を見ると、

http://www.amazon.com/dp/0134841891

1988年に出版されています。

C++の発祥が1983年、Modula-2が1978年頃なので、オブジェクト指向とほぼ同時期に発想されているんですね。

# 元ネタは、Lisp だろうから、もっと前なんだろうけど。

そうなると、F# や OCaml を学ぶ時には、関数言語 → オブジェクト指向 の流れで味付けをしいと駄目なわけで、このあたりがずれてしまうと、.NET で関数言語がメインとして使えるメリットが薄れてしまうのです。

逆な言い方をすれば、LINQ は関数言語の良いところを取り入れていますが、

  1. オブジェクト指向として C# を学ぶ → 味付けとして LINQ を学ぶ。
  2. データアクセス言語として LINQ を学ぶ → オブジェクト指向として C# を学ぶ。

のように、2のほうでは相当違和感があるわけです。普通は1の方法で学びます。

 

ここで、何でここに至るのかと言うと、実は2週間ほどF#を弄ってみたわけです。タプルやらリストやら、Lispを知っているので、このあたりはなんとかなんですが、どうもその後はオブジェクト指向に引っ張られるんですよね。OCaml や Haskell のサイトを見て、似た関数を作ろうとおもうけど、私にとっては、C# で書いたほうが楽、ってな感じで、どーしようかなぁ、ってな感じだったのです。

それで仕方がない。初心に帰って勉強するか、ってな具合になって池袋のジュンク堂へ。他の関数言語をちらちら見て、F#の洋書を手にとって、そして目についたのが「関数プログラミング」です。ぱらぱら見て、数式が出てくるのでこれならば良さそう(関数言語=数学で使う、という知識はあったので)、ってんで1階レジへれっつらごー!(死語w)。

レジで「4,400円になります」って言葉に「うっ」ってなりましたが、仕方がない買う、ってなもんです。

1ヵ月間勉強したんですが、これが面白い。抜群に面白いし、どうして関数言語が生まれるのか、がびっしりと書いてあります。いや、実際のところは OCaml や Haskell よりも前に書かれていて、F# なんて影も形もありません。付録には Miranda というプログラム言語の例があります。

まあ、そんな訳で、F# の用語を、

  • 一般的な関数言語の用語に統一
  • OCaml の用語と統一

とするなら、やぶさかではない、って具合です(偉そう…)。

カテゴリー: 開発 パーマリンク

F# ドキュメント翻訳向上委員会(仮)を始めました への1件のコメント

  1. バッグ 革 のコメント:

    サマンサ ディズニー 財布 バッグ 革 http://www.bagsorain.info/

コメントは停止中です。