問題タブ [functional-java]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
99 参照

java - FunctionalJavaアプリは、スタックトレースのストリームでStackOverflowErrorをスローします

FunctionalJavaアプリは、スタックトレースでStreamを使用してStackOverflowErrorをスローしますが、アプリは(一見)ストリームを使用しません。原因は何でしょうか?

0 投票する
2 に答える
195 参照

java - 将来のイベント/Javaクラスの完了時にアクションが発生するパターンの名前

現在、次のように機能するPromiseというクラスがあります。

  1. それは将来の価値を保持します
  2. 将来の値をパラメーターとして使用する後続のアクションを常に受け​​入れることができます
  3. 値が完了すると、関数キューが起動します
  4. 将来が完了した後に追加された機能はすべて同期して発生します

つまり、これは、Javaに詰め込んでいる関数型プログラミングのデザインパターンのようです。重要なことは、遅延イベントをデイジーチェーン接続できることです。これは、C#3.0言語に組み込まれた機能であると理解していますが、Javaクラスと一緒にハックする必要があります。残念ながら、1つは、「promise」または「future」よりも適切な名前を知りません。これは、「DelayedCallStack」よりも手元の値に焦点が当てられているため、誤解を招くように思われます。2つは、わかりません。独自のかなり複雑なPromiseクラスを作成する以外に、これを行う方法はありません。理想的には、これを機能的なJavaライブラリから削除したいのですが、これまでのところ、この概念はわかりません。

注Javaは、パラメーターを受け取る非同期コールバックの言語/ライブラリサポートさえ提供していません。これが、これを見つけることができることについて私が非常に悲観的である理由の1つです。

それで、このパターンは何ですか、それは図書館で行うことができますか?

0 投票する
1 に答える
94 参照

java - `ifmaybeT.isNone()`の代わりにOptionで折ります

これは、なぜOptionにfoldメソッドがないのかと同様の質問です。、ただし、functional-javaの場合。

オプションがNoneの場合、いくつかの副作用を実行したいと思います。他に使えるものはありif maybeT.isNone()ますか?

私はの線に沿って考えていますOption<B> optionA.fold(Effect<Unit> none, F<A, B> some)

すでに存在するものはありますか?

0 投票する
2 に答える
368 参照

java - FunctionalJava TreeMap を構築するには?

FunctionalJava ライブラリを使い始めたばかりで、不変の TreeMap を利用したいと考えていました。ただし、ユーザー定義のクラスまたはインターフェイスを使用するときに、空のクラスを作成する方法がわかりません。

すべての例で、Ord.stringOrd などの定義済みの型を使用しています。適切な Ord<IAddress> を作成する方法がまったくわかりません。

誰かがこれを行う方法を説明できますか?

ありがとう、デレク

0 投票する
2 に答える
224 参照

java - JVM JIT は、ほぼ同等の新しいオブジェクトの作成を最適化しますか?

Functional Java ライブラリのソース コードを読んでいて、次のことに気付きました。

特に None の等値実装のために、なぜそれらが常にシングルトンパラメーターを返さないのか疑問に思っていました:

そこで、Functional Java のフォーラムで検索を行ったところ、次の質問と回答が見つかりました。

none を呼び出すたびに新しい None を作成しないように設定することはできますか?

いいえ、しかし、誰が気にしますか?JIT オプティマイザーは、最近ではこれらのことを非常にうまく処理できます。

私の質問は、シングルトンを返す必要がないように、JIT オプティマイザーがこれをどのように処理するかです。オブジェクトの作成が安いことは知っていますが、シングルトンの方が安いと思います。この場合、複雑さは追加されません。

0 投票する
2 に答える
105 参照

functional-java - Functional Java: 空のリストを作成するにはどうすればよいですか?

type の空のリストを作成したいと思いList<String>ます。タイプチェッカーを満たすために私が思いつくことができる最高のものは次のとおりです。

これはひどく醜いです。もっと良いものはありますか?

0 投票する
2 に答える
297 参照

java - スコープ管理 - ステートフル IO モナド?

私は関数型プログラミング、特に関数型 Java で遊んでいます。私は自分のバージョンの IO Monad を成功裏に実装し、自分のコア用の IO アクションを書いています。基本的に、オブジェクトを Xml ファイルにシリアル化します (オブジェクト タイプは、カスタム XmlWritable インターフェイスを拡張します)。

残念ながら、これを行うには、OutputStream のインスタンスと XmlSerializer の 1 つのインスタンスを作成する必要があります。OutputStream のスコープは XmlSerializer のスコープよりも広いため、IO モナド内で両方のライフサイクルを正しく処理できることがわかる唯一の方法は、両方をタプルに入れ、XmlSerializer を使用して記述した後に OutputStream を閉じることです。 .

これは重くて醜いコードにつながります (Java 6 は間違いなくこれに最適ではありません):

関数型プログラミングでユースケースを処理するより慣用的な理由はありますか?

潜んでいると、私は状態モナドを発見しました...しかし、Functional JavaでIOモナドの上に状態モナドを適用するとどうなるかを見るのがちょっと怖いです。

0 投票する
1 に答える
71 参照

java - 機能的な Java コンパイル エラー

ここから: http://functionaljava.googlecode.com/svn/artifacts/3.0/demo/bgga/Option_filter.java

Q: この例をコンパイルするにはどうすればよいですか? 仕方がない場合: 現在動作中の例を置く目的は何ですか?

Java (5-7) がこれをコンパイルする可能性はありません。たとえば、次のようになります。