[Gauche-devel-jp] hash table and scope

Back to archive index

Osamu NAKAMURA naka****@hasak*****
2004年 9月 17日 (金) 15:08:26 JST


中村といいます。

ちょっとわからなくなってしまったので、御教示
いただきたく。

これ

#!/usr/bin/env gosh
(define tbl (make-hash-table))
((lambda (tbl key value)
   (hash-table-push! tbl key value))
 tbl 1 "a")
((lambda (key value)
   (hash-table-push! tbl key value))
 2 "b")
(print (hash-table-keys tbl))
(print (hash-table-values tbl))

を走らせた場合、

(1 2)
((a) (b))

が出力されるのですが、

(2)
((b))

となるべきのように思えて、悩んでいます。
 (値渡しだから、初めの lambda に渡された tbl と
  その tbl への変更はその lambda の中でだけ有効、との理解。)

私の理解は、どこがおかしいんでしょうか。

-- 



Gauche-devel-jp メーリングリストの案内
Back to archive index