Viivi 00.17 リリース・ノート < Viiviの小部屋 < 入り口 / Entrance
第00.17.01版では,第00.16.00版から以下の点について改良を行いました.
define
や set!
の手続きを適用したときの挙動を見直した.define
define
がトップレベルでシステム定義済みシンボルの束縛関係を書き換えたときだけ
注意メッセージを表示するように変更した.set!
set!
を使ってもシステム定義済みシンボルの束縛関係を書き換えることができるように修正した.define
同様,
手続き set!
がシステム定義済みシンボルの束縛関係を書き換えるときには注意メッセージを表示する.
[例]
> (define cos +) ;; cos はシステム定義済みシンボル
/// 【注意】
/// 手続き #<procedure:define> がシステム定義済みシンボル cos の束縛関係を新たな束縛値 #<procedure:+> に書き換えました.
/// 処理を続けます...
#<unspecified>
> (let ((sin #f)) (define tan /) (tan 30)) ;; この場合の tan は let の局所スコープ内で束縛されるので注意メッセージは表示されない
1/30
> (let ((sin #f)) (set! tan -) (tan 30)) ;; tan はシステム定義済みシンボル
/// 【注意】
/// 手続き #<procedure:set!> がシステム定義済みシンボル tan の束縛関係を新たな束縛値 #<procedure:-> に書き換えました.
/// 処理を続けます...
-30
> (let ((sin #f)) (set! sin sqrt) (sin 30)) ;; この場合の sin は let の局所変数なので注意メッセージは表示されない
5.477225575051661
>
Viivi 00.17 リリース・ノート < Viiviの小部屋 < 入り口 / Entrance
2012/08/18 開設
2022/03/02 更新
Copyright(C) 2003-2022 ilma <ilma@viivi.io> All rights reserved.