Re:The Y Combinator
by Joker_vD on Tuesday June 29, 2021 @11:42AM
(#27677500)
Not my code, but: https://gist.github.com/aruld/3965968
[ Parent
| on HN ]
Re:The Y Combinator
by ProfHewitt on Tuesday June 29, 2021 @12:24PM
(#27678133)
Does the github Java code make use of recursion?
As you can clearly see, it does not. It also doesn't use any forced typecasts to circumvent type checking.
Re:The Y Combinator
by ProfHewitt on Tuesday June 29, 2021 @03:38PM
(#27680744)
Is FuncToFunc defined recursively in the excerpt below???
private static interface FuncToTFunc<T> {
Func<T> apply(FuncToTFunc<T> x);
}
BTW, what is "x" in the above?Also is Func defined mutually recursively with FuncToFunc in excerpt below?
public static <T> Func<T> Y(final Func<Func<T>> r) {
return ((FuncToTFunc<T>) f -> f.apply(f))
.apply(
f -> r.apply(
x -> f.apply(f).apply(x)));
}
Re:The Y Combinator
by ProfHewitt on Wednesday June 30, 2021 @08:30AM
(#27687656)
Joker_vD: Looks like you are incorrect because Func and
FuncToFunc are defined recursively.
No, they are not. Do you know what "interface" is in Java, and what is "class"? And what is "method"?
Interface Func doesn't refer to FuncToFunc in its declaration, and interface FuncToFunc doesn't refer to Func. The method Y does refer to those two interfaces, but it's declared later than those are, and they don't (and can't, acvtually) refer to it.