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))