問題タブ [do-notation]
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 - 関数構成 Do 表記
単純な関数構成のための「do表記法」の構文糖衣はありますか?
(つまり(.) :: (b -> c) -> (a -> b) -> a -> c
)
いくつかのコンポジションの結果を後で保存できるようにしたいと思います (チェーンを継続しながら.
可能であれば、RebindableSyntax 拡張機能は使用したくありません。
私はこのようなものを探しています:
以前の関数の結果は本質的に maxLength のバインドを「通過」する必要があるため、このようなことが可能かどうかはわかりませんが、他の同様の表現力のあるオプションについては聞いてみましょう。基本的には、構成を進めながら情報を収集し、後で使用できるようにする必要があります。
おそらく私は状態モナドでこのようなことをすることができますか?
ご協力いただきありがとうございます!
編集
この種のことはちょっとうまくいきます:
haskell - 型クラスのないモナドで do 記法を再バインドする
(>>=) を再バインドし、次のように明示的な辞書渡しを使用してモナドに戻ることができます。
モナドアクションのすべての使用法でMonadDict
モナドインスタンス引数を無視することを避けることができるように、モナドを表現する方法はありますか?const
elixir - Elixir と Haskell の「Do」表記
私は、多かれ少なかれ命令型ブロック区切り記号のように、エリクサーで「do/end」表記を使用してきました。(つまり、do
は{
C ライクな言語のようで、end
は のようです}
)。
これは何が起こっているかの正確な説明ですか?それともdo
、命令型のコーディングを可能にするモナドの構文糖衣を構築する Haskell 記法に似ているのでしょうか?