In: Computer Science
CODE USING LISP... No other language please
trim-to (symbol list) Write a function named trim-to that takes a symbol and list as parameters. Return a new list starting from the first occurrence of the input symbol in the input list. If there is no occurrence of the symbol, return nil. For example: (trim-to ‘c ‘(a b c d e)) This should return the following list: ‘(c d e)
ackermann (number number)
Write a function named ackermann that takes two integers. Use the following function definition: (Note: due to this function’s complexity it may not finish for inputs larger than 3)
?(?,?)={?+1 ?? ?=0?(?−1,1) ?? ?=0?(?−1,?(?,?−1)) ??ℎ??????
(defun ackermann (x y)
(cond ((= 0 x) (+ y 1))
((= 0 y) (ackermann (- x 1)
1))
(t (ackermann (- x 1) (ackermann x
(- y 1))))
)
)
(defun trim-to (k lst)
(cond ((null lst) nil)
((equal k (car lst)) lst)
(t (trim-to k (cdr lst)))
)
)