問題タブ [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 投票する
3 に答える
864 参照

haskell - 誰かがこのコードのどこで適用インスタンスが発生するかを説明できますか?

Applicativeそれが機能していることはわかりますが、 (または)のインスタンスがどこから来ているのかわかりませんFunctor

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

haskell - モナドがファンクターであり、適用可能なファンクターであることを示すには?

モナドは、Haskell の型システムでは示されていませんが、理論的にはファンクターのサブセットであり、具体的には適用可能なファンクターであることが知られています。

モナドが与えられ、 と に基づいていることを知っているreturnbind、次のようになります。

  • 導出fmap
  • 派生<*>
0 投票する
2 に答える
3036 参照

scala - 2つのリストの要素を組み合わせる

2つのリストがあると仮定します。

私が欲しいのは:List("a1", "b2", "c3")つまり、l1のn番目の要素をl2のn番目の要素に追加することです

それを達成する方法は次のとおりです。

Applicativeでそれを達成できるかどうかだけ疑問に思います。私は試した :

しかし、それはすべての組み合わせを与えます:

何か案が?

ありがとうございました

ブノワ

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

validation - scalazを使ってApplicativeに関数を作成する方法

Scalaz 6を学びながら、検証を返すタイプセーフなリーダーを作成しようとしています。これが私の新しいタイプです:

そして、intとstrings(*)のマップリーダーを作成する2つの関数があります。

次のマップがあるとします。

名前と年齢を取得するために2つのリーダーを作成できます。

Boyすべて正常に動作しますが、インスタンスを構築するために両方のリーダーを作成したいと思います。

私の最善の策は次のとおりです。

期待どおりに機能しますが、2つのレベルのアプリケーションビルダーでは表現が厄介です。次の構文を機能させる方法はありますか?

(*)https://gist.github.com/1891147の完全で実行可能な実装


更新:上記の行またはダニエルの提案を試したときに表示されるコンパイラエラーメッセージは次のとおりです。

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

scala - scalaz-sevenでのTraverse[List]の実装について説明する

私はscalaz-seventraverseImplの実装を理解しようとしています:

誰かがどのようにList相互作用するかを説明できますかApplicative?最終的には、の他のインスタンスを実装できるようにしたいと思いますTraverse

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

haskell - Control.Applicative をインポートすると、この悪いコードの型チェックが可能になるのはなぜですか?

私は友人が Haskell を学ぶのを手伝っています。彼は最近、このようなコードを作成しました。このコードは、実行時に型チェックを行い、CPU を焼き尽くすループを生成します。私はこれに完全に困惑しています。

それはチェックをタイプするべきではありませんが、チェックします。正しいバージョンは明らかに次のようになります。

私にとって奇妙で驚くべきことは、Control.Applicative をインポートした場合とインポートしない場合で異なる結果が得られることです。それをインポートしないと、型チェックは行われません:

Control.Applicative のソースにMonad インスタンスが見当たらない((->) Stringので、Control.Category または Control.Arrow を使用しているため、何かおかしなことが起こっていると思いますが、わかりません。だから私は2つの質問があると思います:

  1. これを可能にする Control.Applicative のインポートについてはどうですか?
  2. 無限ループに入るとどうなる?その場合、Haskell は実際に何を実行しようとしているのでしょうか?

ありがとう、

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

haskell - haskellでタプルの最初の要素をfmapする方法

私は次のような関数を書き込もうとしています

ここでは、タプルの最初の要素に基づいてリストを作成しようとしていますが、どのように進めるかがわかりません。タプル以外の場合でも実行できますが、fstこの構成内での使用方法がわかりません(そもそもその関数を使用する必要がある場合)。

この関数は同じタイプの別の関数とインターフェイスしますが、入力の処理方法が少し異なります。Maybeタプルはコンテナ内にあるため、fmapとapを使用する必要があります

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

haskell - 型クラスMonadPlus、Alternative、Monoidの違いは?

標準ライブラリのHaskell型クラス、、、MonadPlusおよびAlternativeそれぞれMonoidは、本質的に同じセマンティクスを持つ2つのメソッドを提供します。

  • 空の値:mzero、、、emptyまたはmempty
  • a -> a -> aタイプクラスの値を結合する演算子: mplus、、、<|>またはmappend

3つすべてが、インスタンスが準拠する必要があるこれらの法則を指定します。

したがって、3つの型クラスはすべて同じメソッドを提供しているようです。

Alternativeとも提供somemanyますが、通常はデフォルトの定義で十分なので、この質問に関してはそれほど重要ではありません。)

だから、私の質問は:なぜこれらの3つの非常に似たクラスがあるのですか?スーパークラスの制約が異なること以外に、それらの間に実際の違いはありますか?

0 投票する
4 に答える
2158 参照

haskell - アプリカティブ ファンクターのプログラミング演習はどこにありますか?

特に McBride と Paterson による Functional Pearl で、Applicative functor について読んでいます。しかし、いくつかの演習を行って理解を固めたいと思います。私はプログラミングの演習が好きですが、証明の演習も問題ありません。 アプリカティブ ファンクターを使った効果的なプログラミングを学ぶには、どのような演習が役立ちますか?

個々のエクササイズは、他の場所にリストされているエクササイズへのポインターと同様に問題ありません。

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

scala - 内部にモノイドと関数を持つタプルのアプリケーションインスタンス

私は以前に出会ったhaskellの例をscalazに変換しようとしていました。元の例は次のとおりです。

私が理解できる限り、これはこのインスタンスを使用します。

文字通りscalazに変換されません:

しかし、私はインスタンスを探しました、そしてそれはそこにあるようです(私が理解できる限り、再び)。

それで、問題は、なぜそれがこのように機能しないのかということです。または、何を見逃したか、正しく取得できませんでしたか?