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

Lua

○ 簡単 BNFは1ページちょい。 組み込み関数も少ない。 高速 JSは爪の垢を煎じて飲むべき。 function fib(n) return n < 2 and n or fib(n-1) + fib(n-2) end n, t = io.read'*n', os.clock() print('fib('.. n ..') = '.. fib(n) ..'\n'.. os.clock() - t .…

出力の一時停止と再開

#6377のゴルフ版(157B)。 javascript:D=document,D.onkeydown=function(e){(e=(e||event).keyCode)-80?e-81?0:clearInterval(L):P=!P},L=setInterval("P?0:D.body.innerHTML+='a'",1e3),P=void 0

Kanasan.JS 読書会#4

.js

インスタンスなんたら インスタンス・プロパティ (長いので以下イパティ) 各オブジェクトの固有スロット(hasOwnPropertyがtrue) インスタンス・メソッド (以下イソッド) 各オブジェクトから見える全てのスロット(親オブジェクトのスロットを含む)のうち,関…

9と12

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

/文字列/g

.js

Narcissus の正規表現: Days on the Moon なぜか SpiderMonkey では前者に対して後者のほうが約 60% も遅く ふむむ? n = arguments[0]; for($ = [], i = 0; (l = readline()) != null;) $[i++] = l; $ = $.join('\n'); for each(r in [ /"(?:\\.|[^\\\"])*"…

Runge Kutta

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

tr/.-/52/

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

(42;)

groovy> x = (42;) Result: [org.codehaus.groovy.runtime.CurriedClosure@2cd728, org.codehaus.groovy.runtime.CurriedClosure@1e1a0ee] groovy> [x[0](), x[1]()] Result: [42, null] groovy> (it;it)*.getUncurriedArguments() Result: [[0], [1]] 謎す…

Number.prototype.fillZero

.js

0で詰めるJavaScriptのベンチマーク - FFFF - 0x Number.prototype.fillZero = function(n){ return (0 .toFixed(n) + this).slice(-n); } ゴルフ的には「 (''+ 1e20 + this).slice(-n) 」としたいとこだが,20桁までになるのでこれで妥協。 js> dis(functio…

dis()

.js

が面白い。 js> dis(function(n){ n--, --n, n-=1 }) flags: LAMBDA INTERPRETED main: 00000: argdec 0 00003: pop 00004: decarg 0 00007: pop 00008: getarg 0 00011: one 00012: sub 00013: setarg 0 00016: pop 00017: stop Source notes: 0: 3 [ 3] pc…

帰ってきた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…

it

.js

$ js -v JavaScript-C 1.8.0 pre-release 1 2007-10-03 usage: js [-zKPswWxCi] [-b branchlimit] [-c stackchunksize] [-o option] [-v version] [-f scriptfile] [-e script] [-S maxstacksize] [-Z gczeal] [scriptfile] [scriptarg...] $ js -v 170 js> …

yyyy/MM/dd HH:mm:ss

.js

http://d.hatena.ne.jp/miya2000/20080512 SpiderMonkey限定ならかなり短くできる。 javascript:alert(/\d{4}/(s=''+(d=new Date))+'/'+/..$/('0'+-~d.getMonth())+'/'+/..$/(0+/\d+/(s))+/ \S{8}/(s))ゴルフにこだわるならfunction書いた時点で負けである。

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

無名再帰

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…

Golf.with{ Groovy(2) }

http://b.hatena.ne.jp/tarte/20080425#bookmark-8264934 …気付かなんだ。恥ずかしいので一応ゴルフ(とTips)。 homeOnTheRange.groovy (106B) a="$System.in".split()*.toLong() i=0 print~(a- -~a).collect{x=(a-~-a)[i++] it-x?it+'-'+x:x}.join(', ')+'.'…