- xhl_kogitsune
- 14761
- 15
- 21
- 4
clojureがTCOされないのってJVMのせいなの?ならJVMで動くSchemeやCLでちゃんとTCOある処理系はどうなってんの?
2011-12-10 02:18:19@valvallow スタックフレームをJavaのオブジェクトとしてアロケートして自前で管理すればTCO可能だけど性能は落ちる。JVMのスタックを利用すれば速いけど(完全な)TCOは無理。どっちを取るかというトレードオフです。
2011-12-10 02:49:00JVM上で直接走る言語で自動的にTCO(末尾再帰最適化)を行える言語は存在しない。ScalaはどうやってTCOを実現してるんだろう。それとも限定的な条件下でしかできないのかな。
2012-03-21 22:36:31pythonで末尾再帰最適化って, クロージャとデコレータ使ってやれるっぽいのは去年くらいに見たんだけど, あまり黒魔術チックなのは使いたくないアレ
2012-03-21 23:20:31CommonLispって末尾再帰最適化される事は仕様に無いんだね(´・ω・`)スタックが溢れた理由が末尾再帰にしたつもりでなってないのか最適化されてないからなのかが解らないという。
2012-03-24 18:32:43@tomy_kaira インタプリタをみていないので、よくわからないですが、4-3は末尾再帰最適化の話ではないんですか?
2012-03-25 00:00:20結論 末尾再起するにはどちらにしろ2変数必要 あと 遅延評価のHaskellで末尾書いても最適化しないとメモリが死ぬ
2012-03-26 15:39:16まどかの因果についてはあれだね末尾再帰よびだしで引き数にわたしつづけてた値が基底条件をみたしたっていう感じだね。十分に値がおおきくなったの死なないし、魔女にもならないっていう。
2012-03-27 00:45:30後輩に「バイトでプログラムやりたいんですけど言語なにやっとけばいいですかね。Javaやっといた方がいいですか?」と訊かれたので「JavaオワコンだからScalaとかClojureとかJVM上で動く別言語にしといた方がいいよ」とオススメしたのだけど間違っていないはずだ
2012-03-28 13:14:47@repeatedly でもぶっちゃけGroovyよりScalaとかの方がhotに見えるんですがTLのみずしまさんマジックなんでしょうかね……まあ、JRubyの方がJVM消えても潰しは効きそうですけど。
2012-03-28 13:20:23@shelarcy えっえっ!? それはそうと、JVMで動くHaskellコンパイラってなんかありましたっけ。なんでしたっけ……
2012-03-28 13:23:17@mr_konn UHC に JVM バックエンドがあるみたいですが、これはどうかしら? http://t.co/w3nnCppH https://t.co/BpewQR1K
2012-03-28 13:31:16