Skip to content

Instantly share code, notes, and snippets.

@deque-blog
Last active January 29, 2017 14:28
Show Gist options
  • Save deque-blog/2b526684664b5f937ba860ce4b82c8f9 to your computer and use it in GitHub Desktop.
Save deque-blog/2b526684664b5f937ba860ce4b82c8f9 to your computer and use it in GitHub Desktop.
template<typename Out, typename Algebra>
Out cata(Algebra f, expression const& ast)
{
return f(
fmap(
[f](expression const& e) -> Out { return cata<Out>(f, e); },
ast.get()));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment