2008-06-01から1ヶ月間の記事一覧

golf-buffer-scheme

ゴルフしたコードが余りに読み辛いのでscheme-modeを導入した上で作成。 (defun golf-buffer-scheme () (interactive) (let ((spc "[ \r\n\t]") (-- "\\|")) (replace-buffer (compile-regexp (concatenate 'string spc "*" "\\(" ; <1> "\"\\(?:[^\"]\\|\\\…

dcl_C_とy

http://golf.shinh.org/p.rb?duplicate+certain+lines+_C_ for(i=0;++i<297;)print(readline().replace(/(d )(?=\1*(.*))/gy,'$2\n')) 70B。しかしばーじょんがたりない!

text.trと#\\

koderaさんのをGaucheで真似ようとして失敗。 gosh> (use text.tr) #<undef> gosh> (string-tr "\\('-')/" "\\\\/'" "_ \\\\") "\\( - )_"どうも妙なのでソースを覗いてみると… ;; Gauche-0.8.13/libsrc/text/tr.scm 108-117 (define (start c r) (cond ((eof-objec</undef>…

(gauche :golf 0)

簡単な問題なら縮むようになってきた。 rec / cut / pa$ 生lambdaの出番は無さそう。 `(x,y,@z) = (quasiquote (x (unquote y) (unquote-splicing z))) 「 (cons x y) 」より「 `(,x,@y) 」。 「 (rec(_ x) ...) 」より「 (rec'x ...) 」*1。 #/appliable re…

RubyKaigiの

自分も一応本職に入るのだろうと思い*1,授業中に書いたコードはsubmitせずに家に帰ったら七時をとっくに廻っていて参加しそびれた。 *1:compound interestで60B弱も叩いておきながらである。どうせトップに届かないと諦めきっているせいか,一向にRubyゴル…

→TopHatenar

TopHatenarのブックマークレット - kaisehのブログ はてダ以外からも飛べるように (はてな外で使うとid入力を促す) // location.href javascript:0,function(h,t){if(h!=(h=h.replace(/\w\.hatena\.ne\.jp\/([-\w]+).*/,t+'$1'))||(h='http://'+t+prompt(t,'…

Q

.js

JSのArrayは#(?:un)?shiftが遅くてキューとして使いにくいため,自作すると良いらしい。 /// q.js /// // wrapper of native array function Qa(){ var q = []; q.enq = q.push; q.deq = q.shift; return q; } // relies on property-order-retention (would…

Lua:golf()[1]

条件演算子が無い → and/or で代用 a and b or c -- a?b:c ビットシフトが無い → 「 ^ 」で代用 n*2^i -- n<<i math.floor(n/2^i) -- n>>i math.floorが長い → 1の剰余(少数部)を引く math.floor(x/y) -- ↓ -- x/y-x/y%1 gmatch → gfind</i>

ランダムにn個

.js

配列からn個の要素を重複無しでランダムに取り出す - m2 後の二つ三つ目は一様にならないし,重複する可能性もあるような。 function shuffle(a, n){ // Fisher-Yates var r = a.concat(), l = r.length, n = n < l ? n : l, i = l, j, t; for(i = l; i;) t …

木、子→親

…なるほど。 tree = [[ (Root (Spine (Neck (Head)) (RClavicle (RUpperArm (RLowerArm (RHand)))) (LClavicle (LUpperArm (LLowerArm (LHand))))) (RHip (RUpperLeg (RLowerLeg (RFoot)))) (LHip (LUpperLeg (LLowerLeg (LFoot))))) ]] while true do s, e,…

木、子→親

Schemeはまだまともに書けないのでGroovyで挑戦。 Tree = ['Root', ['Spine', ['Neck', ['Head']], ['RClavicle', ['RUpperArm', ['RLowerArm', ['RHand']]]], ['LClavicle', ['LUpperArm', ['LLowerArm', ['LHand']]]]], ['RHip', ['RUpperLeg', ['RLowerLe…

続format

.js

色々直してCodeReposに上げた。他の実装と速さとか比べてみようかとも思ったがあまりにも仕様がバラバラなので挫折。