.io

Error

Ioのせい。 - たばさの - Rubyist 出るのは 1B でも出るけど標準出力の方に吐いちゃうので実質出ないというか。 io = ['io', '-e', '-'].execute() println "Err:\n$io.err" println "Out:\n$io.in" Err: Out: Exception: argument 0 to method '-' must be …

'0' in 0~1000

0〜1000に含まれる0をカウントする - os0x.blog for(var i=0,c='';i<1001;++i)c+=i+'';alert(c.match(/0/g).length); ふむ。とりあえず for(i=c='';i<1001;)c+=i++;alert(c.match(/0/g).length) 枝葉を落として 53B。IE/Safari を捨てるなら // ↓ match/leng…

分割代入

.io

List <- := method(aList, obj := call sender foreach(i, v, if(v at(0) == 0x2A, # "*(var)" obj setSlot(v slice(2, -1), aList slice(i)); break, obj setSlot(v, aList at(i)))) aList ) Object w := method( call message arguments mapInPlace(code) …

dcl_C_とmethod

51b氏のアシストでIoならではのとてもキレイな解に辿り着いた。 最初からこういうコードを書けるようになりたい。

無名再帰

http://d.hatena.ne.jp/sumim/20080501/p1の続き。 GST [:n| n < 2 ifTrue: [ n ] ifFalse: [ n * ((BlockClosure block: thisContext method) value: n - 1) ] ] value: 10 ContextPart>>#receiverがなぜかnilを返すのでこういう形に。 Groovy { n -> n < 2…

Groovyでどう書く

Rubyでどう書く?:連続した数列を範囲形式にまとめたい - builder by ZDNet Japan print args[0].split()*.toInteger().sort().inject([[[]]]){ r, v -> r[-1][-1] + 1 == v ? r[-1] << v : r << [v] r }.collect{ it.size > 2 ? it[0, -1].join('-') : it …

初awk

なのだった。

Io golf tips second

変数名に記号を用いて空白を減らす odd-lines.io File standardInput readLines map(i,$,i%2>0or$println) ! $ ~ などコンパイル時にカッコが補われない(演算子に使われていない)もので。 Mutable な空文字列を得る方法 list join 「 ""asMutable 」より2バ…

i to p afterward

Ioは最新版になったのに,件のコードは通らない。 caddyでチェックしてみると…*1 $ caddy -n i-to-p.io Loading testcases of 'infix to postfix' Test #1... OK Test #2... FAILED Output: kr/vgop*d*q/lzn*+hy/w*-j-x+ia*+c*s+*m//b/*u/e-f-/\n ug*i*d*b/h…

i to p

infix to postfixにはRubyの特徴を活かした名回答があって,Ioでも同じアプローチが使える。 i-to-p.io (115) forward=setSlot("-",method(A,call message name print;self)) File standardInput readLines map(V,doString(V)" "print) …はずが,またしても…

Io fiboBench

すっかり気に入ってしまったのだが,こうなると実行速度の鈍さが気にかかる。 Number fib := method(if(self < 2, 1, (self - 1) fib + (self - 2) fib)) n := File standardInput readLine asNumber; t := Date clock writeln("fib(".. n ..") = ", n fib, …

Io golf tips first

やってみると結構トップが取れる。皆マジメに解いてないな。(−− ) 変数より do() Inverse problem: 76 → 70 メッセージ式の意識 Print numbers: 55 → 54 and と or は演算子 つまり括弧が省略できる。

Io begin

釣られて始めてみた。 http://www.iolanguage.com/scm/git/checkout/Io/docs/IoGuide.html / http://www.iolanguage.com/scm/git/checkout/Io/docs/IoReference.html 全てオブジェクト。スロットはプロパティかつメソッド。 構文はメッセージ式のみ*1。引数…