いや、まじめにRuby勉強しだしてたりします。
ただ、昔買った本はさすがに古いかと思いますので、そろそろ
教科書を買い換えなきゃなぁ、と思いますけどね。
<正規表現>
> Perlの qr<> による正規表現オブジェクトの組み立てとか、Rubyの
> Regexp.new での構築なんてのもありますので、一概にリテラルがあれば
> いいってものでもないとは思います。
ふむ、そんなモノなんですか。
あたしゃ基本的に、Python以外では、AWKのパターンで使ったくらいなんで、
「あったら便利かな」と思っただけですが。
<ブロック>
> んーとRubyのblockは結構便利に使われてるので、blockでこんなに便利という例
> で云うと
>
> open('ほげほげ', 'r') { |f|
> ファイルから読み取って行う処理
> }
>
> とかすると自分で close しないでもステートメント終了時にcloseしてくれるよ。
> っていうのもありますけど、これは機械さんが想定しているのとはたぶん違いま
> すよね?
> #これはPythonだとwith構文使うんでしたっけ?
withを使うと……
with open('ほげほげ', 'r') as f:
for line in f:
ファイルから読み取って行う処理
でしょうか。コレクションを返す処理なら、内包記法が使えますが、
そうでなければ、上記のように行ったほうが無難ですね。
※無理にexec + 内包記法はかえって面倒
メソッドで扱ってしまったほうが、確かに便利かもしれませんね。
> あと、「Lispでブロック」ってのが良くわからんのですが、具体的にどういう
> 記述を考えられてます?
> ひょっとして closure のことを云ってるのでしょうか…
フツーにlambdaで放り込む文のコトですけど。
Pythonと異なり、SchiemeやLispは複文(複式?)がlambdaで書けますので。
もちろん、クロージャでもかまいませんが。
まぁ、質問を挙げておいてなんですが、考えてみれば、ブロック表記は、便利
というより、「メッセージとして考えやすい」ってほうが、重要なのかな、と
思ったりしました。
読みやすさは、私は明示的なループに頭が慣れてますので、なんともいえませんが、
シンプルな記法があれば、それはそれでパワフルなのかと。
/機械伯爵/いろいろじっけんちう/