here is a function based on WolframAlpha[]
ShowSteps[exp_] :=
WolframAlpha[ ToString@HoldForm@InputForm@exp,
{{"Input", 2}, "Content"}, PodStates -> {"Input__Show steps"}]
SetAttributes[ShowSteps, HoldAllComplete]
for limits use
PodStates -> {"Limit__Show steps"}
for integration
PodStates -> {"IndefiniteIntegral__Show steps"}
Update:
WolframAlpha changed output.
Now ShowSteps should work with:
ShowSteps[exp_] :=
WolframAlpha[ToString@HoldForm@InputForm@exp,
{{"Input", 1}, "Content"},
PodStates -> {"Input__Step-by-step solution","Input__Show all steps"}]
SetAttributes[ShowSteps, HoldAll]
Update - Nov 2014
ShowSteps[exp_] :=
WolframAlpha[ToString@HoldForm@InputForm@exp,
{{"Input", 2}, "Content"},
PodStates -> {"Input__Step-by-step solution"}]
SetAttributes[ShowSteps, HoldAll]