Oracle

From Esolang
Jump to: navigation, search

Oracle is an esoteric language by User:Rdococ. It's like any other language, except it has a halting oracle which takes in a function and returns whether the function will halt or not. While it is super-turing complete in the sense that it can solve the halting problem for both Turing complete programs and Oracle programs, I honestly didn't find it to be that particularly useful, except for maybe optimizing boolean-returning functions.

Examples

// This function either destroys the universe, somehow avoids being run in any universe or causes an error message, depending on implementation.
// Note that if the hypothesis of quantum suicide holds true, then the two former possibilities are equivalent.
// The third may be too, if someone's holding you hostage and will kill you if you cause an error message.
// Well, unless you cause an error message and then escape before they can kill you.
// There's also the off chance that you can survive the destruction of the universe.
// TL;DR, don't run this code.
function paradox() {
	if (halts(paradox)) {
		while (true) {

		};
	} else {
		return;
	};
};
paradox();
// This function checks whether x is prime, at the speed of the halting oracle rather than the speed of the function itself. All functions that return a boolean can be optimized this way.
function isPrime(x) {
	return halts(function (x) {
		var i = 2;
		while (i < x) {
			if ((x/i)%1 == 0) {
				return;
			};
			i++;
		};
		while (true) {
		};
	}, x);
};