こともなし

昧爽起床。九時間くらい寝た。
空疎感。

NML で音楽を聴く。■バッハのフランス風序曲 BWV831、幻想曲とフーガ イ短調 BWV904 で、チェンバロは辰巳美納子(NMLCD)。よかった。■ベートーヴェン弦楽四重奏曲第十一番 op.95 で、演奏はミロ・クァルテット(NMLCD)。■スクリャービンの八つの練習曲 op.42 で、ピアノはゴードン・ファーガス=トンプソン(NML)。

Scriabin: Piano Works

Scriabin: Piano Works

 

クリスマスにリリースされた Ruby の新バージョン 2.7.0 をインストールしてちょっといじってみる。irb の刷新、パターンマッチの導入など、確かにすばらしい。個人的には Enumerator.produce の導入がようやくという感じで、ちょっとよかったですね。これで例えばフィボナッチ数列の生成がこんな感じで書ける。

$ irb
irb(main):001:0> fib = Enumerator.produce([1, 1]) {|a, b| [b, a + b]}
irb(main):002:0> fib.take(10).map(&:first)
=> [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

まあこれで何がウレシイんだと思う人が大部分だろうが(笑)。僕は Enumerator、好きである。
 もひとつ。階差数列。

irb(main):003:0> dif_seq = Enumerator.produce([0, 1]) {|a, b| [a + b, b + 3]}
irb(main):004:0> dif_seq.take(10).map(&:first)
=> [0, 1, 5, 12, 22, 35, 51, 70, 92, 117]

やろうと思えば、第二階差数列とかも簡単に生成できる。
 パターンマッチはこれまでの Ruby の発想とはだいぶちがう。パターン、束縛、ガードなど、強く関数型言語の発想で、それが Ruby になじむとどういう世界になるのだろうか。関数型言語パラダイムでも、map, select, inspect くらいのものとはちがう。正直言って自分は、パターンマッチでないと Ruby で書きにくいという場合にはあまり遭遇しない気もする。


肉屋。スーパー。
モンレーブでケーキを買ってくる。

夜、老母用の iPad mini 32GB Retinaヤフオクで無事落札。付属品付きで15000円以下だったから、まあまあではないか。僕が現役で使っているものとたまたま同機種である。よい状態だといいなあ。


RubyGUI を作っていた。
Linux の find コマンドの GUI化(Ruby) - Camera Obscura