トップページ > プログラム > 2015年11月24日 > ge2Zja90

書き込み順位&時間帯一覧

8 位/190 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000110300000005



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
◆tAo.kQ2STk
C++14/C++1z 20
なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net

書き込みレス一覧

C++14/C++1z 20
769 :デフォルトの名無しさん[sage]:2015/11/24(火) 13:55:40.92 ID:ge2Zja90
どちらかというとテンプレートなんて作らずにマクロを強化して欲しかった・・・・・・
なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
975 : ◆tAo.kQ2STk [sage]:2015/11/24(火) 14:36:47.03 ID:ge2Zja90
>>964
あぁそうだね、300個の還元/還元衝突だね。
あれは文法を変換したりすれば消すことが出来るよ。
というかCやJavaの仕様書に載ってる文法が(LALR解析表を作る上では)クズすぎるのが原因だから、
同じ文を受理する曖昧性のない文法を導出すれば済む話。
あるいはGLR法を試してみたら?再帰を一切使わず実装できるよ?

>>972
continuationとループを使って実装すれば良いんじゃないかい?

>>973
任意の再帰は、不動点コンビネータが使えるならば、再帰を持たない関数だけで表現できる。
不動点コンビネータは、S関数とK関数、I関数により表現できる。例えばY=S(K(SII))(S(S(KS)K)(K(SII))) (by Wikipedia)
S関数とK関数とI関数はそれぞれチューリングマシン上でエミュレート出来る。
なのでチューリングマシン自体に再帰の機能が無くても、再帰は使える。
なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
977 : ◆tAo.kQ2STk [sage]:2015/11/24(火) 16:26:08.92 ID:ge2Zja90
>>976
でも正確に「言語が提供する再帰機能」を使わずに実装できるよ!やったね!

ジョークだけどなw
C++14/C++1z 20
771 :デフォルトの名無しさん[sage]:2015/11/24(火) 16:36:45.34 ID:ge2Zja90
Cプログラマは非力で使いにくく不自由なマクロしか知らないからね。
その非力なマクロでさえ使い所を弁えれば役に立つのだけど。

Common LispやScheme(version 6以降)なんかの強力なマクロがCにあればなぁと思ってる。
c++のテンプレート以上に強力で、使いやすく、そして自由な奴。
なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
979 : ◆tAo.kQ2STk [sage]:2015/11/24(火) 16:59:59.73 ID:ge2Zja90
>>978
まぁループはループで、無限ループ+メモリ確保しまくりのコンボをキメられたら
どの辺が安全なのか分からなくなるけどなww
ガリガリガリガリ現在スワップ使用量20GiBガリガリ

結局の所言語や問題に適した方法を取るのが一番だよな。
手で書くならパースは再帰で、但しASTのevaluationはループ+継続で。

# そういや昔、某和製コンパイラの「ループが時々うまく動かないバグ」に引っかかって
# 仕方なくそこだけ末尾再帰で書き直した事があったなぁ
# (3バイトの前方ジャンプ命令と5バイトのそれのどちらをバイナリに埋め込むべきかという判定のミスで丁度いい長さのループが誤動作する問題)


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。