Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
3 / 3 / 3
Регистрация: 17.10.2012
Сообщений: 147

Написать функцию со списками

19.10.2015, 18:39. Показов 2250. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем!

Нахлынула недавно задача:
Напишите функцию (range S М N P), которая выдает список элементов списка S, удовлетворяющих некоторому предикату P и расположенных между М-ным и N-ным элементами включительно.
Вообще не понимаю, что надо сделать. Это как-то связано в дискретной математикой? Предикаты ...
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.10.2015, 18:39
Ответы с готовыми решениями:

Описать функцию, работающую с двумя списками
Доброго времени суток, помогите пожалуйста с заданием: Опишите функцию, которая определяет, является ли первое множество подмножеством...

Написать программу со списками
Написать программу для сортировки списка методом селекции: из списка выбирается максимальный элемент и переносится в голову результирующего...

Написать программу со списками и текстовыми файлами
Задача (алфавитно-частотный словарь). В файле записан текст. Нужно записать в другой файл в столбик все слова, встречающиеся в тексте, в...

24
3 / 3 / 3
Регистрация: 17.10.2012
Сообщений: 147
03.11.2015, 12:14  [ТС]
Студворк — интернет-сервис помощи студентам
[5]> (f '(1 2 3 4 5 6 7 8) 5 1 'evenp)
NIL
[6]> (f '(1 2 3 4 5 6 7 8) 1 5 'evenp)
(2 4)
[7]>
Не работает.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38225 / 21157 / 4314
Регистрация: 12.02.2012
Сообщений: 34,771
Записей в блоге: 14
03.11.2015, 12:47
Andrea13, работает. Просто отрезок [5,1] не содержит ни одного числа, а отрезок [1,5] содержит числа 1,2,3,4,5. Из них четные - 2 и 4
1
 Аватар для _sg
4710 / 4405 / 380
Регистрация: 12.05.2012
Сообщений: 3,102
03.11.2015, 13:46
Lisp
1
2
3
4
> (over-conditional-range '(1 2 3 4 5 6 7 8) 5 1 'evenp)
(2 4)
> (over-conditional-range '(1 2 3 4 5 6 7 8) 1 5 'evenp)
(2 4)
1
 Аватар для _sg
4710 / 4405 / 380
Регистрация: 12.05.2012
Сообщений: 3,102
10.11.2015, 02:31
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
(defun conditional-range (w n m p
                          &optional (z 0)
                          &aux (a (car w)) (d (cdr w)))
  (cond ((or (null w) (> z m)) nil)
        ((and (<= n z m) (funcall p a))
         (cons a (conditional-range d n m p (1+ z))))
        ((conditional-range d n m p (1+ z)))))
 
(defun over-conditional-range (w n m p)
  (if (<= n m)
      (conditional-range w n m p)
      (conditional-range w m n p)))
 
> (over-conditional-range '(1 2 3 4 5 6 7 12 33 45 57) 12 57 'oddp)
NIL
> (over-conditional-range '(1 2 3 4 5 6 7 12 33 45 57) 4 7 'oddp)
(5 7)
> (over-conditional-range '(1 2 3 4 5 6 7 12 33 45 57) 7 4 'oddp)
(5 7)
> (over-conditional-range '(1 2 3 4 5 6 7 12 33 45 57) 4 4 'oddp)
(5)
> (over-conditional-range '() 4 7 'oddp)
NIL
Добавлено через 2 минуты
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
(defun conditional-range (w n m p)
  (loop for a in w for b from 0
        when (> b m) return v
        when (and (>= b n) (funcall p a))
        collect a into v))
 
(defun over-conditional-range (w n m p)
  (if (<= n m)
      (conditional-range w n m p)
      (conditional-range w m n p)))
 
> (over-conditional-range '(1 2 3 4 5 6 7 12 33 45 57) 12 57 'oddp)
NIL
> (over-conditional-range '(1 2 3 4 5 6 7 12 33 45 57) 4 7 'oddp)
(5 7)
> (over-conditional-range '(1 2 3 4 5 6 7 12 33 45 57) 7 4 'oddp)
(5 7)
> (over-conditional-range '(1 2 3 4 5 6 7 12 33 45 57) 4 4 'oddp)
(5)
> (over-conditional-range '() 4 7 'oddp)
NIL
Добавлено через 23 минуты
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
(defun conditional-range (w n m p
                          &optional ac (z 0)
                          &aux (a (car w)) (d (cdr w)))
  (cond ((or (null w) (> z m)) (nreverse ac))
        (t (conditional-range d n m p
                              (if (and (<= n z m) (funcall p a))
                                  (cons a ac)
                                  ac)
                              (1+ z)))))
 
(defun over-conditional-range (w n m p)
  (if (<= n m)
      (conditional-range w n m p)
      (conditional-range w m n p)))
 
> (over-conditional-range '(1 2 3 4 5 6 7 12 33 45 57) 4 7 'oddp)
(5 7)
> (over-conditional-range '(1 2 3 4 5 6 7 12 33 45 57) 7 4 'oddp)
(5 7)
> (over-conditional-range '(1 2 3 4 5 6 7 12 33 45 57) 4 4 'oddp)
(5)
> (over-conditional-range '() 4 7 'oddp)
NIL
Добавлено через 17 секунд
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
(defun conditional-range (w n m p
                          &optional ac (z 0)
                          &aux (a (car w)) (d (cdr w)))
  (if (or (null w) (> z m))
      (nreverse ac)
      (conditional-range d n m p
                         (if (and (<= n z m) (funcall p a))
                             (cons a ac)
                             ac)
                         (1+ z))))
 
> (over-conditional-range '(1 2 3 4 5 6 7 12 33 45 57) 4 7 'oddp)
(5 7)
> (over-conditional-range '(1 2 3 4 5 6 7 12 33 45 57) 7 4 'oddp)
(5 7)
> (over-conditional-range '(1 2 3 4 5 6 7 12 33 45 57) 4 4 'oddp)
(5)
> (over-conditional-range '() 4 7 'oddp)
NIL
2
 Аватар для _sg
4710 / 4405 / 380
Регистрация: 12.05.2012
Сообщений: 3,102
17.11.2015, 11:44
Lisp
1
2
3
4
5
6
7
8
9
(defun conditional-range (w n m p)
  (loop for a in w for b from 1
        when (and (<= n b m) (funcall p a))
        collect a))
 
> (conditional-range '(1 2 3 4 5 66 77 88 99 1010 1111) 2 11 #'evenp)
(2 4 66 88 1010)
> (conditional-range '(1 2 3 11 22 33 44 66 88) 4 9 #'evenp)
(22 44 66 88)
Добавлено через 10 часов 45 минут
Lisp
1
2
3
4
5
6
7
(defun conditional-range (w n m p)
  (loop for a in w for b from 1 to m
        when (and (<= n b m) (funcall p a))
        collect a))
 
> (conditional-range '(1 2 3 4 5 66 77 88 99 1010 1111) 2 11 #'evenp)
(2 4 66 88 1010)
Добавлено через 2 часа 29 минут
Lisp
1
2
3
4
5
6
7
8
9
10
11
(defun conditional-range (w n m p)
  (loop for a in w for b from 1 to m
        when (and (<= n b) (funcall p a))
        collect a))
 
> (conditional-range '(1 2 3 4 5 66 77 88 99 1010 1111) 2 11 #'evenp)
(2 4 66 88 1010)
> (conditional-range '(1 2 3 4 5 66 77 88 99 1010 1111) 2 10 #'evenp)
(2 4 66 88 1010)
> (conditional-range '(1 2 3 4 5 66 77 88 99 1010 1111) 2 9 #'evenp)
(2 4 66 88)
Добавлено через 1 минуту
Lisp
1
2
3
4
5
6
7
8
9
10
11
(defun conditional-range (w n m p)
  (loop for a in w for b from 1 to m
        when (and (>= b n) (funcall p a))
        collect a))
 
> (conditional-range '(1 2 3 4 5 66 77 88 99 1010 1111) 2 9 #'evenp)
(2 4 66 88)
> (conditional-range '(1 2 3 4 5 66 77 88 99 1010 1111) 2 10 #'evenp)
(2 4 66 88 1010)
> (conditional-range '(1 2 3 4 5 66 77 88 99 1010 1111) 2 11 #'evenp)
(2 4 66 88 1010)
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.11.2015, 11:44

Надо написать программу для роботы с линейными списками
Друзья помогите написать программу!!! Надо написать программу для роботы с линейными списками, что бы можно было добавлять элементы в...

Написать шаблонный класс List для работы с одноправленными списками в динамической памяти
Для объектов класса List определить операции проверки списка на пустоту, добавления элемента в начало списка, в конец списка, подсчет...

List (Написать программу для работы со списком и реализовать следующие операции над списками)
Написать программу для работы со списком и реализовать следующие операции над списками: 1) перенести в начало списка его последний...

Написать функцию. которая аргументом принимает тип происшествия и возвращает функцию
Написать функцию. которая аргументом принимает тип происшествия и возвращает функцию, которая принимает улицу и возвращает сообщение...

Написать функцию, которая, в зависимости от выбора пользователя вызывает соответствующую функцию
Помогите, что то я не могу понять задачи, даже не знаю с чего начать)))) 5. Написать функцию, которая, в зависимости от выбора...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru