Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static dynamic apply_io(Lambda f) {
- Lambda i() {
- bool collected = false;
- Lambda next_fun = null;
- uint input = 0;
- return (Lazy callback) => {
- if(!collected) {
- input = (uint) Console.Read();
- next_fun = i();
- collected = true;
- }
- var next_fun_applicable = (Lambda) callback();
- var char_applicable = (Lambda) next_fun_applicable(lazy(() => next_fun));
- return char_applicable(lazy(() => to_church_natural(input)));
- };
- }
- Lambda o() {
- bool written = false;
- Lambda next_fun = null;
- return (Lazy m) => {
- if(written) {
- return next_fun;
- }
- written = true;
- Console.Write((char) from_church_natural((Lambda) m()));
- next_fun = o();
- return next_fun;
- };
- }
- var ifun = i();
- var ofun = o();
- return ((Lambda) f(lazy(() => ifun)))(lazy(() => ofun));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement