> 1 <

Автор Сообщение

Samael

Members


Статус

5 сообщений

Где: Ukraine
Род занятий:
Возраст: 32

#4220   2011-04-27 23:29 GMT+3 часа(ов)      
Доброго времени суток.
Помогите пожалуйтса реализовать функции append, nthcdr, last, butlast, subseq, используя CAR и CDR. Преподаватель не разрешает их использовать.
Благодарю зараннее.

megamanx

Members


Статус

307 сообщений

Где: Russia
Род занятий:
Возраст:

#4221   2011-04-27 23:56 GMT+3 часа(ов)      
(defun myappend(L1 L2)	
(if
(null L1) L2
(cons (car L1) (myappend (cdr L1) L2))))
(defun myappend2 (&rest lists)
(if (< (length lists) 2) lists)
(labels ((_append_ (L1 L2)
(if (null L1) L2
(cons (car L1) (_append_ (cdr L1) L2)))))
(reduce #'_append_ lists)))
(defun mylast (L)(car (reverse L)))
(defun mynthcdr (i L)
(if (< i 1) L (mynthcdr (1- i) (cdr L))))
(defun mybutlast (L) (reverse (cdr (reverse L))))
(defun mybutlast2(L &optional(n 1)) (reverse (mynthcdr n (reverse L))))
 
(defun myreverse (L)
(if (null L) nil
(myappend (myreverse (cdr L)) (cons (car L) nil))))
 
(defun mylistwtf (&rest rest) rest)

особенно сложна для восприятия последняя функция

отредактировал(а) megamanx: 2011-04-28 00:03 GMT+3 часа(ов)
I wish I'd made you angry earlier

Samael

Members


Статус

5 сообщений

Где: Ukraine
Род занятий:
Возраст: 32

#4222   2011-04-28 00:58 GMT+3 часа(ов)      
Большую часть функций я понял. Вот только last возвращает последний элемент, а у меня в задаче он по списку возвращал n последних элементов. (last '(1 2 3 4 5 6 7 8 9 10) 2) -> '(9 10), если 3, то '(8 9 10).
И та же история с butlast, она возвращала все элементы, кроме последних n. (butlast '(a b c d e f) 2) -> '(a b c d).

megamanx

Members


Статус

307 сообщений

Где: Russia
Род занятий:
Возраст:

#4223   2011-04-28 11:17 GMT+3 часа(ов)      
мне положить с прибором что там у тебя возвращалось. Ты даже прочитать не в состоянии, что я написал.
I wish I'd made you angry earlier

Samael

Members


Статус

5 сообщений

Где: Ukraine
Род занятий:
Возраст: 32

#4254   2011-05-09 20:04 GMT+3 часа(ов)      
Зачем было помогать, чтоб потом, задрав нос к потолку, кричать, какой ты умный. И откуда ты знаешь мои способности в чтении кода, что смеешь заявлять подобные вещи. И кстати, вот некоторые из этих функций:
http://it.kgsu.ru/Lisp/lisp0009.html
http://it.kgsu.ru/Lisp/lisp0011.html
Так что, не я их придумал. Учись, дружок.
И спасибо за помощь.

megamanx

Members


Статус

307 сообщений

Где: Russia
Род занятий:
Возраст:

#4256   2011-05-09 20:28 GMT+3 часа(ов)      
С чего ты решил, что я ТЕБЕ помогал? Я просто скинул записанное с данного форума, то, что у тебя не было сил погуглить. Я же ясно выразился, чо мне помогать тебе лень, и что мне болт положить на твои функции

отредактировал(а) megamanx: 2011-05-09 20:39 GMT+3 часа(ов)
I wish I'd made you angry earlier
> 1 <


Онлайн :

0 пользователь(ей), 41 гость(ей) :