問題タブ [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.
haskell - Functor を Applicative の観点から Monad の観点で定義する方が良いですか、それともその逆ですか?
これは一般的な質問であり、特定のコードに関連付けられているわけではありません。
T a
のインスタンスを与えることができる型があるとしますMonad
。すべてのモナドは and のApplicative
代入pure = return
であり(<*>) = ap
、すべてのアプリケーションはFunctor
viafmap f x = pure f <*> x
であるため、最初のインスタンスを定義してからMonad
、自明に and のインスタンスを与える方T
がよいでしょうか?Applicative
Functor
ちょっと後ろ向きな感じです。プログラミングの代わりに数学をやっていたとしたら、最初にオブジェクトがファンクターであることを示し、それがモナドであることを示すまで制限を追加し続けると思います。Haskell は単に圏論に触発されたものであり、証明を構築するときに使用する手法は、有用なプログラムを作成するときに使用する手法ではないことは明らかですが、Haskell コミュニティから意見を求めたいと思います。Monad
下から下に行った方がいいFunctor
ですか?または からFunctor
までMonad
?
haskell - Aeson parseJSON での安全な読み取り
Aeson を使用して、Yahoo の API からの json 引用データを解析しています。引用は次のようになります。
(このYQLクエリを使用しています)
ご覧のとおり、数字が引用されています。fromJSON
次のような実装を書くことができます:
これは、導出されるものと同じです。残念ながら、これは、Open、High、Low などを Text タイプにしたい場合にのみ機能します。これらのフィールドのいずれかを Double として使用しようとすると、解析が失敗します。
私はこれを書くことができます:
好きなように取得しますがread
、これは部分関数である を使用します。部分関数を使用せずに上記の機能を取得するにはどうすればよいですか?
scala - いつ、なぜ Scala で Applicative Functor を使用する必要があるのか
Monad
次のようにScalaで表現できることを私は知っています:
便利な理由がわかります。たとえば、次の 2 つの関数があるとします。
はモナドなgetPhoneByUserId(userId: Int)
ので、関数を簡単に書くことができます。Option
...
今私はApplicative Functor
Scalaで見る:
モナドの代わりにいつ使うべきなのだろうか。Option と List の両方がApplicatives
. apply
Option と List を使用する簡単な例を挙げて、代わりにそれを使用する理由を説明していただけますか? flatMap
haskell - optparse-applicative: 引数なしで呼び出されたプログラムのヘルプを表示する
optparse-applicative
バージョン 0.7.0.2を使用しています。
いくつかの必須オプションを使用するパーサーを作成したいと考えていますが、オプションなしで呼び出すと、使用法だけではなく、使用法とヘルプの両方が表示されます (つまり、オプションなしの呼び出しが を使用した呼び出しのように動作するようにしたい--help
)。
ドキュメントにそれが可能であると書かれていても、私はそうする方法を理解できません:
この例の hello オプションは必須です (デフォルト値がないため)。したがって、引数なしでプログラムを実行すると、ヘルプ テキストが表示されます。
これの実例はありますか?メインのドキュメントにあるものは私には機能しません (使用法のみを出力します)。
haskell - アプリカティブ ファンクター分析
アプリカティブ ファンクターの静的解析について学ぼうとしています。多くの情報筋によると、モナドよりもそれらを使用する利点は、静的解析の影響を受けやすいことです。
しかし、実際に静的解析を実行する唯一の例は、複雑すぎて理解できません。これのより簡単な例はありますか?
具体的には、再帰的なアプリケーションで静的分析を実行できるかどうかを知りたいです。たとえば、次のようなものです。
上記のコードを分析すると、y で再帰的であることを検出できますか? それとも、参照の透過性によって、これが可能になることはまだありますか?