challenge 変数の初期値

WEB+DB 43のRecent Perl Worldを読んで知りました。

変数を初期化するに当たってPerlでは
my $var ||= 'foo';
とかきます。この不備を補うためPerlの5.10には
Defined-or演算子が実装されたそうです。
$zero //= 25;
このような変数のデフォルト設定を行う方法を各種言語ではどうかくのでしょうか。


Posted feedbacks - Scheme

Perl では 0 や空文字列も偽と判断されるのでこのような演算子が必要なんですね。 Scheme では R6RS で (define var) のような書き方もできるようになりましたが、これも何らかの未規定の値が設定されるだけで、それを利用したプログラムを書くことはできません。

このような場合は仮の値として #f を入れておくのをよく見掛けます。

1
2
3
(define var #f)

(some-function (or var 100))

Index

Feed

Other

Link

Pathtraq

loading...