I can't talk about multiple return values, but D allows you to do some pretty crazy things. The following might not be very efficient, but it does show the language is quite flexible. E.g.: http://ideone.com/qy8i3