問題タブ [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 - 2つのモナディック値をペアにして、それを返します
私はParsecで遊んでおり、2つのパーサーを1つに結合して、結果をペアにした後、別の関数をフィードして、解析結果を操作し、次のように記述します。
だから私はこれを書いた:
と
どこかに実装されている(<&>)に似たものはありますか?それとも、これはポイントフリーで書くことができますか?試してみfmap (,)
ましたが、タイプに合わせるのが難しいようです。
haskell - アプリカティブ ファンクターとアローを混在させる方法
Andrew Birkett のブログApplicative arrows for XML &&& return to pureで、矢印と applicative functor を混在させることができると読みました。
私は自分でそれを試しましたが、私は期待したものを持っていません。私はこの結果が欲しい:
しかし、私は代わりにこれを取得します:
コードにねじれがあると思いますが、どこを検索すればよいかわかりません。
誰かが助けを提案できる場合、以下は私のコードです。
haskell - モナド構文解析に対する適用的構文解析の利点は何ですか?
Parsec をモナドではなくアプリカティブとして使うべきだというコンセンサスがあるようです。モナド構文解析に対する適用的構文解析の利点は何ですか?
- スタイル
- パフォーマンス
- 抽象化
モナドは解析していますか?
haskell - アプリケーションのモナディック同等物<*
スタイル関連のパーサーの質問に対するAnthonyの応答を読んだ後、私は、モナディックパーサーを作成することはまだかなりコンパクトである可能性があることを自分自身に納得させようとしていました。
だから代わりに
私たちは単に持つことができます:
これは、Anthonyが提供するアプリケーションバージョンと非常によく似ています。
... 「シーケンスしますが、値を破棄し、左側に提供された値を使用する」という意味として定義されている<<!
ものと概念的に類似している演算子を除きます。<*
liftA2 const
もちろん、<<はの悪い名前だったでしょう。それは、とと同じ論理に従う場合と同等liftM2 const
であることを示唆しているでしょう。<<
flip >>
>>=
=<<
単一の名前で「liftM2const」が見つかりません。あまり役に立たないからですか?
haskell - Applicative の ghci 特殊ケース?
ghci で:
これは、ghci が Applicative を実行し、結果を表示するということIO
ですか?
何も印刷しないpure ()
でください。pure (+1)
haskell - 州およびその他のMTLモナドの適用インスタンス?
のドキュメントを見ると、Control.Applicative
特定のモナド(たとえばIO
、Maybe
特に)のインスタンス宣言がありますが、やST
などのMTLモナドのインスタンスはありません。代わりに、汎用タイプが定義されているように見えます。これは、他のすべてのケースをカバーするためだと思います。State
RWS
WrappedMonad
だからここに私の質問があります:
Applicative
MTLモナドのインスタンスがないのはなぜですか?私がこれまでに自分で見つけた最良の答えは、3年前の投稿で、誰かがこれらのインスタンスを実装し、すぐに無視されました。どうしたの
WrappedMonad
?Redditに簡単に説明している投稿を見つけましたが、使い方がわからないと思います。
最終的には、(私が推奨したようにState
)アプリケーションスタイルで使用できるようにしたいと思いますが、コードにデータコンストラクターを散らかす必要がある場合、それは成功とは思えません。また、完全に無視して、インスタンスを自分で定義することもできます。たとえば、などの場合と同じように、インスタンスを定義します。WrappedMonad
WrappedMonad
Applicative
IO
ST
return
ap
f# - F# タプル配列の並べ替え
タプルの配列と標準があります。タプルをソートして、要件を満たすタプルをピックアップしたいと考えています。
タプルについては、最初の要素を無視し、2 番目の要素と 4 番目の要素を通常の方法で並べ替えますが、3 番目の要素も逆の順序で並べ替えます。2 番目の要素を含むすべてのタプルは少なくとも標準と同じ大きさであり、3 番目の要素は最大で標準と同じ大きさであり、修飾されたタプルです。上記の例では、修飾されたタプルは次のとおりです。("C", 0, 3.0M, 4L) |] 条件は次のとおりです: 2 番目の要素 >= 0 および 3 番目の要素 <= 4.5M および 4 番目の要素 >= 4L しかし、私のコードは機能しませんでした! この仕事をすることができる関数を書く方法を教えてください! ありがとう、良い週末を。ジョン
haskell - <*>で関数がNothingの場合、ApplicativeインスタンスがNothingを返すのはなぜですか
私はhaskellの初心者で、Learn youahaskellの本を読んでいます。私はしばらくの間、ファンクターとアプリケーションファンクターを消化しようとしています。
適用可能なファンクターのトピックでは、のインスタンス実装Maybe
は次のように与えられます。
ですから、私が理解しているNothing
ように、左側のファンクター(for <*>
)がNothingであるかどうかがわかります。私には、それはより理にかなっているようです
そのため、このアプリケーションファンクターは効果がありません。配給のユースケースはありNothing
ますか?
言ってやるが、Maybe String
私にはその価値がわからない。これをサードパーティの関数に渡す必要がありMaybe
ますが、その結果をMaybe (a -> b)
最初に数回実行する必要があります。これらの関数のいくつかがあれば、データの損失であるをNothing
与えるのではなく、サイレントに入力を返すようにします。Nothing
Nothing
それで、上記の例で戻ることの背後にある考え方は何ですか?
haskell - 共有パラメーターを渡すために使用されるアプリケーションファンクターはどれですか?
Haskellでアプリケーションファンクターがどのように機能するかをある程度理解していると思います。基本的なデータ型(多分、どちらか...)にそれらを使用しています。しかし、私は次の例でこの質問を見つけました:
適用可能なスタイルで書き直すことができます:
コンパイルされて実際に期待どおりに機能することに驚きましたが、これに使用されているApplicative Functorとその定義を誰かに教えてもらえますか?
更新:私はそれがどのように機能するかを理解したと思いますが、それがどこで定義されているのかわかりません。
haskell - Haskell での Just のマージ/追加
Just [1]
go fromとJust [2]
toである、Haskell で盲目的に明白でなければならないことを実行しようとしていJust [1, 2]
ます。しかし、関連しているが役に立たないページを見つけ続けているため、オンラインで何も見つけることができません。それで、どうやってこれを達成しますか?