scheme伪代码
; (test-halt program) -> true/false(define (forever)(forever))(define (f)(if (test-halt f)(forever)'())); (test-halt (lambda () (+ 1 1))) -> true; (test-halt forever) -> false; (test-halt f) -> ?
js伪代码
// any programs in javascript can be represented as a function call with no argumentsfunction func() {// any js codereturn 1 + 1;}function forever() {while (ture) {}}function testHalt(f) {// if f() runs forever return false, else return truereturn true;}// testHalt(func) -> true// testHalt(forever) -> falsefunction f() {if (testHalt(f)) {forever();} else {return false;}}// testHalt(f) -> ?