Предположим, вам нужно написать программу, которая проверит все программы в поисках того, что завершает конкретную задачу. Например, рассмотрим эту функцию JavaScript:
function find_truth(){
for(n=0;;++n){
try {
var fn = Function(string(n));
if (fn() == 42)
return fn;
} catch() {
continue;
}
}
}
Пока строка (n) возвращает возможную n-ю строку ( "a", "b", "c",... "aa", "ab"...), эта программа в конечном итоге выведет функцию который оценивается как 42
. Проблема с этим методом заключается в том, что он перечисляет строки, которые могли или не могли быть действительной программой. Мой вопрос: возможно ли перечислять программы сами? Как?