私はSchemeを使って実装を説明する記事を読んでいます。私はコモン・リプスを少しは知っていますが、スキームはありません。2つのスキームコードサンプルとそれに相当するCommon Lispでの表現
2つのSchemeコードのサンプルを説明し、それらがCommon Lispにどのように対応しているかをお見せしたいと思います。
まず、このスキームはどういう意味:
(define (content cell)
(cell ’content))
を私はそれがこのことを意味信じる:cell
という名前の引数を持つcontent
という名前の関数を定義します。 Common Lispでは、以下のように書かれています:
(defun content (cell)
(...))
私はこれまでのところですか?
機能の身体が何をしているのか不明です。引数(cell
)は実際に関数であり、本体は関数を呼び出しています。シンボルは現在の関数の名前になりますか?これは、対応するCommon Lispのである:ここで
(defun content (cell)
(funcall cell ’content))
は、第2の方式のコードサンプルです:
(define nothing #(*the-nothing*))
私はそれがグローバル変数を作成し、#(*the-number*))
にそれを初期化していると信じています。ですから対応するCommon Lispは:
(defvar nothing #(*the-nothing*))
そうですか?ポンド記号(#
)には特別な意味がありますか?私は*the-nothing*
がグローバル変数を参照していると思います、はい?
ありがとうジョン。引用符であなたを変えてしまって申し訳ありません。はい、コピー&ペーストです。 –