問題タブ [mutual-recursion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
185 参照

parsing - Haskellでの優先順位の上昇:パーセク相互再帰エラー

Haskell で優先度上昇アルゴリズムをプログラミングしていますが、理由がわからないため、機能しません。ある時点で Parsec の状態情報が失われていると思いますが、それがエラーの原因であることさえわかりません。

何らかの理由で私のプログラムは、ケースに応じて最初の操作または最初のオペランドのみを処理していますが、それ以上は処理していません

GHCi セッション:

0 投票する
1 に答える
238 参照

recursion - F#: 相互に再帰的なデータ構造のカタモルフィズム

次の相互再帰構造を想定します。

目標: この構造の一般的なカタモルフィズムを生成します: foldlfoldrfoldk

私は次のように素朴なカタモルフィズムを生成しました:

末尾再帰型の foldl (アキュムレータを使用) と末尾再帰型の foldr (継続を使用) を「機械的に」生成するにはどうすればよいですか?

私はScott の Recursive Types and Folds シリーズを読んでいて、再帰構造の折り畳みを「機械的に」生成する方法を理解しています。ただし、再帰的なデータ構造に対して「機械的な」ことを行うためにグーグルで何かを見つけることができません。

PS: インライン化することで上記の相互再帰を取り除くことができますが、tpetricek の Markdown パーサーでの相互再帰の単純化されたバージョンを表すため、そのままにしておきます。