問題タブ [applicative]

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 投票する
5 に答える
1560 参照

haskell - Functor を Applicative の観点から Monad の観点で定義する方が良いですか、それともその逆ですか?

これは一般的な質問であり、特定のコードに関連付けられているわけではありません。

T aのインスタンスを与えることができる型があるとしますMonad。すべてのモナドは and のApplicative代入pure = returnであり(<*>) = ap、すべてのアプリケーションはFunctorviafmap f x = pure f <*> xであるため、最初のインスタンスを定義してからMonad、自明に and のインスタンスを与える方Tがよいでしょうか?ApplicativeFunctor

ちょっと後ろ向きな感じです。プログラミングの代わりに数学をやっていたとしたら、最初にオブジェクトがファンクターであることを示し、それがモナドであることを示すまで制限を追加し続けると思います。Haskell は単に圏論に触発されたものであり、証明を構築するときに使用する手法は、有用なプログラムを作成するときに使用する手法ではないことは明らかですが、Haskell コミュニティから意見を求めたいと思います。Monad下から下に行った方がいいFunctorですか?または からFunctorまでMonad?

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

haskell - Aeson parseJSON での安全な読み取り

Aeson を使用して、Yahoo の API からの json 引用データを解析しています。引用は次のようになります。

このYQLクエリを使用しています)

ご覧のとおり、数字が引用されています。fromJSON次のような実装を書くことができます:

これは、導出されるものと同じです。残念ながら、これは、Open、High、Low などを Text タイプにしたい場合にのみ機能します。これらのフィールドのいずれかを Double として使用しようとすると、解析が失敗します。

私はこれを書くことができます:

好きなように取得しますがread、これは部分関数である を使用します。部分関数を使用せずに上記の機能を取得するにはどうすればよいですか?

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

scala - いつ、なぜ Scala で Applicative Functor を使用する必要があるのか

Monad次のようにScalaで表現できることを私は知っています:

便利な理由がわかります。たとえば、次の 2 つの関数があるとします。

はモナドなgetPhoneByUserId(userId: Int)ので、関数を簡単に書くことができます。Option

...

今私はApplicative FunctorScalaで見る:

モナドの代わりにいつ使うべきなのだろうか。Option と List の両方がApplicatives. applyOption と List を使用する簡単な例を挙げて、代わりにそれを使用する理由を説明していただけますか? flatMap

0 投票する
3 に答える
838 参照

haskell - optparse-applicative: 引数なしで呼び出されたプログラムのヘルプを表示する

optparse-applicativeバージョン 0.7.0.2を使用しています。

いくつかの必須オプションを使用するパーサーを作成したいと考えていますが、オプションなしで呼び出すと、使用法だけではなく、使用法とヘルプの両方が表示されます (つまり、オプションなしの呼び出しが を使用した呼び出しのように動作するようにしたい--help)。

ドキュメントにそれが可能であると書かれていても、私はそうする方法を理解できません:

この例の hello オプションは必須です (デフォルト値がないため)。したがって、引数なしでプログラムを実行すると、ヘルプ テキストが表示されます。

これの実例はありますか?メインのドキュメントにあるものは私には機能しません (使用法のみを出力します)。

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

haskell - アプリカティブ ファンクター分析

アプリカティブ ファンクターの静的解析について学ぼうとしています。多くの情報筋によると、モナドよりもそれらを使用する利点は、静的解析の影響を受けやすいことです。

しかし、実際に静的解析を実行する唯一のは、複雑すぎて理解できません。これのより簡単な例はありますか?

具体的には、再帰的なアプリケーションで静的分析を実行できるかどうかを知りたいです。たとえば、次のようなものです。

上記のコードを分析すると、y で再帰的であることを検出できますか? それとも、参照の透過性によって、これが可能になることはまだありますか?

0 投票する
3 に答える
251 参照

haskell - 制約付きの Applicative インスタンスを構築する方法 (ContT を使用して Monad インスタンスを構築するのと同様)

この質問は、モナドである何かから適切なインスタンスを構築することを扱いMonadますが、特定の制約の下でのみ - たとえばSet. トリックは、それを にラップすることContTです。これにより、制約がその値のラップ/ラップ解除に延期されます。

今、私はsで同じことをしたいと思いますApplicative。特に、pureに型クラスの制約があるApplicativeインスタンスがあります。有効なインスタンスを構築する方法と同様のトリックはありますか?Applicative

(モナドの場合と同じように、「すべてのアプリケーション ファンクターの母」は存在しますか?)