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*zel*c-*w+q*av/-/f*\n an/e/dyb/p*ks/w/mv/j/i/*t/**qg/-*c/r*\n alfb*r*h*n*q/so/vc*t*--*x*d+i/j//\n imyq*o*g/w/r/k-/un*+bx/fla/e-/j**+/t*d*ch*-\n ktx/ej/a*d/r*m*i-n*f*qhvc*lo+*-*g*-/us*p*+/\n ftvj/cy*glmzi*qd*x***o/-/n-p-b-/e/**k+uw*+ha*-/\n in*p*v/j/x*ub*qrht/a/lcef/++k-/z//-*yo/+ds/-/g-m-\n dz/f/rp*le-mi/w*h*kx/c+g/*o+-n/*/j*b/\n bp/tv/a*ye*j/ms/z-rhn-+-/*u/i*+d*\n ad/v*l*ey/x/qz/s-*p/j//\n ba/vwg*i/q*j/l-c*dym/f*/o+p+s*-//x/r- Expect: kr/vgop*d*q/lzn*+hy/w*-j-x+ia*+c*s+*m//b/*u/e-f-/\n ug*i*d*b/h*zel*c-*w+q*av/-/f*\n an/e/dyb/p*ks/w/mvj/i//t*/**qg/-*c/r*\n alfb*r*h*n*q/so/vc*t*--*x*d+i/j//\n imyq*o*g/w/r/k-/un*+bxf/lae/-j/**+/t*d*ch*-\n ktx/ej/a*d/r*m*i-n*f*qhvc*lo+*-*g*-/us*p*+/\n ftvj/cy*glmzi*qd*x***o/-/n-p-b-/e/**k+uw*+ha*-/\n in*p*v/j/x*ub*qrht/a/lcef/++k-/z//-*yo/+ds/-/g-m-\n dzf/r/pl*emiw/h*k*xc/g+/*-o+n-/*j/*b/\n bp/tva/y*ej*m/sz/r-hn-+-/u*i/*d+*\n ad/v*l*ey/x/qz/s-*p/j//\n ba/vwg*i/q*j/lc-*dym/f*/o+p+s*-//x/r- Diff: --- expect 2008-02-18 00:29:56.322200000 +0900 +++ output 2008-02-18 00:29:56.321200000 +0900 @@ -1,12 +1,12 @@ kr/vgop*d*q/lzn*+hy/w*-j-x+ia*+c*s+*m//b/*u/e-f-/\n ug*i*d*b/h*zel*c-*w+q*av/-/f*\n -an/e/dyb/p*ks/w/mvj/i//t*/**qg/-*c/r*\n +an/e/dyb/p*ks/w/mv/j/i/*t/**qg/-*c/r*\n alfb*r*h*n*q/so/vc*t*--*x*d+i/j//\n -imyq*o*g/w/r/k-/un*+bxf/lae/-j/**+/t*d*ch*-\n +imyq*o*g/w/r/k-/un*+bx/fla/e-/j**+/t*d*ch*-\n ktx/ej/a*d/r*m*i-n*f*qhvc*lo+*-*g*-/us*p*+/\n ftvj/cy*glmzi*qd*x***o/-/n-p-b-/e/**k+uw*+ha*-/\n in*p*v/j/x*ub*qrht/a/lcef/++k-/z//-*yo/+ds/-/g-m-\n -dzf/r/pl*emiw/h*k*xc/g+/*-o+n-/*j/*b/\n -bp/tva/y*ej*m/sz/r-hn-+-/u*i/*d+*\n +dz/f/rp*le-mi/w*h*kx/c+g/*o+-n/*/j*b/\n +bp/tv/a*ye*j/ms/z-rhn-+-/*u/i*+d*\n ad/v*l*ey/x/qz/s-*p/j//\n -ba/vwg*i/q*j/lc-*dym/f*/o+p+s*-//x/r- +ba/vwg*i/q*j/l-c*dym/f*/o+p+s*-//x/r-
どうも余分な括弧があるケースで失敗するらしい。
$ io Io 20080107 Io> 1+2*3 ==> 7 Io> (1+2*3) ==> 7 Io> ((1+2*3)) Exception: argument 0 to method '+' must be a Number, not a 'nil' --------- message '+' in 'Command Line' on line 1
むむ?
Io> message( 1+2*3 ) ==> 1 +(2 *(3)) Io> message( (1+2*3) ) ==> 1 + 2 * 3 Io> message( ((1+2*3)) ) ==> (1 + 2 * 3) Io> message( write(1+2*3) ) ==> write(1 +(2 *(3))) Io> message( write((1+2*3)) ) ==> write(1 + 2 * 3) Io> message( write(((1+2*3))) ) ==> write((1 + 2 * 3))
…新手のバグか。(−−;)
*1:最初からやっておけという話である