Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [LISP] Нужна помощь в написании Функции


Автор: RUSLANWM 9.3.2009, 12:49
Доброго времени суток
 необходима помощь в написании функции на LIsp WORKS
Задание:
Функция 1-Написать аналог функции NTH (n список). 
Просмотр списка начать с n и двигаться к началу списка-ее реализация как простая хвостовая рекурсия с двумя изменяющимися аргументами

Функция 2-Функция сравнение двух списов по длине

Автор: VH_ 9.3.2009, 20:52
Функция 2:
Код
(defun COMPARE_LISTS (L1 L2)
 (cond
  ((null L1)
   (cond
    (L2 "2nd is longer")
    (T "equal length")))
  ((null L2) "1st is longer")
  (T (COMPARE_LISTS (cdr L1) (cdr L2)))))

Функция 2:
Код
(defun SEARCH_NTH (N L)
 (cond
  ((null L) nil)
  ((minusp N) nil)
  ((zerop N) (car L))
  (T (SEARCH_NTH (1- N) (cdr L)))))


Автор: RUSLANWM 10.3.2009, 08:03
VH_
Большое спасибо вам!!!!
Функции работают smile 

Автор: VH_ 10.3.2009, 08:14
Я не публикую функции, которые не работают.
Кстати, нумерация элементов списка начинается с нуля, как отцы LISPа нам завещали.

Автор: RUSLANWM 10.3.2009, 21:18
VH_, 
Да я заметил когда функцию NTH запускал,это в методе ошибка была с которой я ее переписал

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)