「48時間でSchemeを書こう」の版間の差分

削除された内容 追加された内容
最初の一歩(部分)を追加
sectionを仮に追加
59 行
# <code>action2</code>
最初の形は<code>action1</code>の結果を後続のアクションで使えるよう<code>name</code>に束縛します。例えば、もし<code>action1</code>の型が<code>IO [String]</code>(<code>getArgs</code>のように文字列のリストを返すIOアクション)なら、<code>name</code>は"bind"演算子<code>>>=</code>によって後続の全てのアクションで持ち回される文字列のリストに束縛されます。二つ目の形はただ<code>action2</code>を実行し、もしあれば次の行に<code>>></code>演算子を使ってそれを渡します。bind演算子はそれぞれのモナドで異なる意味を持ちます。IOモナドでは、それはアクションの結果である外的な副作用を働きながらアクションを順番に実行します。bind演算子の意味付けは特定のモナドに依存するので、一つのdoブロックの中に異なるモナド型の動作を混在させることはできません。この場合なら、IOモナドのみ使用可能です。
 
== Parsing ==
== Evaluation, Part 1 ==
== Error Checking and Exceptions ==
== Evaluation, Part 2 ==
== Building a REPL: Basic I/O ==
== Adding Variables and Assignment: Mutable State in Haskell ==
== Defining Scheme Functions: Closures and Environments ==
== Creating IO Primitives: File I/O ==
== Towards a Standard Library: Fold and Unfold ==
== Conclusion & Further Resources ==
== Answers to Exercises ==