Выбрать из списка каждый третий элемент - Lisp

  1. Выбрать из списка каждый третий элемент и возвратить их в новый список. Помогите пожалуйста, совсем недавно начал учить лисп.


textual

Код к задаче: «Выбрать из списка каждый третий элемент - Lisp»

(defun thirds (w &optional ac)
  (if (cddr w) 
      (thirds (cdddr w) (cons (caddr w) ac))
      (nreverse ac)))
 
> (thirds '(1 2 3 4 5 6))
(3 6)

СДЕЛАЙТЕ РЕПОСТ

12   голосов, оценка 3.417 из 5



Похожие ответы
  1. Добрый вечер всем! Подскажите как через цикл do организовать нахождение произведения внутри списка. Т.е (1 2 3 (3 6) 2 1 (2 4) 2 ) - такого например. Нужно через do реализовать, как не могу понять, точнее не могу понять как доставать элементы из списка и производить над ними действия. Писал с помощью dolist, но он не учитывает вложенные списки. Сказали через do легче будет реализовать, посему прошу помощи. Вот пример реализации через dolist:

  1. Привет. Помогите с лиспом. нужно реализовать математический нейрон. Число входов = 3 Функция активации = пороговая.

  1. Помогите, пожалуйста. Определить функцию Разность, формирующую разность двух множеств, т.е. удаляющую из первого множества все общие со вторым множеством элементы.

  1. Мое задание Написать программу которая берет производную от одной переменной То что я уже сделала:

  1. Добрый вечер, Кто-то может помочь с реализацией функции чтение слов из файла в список? Файл состоит из слов

  1. Необходимо найти произведение элементов в списке, имеющем вид: ((х (х)) (х (х)) (х (х)) ...) На данный момент имеется такой код, которые не выводит нужное значение:

  1. Добрый вечер, имеется код, который считает такое выражение : ((A ∩ B) – C) ∩ D , где A,B,C,D-множества. Как его переделать, что бы считало (С - (A ∩ B)) ∩ D ?

  1. Определить функцию, выбирающую из заданного списка все числовые атомы. С использованием подсписков.