問題タブ [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 - 誰かがこのコードのどこで適用インスタンスが発生するかを説明できますか?
Applicative
それが機能していることはわかりますが、 (または)のインスタンスがどこから来ているのかわかりませんFunctor
。
haskell - モナドがファンクターであり、適用可能なファンクターであることを示すには?
モナドは、Haskell の型システムでは示されていませんが、理論的にはファンクターのサブセットであり、具体的には適用可能なファンクターであることが知られています。
モナドが与えられ、 と に基づいていることを知っているreturn
とbind
、次のようになります。
- 導出
fmap
、 - 派生
<*>
?
scala - 2つのリストの要素を組み合わせる
2つのリストがあると仮定します。
私が欲しいのは:List("a1", "b2", "c3")
つまり、l1のn番目の要素をl2のn番目の要素に追加することです
それを達成する方法は次のとおりです。
Applicativeでそれを達成できるかどうかだけ疑問に思います。私は試した :
しかし、それはすべての組み合わせを与えます:
何か案が?
ありがとうございました
ブノワ
validation - scalazを使ってApplicativeに関数を作成する方法
Scalaz 6を学びながら、検証を返すタイプセーフなリーダーを作成しようとしています。これが私の新しいタイプです:
そして、intとstrings(*)のマップリーダーを作成する2つの関数があります。
次のマップがあるとします。
名前と年齢を取得するために2つのリーダーを作成できます。
Boy
すべて正常に動作しますが、インスタンスを構築するために両方のリーダーを作成したいと思います。
私の最善の策は次のとおりです。
期待どおりに機能しますが、2つのレベルのアプリケーションビルダーでは表現が厄介です。次の構文を機能させる方法はありますか?
(*)https://gist.github.com/1891147の完全で実行可能な実装
更新:上記の行またはダニエルの提案を試したときに表示されるコンパイラエラーメッセージは次のとおりです。
scala - scalaz-sevenでのTraverse[List]の実装について説明する
私はscalaz-seventraverseImpl
の実装を理解しようとしています:
誰かがどのようにList
相互作用するかを説明できますかApplicative
?最終的には、の他のインスタンスを実装できるようにしたいと思いますTraverse
。
haskell - Control.Applicative をインポートすると、この悪いコードの型チェックが可能になるのはなぜですか?
私は友人が Haskell を学ぶのを手伝っています。彼は最近、このようなコードを作成しました。このコードは、実行時に型チェックを行い、CPU を焼き尽くすループを生成します。私はこれに完全に困惑しています。
それはチェックをタイプするべきではありませんが、チェックします。正しいバージョンは明らかに次のようになります。
私にとって奇妙で驚くべきことは、Control.Applicative をインポートした場合とインポートしない場合で異なる結果が得られることです。それをインポートしないと、型チェックは行われません:
Control.Applicative のソースにMonad インスタンスが見当たらない((->) String
ので、Control.Category または Control.Arrow を使用しているため、何かおかしなことが起こっていると思いますが、わかりません。だから私は2つの質問があると思います:
- これを可能にする Control.Applicative のインポートについてはどうですか?
- 無限ループに入るとどうなる?その場合、Haskell は実際に何を実行しようとしているのでしょうか?
ありがとう、
haskell - haskellでタプルの最初の要素をfmapする方法
私は次のような関数を書き込もうとしています
ここでは、タプルの最初の要素に基づいてリストを作成しようとしていますが、どのように進めるかがわかりません。タプル以外の場合でも実行できますが、fst
この構成内での使用方法がわかりません(そもそもその関数を使用する必要がある場合)。
この関数は同じタイプの別の関数とインターフェイスしますが、入力の処理方法が少し異なります。Maybe
タプルはコンテナ内にあるため、fmapとapを使用する必要があります
haskell - 型クラスMonadPlus、Alternative、Monoidの違いは?
標準ライブラリのHaskell型クラス、、、MonadPlus
およびAlternative
それぞれMonoid
は、本質的に同じセマンティクスを持つ2つのメソッドを提供します。
- 空の値:
mzero
、、、empty
またはmempty
。 a -> a -> a
タイプクラスの値を結合する演算子:mplus
、、、<|>
またはmappend
。
3つすべてが、インスタンスが準拠する必要があるこれらの法則を指定します。
したがって、3つの型クラスはすべて同じメソッドを提供しているようです。
(Alternative
とも提供some
しmany
ますが、通常はデフォルトの定義で十分なので、この質問に関してはそれほど重要ではありません。)
だから、私の質問は:なぜこれらの3つの非常に似たクラスがあるのですか?スーパークラスの制約が異なること以外に、それらの間に実際の違いはありますか?
haskell - アプリカティブ ファンクターのプログラミング演習はどこにありますか?
特に McBride と Paterson による Functional Pearl で、Applicative functor について読んでいます。しかし、いくつかの演習を行って理解を固めたいと思います。私はプログラミングの演習が好きですが、証明の演習も問題ありません。 アプリカティブ ファンクターを使った効果的なプログラミングを学ぶには、どのような演習が役立ちますか?
個々のエクササイズは、他の場所にリストされているエクササイズへのポインターと同様に問題ありません。