「48時間でSchemeを書こう/Scheme関数の定義」の版間の差分

削除された内容 追加された内容
M編集の要約なし
M編集の要約なし
74 行
makeVarargs = makeFunc . Just . showVal
 
 ここで、makeNormalFunc makeVarArgs ただ makeFunc の最初の引数が、の関数と長引数のの対応対して、最初の引数をふ適切に設定わしくセットするという、makeFuncのれた特殊さを尊重型とみなるべことがです。これは、シンプルなコードで最初のを簡潔にするために如何にファーストクラス関数を如何にして使うかという良いサンプルです。
 
 今、私たちは更なるeval節を追加することで、これらを使えるようにしましょう。彼らは、変数を定義する節の後、そして関数が適応される前に追加されるべきです。
93 行
apply func argVals</span>
 
 これらは、かたちを解きほぐすためのパターンマッチングを使って、適応する関数の手助けをします。この定義の場合ですと、私たちは同様に、ローカル環境の中で変数を束縛できるよう、アウトプットをdefineVarに流し込みます。私たちは同様に、liftHtrowsliftThrowsを外すために、関数を適応する節を編集する必要があります。というのは、applyは既にIOThrowsErrorかモナドの中で動いているからです。
 
 さて、コンパイルして、プログラムを走らせることができるようになりました。なので、これを使ってリアルなプログラムを書いてみましょう!!
debian:/home/jdtang/haskell_tutorial/code# ghc -package parsec -fglasgow-exts -o lisp [../code/listing9.hs listing9.hs]