Пример #1
0
constexpr auto foldr_impl(F f, S s, ...) {
    return foldr1(f, type<Xs>..., s);
}
Пример #2
0
constexpr auto foldr(F f, S s, Xs ...xs) {
    return foldr1(f, xs..., s);
}
Пример #3
0
// foldr1(F, [x1, ..., xn]) = F(x1, F(x2, ..., F(xn-1,xn)...))
int foldr1(const fun2 F, const list L) 
{   
  if (tl(L) == nil) return hd(L);
  else
    return F(hd(L), foldr1(F, tl(L)));
}