私はオンラインブックLearnyoua Haskell forgreatGoodを使用してHaskellを把握しようとしています。
私の知る限り、州のモナドを紹介する章にたどり着くまで、これまでモナドを理解することができました。
ただし、提示され、StateタイプのMonad実装であると主張されているコード(Hoogleで見つけることができませんでした)は、処理するには多すぎるようです。
そもそも、その背後にある論理、つまり、なぜそれが機能する必要があるのか、そして著者がこの手法をどのように検討したのかを理解していません(おそらく関連記事やホワイトペーパーを提案できますか?)
4行目では、関数fが1つのパラメーターを取ることが提案されています。
ただし、数行下には、パラメーターをとらないpopが表示されます。ポイント1を拡張するために、状態を表す関数を使用して作成者が達成しようとしていることは何ですか。
何が起こっているのかを理解するのに助けていただければ幸いです。
編集
ご担当者様、
以下の答えは私の質問を完全にカバーしています。
ただし、追加したいことが1つあります。
以下に提案する記事を読んだ後、上記の2番目のポイントに対する答えを見つけました:その間ずっと、pop関数は次のように使用されると思い
stuff >>= pop
ました:バインドタイプでは2番目のパラメーターは関数ですが、正しい使用法はこれですpop >>= stuff
、これをもう一度読んだ後、do-notationがプレーンなbind-lambdasにどのように変換されるかを理解しました。