26

私はF#に関する本を読み終え、本の中で基本的な演習のほとんどを完了しました。現在、言語と関数型プログラミングの概念全般に関するスキルを向上させるための、より高度な演習を探しています。

言語機能を学ぶために特別に設計された演習でF#を練習できる場所や本はありますか?今のところ、私は入門的なものや一般的なプログラミングの問題のWebサイト(たとえば、プロジェクトオイラー)を見つけることができました。

私の目標は、関数型の考え方を学び、パターンマッチング、部分的に適用される関数、モナド/ワークフロー、末尾再帰などに慣れる方法を学ぶことです。機能構造を使って問題を解決する方法を学びたいです。

他の関数型プログラミング言語(Haskellなど)用に設計された優れた演習にも興味があります。

4

4 に答える 4

27

実践的な経験を通して学ぶことを信じるなら、プロジェクトオイラーの問題があなたのための練習になるかもしれません。それらは関数型プログラミングに限定されませんが、それらの数学的性質はF#や他の関数型言語に非常に適しています。さらに別のプロジェクトオイラーシリーズは、F#でプロジェクトオイラーを開始するための優れたリソースです。

私は99の問題を通してPrologを学んでいましたが、人々がLisp、Haskell、OCamlなどもそれらを通して学んでいるのを見ました。これらの演習は、F#を学ぶのに役立つリソースだと思います。それらはうまく設計された問題です。最初のいくつかは、リスト(F#の基本的なデータ構造)を操作する方法を教えています。ロジック、ツリー、グラフに関するより高度な問題は、高度なF#機能を探索する良い機会です。参照用に必要な場合に備えて、 OCamlF#のソリューションのセットを次に示します。

于 2013-02-06T20:32:03.473 に答える
15

私は最初の50のプロジェクトオイラー問題を経験することから始めました。それは素晴らしい最初の学習経験でした。

Stackoverflow F#タグに積極的に参加し始めた直後。他の人から提供された答えを見て、私自身の答えを研究しなければならないことは非常に教育的でした(あなたは彼らが教えることによって学ぶことについて何を言っているか知っています、それは本当です)。

それから、私の最大の学習経験は、F#でのオープンソースプロジェクトの作業から得られました。つまり、 FsEyeUnquoteです。これらのアイデアは両方とも、F#での私の経験を振り返り、F#エコシステムを充実させるためにどのような機会が存在するかを確認することから生まれました。FsEyeの場合、それはFSIエクスペリエンスを強化していました。Unquoteの場合、独自のF#機能を利用していました。真面目なプロジェクトで経験を積むことによるこれらの2つの学習は、F#の深い理解とスキルのポイントに私を本当に導いたものでした。

于 2013-02-06T21:03:44.557 に答える
7

tryfsharp.orgは、F#を学習するための優れたサイトです。チュートリアルは、スキルレベルと問題ドメインごとに分類されています。それはまさにあなたが探しているものかもしれません。

于 2013-02-06T20:21:40.463 に答える
4

HackerRankは、アルゴリズムの課題を提供します。関数型プログラミングに関するセクション全体があり、ソリューションを作成するときに、選択する言語としてF#を選択できます。

関数型プログラミングでは、再帰、関数型ストラクター、パーサーなど、さまざまなタスクグループから選択できます。

于 2015-03-30T00:59:47.940 に答える