SCIP 1.12

Exercise 1.12. The following pattern of numbers is called Pascal's triangle.
    1
   1 1
  1 2 1
 1 3 3 1
1 4 6 4 1
The numbers at the edge of the triangle are all 1, and each number inside the triangle is the sum of
the two numbers above it.35 Write a procedure that computes elements of Pascal's triangle by means
of a recursive process.


(defun pascal-ele(x y)
  ( cond((< x y) "input error")
	((or (< x 0)
	     (< y 0))
	 "input error")
	( (= x y) 1)
	( (= y 0) 1)
	( (+ (pascal-ele (- x 1)
			 (- y 1))
	     (pascal-ele (- x 1)
			 y)))))


CL-USER> (pascal-ele 0 0)
1
CL-USER> (pascal-ele 1 0)
1
CL-USER> (pascal-ele 1 1)
1
CL-USER> (pascal-ele 2 0)
1
CL-USER> (pascal-ele 2 1)
2
CL-USER> (pascal-ele 2 2)
1
CL-USER> (pascal-ele 4 0)
1
CL-USER> (pascal-ele 4 1)
4
CL-USER> (pascal-ele 4 2)
6
CL-USER> (pascal-ele 4 3)
4
CL-USER> (pascal-ele 4 4)
1
CL-USER> (pascal-ele 5 0)
1
CL-USER> (pascal-ele 5 1)
5
CL-USER> (pascal-ele 5 2)
10
CL-USER> (pascal-ele 5 3)
10
CL-USER> (pascal-ele 5 4)
5
CL-USER> (pascal-ele 5 5)
1
CL-USER> (pascal-ele 5 6)
"input error"
CL-USER> (pascal-ele 5 -3)
"input error"



  
Edit in Emacs with Slime and Steel Bank Common Lisp.