タグ

2023年9月10日のブックマーク (2件)

  • 末尾再帰 - Wikipedia

    一般に再帰呼び出しが可能な言語では、サブルーチン呼び出しのたびにスタックに呼び出し先から戻るための情報を保存する。そのため再帰が深くなりすぎるとスタックオーバーフローでプログラムが異常終了する。 そのような場合、次のようにループに変換して回避する。 { 変換前 } function F (a1:T1, a2:T2, ..., an:Tn) : T0 begin P ; return func (b1, b2, ..., bn) ; end ; { 変換後 } function F (a1:T1, a2:T2, ..., an:Tn) : T0 begin loop P ; a1 := b1 ; a2 := b2 ; : an := bn ; end loop ; end ; { Ti は型、P は手続き、bi は値または a1~an に対する副作用を伴わない式である。 それ以外の識別子は変

    takuwz
    takuwz 2023/09/10
  • 小さなゲームを作ること、それ自身が楽しいのだ - ABAの日誌

    小さなゲームとは何か。スモールゲームマニフェスト(宣言書) 1 によれば、1プレイが10分以内に終わる、ブラウザなどで手軽に遊べるゲームを指す。 その定義で言うと、私は小さなゲームをすでに350個以上 2 作っていることになる。1年間で139個作ったこともある 3 。無類の小さなゲーム好きだ。 小さなゲームの何が良いって、短時間で作れるのが良い。速くて2時間、ちょっと苦戦しても10時間くらいではできるだろう。アートワークなどを凝り始めるといくらでも時間はかけられるが、ここでは1週間に1つゲームを作る、Game a week 4 のような取り組みでできる規模の、開発者目線でも小さなゲームとしたい。 短時間で作れるということは、いろんなアイデアを簡単に試すことができるということだ。「ヘンテコにおもしろい小さなゲームを作ろう」 5 というエッセイを、「ゲームクリエイターが知るべき97のこと2」と

    小さなゲームを作ること、それ自身が楽しいのだ - ABAの日誌
    takuwz
    takuwz 2023/09/10