2014/02/01
ピアノレッスン117回目
停滞中…
- Kapustin: Concerto Etude Op40-1
- MM=116でスタートしたが崩壊。別のアプローチが必要そうだ。 しばらく寝かせておこうか、という話になる。
- Ravel: Ondine
- 左手の大きなアルペジオのうねりがあるところ、ただ弾いてるだけになってるから 工夫してみて。
残り時間で譜読みしてるKapustinのSpice Island冒頭をゆっくり。
Tag: Piano
2014/01/29
関数型料理
関数型プログラミングを料理の仕方でたとえてください。
作る料理はなんでも構いません。
料理の一般的なレシピというのは、手続き型プログラミングで
たとえることが可能だと思っています。
「料理の仕方」と言ってしまった時点で手続き型思考の罠にはまってる気がする。
関数型の雰囲気だと、それは「料理の定義」に近いものになりそう。
- ペペロンチーノとは、「炒めたにんにくと唐辛子」と「茹でたパスタ」を混ぜたものである
- 「炒めたにんにくと唐辛子」は、「薄切りにんにく」と「輪切り赤唐辛子」をオリーブオイルで弱火にてxx分間炒めたものである
- 「茹でたパスタ」は乾燥パスタを湯に入れxx分経過したものである
- ...
っていう具合。
「手順」は陽に示されてないけど、そこは処理系がうまいことこの定義に従うように よろしくやってくれる。
パスタを茹でることでパスタの状態を変化させる、とは考えない。乾燥パスタを「茹でる」 操作の入力に与えると、出力に「茹でたパスタ」が得られる、と考える。 元のパスタは無くなるんだから変化してるじゃないかって? いやここでは時間もパラメータであって、時刻T1にスタートしてT2に茹で上がったとすると、 「T1に乾燥パスタがある」という状態はパスタが茹で上がった後でも不変だ。 現実世界ではタイムマシンがないからその状態にもうアクセスできないってだけで。
レシピが手順書の形を取っているのは、 人間がやる場合はいちいち頭の中で手順を考えるより、「コンパイル結果」である手順書を 逐次フォローしていった方が楽だからだろう。
ただ、単一の料理でなく一回の食事の準備という観点では、人は 「今日の夕食は、ご飯と肉じゃがとおひたしと昨日の残りの…」などど 定義を考えてからon-the-flyでコンパイルしつつ並列処理で仕上げるので、 その点については実は関数型言語の動作に近いかも。
Tag: Programing
2014/01/29
小切手による預金の移動
A銀行にある自分の口座から、B銀行にある自分の口座に預金を移したい、という場合。 日本だとATMで振込だろうけど、 こちらではA銀行の小切手の宛先を自分にしてB銀行に送っている。 電信送金もできるけど手数料かかるし、 最近は改善されたかもしれないが以前は何日かかかっていたので、 どうせ時間がかかるなら手数料不要な小切手送付でいい。
USに来た時から使ってる銀行が、ハワイから撤退してしまったので、 その銀行に預金するにはいずれにせよリモートな手段を使わざるを得ないし。
で、大抵いつもはハワイで小切手を投函して(宛先はアリゾナにあるバンキングセンター)、 3~4営業日で口座に反映されていたのだけれど。
1/13に送った分がなかなか反映されない。配送が遅れて週末に間に合わなかったとすると 翌週月曜がMartin Luther King's Dayで休みだったからそのせいかなと思って もうちょっとだけ待ったんだけど、10日経っても反映されないのでちょっと焦った。 配送途中で紛失されたなら、振り出し元の小切手を無効化すれば金が無くなることはないんだけど、 それとは別に月末のいろんな支払いの前に入金されていてくれないと残高が足りなくなるのだ。
慌てて1/24に新しい小切手を送付。
今朝オンラインでチェックしたら昨日づけで13日に送った分が入金されてて、24日に送った分も 処理中になってた。新しい小切手がきて慌てて前の分も処理したみたいにも見えるけど、 まあ単純にバックログがたまってたとか、誰かの机の端に置き忘れられてたとか、 そんなとこだろう。
迅速な処理はもともと期待してないんで良いのだが、 さすがにもうそろそろ小切手から移行すべきかなあ。電話料金やクレジットカードの 支払いはオンラインに移行済みだし。 銀行間預金移動がオンラインで手数料かからないかどうか調べてみよう (面倒で調べてない)。
Tag: 生活
2014/01/28
本日のyak shaving
- そろそろequal?をcircular-safeにするか。素直にAdams&Dybvigの論文を実装すればいいだろ。
- boxを使ってるな。pairで代用してもいいけど、Gaucheは既に内部的にはboxが用意されるんで この際だから使っちゃおう。
- Schemeに見せるインタフェースはsrfi-111でいいな。
- あれ動かない。あ、そうか、今のboxはコンパイラで楽するために暗黙のunboxという 変なことをやってたんだった。これを直さないと (WiLiKi:Gauche:boxに関する覚書)。
- BOXインストラクションのパラメータを変えて、と。おっと、インストラクション仕様が ビルド用Gaucheとターゲット用Gaucheで違ってるとエラーになるのか。 まずこのケースをサポートしないと。
- 5.のfixをコミット
- 4.のfixのうち仮引数のbox化をコミット
- 4.のfixのうちLOCAL-ENV-CLOSURESの変更に着手するも、これで作られるフレームで set!されてるlvarをbox化してなかったことに気づく
- 8.のfixをコミット
- 4.のfixのうち、UNBOXの明示化に着手
- むー動かない。まてよ、このGaucheをコンパイルしてるのは一つ前のGaucheで、 そいつはUNBOXインストラクション出さないんだから、LREFから暗黙のunboxを 落としちゃったら動作しないんじゃないか←イマココ
Tags: Programming, Gauche
2014/01/25
ピアノレッスン116回目
仕上げ手前で足踏み状態
- Kapustin: Concerto Etude Op40-1
- 「こういう音を出したい」と思って弾いてもピアノが違うと思っている音にならない、 そのときに崩れちゃうなあ。
- Ravel: Ondine
- 後半も良くなった。だがミスをなくそう。
Tag: Piano

Comments (0)