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

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

13
時間関数は関数型プログラミングにどのように存在できますか?
私は関数型プログラミングについてあまり知らないことを認めざるを得ません。私はそれをあちこちから読んだので、関数型プログラミングでは、関数が何度呼び出されても、同じ入力に対して同じ関数が同じ出力を返すことがわかりました。これは、関数式に含まれる入力パラメーターの同じ値に対して同じ出力に評価される数学関数とまったく同じです。 たとえば、次のことを考慮してください。 f(x,y) = x*x + y; // It is a mathematical function 何回使ってf(10,4)もその価値は常にあります104。そのため、記述した場所はどこでも、式全体の値を変更せずに、でf(10,4)置き換えることができます104。このプロパティは、式の参照透過性と呼ばれます。 ウィキペディアが言うように(リンク)、 逆に、関数コードでは、関数の出力値は関数に入力された引数にのみ依存するため、引数xに対して同じ値で関数fを2回呼び出すと、同じ結果f(x)が両方生成されます。 (現在の時間を返す)時間関数は関数型プログラミングに存在できますか? はいの場合、どのようにして存在できますか?関数型プログラミングの原則に違反していませんか?これは、関数型プログラミングの特性の1つである参照の透過性に特に違反しています(正しく理解していれば)。 または、いいえの場合、関数型プログラミングの現在の時刻をどのように知ることができますか?

15
機能的なGUIプログラミングは可能ですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 2年前休業。 最近FPバグを見つけて(Haskellを学ぼうとしている)、これまでに見たもの(ファーストクラスの関数、遅延評価、その他すべての利点)に本当に感動しました。私はまだ専門家ではありませんが、基本的なアルゴリズムを強制的に実行するよりも「機能的に」推論する方が簡単だと気づき始めています(また、必要なところに戻るのに苦労しています)。 ただし、現在のFPが横ばいに見えるのは、GUIプログラミングです。Haskellのアプローチは、命令型のGUIツールキット(GTK +やwxWidgetsなど)をラップし、「do」ブロックを使用して命令型のスタイルをシミュレートするようです。私はF#を使用していませんが、.NETクラスでOOPを使用して同様のことを行うと私は理解しています。明らかに、これには十分な理由があります。現在のGUIプログラミングはすべてIOと副作用に関するものであるため、純粋な関数型プログラミングは現在のほとんどのフレームワークでは不可能です。 私の質問は、GUIプログラミングへの機能的アプローチを持つことは可能ですか?これが実際にどのように見えるか想像できません。このようなことを試みる実験的またはその他のフレームワーク(または関数型言語用にゼロから設計されたフレームワーク)を知っている人はいますか?それとも、GUIパーツにOOPを使用し、ロジックにFPを使用する、ハイブリッドアプローチのみを使用するソリューションですか?(私は好奇心から求めているだけです。FPは「未来」だと思いたいのですが、GUIプログラミングはかなり大きな穴のように思えます。)

9
F#の使用がC#よりも適切な領域はどこですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 この質問を改善する ここ数年でF#は、OCaml、ML、Haskellで取り入れられた多くのアイデアを採用して、Microsoftが完全にサポートする言語の1つに進化しました。 過去数年にわたって、C#は、LINQ(リスト内包表記)、ラムダ、クロージャ、匿名デリゲートなど、より多くの関数型言語機能を導入することにより、その汎用機能を拡張してきました... C#がこれらの関数型機能を採用し、F#の分類法が不純な関数型言語であるとすると(必要に応じて、フレームワークライブラリにアクセスしたり、関数が呼び出されたときに共有状態を変更したりできます)、2つの言語には強い類似点があります独自の極性の反対の主な強調。 これら2つの言語を本番のポリグロットプログラムで採用している成功したモデルと、過去1年以内にF#で作成した本番ソフトウェア(Webアプリ、クライアントアプリ、サーバーアプリ)の領域にも興味があります。 C#で記述されています。
210 c#  f# 

3
F#の概要[終了]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 5年前休業。 この質問を改善する F#プログラミングを始めるにはどうすればよいですか? 言語を学習するための、または他の言語に対するその利点のいくつかについて学ぶための、優れたスターターサンプルは何ですか? どのようなツールが必要ですか(例:Windows、Visual Studioなど)?
139 f# 

5
HaskellとF#の主な違いは何ですか?[閉まっている]
クローズ。この質問はもっと焦点を合わせる必要があります。現在、回答を受け付けていません。 6年前に閉鎖されました。 ロックされています。この質問とその回答は、質問がトピックから外れているが歴史的に重要であるため、ロックされています。現在、新しい回答ややり取りは受け付けていません。 F#とHaskellの比較をインターネットで検索しましたが、本当に決定的なものは見つかりませんでした。主な違いは何ですか?なぜ私はどちらかを選択したいのですか?

1
なぜこのF#コードはとても遅いのですか?
C#とF#のLevenshtein実装。C#バージョンは、約1500文字の2つの文字列で10倍高速です。C#:69ミリ秒、F#867ミリ秒。どうして?私が知る限り、彼らはまったく同じことをしますか?それがリリースビルドかデバッグビルドかは関係ありません。 編集:編集距離の実装を特に探している人がここに来ると、壊れます。作業コードはこちらです。 C#: private static int min3(int a, int b, int c) { return Math.Min(Math.Min(a, b), c); } public static int EditDistance(string m, string n) { var d1 = new int[n.Length]; for (int x = 0; x < d1.Length; x++) d1[x] = x; var d0 = new int[n.Length]; for(int i …
127 c#  performance  f#  inline 

5
F#のOCamlへの変更[終了]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 4年前休業。 この質問を改善する F#はOCamlから派生していますが、欠落または追加されている主要なアイテムは何ですか?具体的には、OCamlの学習に利用できるリソースがF#を学びたい人にも役立つかどうかに興味があります。
126 f#  ocaml  functor 

4
フォールドとリデュースの違いは?
F#を学習しようとしましたが、フォールドとリデュースを区別しようとすると混乱しました。Foldも同じように見えますが、追加のパラメーターを受け取ります。これらの2つの機能が存在する正当な理由はありますか、それとも背景が異なる人々に対応するためにありますか?(例:文字列およびC#の文字列) これは、サンプルからコピーしたコードスニペットです。 let sumAList list = List.reduce (fun acc elem -> acc + elem) list let sumAFoldingList list = List.fold (fun acc elem -> acc + elem) 0 list printfn "Are these two the same? %A " (sumAList [2; 4; 10] = sumAFoldingList [2; 4; 10])


4
F#とC#の両方から使用するF#ライブラリを設計するための最良のアプローチ
F#でライブラリを設計しようとしています。ライブラリは、F#とC#の両方から使用できるようにする必要があります。 そして、これは私が少し行き詰まっているところです。私はそれをF#フレンドリーにすることも、C#フレンドリーにすることもできますが、問題は両方に対してフレンドリーにする方法です。 例を示します。F#に次の関数があるとします。 let compose (f: 'T -> 'TResult) (a : 'TResult -> unit) = f >> a これはF#から完全に使用できます。 let useComposeInFsharp() = let composite = compose (fun item -> item.ToString) (fun item -> printfn "%A" item) composite "foo" composite "bar" C#では、compose関数には次のシグネチャがあります。 FSharpFunc<T, Unit> compose<T, TResult>(FSharpFunc<T, TResult> f, FSharpFunc<TResult, Unit> a); …
113 c#  f# 

7
F#開発と単体テスト?
私はF#を使い始めました。これは私の最初の関数型言語です。私はC#で準独占的に作業しており、F#でコードの記述方法を再考する方法をたくさん楽しんでいます。私が少し混乱していると思う1つの側面は、コードを書くプロセスの変更です。私はC#で何年もTDDを使用してきましたが、自分がどこにいるのかを知るための単体テストがあると本当に感謝しています。 これまでのところ、F#での私のプロセスは、いくつかの関数を記述し、それらが機能することを「合理的に」確認できるまで対話型コンソールで遊んで、調整して組み合わせることでした。これはオイラープロジェクトのような小規模な問題ではうまく機能しますが、そのように大きなものを構築することは想像できません。 人々はどのようにユニットテストに取り組み、F#プログラムのテストスイートを構築しますか?TDDに相当するものはありますか?ご意見やご感想をお寄せください。

1
LinuxでのMbUnitは、F#プロジェクト内で使用されますか?
gallio-usersリストでこれを尋ねてみましたが、質問は表示されませんでした(Googleグループは投稿が成功したと言っています)。私はメールをあまり読んでいない人によってリストが管理されているのではないかと思います:-) SOにはGallioとMbUnitの両方のタグがあるので、ここで質問する価値があると思いました。 私はMbUnitフロントページが彼らがモノ互換性を維持することに熱心であると述べているのを見ます。Linuxで動作しないというガリオユーザーに関する 1年以上前の投稿もあります。 Parallelizable属性を削除すると、テストしたいプロジェクトがMonoで問題なくコンパイルされます。GallioLinuxでコントロールパネルを起動できますが、IcarusやEcho は起動できません。 MbUnitLinuxでテストを実行する方法はありますか?コマンドライン(などGallio.Echo)を使用し、Monodevelopを必要としないものは特に役立ちます。
104 ubuntu  f#  mono  mbunit  gallio 

6
Ocaml / F#の関数がデフォルトで再帰的でないのはなぜですか?
F#およびOcaml(およびおそらく他の言語)の関数がデフォルトで再帰的でないのはなぜですか? 言い換えると、なぜ言語設計者は、次のrecような宣言を明示的に入力させるのが良い考えだと判断したのですか。 let rec foo ... = ... デフォルトで関数の再帰機能を提供しないのですか?なぜ明示的なrec構成が必要なのですか?
104 f#  recursion  ocaml 

6
現実世界で関数型プログラミングを使用するにはどうすればよいですか?[閉まっている]
休業。この質問はもっと焦点を合わせる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 5年前に閉鎖。 この質問を改善する 関数型言語は、状態を排除することでバグを回避するだけでなく、スレッド数を気にすることなく簡単に自動的に並列化できるため、優れています。 しかし、Win32開発者として、アプリケーションの一部のDLLにHaskellを使用できますか?もしそうした場合、自動的に利用される本当の利点はありますか?もしそうなら、私にこの利点を与えるもの、コンパイラ? F#は、複数のコアとCPUにまたがって作成した関数を自動的に並列化しますか?タスクマネージャーのスレッド数が増えるのを見たことはありますか? 基本的に私の質問は、どのようにHaskellを実用的な方法で使い始めることができるか、そして私が実際に使用するといくつかの利点が得られるかどうかです。

10
Haskellの構成(。)とF#のパイプ転送演算子(|>)
F#では、パイプ転送演算子の使用|>がかなり一般的です。ただし、Haskellでは(.)、関数の構成、が使用されているのを見ただけです。私はそれらが関連していることを理解していますが、パイプフォワードがHaskellで使用されていないという言語上の理由はありますか、それとも何か他のものですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.