問題タブ [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 - Haskell Applicative と ErrorT?
なぜ私は次のことができるのですか:
しかし、私はできません:
また、意図したとおりに機能するように f2 を変更するにはどうすればよいですか?
python - ScalaにはPythonのより一般的なマップ関数に相当するものがありますか?
Scalaのリストには署名付きのマップ実装と署名付き(f: (A) => B):List[B]
のforeach実装があることは知っていますが、Pythonマップ(f: (A) => Unit):Unit
が複数の反復可能オブジェクトを受け入れるのと同じ方法で複数の反復可能オブジェクトを受け入れるものを探しています。
(f: (A,B) => C, Iterable[A], Iterable[B] ):Iterable[C]
の署名または同等のものを探しています。これが存在するライブラリ、または同様のことを行う同等の方法はありますか?
編集:
以下に提案するように、私はできる
しかし、それはステップの間に一時的なリストを作成します。コメント投稿者が投稿する場合、私は彼に賛成することができます(ヒント、ヒント)が、別の方法はありますか?
haskell - Control.Applicative での `pure` 関数の命名
値をファンクターに持ち上げる関数がpure
Control.Applicative で名前が付けられているのはなぜですか?
haskell - Haskell の State の Functor / Applicative インスタンス
モナドに関する Wadler の論文を読んだ (そしてそのいくつかのセクションをざっと読んだ) 後、私は論文をより綿密に調べ、彼が記述した各モナドのファンクターとアプリケーションのインスタンスを定義することにしました。型シノニムの使用
Wadler は状態モナドを定義するために使用します。私は次のようにしています (関連する名前を使用して、後で newtype 宣言で定義できるようにします)。
newtype 宣言で型コンストラクターの使用に切り替えると、たとえば、
すべてがバラバラになります。すべてがわずかな変更にすぎません。たとえば、
ただし、ラムダ式がその型コンストラクター内に隠されているため、GHC では何も実行されません。今私が見る唯一の解決策は、関数を定義することです:
s を 'st' にバインドし、実際に値を返すには、たとえば、
これらの補助機能を使用しない別の方法はありますか?
haskell - 一般的な Haskell の再帰的な applicative functor パターンを抽象化するにはどうすればよいですか
Haskell で applicative functor を使用しているときに、次のような反復的なコードになってしまう状況によく遭遇します。
この例では、次のように言いたいと思います。
しかし、作り方applyMany
(またはそれに似たもの)がわかりません。タイプがどうなるかさえわかりませんが、データコンストラクター、 Int (n) 、およびn回適用する関数が必要です。これは、QuickCheck、SmallCheck、Data.Binary、Xml シリアル化、およびその他の再帰的な状況のインスタンスを作成するときに発生します。
では、どのように定義できますapplyMany
か?
list - ストリームの等価性の証明
私はデータ型を持っています
バラの木と Applicative インスタンスの
適用法を証明する必要があります。ただし、pureは無限に深く、無限に分岐するツリーを作成します。したがって、たとえば、準同型の法則を証明する際に、
等式の証明だと思った
近似(またはテイク)によって補題が機能します。しかし、私の試みは、帰納的なステップで「悪循環」につながります。特に、削減
与える
ここで、approxは近似関数です。明示的な帰納的証明なしに、どうすれば等しいことを証明できますか?
haskell - アプリカティブ スタイルの計算コスト
Web アプリで小さなデータベース プールを使用しています。そして、この特定の機能:
適用可能なスタイルで書き直すことができます:
おそらく、それは読みやすく、はるかにエレガントです。当然、そのように書きたいと思います。しかし、データベース接続プールは高速であると想定されており、このスタイルでは不要なオーバーヘッドが発生するのではないかと心配しています。
だから私の質問は、Haskell で applicative functor を使用するとどのくらいのオーバーヘッドが発生するか (ある場合) です。ベンチマークはありますか?
haskell - どのようにそしてなぜapはHaskellでliftM2idとして定義されています
Applicativeをよりよく理解しようとしているときに、<*>の定義を調べました。これは、apとして定義される傾向があり、次のように定義されます。
liftM2とidの型シグネチャを見ると、次のようになります。
(a1 -> a2 -> r) -> m a1
idを渡すだけで、型アノテーションの関連部分がからに変換されるように見える方法がわかりませんm (a -> b)
。ここで何が欠けていますか?
haskell - アプリカティブ (およびフレンド) メソッドにわかりやすい名前はありますか?
私は最近、applicative (および代替) をかなり使用してきましたが、私を苛立たせていることの 1 つは、命名法に関する知識が不足していることです。例として、 forfunction name
の代わりに言えるようにしたいです。したがって、 readとほぼ同じように、次のものにはよりわかりやすい名前があります。star thing
<*>
>>=
bind
<*>
- 申し込み?<*
&*>
- 左と右が適用されますか?<$>
- fmap?<|>
同様に矢印から
***
- スプリット?&&&
- 扇形に広がります?
これらの名前がある場合、私の検索ではそれらを発見できませんでした. これらについて受け入れられない条件があるかもしれないことは理解していますが、もしあれば知りたいです。
haskell - Haskell: 一部と多数
some
とは何の役に立つのmany
ですControl.Applicative.Alternative
か? のようなものを書くとsome $ Just 42
、無限再帰が発生するようで、あまり役に立ちません...