Общая информацияВ 1 семестре 2009-2010 учебного года на практических занятих по спецкурсу кафедры систем информатики «Парадигмы программирования» изучается язык LISP. В связи с большим количеством студентов в группе занимаемся по принципу «пришёл, сдал, ушёл» (либо приходим со своим ноутбуком, на котором установлен Common LISP). О занятиях, на которых будет рассказываться теория, я буду сообщать заранее. Время и место: четверг, 17:45, ауд. 309 СК НГУ. Преподаватель: Александр Геннадьевич Фенстер, fenster@fenster.name, +7 913 9053295. Рекомендуемая литература: 
  | 
Таблица результатов
 Гистограмма  | 
LENGTH1, которая
			возвращает длину списка:> (LENGTH1 '(A B C))
					3
				
		Функция с именем LENGTH является
		стандартной, поэтому ваша функция может называться LENGTH1 или
		как-то иначе.  То же самое верно для следующих заданий, в которых
		имя функции содержит единицу.
	LIST1, которая
			объединяет два аргумента в список:> (LIST1 'A 'B)
					(A B)
				
	APPEND1, которая
			объединяет два списка:> (APPEND1 '(A B) '(C D))
					(A B C D)
				
	REVERSE1, которая
			«переворачивает» список:> (REVERSE1 '(A B C))
					(C B A)
				
			EQ, EQL, =, EQUAL, EQUALP.
		Привести примеры S-выражений A и B таких, что
		(EQ A B);(EQL A B), но ложно (EQ A B);(= A B), но ложно (EQL A B);(EQUAL A B), но ложно (EQL A B);(EQUALP A B), но ложно (EQUAL A B);(EQUALP A B).ASSOC1, 
		которая определяет, есть ли в данном списке точечных пар пара с 
		первым элементом, равным данному атому, и возвращающую второй элемент
		этой пары, если такая пара есть, и NIL, если такой пары нет.> (ASSOC1 '((A . 1) (B . 2) (C . 3)) 'B)
					2
					> (ASSOC1 '((A . 1) (B . 2) (C . 3)) 'D)
					NIL
				
		> (ATOMS '((A B) C NIL (D (E F G))))
				(A B C NIL D E F G)
				
		> (MERGE1 '(1 3 5) '(2 4))
				(1 2 3 4 5)
			
		> (SORT1 '(1 5 2 4 3))
				(1 2 3 4 5)
			
		CAR и CDR. Реализовать функцию
		MAKE-CAR-CDR, которая принимает три аргумента:
		S — произвольное S-выражениеX — произвольный атомQ — произвольный атомCAR, CDR и
		Q, такое, что если бы значением атома Q было
		S, то результатом вычисления этого выражения был бы атом X.
		Проще говоря, функция должна показывать, как при помощи суперпозиции вызовов
		CAR и CDR «выделить» X
		из выражения S, обозначенного как Q.> (MAKE-CAR-CDR '(A X B) 'X 'Q)
				(CAR (CDR Q))
			
		> (PERMUT '(1 2 3))
				((1 2 3) (1 3 2) (2 1 3) (2 3 1) (3 1 2) (3 2 1))