Symbolic programming is in many cases doing math with a computer using symbols. In a computer algebra program like Maple, you can perform mathematical calculations by using symbols. In non-symbolic programming you use variables which represent values, in symbolic programming a variable doesn't need to represent a value.

If you, in symbolic programming, for example have a simple equation like:

eq := a x^2 + b x + c = 0;

Then doing something like:

solve (eq, x);

Would lead to:

x1 = (-b + sqrt (b^2 - 4 a c)) / 2 a

x2 = (-b - sqrt (b^2 - 4 a c)) / 2 a

So using a symbolic programming language to do math, is just the same as you would do math on paper.

BTW, Lisp is, as far as I know, not symbolic programming. It is functional programming. Just like Haskell. Functional programming means programming with functions, in C we use variables which we pass to functions. For example Fibonacci in Haskell:

Code:

fib 0 = 0
fib 1 = 1
fib (n+2) = fib n + fib (n+1)

Or a function to compute which variable of two is smallest:

Code:

smaller :: (Integer, Integer) -> Integer
smaller (x,y) = if x <= y then x else y

So determining which of two Fibonacci nummer is smallest would be:

Code:

small_fib = (Integer, Integer) -> Integer
small_fib = smaller (fib (x), fib (y))