2 of 4 from "a.dot(b)" to "a dot b", and from List to Seq, and a type inference, and (d) to d.

Scala 412 376 349:

object P extends Application{
def p(t:Seq[String],u:List[Double]):Double=t match{
case Nil=>u.head
case x::y=>x match{
case "+"=>p(y,(u(1)+u(0))::u.tail.tail)
case "-"=>p(y,(u(1)-u(0))::u.tail.tail)
case "*"=>p(y,(u(1)*u(0))::u.tail.tail)
case "/"=>p(y,(u(1)/u(0))::u.tail.tail)
case d=>p(y,d.toDouble::u)}}
println (p((readLine() split " "),Nil))}