アプリ10円セール実施中と言うことで、いろんなアプリを試す良い機会になりました。
- SketchBook Mobile : 機能が充実したスケッチソフト。もっとレスポンス速く、細かい文字も書けるようになれば良いんだけど、Androidではこの辺が限界なのかなぁ。
- 星座表 : 前から欲しかったのだけどそんなにお金を出してまで買うのもなぁと思っていたのでこの機会はありがたい。
- SoundHound ∞ : 音楽検索ソフト。すごい。アニソンもばっちり。
アプリ10円セール実施中と言うことで、いろんなアプリを試す良い機会になりました。
先週金曜日にSO-01B(Xperia X10)からSC-04D(Galaxy Nexus)へ移行した。4.0が出たら新しいの買うよ、と言っていたので仕方ない。
良くなったところ:
悪くなったところ:
というわけで、Emacs LISP テクニックバイブルを買ってみたり。
Emacs Lispってたまに書くけど、いまだにちゃんとした書き方がよく分からない。
例えばバッファ内を正規表現検索してマッチした文字列からなるリストを作りたいとき。
(save-excursion (let (result) (while (re-search-forward "[0-9]+" nil t) (setq result (append result (list (match-string 0))))) result))
毎回appendするのは効率が悪そう。
(save-excursion (let (result) (while (re-search-forward "[0-9]+" nil t) ;;↓(require 'cl)していいなら(push (match-string 0) result) (setq result (cons (match-string 0) result))) (nreverse result)))
一番書きやすそうなコードだけど、reverseするくらいなら最初から後ろへつなげていけば良いんじゃね?
(save-excursion (let (head tail) (while (re-search-forward "[0-9]+" nil t) (let ((number (match-string 0))) (if tail (setq tail (setcdr tail (list number))) (setq head (setq tail (list number)))))) head))
一番最初headもtailもnilから始まるのがやっかい。ループの中で毎回nil判定するのは無駄。
(save-excursion (if (re-search-forward "[0-9]+" nil t) (let* ((head (list (match-string 0))) (tail head)) (while (re-search-forward "[0-9]+" nil t) (setq tail (setcdr tail (list (match-string 0))))) head)))
時間的な効率は良さそうに見える(要検証)けど、re-search-forwardやmatch-stringを二回書かなきゃいけないのがイヤな感じ。
というわけで、結局どう書くのが一番良いのかいまだに分からない。実行速度なんかはちゃんと検証した方が良いんだろうなぁ。
clとかあまり使ったこと無いし、マクロとかもほとんど使ったこと無い。たまに書くだけだからまだまだ知らないことが沢山あるなぁ。そういえばclって積極的に使って良い物なの? 上の例でもpush使おうか迷ったんだけど……。
普段Lispを使っている方はこういうときどう書くんでしょう。
この発想はなかった。
この手の図面って見てるだけでワクワクしちゃうよね。
似たようなゲームはなかったのかなと調べてみたら、少し形態は違うけどMADRISMというXboxインディーズゲームがあったらしい。
キッチン多すぎ(笑) 2LDKとかいって消えていくところが可笑しい。
四畳半神話体系のEDを連想したり。
人間粘り強さが大事だよ、といつも思うのですよ。少しばかり辛くても、我慢して進む。進む意味がよく分からなくても、誰もほめてくれなくても。
もっとシンプルにしたいけど空間的、時間的な効率や、様々な機能を考えるとどうしても汚らしくなっちゃう。なんとかならないものか。
やりたい。新しいシムシティがいつまで経っても出ないので。
あまり好きな歌ではないと思っているのだけど、なぜかよく頭の中で輪る曲。
なんかもう、悲しい気分でいっぱいです。まあ、いつもなんですが。がんばれ俺。