Написать именованую функцию - Lisp
Формулировка задачи:
Здравствуйте!
Нужно помощь в написании именованной функции, которая создает список из элементов других списков!
Только сегодня начал изучать Lisp поэтому такие трудности.
Извените в итоге должен получиться список (G G I)! так как подсчет элементов в списке начинается с нуля! извините!
Спасибо если кто то пытался найти для меня решения!
Например!
естьтри
списка(G55 G66 G777), (9(FG)I), (NILTDJ(IIJJ))
. Функция должна составить новый списокиз 3 символа первого списка
,второго символа второго списка
,шестого символа третьего списка
. В итоге должен получиться список(5 F J).
пытаюсь делать что то так, но понимаю что это бред!(DEFUN FOO (lst1, lst2, lst3) (list (NTH 3 '(lst1)) (NTH 2 '(lst2)) (NTH 6 '(lst3))) (FOO (G55 G66 G777) (9(FG)I) (NILTDJ(IIJJ))) (rds)
В итоге должен получиться список (5 F J).
Я приношу свои извинения, наверно сказывается то, что спал сегодня 4 часа за двое суток!!!
Я немного неправильно написал условие!))
Во первых, три списка вот таких:
есть три списка
(G5 5 G66 G777), (9 (F G) I), (N I L T D J(II JJ)).
вот мое решение!( DEFUN FOO ( lst1 lst2 lst3 ) ( list lst1 lst2 lst3 ) ) (FOO (NTH 3 '(G5 5 G66 G777)) (NTH 2 '(9 (F G) I)) (NTH 6 '(N I L T D J(II JJ))) ) (rds)
Решение задачи: «Написать именованую функцию»
textual
Листинг программы
(defun task (ini-list num-list) (mapcar #'(lambda (l n) (nth n l)) ini-list num-list)) (task '((G 5 5 G 6 6 G 7 7 7) (9 (F G) I) (N I L T D J (I I J J))) '(3 2 6)) ==> (G i (i i J J))
Объяснение кода листинга программы
В этом коде:
- Создаётся функция
task
, которая принимает два аргумента:ini-list
иnum-list
. - Функция
mapcar
применяется кini-list
иnum-list
с использованием анонимной функции. Анонимная функция принимает два аргумента:l
иn
. Внутри неё происходит вызов функцииnth
, которая возвращает элемент списка с указанным индексом. - Результатом работы функции
task
является список, который состоит из элементов, полученных на предыдущем шаге. - В основной части кода вызывается функция
task
с двумя аргументами:ini-list
иnum-list
. Значения этих аргументов соответствуют указанным в вопросе. - Результатом работы функции является список
(G i (i i J J))
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д