問題タブ [combinators]
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 - Data.MemoCombinatorsはどのように機能しますか?
Data.MemoCombinatorsのソースを調べてきましたが、その中心がどこにあるのか実際にはわかりません。
これらすべてのコンビネータの背後にあるロジックと、実際のプログラミングでプログラムを高速化するために実際にどのように機能するかについて説明してください。
この実装の詳細と、オプションでメモ化に対する他のHaskellアプローチとの比較/対比を探しています。私はメモ化とは何かを理解しており、一般的にどのように機能するかについての説明を探していません。
haskell - モナディックタイプの設計
モナディックデータ型を設計するためにいくつかの助けが必要です。アイデアに頭を悩ませるのに苦労しているようですが、私は自分が何を望んでいるかをかなり確実に知っています。タイプチェッカーだけがその点でいくらかの説得を必要とするようです。
私が欲しいのはPrimitive
、モナドになることができるいくつかのデータ型です。Parser
その関数は基本的に描画プリミティブであり、ライブラリの型と同じように、それらを組み合わせたり、組み合わせをプリミティブにしたりできるようにしたいと考えていますparsec
。IO
しかし、実際の描画はモナドで行う必要があります。
ちなみに、私もDrawable a
このようなクラスを持っています:
そしてもちろん、すべてのプリミティブを描画可能にしたいと思います。どんな入力にも感謝しています。
haskell - Haskell の並列マップ
map
リストを並行して評価する代わりのものはありますか? 怠惰である必要はありません。
たとえば、すべてのコアを 100% にしますpmap :: (a -> b) -> [a] -> [b]
。pmap expensive_function big_list
haskell - ブール関数に対して「and」と「or」を実行する Haskell で
次の2つの関数を書きました:
これらは、次のような 2 つのブール関数の値を結合するために使用できます。
この 2 つの機能を見て、非常に便利であることがわかりました。そのため、標準ライブラリに含まれているか、既存の関数を使用してこれを行うためのクリーンな方法がある可能性が高いと思われます。
これを行う「正しい」方法は何でしたか?
haskell - 実際にgroupByとzipを使用する方法は?
1.の場合
頭を整数に変換した後、頭を尾に戻したいのですが、結果は次のようになります。[[1,"x^3"],[2,"x^2"],[1,"x^2"]]
できます
しかし、上記はできません、そして私が気づいた違いがあります、これは()
、ではありません[]
groupBy
2.リストへの書き方、groupBy
グループ化後、頭を追加するための個別の要素を渡しました
:1:10:期待されるタイプa0 -> a0 -> Bool'
with actual type
[a1]に一致しませんでしたnub'
In the first argument of
'groupBy'の呼び出しの戻りタイプ、つまり `(nub(map tail q))'式:groupBy(nub(map tail q)) q
qはハッシュテーブルのようなもので、2番目の要素でグループ化できないようです
function - 高階関数のいくつかの興味深い使用法は何ですか?
私は現在関数型プログラミングコースを受講していますが、高階関数と第一級市民としての機能の概念に非常に面白がっています。ただし、実際に役立つ、概念的に驚くべき、または単純に興味深い高階関数の多くはまだ考えられません。(典型的でかなり鈍い、、などの機能に加えてmap
)filter
。
そのような興味深い関数の例を知っていますか?
たぶん、関数を返す関数、関数のリスト(?)を返す関数などです。
私が現在学んでいる言語であるHaskellの例をいただければ幸いです:)
haskell - Haskell: 一部と多数
some
とは何の役に立つのmany
ですControl.Applicative.Alternative
か? のようなものを書くとsome $ Just 42
、無限再帰が発生するようで、あまり役に立ちません...
haskell - HaskellのliftMとmapMの違いは何ですか?
関数liftMとmapMの違いは何ですか?
c++ - memcpy の問題; 間違ったブロックを複数回コピーする
端末出力:
次の行に沿った出力を期待しています
p>haskell - 破壊的な演算子を構成するためのより良いインターフェイス、パート II
何が起こっているかの説明については、opencv オペレーターの構成に関する以前の質問を参照してください。
私は、一種の構成可能な方法で破壊的なバイナリ操作を構成できる新しいインターフェイスを考えました。
これにより、「ガウス演算子の減算」を簡単に表現できます。
私には、これは非常に安全な代替手段のように思えますが、減算後の何らかの操作でこれが必要な場合は、おそらく複製されたイメージも再利用できるという意味では最適ではありません。しかし、それは完全に純粋で最適化されていないバージョンの代替として受け入れられるように思えます:
質問
- そもそもこれは合理的な構造ですか?
- 前の質問の構造を好む理由はありますか?
- これをどのように拡張して、「画像内の最小値を見つけ、それを画像から減算し、画像にその範囲 (最大-最小) を掛ける」という操作を実装するにはどうすればよいでしょうか。
- 代わりに、これらを複数の質問に分割する必要がありますか?