You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This whole rewriteCond and rewriteBranch algorithm is not correct. That is to say it only works in the specific case where a single if is the last expression in a recursive function. While the reason for this assumption is obvious we must consider that also nested if's technically are valid tail recursive functions so long as there is at least one branch that recurses and one branch that does not. I feel implementing this correctly however is going to require some effort, thus I think we should do so later.
The text was updated successfully, but these errors were encountered:
The following tail recursion algorithm does not work yet, although it sounds from your description like it should work:
ns some_ns;
use sf to::implement::{find_path, update_grid, is_empty};
fn main(maze: Maze, to_map: Vec<(Point, Point)>) -> Maze {
let paths = for pair in to_map {
find_path(maze, to_map)
};
let (remap_paths, new_maze) = update_grid(maze, paths);
if (is_empty(remap_paths)) {
new_maze
} else {
main(new_maze, remap_paths)
}
}
The error says:
ohuac: Unsortable! (Probably due to a cycle)
CallStack (from HasCallStack):
error, called at src/Universum/Debug.hs:60:11 in universum-1.2.0-6ylCZDYYoS898SMIz2iM8j:Universum.Debug
error, called at src/hs/Ohua/Standalone.hs:301:22 in ohuac-0.3.0-8NKnqdddZODJ0p3a3pKPB3:Ohua.Standalone
Unfortunately, I am unable to provide ALang/DFLang dumps as the error is raised before these stages are processed.
This whole rewriteCond and rewriteBranch algorithm is not correct. That is to say it only works in the specific case where a single
if
is the last expression in a recursive function. While the reason for this assumption is obvious we must consider that also nestedif
's technically are valid tail recursive functions so long as there is at least one branch that recurses and one branch that does not. I feel implementing this correctly however is going to require some effort, thus I think we should do so later.The text was updated successfully, but these errors were encountered: