Just another Ruby porter,

〜2007年9月中旬〜


<Prev(,) | Next(.)> | Recent(/)>> | RDF

2007-09-11 (Tue)

[Web] 1日で見るWebのページ数

昨日が164、今日が177。結構見てるんだなと思った。
Gmailだのfastladder等は含まれないから実際はもっと多いけど。

[Ruby] is there a one liner to initialize a variable to 1, or increment by 1?

実際問題ローカル変数fooってのはありえないよね。

foo = (foo == nil ? 1 : foo + 1)

というのが気に入らないらしいが、
これはあらかじめfoo = nilとしないと初出のfooの参照でNameErrorになるはず。
と思ったら先にfoo =があるから初出にならないのか。おもしろい。

いやいややっぱ変だな。インクリメントするのはループの中とか、
メソッドが呼ばれるたびにとかそういう使い方になるはずで、
ループだったら先にfoo = 1しとけばいいし、
メソッドだったらそもそも それならinitializeで= 1しとけばいいわけで、
やっぱどういうとこで使われるのかよくわからないな。
initializeが面倒ってのはあるかもしれないが。

どうでもいい話ではあるが

foo = foo + 1 rescue 1

なんてのを思いついた。rescueは値を持つというのは意外と知られていない。


2007-09-12 (Wed)

[IM] meebo

なひさんにそそのかされてmeeboを使ってみる。
会社からはぶちぶち接続が切れてsignupもままならず、
家に帰ってやっと使えるようになった。
ここまで作り込むかー。

[Golf] 100

自分で出題しておいてなんだが、やっと250Bを切ったくらい。
あと1週間あるしのんびり縮めていこう。


2007-09-13 (Thu)

[RTM] remember the milk

牛乳を買うの忘れて思い出したので登録。
なかなか面白いUIだなあ。
とりあえずヘルプを読むタスクを追加した。


2007-09-14 (Fri)

[Golf] 99(ry

1バイト追い付けないなあとずっと思っていたが、改行がこんなとこに。


2007-09-15 (Sat)

[Golf] 100

231Bまで来たがもう縮みそうもないので、別解を考えたらすぐに縮んだ。
世の中こんなもんか。


2007-09-16 (Sun)

[NICO NICO] アンインストール

サビは本物よりもいいと思った。

[Golf] 100

考えれば縮まるもんだな。200Bを切るには時間がもうないか。


2007-09-17 (Mon)

[Ruby] Re: group array elements in groups of two

1.8でもそりゃ動くよねってはいいとして、golfなら

new = arr.enum_slice(2).to_a

でもまだまだで

new = *arr.enum_slice(2)

のように*を使う。

% irb
>> require 'enumerator'
=> true
>> arr = [1, 2, 3, 4, 5, 6, 7, 8]
=> [1, 2, 3, 4, 5, 6, 7, 8]
>> new = *arr.enum_slice(2)
=> [[1, 2], [3, 4], [5, 6], [7, 8]]

つまりa.to_aよりもa.mapやa.zipなんだが、さらに[*a]のほうが短い。

[Golf] 100

毎日飽きもせず縮めてるわけだが、今日はmapじゃだめだということがわかった。
いや、 さっき書いたのとは別の話ではあるんだが。


2007-09-18 (Tue)

[Ruby] Autumn Leaves: A Ruby IRC Bot Framework

秋葉?


2007-09-19 (Wed)

[Golf] 100

なんとなくputsとmapだろうと思ったらやっぱりそんな解が上位に。

そうだよなあ。nilをはさめばいいんだよな。
あと思い込むと単純なことに気づかないもんだなと。

今回の収穫はmapよりも*でjoinのほうが短い。


2007-09-20 (Thu)

[Golf] number(6)

Fedora 7ならyum install bsd-gamesで。numberは数を英語で教えてくれる。
ちょっと余計なもんが多いんだけど、

% number 0 1 99 100
zero.
...
one.
...
ninety-nine.
...
one hundred.

という表示結果になる。

いろいろうささんとやりとりしてるうちに

% number {0..100}|sed -n 'y/-/ /;/^[a-z]/s/\.//gp'
% number -l {0..100}|sed -n 'y/-/ /;/^[a-z]/p'
% number -l {0..100}|sed -n 'y/-/ /;/^\./!p'
% number -l {0..100}|sed 'y/-/ /;/^\./d'
% number -l {0..100}|sed 'y/-/ /;/\./d'

こんな感じで短くなっていった。
最終解はさらに2B短い35Bだが、
微妙に odd linesの解なので自重。

実はゴルフ場にnumberがなくて泣いた。
あればCommon LISPに余裕で勝てたのにー。


<Prev(,) | Next(.)> | Recent(/)>> | RDF


WWW を検索 jarp.does.notwork.org を検索

わたなべひろふみ
Key fingerprint = C456 1350 085F A320 C6C8 8A36 0F15 9B2E EB12 3885
Valid HTML 4.01!