Perl
====
<!-- language: lang-perl -->

    $b = ($i = <>) - ~-$i;
    {
    	($b, $a) = ($a + $b, $b);
    	redo if --$i
    }
    print "$a\n";

This takes an input from STDIN and prints the n-th Fibonacci number.

`($i = <>)` initializes `$i` with the input. Then `$b` is set to `1` by a bit of bit manipulation and subtraction. The "magic" here is done by the `redo` operator. It makes it possible to reevaluate the same block, without the need of loop. The calculation of `$a` and `$b` is redone until the subtraction of one by `$i` evaluates to `False` i.e. `0`. I think that the `print` statement in the end is self-explanatory.

Here's one more solution using `map` instead of `redo`:

<!-- language: lang-perl -->

    print ~~ (
    	map {
    		($b, $a) = ($a + $b, $b)
    	} ++$b .. <>
    )[-1] . $/;

This generates an array of up to the requested number of the Fibonacci sequence and prints the last entry. `++$b` initializes `$b` to `1`. Then the end of the rage, generated by `..`, is read by `<>`. `map` iterates it and the calculation is returned as an array. Then `[-1]` uses the last element to print.