Using your language of choice, golf a quine.
A quine is a non-empty computer program which takes no input and produces a copy of its own source code as its only output.
No cheating -- that means that you can't just read the source file and print it. Also, in many languages, an empty file is...
@lyxal: Since that's too easy for you... Let F = ( x , y ↦ ( t ↦ SHA1(x+"$"+y+"$"+t) ) ) and G = ( x , y ↦ ( t ↦ SHA256(x+"$"+y+"$"+t) ) ). Write programs P,Q such that P ≡ F(P,Q) and Q ≡ G(P,Q), where "≡" means "has the same input/output behaviour".
And, uh, no cheating by using the finite output space for SHA hash-functions, in case you happen to think of that. To prevent that loophole we can let F = ( x , y ↦ ( t ↦ t+SHA1(x+"$"+y+"$"+t) ) ) and G = ( x , y ↦ ( t ↦ t+SHA256(x+"$"+y+"$"+t) ) ) instead.
@lyxal Really? Strangely enough, there is a mathematical tool that solves standard quines and this one easily, but not the program that prints its own hash...
@lyxal It's easy to understand how they work. I can explain the Y combinator to you in one message. Let Y = ( f ↦ ( x ↦ f( t ↦ x(x)(t) ) ) ( x ↦ f( t ↦ x(x)(t) ) ) ). Take any f. Let d = ( x ↦ f( t ↦ x(x)(t) ) ). Then Y(f) = d(d) = f( t ↦ d(d)(t) ). If f is total and does not distinguish behaviourally equivalent inputs, then d is total and d(d) is defined, so f( t ↦ d(d)(t) ) = f(d(d)) and hence Y(f) = f(Y(f)).
Whoops this isn't the version of the Y combinator that is strong enough for our purposes here. Here is the strong version, and it's even simpler to prove: Y = ( f ↦ ( x ↦ ( t ↦ f(x(x))(t) ) ) ( x ↦ ( t ↦ f(x(x))(t) ) ) ). Take any total function f. Let d = ( x ↦ ( t ↦ f(x(x))(t) ) ). Then Y(f) = d(d) = ( t ↦ f(d(d))(t) ) ≡ f(d(d)) = f(Y(f)).
Note the ( t ↦ f(d(d))(t) ) ≡ f(d(d)) in the middle; they are (in general) different programs but they have the same input/output behaviour.
So with the strong version, we can find a program fixed-point of any total function f. In particular, the standard quine is essentially a program f such that U(f) = f, where U is a universal program (e.g. "eval"). And the above puzzle has total functions F,G and asks for P,Q such that P ≡ F(P,Q) and Q ≡ G(P,Q), and one possible solution is to find P,Q such that Q = Y( x ↦ G(P,x) ), in which case P ≡ F( P , Y( x ↦ G(P,x) ) ), which can be solved by using Y.
@lyxal: Let me know if you need further clarification!