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って何なんかほのめかされたままだし,これからちゃんと読まないかんなと強く決意させられた.いや,もともとちゃんと読むつもりやったし.サボらんし