You still need to declare variables before using them in an expression, though. I wish more languages would adopt the "where" syntax that Haskell and Miranda have. It lets you do things like:
y = m*x + b
where
m = calculateSlope()
b = getYIntercept()
I think this fits the literate programming style well.