Homework time! Find me the lowest even digit in a string
Golfscript, 26 (28) characters

'#{gets}'.'246'&amp;8+$1&lt;.@\?


Example:

;'583746'
.'246'&amp;8+$1&lt;.@\?
#44

;'53771'
.'246'&amp;8+$1&lt;.@\?
#8-1


live test: http://golfscript.apphb.com/?c=Oyc1Mzc3MScKLicyNDYnJjgrJDE8LjA9QD8%3D

Explanation:


'#{gets}' is an escape to ruby to satisfy the I/O requirements; STDIN is assumed to be empty
. clones the input
'246'&amp;8+ finds which even digits are present in the input, except 8 is always retained
$1&lt; sorts the list, then takes the first digit, but keeps it as a string
.@\? orders the stack {digit, input, digit}, then finds the digit in the input; thanks @peterTaylor for noticing me of the [array, array] signature of ?.


I've been very bold with the spec interpretation this time; namely:


The spec does not mandate in which order the integers are output; Use the other @peter's suggestion :x?x to fix (I don't like temporary variables.
The spec does not require any delimiter between the two integers; since the digit found is always a single digit, this does not matter much. If it does, append n@ (which also performs the swap), n\ (which doesn't), or ]` (which formats the output as ["8" -1]).