トップ «前の日(02-15) 最新 次の日(02-17)» 追記

U-memo

2006|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|08|
2009|08|10|
2010|02|03|
2011|11|12|
2012|04|
2016|02|
All= / Today= / Yesterday=

2007-02-16

_ [Golf][OCaml] あなごるネタばれあまりしない編 (Delete blank lines)

Rank	User	Size	Statistics
1	m.ukai	55	0B / 32B / 19B
2	shinh	56	0B / 32B / 20B
3	soutaro	59	0B / ?B / ?B
4	hrkw	65	?B / ?B / ?B
5	jijixi	65	0B / ?B / ?B

65B というのはたぶんこれ。最初に書いたのとほぼ同等。

while 1=1do let a=read_line()in if a<>""then print_endline a done

ここから if-then をなくせば 59B になるはず(だがこの59Bはそうなっているかどうかは不明)。

55B は while 構文を使っていません。

_ [Golf][OCaml] あなごるネタばれしまくり編 (Fibonacci)

Rank	User	Size	Statistics
1	ksk	58	0B / 34B / 17B
2	m.ukai	65	0B / 37B / 19B

Int32 より float を使ったほうが短かったが、とにかく素朴な再帰手段+αで現在の状況。if - then も除いた状態なのでここから 7byte 縮む気はしない。

この前に持っていた直接算出するやつは縮むのかもしれないが、どうやって?

for i=1to 46do Printf.printf"%.0f\n"(1.61803398875**float i/.sqrt 5.)done

さっぱりわからんなー。

(追記)ksk さんはまじめに計算している ことから考え、終了条件をひねって 62B。あと4Bに使えるネタはなんだろう?

_ [Golf][OCaml] あなごるネタばれしない編その2 (Delete Last-line)

delete blank line で shinhさんと 1B の差はたぶんあれだろう、なのになぜ delete last line は同じスコアなんだろう、と考えたら一気に 6B 縮んだ。

_ [Golf][OCaml] あなごるネタばれしまくり編その2 (invert case)

Rank	User	Size	Statistics
1	ksk	63	0B / 50B / 10B
2	shinh	74	0B / 53B / 17B
3	m.ukai	79	0B / 60B / 15B

全然太刀打ちできる気配が無いのは普通に書きすぎているからか。

while 1=1do print_char(char_of_int(32 lxor(int_of_char(input_char stdin))))done

そもそも非対称なことに read_char が無い時点で困ってしまうわけだが、 String.iter しても Char.lowercase / uppercase は長いしなぁ。

_ [Golf][OCaml] あなごる今日のノウハウ

昨日は演算記号の続きはスペースが無いとダメだと書いたけれど、

a:=!b

これはスペースが不要(a := !b ね)。演算記号でないならいいという感じだが、パーサの癖は謎だらけ。

本日のツッコミ(全2件) [ツッコミを入れる]

_ ksk [こんにちは. 参考までに書いておきますと,私のinvert caseのコードも,一応それの延長線上にあります.]

_ ukai [こんにちは。 これの延長で縮めるって、禁断のあれかなぁ?]