flip - Post a comment [entries|archive|friends|userinfo]
flip

[ Нет у меня сайта | My Website ]
[ Туда! | Я не знаю как это переводиться ]
[ archive | Архивчег ]

ЛИсп победа [Nov. 29th, 2006|06:36 pm]

flip
ДАДАДАДА.

Вот над этим я думал 4 дня. реализация всего в 4 строчки, гениально разделяй и властвуй, а я я хотел изначально всё сделать в 2 функции а хрен там подобный, список в данном случаи собираеться с конца. А тот список который надо получить необхоимо собирать сначала и не как либо.

постановка:

10. (REV1 x), где x - список, обращает список x и разбивает его на уровни так, как указано ниже:
>(rev1 ‘(a b c))

решание

(defun rev (x)(cond ((eq x nil) nil)(t (ap (rev (cdr x)) (cons (if (atom (car x)) ( car x) ( rev (car x))) nil))))) – перемена местами

(defun ap (x y)(cond ((eq x nil) y)(t (cons (car x) (ap (cdr x) y))))) – собирает список

(defun sp (x) (if (eq (cdr x) nil) x (cons (car x)(cons (sp (cdr x)) nil)))) – подготавливает список

(defun rev1 (x)(rev (sp x))) – сборка.


резкльтат

CL-USER 8 : 1 > (rez '(d e r))
0 REZ > ...
>> X : (D E R)
0 REZ < ...
<< VALUE-0 : (((R) E) D)
(((R) E) D)
Link Read Comments

Reply:
From:
Username:
Password:
Subject:
No HTML allowed in subject
  
Message:

Notice! This user has turned on the option that logs your IP address when posting.