質問するログイン新規登録

回答編集履歴

2

誤字の修正

2017/03/18 23:25

投稿

raccy
raccy

スコア21823

answer CHANGED
@@ -2,6 +2,6 @@
2
2
 
3
3
  [なぜ Haskell ではキューが軽んじられているか? - あどけない話](http://d.hatena.ne.jp/kazu-yamamoto/20121107/1352259739)
4
4
 
5
- 上記記事では幅優先探索を再帰関数で実装しています(そもそもHaskellにはループ構文がないので再帰で書くしかないのですが)。キューの代わりに木を使ってそれを探索するようにしているようです。(細かい所は追ってないので渡しも詳しくは説明できないです)
5
+ 上記記事では幅優先探索を再帰関数で実装しています(そもそもHaskellにはループ構文がないので再帰で書くしかないのですが)。キューの代わりに木を使ってそれを探索するようにしているようです。(細かい所は追ってないのでも詳しくは説明できないです)
6
6
 
7
7
  ただ、この実装は余再帰というものを使っています。遅延評価であるHaskellでは問題ないようですが、正格評価であるC/C++ではスタックオーバーフローを起こす場合があるため、使えないと思われます(末尾再帰最適化すらできないJavaは論外)。

1

補足

2017/03/18 23:25

投稿

raccy
raccy

スコア21823

answer CHANGED
@@ -2,6 +2,6 @@
2
2
 
3
3
  [なぜ Haskell ではキューが軽んじられているか? - あどけない話](http://d.hatena.ne.jp/kazu-yamamoto/20121107/1352259739)
4
4
 
5
- 上記記事では幅優先探索を再帰関数で実装しています(そもそもHaskellにはループ構文がないので再帰で書くしかないのですが)。キューの代わりに木を使ってそれを探索するようにしているようです。
5
+ 上記記事では幅優先探索を再帰関数で実装しています(そもそもHaskellにはループ構文がないので再帰で書くしかないのですが)。キューの代わりに木を使ってそれを探索するようにしているようです。(細かい所は追ってないので渡しも詳しくは説明できないです)
6
6
 
7
7
  ただ、この実装は余再帰というものを使っています。遅延評価であるHaskellでは問題ないようですが、正格評価であるC/C++ではスタックオーバーフローを起こす場合があるため、使えないと思われます(末尾再帰最適化すらできないJavaは論外)。