アカウント名:
パスワード:
print "0x" + hex(x) # hex()は整数の十六進表記文字列を返す組み込みメソッドx = 128
を実行すると、1行目でxが未定義というエラーになります。これは納得できますよね。
print f(128)f = lambda x: "0x" + hex(x) # lambdaで無名の関数オブジェクトを生成
を実行すると、1行目でfが未定義というエラーになります。これも納得できますよね。
defで関数を定義した
print f(128)def f(x): return "0x" + hex(x)
も同様に、1行目でfが未定義というエラーになります。それだけのことです。
あーー、これは困ったな。実は最初の1つと後の2つは違う事を言っています。
print "0x" + hex(x) # hex()は整数の十六進表記文字列を返す組み込みメソッドx = 128を実行すると、1行目でxが未定義というエラーになります。これは納得できますよね。
えー、この段階ですでに「納得できない」だったりします。あ、いや、Pythonがそういう言語だ、と言うのは判りました。でも、それは必ずそうならざるを得ない、と言うものではない。
例えば Perl ですと、(x ではなく $x と書く必要がありますし、hex()は変換方向が逆向きなんで sprintf を使いますが):
print "0x" . sprintf "%lx\n", $x; # hex()は整数の十六進表記文字列を返す組み込みメソッド$x = 128;
今の時代に use strict; 無しの perl を語るとは思わなかった。
と、上から目線で語りつつ間違いなのが恥ずかしい。
use warning; だね。
参考: http://blog.livedoor.jp/dankogai/archives/51078955.html [livedoor.jp]
use strict も use warning も Perlの魅力を半減させているじゃないですかっ。
無駄に魅力を隠して、人間の無能さぶりに付き合ってると言うか… (^w^)。Perlの最大の魅力はあの野蛮さと、それに伴う手間の少なさにあるんですから。
strict とか warning を on にするのは、こう…何と言うか…公衆道徳とかいう代物だけのために、すごく着心地の悪い服を着ている感じ (^o^)
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
Stay hungry, Stay foolish. -- Steven Paul Jobs
前方参照はできません (スコア:1)
を実行すると、1行目でxが未定義というエラーになります。これは納得できますよね。
を実行すると、1行目でfが未定義というエラーになります。これも納得できますよね。
defで関数を定義した
も同様に、1行目でfが未定義というエラーになります。それだけのことです。
Re: (スコア:1)
あーー、これは困ったな。実は最初の1つと後の2つは違う事を言っています。
えー、この段階ですでに「納得できない」だったりします。あ、いや、Pythonがそういう言語だ、と言うのは判りました。でも、それは必ずそうならざるを得ない、と言うものではない。
例えば Perl ですと、(x ではなく $x と書く必要がありますし、hex()は変換方向が逆向きなんで sprintf を使いますが):
fjの教祖様
Re: (スコア:1)
今の時代に use strict; 無しの perl を語るとは思わなかった。
Re: (スコア:1)
と、上から目線で語りつつ間違いなのが恥ずかしい。
use warning; だね。
参考: http://blog.livedoor.jp/dankogai/archives/51078955.html [livedoor.jp]
Re:前方参照はできません (スコア:1)
use strict も use warning も Perlの魅力を半減させているじゃないですかっ。
無駄に魅力を隠して、人間の無能さぶりに付き合ってると言うか… (^w^)。
Perlの最大の魅力はあの野蛮さと、それに伴う手間の少なさにあるんですから。
strict とか warning を on にするのは、こう…何と言うか…公衆道徳とかいう代物だけのために、すごく着心地の悪い服を着ている感じ (^o^)
fjの教祖様