なでしこには、名前空間[*1]が実装されているため、きちんとプログラムを書けば名前の衝突回避に役立ちます。また、関数のオーバーライドなども可能になります。
# 違う名前空間上で新たに関数を定義することにより、 # 関数のオーバーライドを実現 ●起動({文字列=?}PATHを) PATHを表示 PATHをシステム:起動
ところが、その名前空間をプログラムの途中で変えるためにあると思われる「ネームスペース変更」命令が上手く動いていないというバグ報告 (@460) がありました。
Aとは整数=1 Aを表示。 #=> 1 !『test.nako』を取り込む。# こちらではA=2が宣言されている test:Aを表示する。 #=> 2 (名前空間を明示したので) 『test』にネームスペース変更。# ここでエラー! Aを表示する。 #=> 2 (…となって欲しい)
さて、困りました。プログラムを構造化するためにソースファイルを細分化して「取り込む
」命令を活用する僕としては、当然直して欲しいバグです。