ガス給湯器やっと修理完了

日曜日の夜から故障して動かなくなっていたガス給湯器が今日の午後の修理を受けてやっと稼働するようになった。

本体部分ではなく、周りのパイプなどの部品交換だったのだが、本体交換時にはそれらは廃棄物になってしまうらしい。たとえそれが明日だったとしてもだ。

そのことの説明は東京ガスライフバルからは受けてない。全取り替えが高額だから、「段階的修理」というつもりで選択した方法だったのだが。。。

 

書籍購入

なぜ「つい」やってしまうのか
衝動と自制の科学

VBA上で動くなんちゃってHaskell

以前TwitterでもつぶやいたVBA上で動くなんちゃってHaskell、面白いと思って作ったものだけど、急激につまらなくなってしまった。

mapやzipWithやfoldやscan系の関数を真似する事で、かなりループを排除できるようになったし、引数の束縛やらmapや関数適用関数をネストすることによって可能性が広がるんじゃないかと期待は持てたんだ。

でもVBAをいじる層はHaskellなんて無縁な人が大半だろうし、逆にHakellやC++をやっている人にはVBAは(VBAというだけで)興味を持ってもらえなんだよね。アピールしないというか。

もうひとつはFIzzBuzzが期待していた短さにならなかったこと。無理やり書けば1行にはなるけれど、現実的な長さで切ると5行程度になってしまう。

これは悔しかった。

まあ自分の個人的なツールとしては便利に使えそうだからいいけど。その中でいいアイデアがうかんだらまた弄ってみよう。

突然のコンパイルエラー

clangでもgccでもVCでもコンパイルできていたのに、突然エラーが出るようになった。

rbind/rbindv.hpp at master · mYmd/rbind · GitHub

これは可変長テンプレートの学習を兼ねて作成した自作のbind関数で、ラムダ式が導入されてからはほぼ無用の長物と化したけれど、引数のデフォルト値を設定できることが唯一のアドバンテージだと思って残していたものだ。

 それが上記のどの環境でもコンパイルできなくなった。

error: no matching function

だと・・・

VCについては、このコードを書いた後で2015previewを入れたので、そのせいかもしれない。clangとgccについても、このコードが持っていた潜在的な規格違反が顕在化したんだと推測している。

とりあえず無関係なソースコードを"miscellaneou"に移動し、こちらは無期限停止とする。

mYmd/miscellaneous · GitHub

ソースとしては、選択的関数オーバーロードのための "functor_overload.hpp"と、テンプレート引数の部分束縛のための"mbind.hpp"とそのサンプルプログラムだ。