_, ._ ( ・ω・) んも〜 ○={=}〇, |:::::::::\, ', ´ 、、、、し 、、、(((.@)wvwwWWwvwwWwwvwwwwWWWwwWw wWWWWWWwwwwWwwvwWWwWwwvwWWW 作ってみたwwwww とりあえず公開wwwwwwwっうぇ 日本語版はてきとーです.きっと英語版のほうが詳しいです. 実装 インタプリタ Interpreter written in Standard ML (accept US-ASCII only) by UENO Katsuhiro Interpreter written in Ruby by UENO Katsuhiro Interpreter written in ニコスクリプト Interpreter written in Prolog by zick Interpreter written in Java b
http://golf.shinh.org/p.rb?v#Grass grass.el形式で '( (abs rec (f c) ((app succ c . sc) (app w sc . v?) (app v? c) (app 1 f) ;c or f (app 1 1) ;true or f f (app 1 sc) ;(true sc) or (f f sc) (app out 3) ;(out sc) or error )) (app rec rec) (app 1 w) ) irieさんと同じコードになっただろうと思ってたら大分違っていて、あちらはエラーをはかないコードになっていた。再帰関数の最後の3つの適用がスマート。面白いなー。 他の人のも後で読む。 ちなみに、2番目に書いた56バイトのコード wWWWwWwwwwwWwwwWwwwv ; succ_or_v wwWWwWW
最終的に1525バイトになった。劇的に縮められる新機軸はもうなさそうなのでネタバレ 続きを読む 上の続き 続きを読む (m-n)%3 をどうやって計算するか? 続きを読む wwWWwWWWwWWWWWWw # s2n1 vwwWWwWWWw # s2 vwWWwwwWwwwwwwWWWwWWWWWwwwwWwwWWwWwwwwwwwwwwww # mkwWv vWwwwWWwww # ch_v, ch_W vwwWWWWWWWWww # mkout vWwwwWWwwwwwwwwwwWWWwwww # out_v, out_w, out_W vwWwwwwWwwwwWwwww # tr1 = triplet(out_v, out_w, out_W) vwWWWwWWWWWw # out_Ww vwWWWWwWWWw # out_WWw vwWWWWWWWwWWWw # out_vWWw v
終わりました。53Bの解説…は面倒くさいので、擬似コードと分かる人にしか分からない解説を。 f(g, c){ cp = c + 1 b = 'w' == cp c_or_cp = b(c, cp) c_or_g = b(c, g) # ここで上で使った残骸を再利用 c_or_g(c_or_g, c_or_cp) # 真なら1引数を取りc(つまりv)を返し、偽なら再帰呼び出し } r = f(f, 'w') v = r(r) out(v)ポイントは、分岐の書き方。 真偽値は二引数をとり、真なら第一、偽なら第二引数を返す関数で表されるのですが、分岐を二つ作る際に、真の方は同じものを使うことで、関数適用の回数を一回抑えています。 で、このパターンはどう考えても自分も何度も書いてたのに、なんで負けたんだーと思ってたんですが、確かまだこのパターン書いてたときは、関数適用順によって長さ変わるのに気づい
草言語Grassが流行っているようなので,Grassプログラミング支援ツールGlidを公開します. Objective Camlで実装されているという点ではYTさんに先を越されてしまいましたが, より多くの機能を提供しています. といっても,実装の効率はあまりよくないので,速いGrass処理系が欲しいだけの方にはあまり役に立ちません. Glidは,簡単にいうと言語Grassと言語Letの間の双方向の翻訳ツールです. 言語Letは,次の文法で与えられる単純な関数型言語でGrassよりは楽にプログラムが書けます. Prog := Def* Def := let Var Var* = Exp Exp := Var | Exp Exp | let Var = Exp in Exp | Exp;Exp Var := In | Out | Succ | W | [_a-zA-Z0-9]+ 主な使用目的
,r;;;;ミミミミミミヽ,,_ ,i':r" + `ミ;;, __,、 ≡ 彡 ミ;;;i 〃ニ;;::`lヽ,,_ ≡ 彡 ,,,,,、 ,,,,、、 ミ;;;! 〈 (lll!! テ-;;;;゙fn __,,--、_ .. ,ゞi" ̄ フ‐! ̄~~|-ゞ, ≡ /ヽ-〃;;;;;;;llllll7,,__/" \三=ー"."ヾi `ー‐'、 ,ゝ--、' 〉;r' ≡ bashは自分を評価することができるんです >、/:::/<;;;lllメ \ヾ、 ヽTf=ヽ `,| / "ii" ヽ |ノ j,, ヾて)r=- | ヾ: :ヽ;;: | l | l ''t ←―→ )/イ^ ≡ awkとは違うんです ,イ ヽ二)l(_,>" l| ::\;:: |
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く