Write a fixed point combinator in as few characters as possible, in the language of your choice.
- free form (i.e., whatever's shortest): whole program, actual function, code snippet
- you may not use your standard library's if it has one
- you may however extract it from other high-level functions it you'd rather do that than construct it from the bases
Please include a recursive factorial or Fibonacci that uses it as a demo.
In this question, self-reference is acceptable, the aim is solely to remove it from the recursive function it will apply to.