エントリー
なぜ必要なのですか?
どうして? たとえば、一般的な開発のため、または単に楽しみのために、そしてその後、F#が単なる知り合いの言語ではないことを確認するために。
それでは、次は何ですか?
そして、おそらく始めます。 F#は、機能的、命令的、オブジェクト指向のパラダイムを組み合わせたOCamlをルーツとするマルチパラダイム言語であり、実際には最大の利点の1つです。 もう1つの利点は、.NET Frameworkとの統合です。 もう1つは、どれだけクールで便利かを長らくペイントせずに、ポイントに移ろうとすることです.3つのパラダイムを使用する機会が得られ、さらに。 多くの問題は、同じC#よりもF#の方がはるかに簡単で短く解決されますが、逆の場合も当てはまります。
素晴らしい、あなたはポイントに近づくと約束したようです。
さて、古典的な紹介を終えたら、古典的なHelloWorldに移りましょう!
printfn "Hello, world!"
はい、それだけです。 印象的? そして私はそうではないので、先に進みましょう。
要点をつかむ
F#の機能部分と、おそらく最も重要なキーワードletから始めます。 奇妙なことに、識別子とその値を決定するのに役立ちます。
let someId = 5 // F# unicode : let = 1
いくつかの注意事項があります。
- 識別子は値がバインドされる名前であり、 変更できません 。識別子は再定義のみ可能です。 ところで、これはF#だけでなく、他のすべての関数型プログラミング言語でも発生します。
- 値は何でも。 関数、定数値、別の識別子、そしてあなたの心が値を返したいと思っているもの
いくつかの例:
// F# let someFloat = 0.5 // - int let someCalculation : int = 2 + 2 // helloWorld let someString = "Hello" let anotherString = ", World" let helloWorld = someString + anotherString
さらに進んで、 機能を感じてみましょう。
let add xy = x + y let someFunc xy = let val = x + y val / y
まず、F#の関数のより抽象的な概念について説明します。
fun xy -> x + y
これは匿名関数、またはラムダ関数です。 引数はxとyであり、演算子->は関数の本体が次であることを示します。 この例では、本体は式x + yであり、戻り値にもなります。 この時点で「ラムダ」に出会ったことがない人にとっては、単に名前がないということを理解するだけで十分です。 F#のすべての関数は、何らかの形で同様の形式で表示されます。たとえば、
let add = fun xy -> x + y
ここで、関数がF#で実際にどのように表されるかを見ることができます。匿名関数は識別子にバインドされています。 上記の例として引用されたのは、単純化された構文です。
私たちの例を考えてみましょう:
let add xy = x + y
ここで、引数のタイプについて推測したいと思います。 実際には、F#は引数のタイプと戻り値を自動的に決定します。この場合、引数が加算演算をサポートしていれば、引数は任意のタイプになります。
let someFunc xy = let val = x + y val / y
ここでは、関数はより複雑な本体を持ち、中間識別子を使用しています。 コードのスコープはindentによって決定されます 。つまり、識別子valはsomeFunc関数の本体内でのみ表示されます。 戻り値はval / yです
結論として、コードで関数を呼び出す方法を示す小さな例を示します。
let add xy = x + y // 2. - , 2.0 let avg xy = add xy / 2. printfn "%A" add 5. 2. // //printfn "%A" add "Hello" ", World!" printfn "%A" avg 2. 10.
-2番目のprintfn呼び出しでエラーが発生するのはなぜですか?
-avg関数がfloat型を返すため。
-なぜfloatを返すのですか?
-xyの加算結果をfloatで除算するため。
-そして、ここに行を追加しようとしたときのエラーがありますか?
-add関数の両方の引数がそれぞれfloat型であるにもかかわらず、floatを返します
-どうして?
-avgがfloatを返すためには、除算演算子の左右のオペランドがfloat型であることが必要です。これはF#が処理するものです。addの引数の型は明示的に指定されていないためです。
さよならは言わないでね
これでF#での短いプレゼンテーションが終了しました。すべてがここに書かれているわけではなく、完全ではなく、欠陥がないわけでもありません。 しかし、誰もがそれを気に入ったら、この投稿の目的はF#の包括的な図を提供することではなく、FPの世界への扉を少し開くことだったので、私はさらに、より詳細に書きます。 。
何を読んだり見たりしますか?
英語が上手な人は、Beginning F#を読むことができます。 名前にもかかわらず、この本はF#とその応用についてかなり深い考えを与えています。
Microsoft Fの紹介#もご覧ください。
また、RIAへのリンク( ApeCoder 'yのおかげ)があり、ブラウザウィンドウでF#Interactiveを直接使用できます。
[ 次の投稿 ]