SICPは、入門コンピュータサイエンスコースで使用される本です。いくつかの高度なコンセプトについて説明していますが、非常に小さな言語、Scheme言語のサブセット、そして実際のSchemeやLispのサブセットの典型的な実装が提供しています。
たとえば、SICPで開発されたマクロはありません。その標準スキームには、関数の位置パラメータだけがあることを付け加えます。 「本物の」のLispやスキーム1で
には、以下の一つ以上を使用することができます。
オブジェクトまたはレコード/構造(貧乏人の閉鎖)グループの事を。渡されたオブジェクトにはいくつかのデータアイテムが含まれています。そうでなければ 'spread'に渡す必要があります。
省略可能な変数です。したがって、あるデフォルト以外の値を持つものを渡すだけでよい。
オプションの名前付き引数。これにより、より記述的な柔軟な引数リストが可能になります。
計算された議論。引数の値またはデフォルト値は、他の引数に基づいて計算することができます。
以上は、より使いやすい関数インターフェイスの作成がより複雑になります。
Lispでは、引数の説明的な名前を付けるのが良いスタイルであり、インターフェイスのオンラインドキュメントも提供しています。開発環境では、関数のインタフェースに関する情報が表示されるため、通常、この情報はキーストロークだけであるか、自動的に表示されます。
また、ユーザ/開発者がインタラクティブにインタラクティブに使用して、実行時にその引数をチェックすることになっていると思われる任意のインタフェースにも適したスタイルです。
4つ以上の引数を持つメソッドで何が問題になっていますか? – Falmarri
@Falmarri、通常、そのようなAPI +を念頭におくのは難しいです。あなたは議論の順序で間違えることがあります。 –
これらは、4つの引数に自分自身を制限する理由のようには聞こえません。 – Falmarri