.xtal

無名再帰

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…

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, …

文字列の(セパレータを挟んだ)繰り返し

文字列繰り返し - Higé au lait 敢えて再帰でという趣向かな。でも空気読まずに普通に書く。 JavaScript String.prototype.repeat = function(n, sep, a){ (a = [this]).length = n; return a.join((sep || '') + this); }; 既に模範解答があるので少し奇を…

leapyear

http://golf.shinh.org/reveal.rb?leap+year/flagitious/1199295777&grb 00を中抜きした後mod 4で判定,でいいらしい。 JS for(;$=readline();)print($+' is '+($.replace(/00/,'')%4?'not ':'')+'a leap year.') 残念ながら普通にやるより1byte長いのだった…

x == x + 1

「x == x + 1」解答篇 - 西尾泰和のはてなダイアリー の続き。GNU Smalltalk*1: |x| x := 1e8. (x + 1 = x) print! ドリトル: x=9!17 pow。ラベル!(x==x+1)作る。Xtal: x: 1.0e+8; (x == x + 1).p; *1:07-11-30 訂正:x = x + 1 → x + 1 = x