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

削除された内容 追加された内容
M編集の要約なし
M編集の要約なし
1 行
 さて、私たちは変数を定義できるようになったので、関数をもっとよく拡張することができるでしょう。このセクションのあとに、私たちはSchemeの中でオリジナル関数を定義し、他の関数から呼ぶことができるようになるでしょう。私たちの実装は、終わりに近くになりづいています。
 
 新しいLispValコンストラクタを定義するところから始めましょう。
7 行
body :: [LispVal], closure :: Env}
 
 私たちはprimitivesのためセパレータ別のコンストラクタを追加しました。というのも、私たちは +やeqv?等を変数に格納して関数に渡せるように、扱いなりたいからす。変数は、関数に渡されます。PrimitiveFuncコンストラクタはThrowsError LispValに対して、引数のリストを取るような関数を扱います。それはprimitiveリストで扱わに格納されているのと同じタイプです。
 
 私たちは同様に、ユーザー定義型関数を扱うためのコンストラクタが欲しいわけです。私たちは4つの情報を扱います。