あなごる

ねまーる

http://nemerle.org/ 「 class _{static void Main(){}} 」要らず セミコロンで文を区切るが末尾には不要(Pascal・Smalltalk風) using Nemerle.IO; print("Hello, world!") リスト操作・内包表記 簡潔なλ [1,2,3,4,5].Filter(fun(x){x%2>0}).Map(fun(x){x*…

irc

anarchy golf - irc utf-8の扱いを問う問題らしいのつもりでは無かったそうで。Tcl苦戦。

tak y

の Ruby 25B ってもしかしてこれかな。 #!ruby -na puts$F[rand*3] もしそうなら今は Array#choice があるので #!ruby -na puts$F.choice 24B。一万回ほど試せばたぶん通る。

DPVRC

Double Parity Vertical Redundancy Check 明らかに埋め込み問題。性質上 goruby だとキビシイ*1かと思ったが地味な発見により Ruby より 3B 縮む。 *1:適当なバイトを得るための常套手段である「'bar'[$$%3]」が1.9だと文字を返すため

circle art

a=[] s='={y,x->(a[y]=a[y]?:[])[x]=' evaluate"c$s'o'};e$s'*'};$System.in;a.any{println it.sum{it?:' '}}" タイムアウトする103B。gorubyの63Bと同じ方針。 + groovy.util.Eval の存在を知る。-1B。 a=[] s='={y,x->(a[y]=a[y]?:[])[x]=' Eval.me"c$s'o'…

main

最初意図が分からなかったが,どうもgoruby用の問題らしい?

ASCII

#s (?\x01..?\x7f).e.j pr *?\x01..?\x7f で1410Bかと思いきや通らない(ローカルではOK)。 試しに p (?\x01..?\x7f).to_a.size を送ると結果は「 57 」。?? + http://jarp.does.notwork.org/diary/200808b.html#200808111 はー,そういやそうか。 >> (?9..…

VALUE

http://golf.shinh.org/reveal.rb?sum+of+square+numbers/leonid/1217510219&rb http://golf.shinh.org/reveal.rb?sum+of+square+numbers/leonid/1217511494&grb 丁度「Rubyオブジェクトの構造」を読み始めていたのでなんとか合点がいった。 >> [TR,F,N,*-3.…

ΣN*N

単純なのにやけに奥が深い。jsとioのコードがかなり面白いことに。しかしこの二つ以外は1~2B届かないので何か見落としてるらしい。 ~(2*n)・ (2*n^3+3*n^2+n)/6 => 2*n/3+n^2/2+n/6">*1gorubyで2B,Rubyで1B足りない多いというのがヒントになりそうな…。*2 *…

(Smalltalk at: #Golf) tips third

変換ネタ。 Number → ScaledDecimal X asScaledDecimal:6 " ↓ " 0s6coerce:X Symbol → String #symbol asString " ↓ " #symbol,0 Array of Characters → String String withAll:#($c$h$a$r$s) " ↓ " '',#($c$h$a$r$s) String → ByteArray 'string'asByteArra…

count downとgorubyの罠

メソッドの短縮形を使うとローカルなグローバル変数(??)*1に対する副作用が働かなくて思ったように縮まない。これをなんとかするハックは無いものか。 *1:$_とか$&とか

dcl_C_と\b

盲点。 *1 これならstでも書ける。80B → 65B *1:\Gでないとダメと思い込んでた。yオプションは必要無かったのである。

dcl_C_とi/=9

ループを適当数回すのにこんな方法があったか。 js> for(n=9;n>1;print(n--,x))for(x=0,i=1;i/=n;)++x 9 339 8 358 7 382 6 415 5 462 4 537 3 678 2 1074 割る値を変えればある程度調整もできると。

dcl_C_とmethod

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

dcl_C_とputs

入力の最後に改行が無いケースがあるので-pとgsubのみだと40Bから縮まず。*1こういうときはputsを使うものらしい。 プログラミング言語 Ruby リファレンスマニュアル 末尾が改行で終っている引数に対しては puts 自身は改行を出力しません。 知らずに使って…

てぃくる

Schemeが手詰まり気味なので*1簡単そうなコレに浮気。 全部文字列。 文法上適宜空白を入れざるを得ず,ゴルフしても大して読みにくくならない。 8.4 → 8.5で色々追加されたらしくマニュアルにあるのに使えない機能が結構ある。 forよりwhile。 for {set i 0}…

(Smalltalk at: #Golf) tips second

使われないものたち。 ローカル変数 |x|x:=stdin nextLine " ↓ " X:=stdin nextLine Boolean>>#ifTrue:ifFalse: C ifTrue:[#t display]ifFalse:[#f display] " ↓ " C and:[#t display];or:[#f display] X:=C ifTrue:[#t]ifFalse:[#f] " ↓ " X:=#t.C or:[X:=#…

slope lines

リストの指定位置を更新する書き方が分からずVectorを使ったらダントツでビリ。 $ gosh -E 'let1 v #(0 1 2) (set! (ref v 2) 3) (print v) (exit)' #(0 1 3) $ gosh -E 'let1 l `(0 1 2) (set! (ref l 2) 3) (print l) (exit)' gosh: "error": no applicabl…

(Smalltalk at: #Golf) tips first

まずはsumimさんの記事の補足から。 アルファベットに続く式の区切りの「 . 」の直後にアルファベットはNG 数字もNG。 キーワードの「:」の直後にアルファベットはNG バージョンが上がったのでくっつけて書けるように。 数字の直後に d、e で始まるセ…

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。しかしばーじょんがたりない!

(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ゴル…

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>

9と12

JavaScript1.7の機能に加え,nn氏の活躍によって記録が一新されつつある。もうちょい頑張ればCに追いつけるかも知れない。 Groovytimeoutに苦しみながらもここまで来たが,これより上に行くのは難しそう。

Runge Kutta

マジックナンバーを見つけて浮動小数をフォーマットする問題である。 RKのなんたるかはまるで理解しないまま解けてしまう不思議。

tr/.-/52/

2008-05-17 Groovy では短点と長点を 5 と 2 に置き換えて、云々とした方が短いようです。 nn氏の解法は最短では無いものの,timeoutを避ける素晴らしいやり方なのです。 以下,通らない113B。 print"$System.in".replaceAll('[.-]+/?'){i=1 (it-'/').each{i…

帰ってきたnantoさん

http://golf.shinh.org/reveal.rb?trivial+encoder/nanto_vi/1210779983&js unescapeとかすっかり失念していた。もうちょい縮めて… print(/H/(l=(r=readline)(r()))?[l.charCodeAt(i).toString(16).toUpperCase()for(i in l)].join("")+/A?/(l[89]):unescape…

PHP

について調べなさいみたいな課題が出たのであなごるの問題を解いてお茶を濁す。インストールするのが面倒なので練習はcodepadで。 ゴルフはそこそこ強いようだがどうも好きになれない。特に書きやすいとも感じないし,なぜこれが広く使われているのかさっぱ…

embed

http://golf.shinh.org/reveal.rb?embed/yowa/1209112928&js 改行・バックスラッシュ以外の文字はそのまま含めて良かったらしい。(要らん小細工をしてしまった。) ということは前から順にバイト列にするだけでいいわけだ。 #!ruby -p gsub!(/25[0-5]|2[0-4]\…

js.golf.tips[7]

http://golf.shinh.org/reveal.rb?trivial+encoder/yowa/1209037186&js /regex/.exec(text) // ↓ // /regex/(text) // ?! (5) …初耳である。SpiderMonkeyはオカシイ。 for(a=[i=0];i