2017-12-29 24 views
6

Haskellコミュニティの "runSomething"というコンベンションの意味は何ですか?私はいくつかのドキュメントとチュートリアルで見てきた

このパターンがカバーしていること抽象的な概念とは何ですか?ハスケルで何かが何を意味するのでしょうか?

あなたはいつも知りたいと思っていたもののタグはありますか?質問するのがあまりにも恐れていましたか?

+2

'run *'、 'eval *'、 'exec *'のような関数は特定のモナド(この場合はReaderとState)と関係があります。 Monadsに関する答えはどれくらい深くありますか? –

+0

可能な限り一般的です。私はこのコンベンションを理解していると思われるチュートリアルを理解したいと思います。 –

+0

おそらくあなたはウィキブックス[国家モナドに関する章](https://en.wikibooks.org/wiki/Haskell/Understanding_monads/State)を読むべきです。 –

答えて

10

Haskellでは、runSomethingは、 '指定された引数の中に記述された効果を実行し、その結果の値を返す'という意味です。

私は意図的に「効果」を言っていました。ハスケルでは、タイプシステムを使用して、I/Oや状態の変更などのさまざまな影響を記述します。正確なタイプに応じて、最終的な値が返される前にさまざまなエフェクトが実行される可能性があります。

+10

完全性のために: 'evalSomething'は、エフェクトを気にせず、計算する値を得るために最も軽量な方法を望むのに対して、' execSomething'はエフェクトと値だけを気にするそれは無関係であることを最後に計算する。 –

関連する問題