2010年12月3日のブックマーク (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 に対する副作用を伴わない式である。 それ以外の識別子は変

    proxy0721
    proxy0721 2010/12/03
  • Google翻訳でリズムボックスを楽しむ方法

    Google翻訳には翻訳した言語を喋らせる機能がついているんだけど、それを上手く利用してリズムボックスにしちゃったという話。やり方としては、 1.Google翻訳のページを開く 2.ドイツ語からドイツ語への変換に設定する 3.「pv zk pv pv zk pv zk kz zk pv pv pv zk pv zk zk pzk pzk pvzkpkzvpvzk kkkkkk bsch」のカッコの中身を翻訳ボックスに入れる 4.「listen」をクリックして喋らせる

    Google翻訳でリズムボックスを楽しむ方法
    proxy0721
    proxy0721 2010/12/03