1.1(2)

1.1.8

local name

手続きのformal parameterみたいな役割の名前をbound variableっていう.手続きの定義がformal parameterをbind(束縛?)してるっていう.名前を定義しているbindingの式の集合をscopeっていう.例えば手続きだと,formal parameterとして定義されたbound variableどもは手続きの本体自身がscopeにあたる.下の絵の(formal parameter的) Name が bound variable.書き忘れた

束縛してない名前はfreeっていう.もしfreeな名前('+'とか)を束縛しちゃうと,その名前をcapture(捕捉?)するっていう.バグのもと

internal definitions and block structure

手続きはネスト可能.外側の手続きで束縛した変数は,内側の手続きではfreeな名前として扱われ,参照が可能になる.この法則をlexical scopingという

(define (hoge x)
;internal procedure definition 
  (define (fuga x)
    (display x))
  (fuga))
; can rewrite below:
(define (hoge x)
  (define (fuga)
    (display x))
  (fuga))

手続きが定義された上のenvironmentを探しに行く

1.1終わった

なんとか終わった.もっとふわふわした内容かと思ってたのが余計に疲れを増やした.lexical scopeってクロージャのときによく聞いたけど理解してなかったし,environmentって何なんかほのめかされたままだし,これからちゃんと読まないかんなと強く決意させられた.いや,もともとちゃんと読むつもりやったし.サボらんし