質問するログイン新規登録

回答編集履歴

1

symbol-valueに付いての愚痴を追加

2025/07/21 12:37

投稿

cametan
cametan

スコア104

answer CHANGED
@@ -25,7 +25,7 @@
25
25
  結果、Lisp-1と違い、関数がファーストクラスオブジェクトでも**関数定義構文は変数定義構文と別に存在する必要が出てくる**、んだ。
26
26
  Schemeの```let```は局所変数定義用だけど、関数がファーストクラスオブジェクトな以上、関数も束縛可能だ。
27
27
  一方、ANSI Common Lispではそうはいかない。
28
- しかし、ANSI Common Lispの```let```では「シンボルそのもの」を束縛は可能で、その「シンボルそのもの」からどのスロットに収められた値を取り出すか、は自在に調整出来る。
28
+ しかし、ANSI Common Lispの```let```では「シンボルそのもの」を束縛は可能で(つまり「未評価の」...「クオートされた」シンボル)、その「シンボルそのもの」からどのスロットに収められた値を取り出すか、は自在に調整出来る。
29
29
 
30
30
  ```Lisp
31
31
  CL-USER> (let ((x '*))
@@ -35,6 +35,7 @@
35
35
  ```
36
36
 
37
37
  これが故に、ANSI Common Lispユーザーはしばしば「**Schemeにはシンボルがない**」と言うんだ。明らかにANSI Common LispのシンボルはSchemeに比べると(不必要に)高機能だ。
38
+ (Schemeだとシンボルを一旦クオートすると「それを解除出来ない」・・・Schemeでもせめて```symbol-value```があればいいのに、って思った事は数知れず、だ。)
38
39
 
39
40
  ```Lisp
40
41
  The object is a SYMBOL.