昧爽起床。九時間くらい寝た。
空疎感。
NML で音楽を聴く。■バッハのフランス風序曲 BWV831、幻想曲とフーガ イ短調 BWV904 で、チェンバロは辰巳美納子(NML、CD)。よかった。■ベートーヴェンの弦楽四重奏曲第十一番 op.95 で、演奏はミロ・クァルテット(NML、CD)。■スクリャービンの八つの練習曲 op.42 で、ピアノはゴードン・ファーガス=トンプソン(NML)。
- アーティスト:Gordon Scriabin / Fergus-Thompson
- 出版社/メーカー: Eloquence Australia
- 発売日: 2019/06/21
- メディア: CD
クリスマスにリリースされた 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円以下だったから、まあまあではないか。僕が現役で使っているものとたまたま同機種である。よい状態だといいなあ。
Ruby で GUI を作っていた。
Linux の find コマンドの GUI化(Ruby) - Camera Obscura