No Such Blog or Diary
Java の総称型の配列
要素の型Eを抽象化したデータ構造を Java で実装しようと思って E [] elements をフィールドに置きつつコンストラクタで elements = new E[8]; とかやったらコンパイラに怒られた.そういえば Generics のパラメータ E に対しての配列は作れなかったな……
ということで,elements = (E[]) new Object[8]; とかやって誤魔化す.JDK の ArrayList とかもこうやってるし,これが正しいのだろう.なにか色々なものを投げ捨てている気もするし警告でちゃうのだけど.
基本的には ArrayList 使っとけってことだろうけど,どうせなら配列生成の構文だけでも警告の出ない構文を用意してほしかった気がする.
- Comments: 0
- TrackBack (Close): -
1文字に泣く
- 2019-10-27 (Sun)
- 一般
プログラム中の1文字が抜けてるせいでバグって泣いた.ひとつは関数名の一文字を打ち損じてて,もう一つは出力する文字リテラル中の一文字が抜けていた.どっちもコンパイル通っちゃう(前者については1文字抜けた名前のより一般的な型を持つ関数が存在していた)ので悩ましかった.それぞれの修正に3時間位ずつかかってて泣ける.
ところでデバッグ速度の単位って何だろう? とりあえず今回のは 0.33 byte / hour とか言う記録で.
- Comments: 0
- TrackBack (Close): -
初回点検
- 2019-10-26 (Sat)
- 一般
994km で初回点検.特に問題はなし.なお,予約が埋まりすぎてて閉店間際なタイミングしかなかったのは増税前駆け込みなどの影響か?
そして ICS(インテリジェントクリアランスソナー)の体験も.試乗車シエンタで障害物(プラスチックダンボール製)にクリーピングで突っ込んでもらうというものだったけれど,確かにギリギリで止まってくれる.というか思ったよりギリギリ.驚き.
ここらの安全装置はそのうち自分の車でも試してみたいところ.段ボール箱とかなら最悪ぶつかっても問題なかろう.自分の車ではやってくれるなと言われたけど.
閑話休題.
自宅の部屋の気温が 28.6℃とか行ってるのはなぜだ…… 窓あいてるのに.
- Comments: 0
- TrackBack (Close): -
今日の疑問
- 2019-10-25 (Fri)
- 一般
なぜ,合理的とは思えないインターフェース設計をするのだろうか.謎.単純に作ったシステムを使う場面を想像できないのかな……
モノづくりを学ぶのは何の講義だろう?
- Comments: 0
- TrackBack (Close): -
runState が……
- 2019-10-24 (Thu)
- 一般
State モナドの runState の返すペアってどっちが値でどっちが状態だっけ? とか思って Hoogle に聞いてみたら,一番上に出てきたのが runState :: State s a -> s -> (s, a) だった.
なるほど,snd で値が取れるのか → 大量のエラーを食らう.そしてしばらくエラーと戦い迷走.
結論:Control.Monad.State のやつは runState :: State s a -> s -> (a, s) でペアが逆だった.Hoogle だと2番目に出てくる.はた迷惑な.よく見ろよとも言う.
歴史的事情なのだろうけど,同じ名前で同じ目的なんだから同じ型にしておいて欲しい.無駄に時間を食った(runState くらい覚えとけとか,そもそも evalState でいいじゃんとか思わなくもないけれど).
- Comments: 0
- TrackBack (Close): -