1. If one person has written a component but others have revised it, who is responsible if the component fails? What are the legal and ethical implications of reusing someone else’s component?
2. Give an example to show how a language designed for recursion makes list handling easier to understand than a language without such provision.
A list is a data structure that can be defined recursively. Give a recursive definition of a list. If you are familiar with a programming language that has recursive procedures (such as LISP or PL/I), explain how elements are added to and deleted from a list in that language.