末尾再帰最適化/末尾呼び出し最適化 on JVM

みんなだいすき
26
前へ 1 2 3 ・・ 7 次へ
Masaki Hara @qnighy

わぁいJVM上に関数型言語作ると末尾再帰が あかりJVM上に関数型言語作ると末尾再帰が大好き

2012-03-28 14:48:54
集会の自由 @oskimura

そういえばScalaの末尾再帰最適化ってどうなってるの?

2012-03-28 14:50:13
ぼろんじ @boronology

えーっと。recurはconstant-space再帰ループを、再束縛と最も近い閉じられたループや関数フレームにジャンプすることで実行します?

2012-03-28 14:50:28
ぼろんじ @boronology

constant-spaceって何でしょう

2012-03-28 14:50:32
山本和彦 @kazu_yamamoto

末尾再帰という言葉にも共通理解はない? まぁ、一つの関数の末端で自分自身を呼ぶことだけだと、誤解しそうではあるよね。

2012-03-28 14:50:33
Jun Furuse 🐫🌴 @camloeba

てにをは がおかしいうえに、文字数オーバーだし、なにより にかわっぽい。ダメダー!

2012-03-28 14:50:39
SKS rep @repeatedly

@hareno_t 読みたかったらかせるよ.TKBだと近くに持ってそうな人たくさんいそうだけど

2012-03-28 14:52:01
Masaki Hara @qnighy

Scalaの末尾再帰最適化は、特定の形をしたメソッドに対してのみ行われると聞いたことがあるが、要出典

2012-03-28 14:52:59
ぼろんじ @boronology

「末尾再帰最適化ほど一般的ではありませんが、これは同様のエレガントな構造を提供し……」?

2012-03-28 14:53:14
ぼろんじ @boronology

recurについてはこのページの末尾にあるけど…… http://t.co/KrhtgSoR

2012-03-28 14:53:52
ぼろんじ @boronology

@repeatedly すみません調べたけど力不足でわかりませんでした http://t.co/KrhtgSoR

2012-03-28 14:54:17
SKS rep @repeatedly

@__boronium そのまま.固定スペース.領域を一定量しか消費しないとかそんな感じ

2012-03-28 14:54:19
山本和彦 @kazu_yamamoto

.@ichimal Lisp を学べば悟れる何かは、Lisp の本質ではなくて、プログラミングに関する何かではないでしょうか。そう解釈するのが自然かなぁと思います。

2012-03-28 14:55:26
Jun Furuse 🐫🌴 @camloeba

ネタでしたけど結構 JVM と TCO の話は皆に理解されているみたい!

2012-03-28 14:55:45
SKS rep @repeatedly

Clojureのrecurはトランポリンみたいな感じんなのかな > jumping to the nearest enclosing loop or function frame

2012-03-28 14:56:04
ぼろんじ @boronology

@repeatedly ありがとうございます。ということはこの場合は「そのたびにスタックを確保して食いつぶさないような再帰ループ」って感じの意味でしょうか

2012-03-28 14:56:07
S (ツイートはスレッド全体をご確認ください) @esumii

野暮きわまりない蛇足。(相互再帰ではなく単独再帰で、関数本体がでかすぎなければ)JVMでも普通に末尾再帰最適化できます

2012-03-28 14:57:13
S (ツイートはスレッド全体をご確認ください) @esumii

@esumii あー、あと、「stack inspectionに影響しない場合は」。

2012-03-28 14:58:50
山本和彦 @kazu_yamamoto

末尾再帰とは、関数を飛び出すかもしれないジャンプのことです。スタックを消費しないことが大事。← 僕の理解

2012-03-28 14:59:16
SKS rep @repeatedly

そろそろあんちべさんが颯爽とClojureの内部実装について事細かに解説して,自分でtogetterにまとめを作る頃

2012-03-28 14:59:52
(び) @bizenn

それは末尾呼び出しじゃねぇかと思ったりする。

2012-03-28 15:00:30
前へ 1 2 3 ・・ 7 次へ