タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

Grassとgolfに関するokagawaのブックマーク (3)

  • vネタばれ - * *scrap*

    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

    vネタばれ - * *scrap*
  • 2008-09-14

    最終的に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

    2008-09-14
  • 2008-09-20

    終わりました。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)ポイントは、分岐の書き方。 真偽値は二引数をとり、真なら第一、偽なら第二引数を返す関数で表されるのですが、分岐を二つ作る際に、真の方は同じものを使うことで、関数適用の回数を一回抑えています。 で、このパターンはどう考えても自分も何度も書いてたのに、なんで負けたんだーと思ってたんですが、確かまだこのパターン書いてたときは、関数適用順によって長さ変わるのに気づい

    2008-09-20
  • 1