タグ付けされた質問 「f#」

F#は、.NET用の簡潔で表現力豊かで効率的な機能およびオブジェクト指向言語であり、複雑な問題を解決するための単純なコードの記述に役立ちます。

3
オブジェクト初期化構文
私はF#から始めたばかりで、C#3のようにオブジェクトの初期化を行う構文が見つかりません。 すなわちこれを与えた: public class Person { public DateTime BirthDate { get; set; } public string Name { get; set; } } F#で次のように記述する方法: var p = new Person { Name = "John", BirthDate = DateTime.Now };

8
C#vs F#またはF#vs C#を使用する利点は何ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 ロックされています。この質問とトピックへの回答はロックされています。質問はトピックから外れていますが、歴史的に重要です。現在、新しい回答や相互作用を受け入れていません。 私は、製品の出荷よりもプロトタイピングを行うテクノロジー企業で働いています。C#とF#の違いは何ですか、なぜMSがF#を作成したのか、どのシナリオがC#より優れているのかを尋ねられました。 私はしばらくこの言語を使用しており、F#の優れた機能について簡単に説明できるので気に入っていますが、C#で他の言語を使用する理由を説明する経験がありません。 C#vs F#またはF#vs C#を使用する利点は何ですか?
93 c#  .net  f# 


5
上位の型はいつ役立つのですか?
私はしばらくF#で開発を行っており、気に入っています。しかし、私がF#に存在しないことを知っている流行語の1つは、種類の高い型です。種類の多い資料を読んだことがあり、その定義を理解していると思います。それらがなぜ有用なのか、私にはわかりません。誰かが、F#での回避策を必要とする、ScalaまたはHaskellで種類の高いものが簡単にできる例をいくつか提供できますか?また、これらの例では、種類の高い型がない場合(またはF#で逆の場合)の回避策は何ですか?多分私はそれを回避するのに慣れているので、その機能がないことに気付かないでしょう。 (私は思います)私はmyList |> List.map f、myList |> Seq.map f |> Seq.toListより高い種類の型の代わりに、単純に書くmyList |> map fことができ、それがを返すと思いますList。(それが正しいと仮定して)それは素晴らしいですが、ちょっとささいなことですか?(そして、関数のオーバーロードを許可するだけでそれを行うことはできませんでしたか?)私は通常、Seqとにかく変換し、その後、必要なものに変換できます。繰り返しますが、多分私はそれを回避するのに慣れすぎています。しかし、より種類の高いタイプがキーストロークまたはタイプセーフのいずれかで本当にあなたを救う例はありますか?

1
非同期POSTがWP7とF#で失敗する
私が行うときlet! read = from.AsyncRead bufのF#、そのブロックにし、TCPソケットが死んでいるまで戻りません。どうして?そして、どうすれば修正できますか? そのコード: module StreamUtil open System.IO /// copy from 'from' stream to 'toStream' let (|>>) (from : Stream) (toStream : Stream) = let buf = Array.zeroCreate<byte> 1024 let rec doBlock () = async { let! read = from.AsyncRead buf if read <= 0 then toStream.Flush() return …

8
F#明示的一致と関数構文
あいまいなタイトルについては申し訳ありませんが、この質問の一部は、これら2つの構文スタイルの名前です。 let foo1 x = match x with | 1 -> "one" | _ -> "not one" let foo2 = function | 1 -> "one" | _ -> "not one" 他の部分は、2つの間にどのような違いがあるのか​​、そしていつどちらを使用したいのかということです。
87 syntax  f# 

1
F#の名前空間とモジュールの違いは何ですか?
F#の学習を始めたばかりです(.NETの使用経験はほとんどありません)。おそらく非常に単純な質問です。F#の名前空間とモジュールの違いは何ですか? ありがとう デイブ 編集:答えをありがとうブライアン。それが私が知りたかったことです。明確化:名前空間も開くことができますか(C#usingステートメントと同様)?
85 f#  module  namespaces 


5
F#:変更可能vs.参照
まず、この質問が重複している可能性があることを認めます。私に知らせて。 可変性が必要な状況での一般的な「ベストプラクティス」が何であるかを知りたいです。F#は、このための2つの機能を提供let mutableしているようです。「ほとんどの」言語の変数のように機能するように見えるバインディングと、ref使用するために明示的な逆参照を必要とする参照セル(関数で作成)です。 どちらか一方に「強制」されるケースがいくつかあります。.NET相互運用機能はで可変を使用する傾向が<-あり、ワークフロー計算refでは:=。で使用する必要があります。したがって、これらのケースはかなり明確ですが、これらのシナリオの外で独自の可変変数を作成するときに何をすべきか興味があります。あるスタイルが他のスタイルよりも優れている点は何ですか?(おそらく、実装についてさらに洞察することが役立つでしょう。) ありがとう!
82 f#  mutable 

5
リストではなくF#でシーケンスを使用するのはいつですか?
リストには実際には値が含まれており、シーケンスはのエイリアスであることを理解していますIEnumerable<T>。実際のF#開発では、リストではなくシーケンスをいつ使用する必要がありますか? シーケンスがいつより良くなるかを私が見ることができるいくつかの理由はここにあります: を必要とする他の.NET言語またはライブラリと対話する場合 IEnumerable<T>。 無限のシーケンスを表す必要があります(おそらく実際にはあまり役に立ちません)。 遅延評価が必要です。 他にありますか?
82 list  f# 

4
C#からF#コードを呼び出す
F#とC#で遊んでいますが、C#からF#コードを呼び出したいと思います。 同じソリューションに2つのプロジェクトを配置し、C#コードの参照をF#プロジェクトに追加することで、VisualStudioで逆に機能させることができました。これを行った後、C#コードを呼び出し、デバッグ中にステップスルーすることもできました。 私がやろうとしているのは、F#のC#コードではなく、C#のF#コードです。F#プロジェクトへの参照をC#プロジェクトに追加しましたが、以前のように機能していません。手動で行わなくてもこれが可能かどうか知りたいのですが。
80 c#  interop  f# 

2
F#での入れ子の任意のレベルのリストの合計
私はint任意の入れ子のsのリストの合計を返すF#関数を作成しようとしています。つまり。a list<int>、a list<list<int>>、aで機能しlist<list<list<list<list<list<int>>>>>>ます。 Haskellでは、次のように記述します。 class HasSum a where getSum :: a -> Integer instance HasSum Integer where getSum = id instance HasSum a => HasSum [a] where getSum = sum . map getSum それは私にできるでしょう: list :: a -> [a] list = replicate 6 nestedList :: [[[[[[[[[[Integer]]]]]]]]]] nestedList = list $ …
10 haskell  f# 

1
F#のさまざまな型に対応する `map`関数がたくさんあるのはなぜですか
F#を学習しています。私はHaskellでFPを開始しましたが、これに興味があります。 F#は.NET言語であるためMappable、haskell Functor型クラスと同様に、のようなインターフェイスを宣言する方が合理的であるようです。 しかし、上の図のように、F#関数は分離されており、独自に実装されています。そのようなデザインのデザイン目的は何ですか?私にとっては、Mappable.mapこれを各データ型に導入して実装する方が便利です。
9 .net  f# 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.