Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 2
Регистрация: 24.04.2013
Сообщений: 135

Построить функции, работающие со списками

24.05.2013, 20:39. Показов 2715. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
GetN — функция вычленения N-ого элемента из заданного списка.
GetN (N, []) = _
GetN (1, H:T) = H
GetN (N, H:T) = GetN (N – 1, T)

ListSumm — функция сложения элементов двух списков. Возвращает список, составленный из сумм элементов списков-параметров. Учесть, что переданные списки могут быть разной длины.
OddEven — функция перестановки местами соседних чётных и нечётных элементов в заданном списке.
Reverse — функция, обращающая список (первый элемент списка становится последним, второй — предпоследним, и так далее до последнего элемента).
Map — функция применения другой переданной в качестве параметра функции ко всем элементам заданного списка.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.05.2013, 20:39
Ответы с готовыми решениями:

Ноут и его не работающие функции
у меня ноут Asus X80Le, и при нажатии на кнопку ф-кции у меня ничего не происходит...работает только яркость экрана..=( Помогите...

Не получается объединить работающие по отдельности функции
Народ вот у меня все три функции по отдельности работают, но когда я их пытаюсь обеденить функция copy не пашет в чем может быть...

Функции, работающие с пользовательскими типами данных
Клавиши на клавиатуре могут быть либо управляющими,либо алфавитно-цифровыми. Нажатие алфавитно-цифровой клавиши может сопровождаться...

9
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38178 / 21113 / 4307
Регистрация: 12.02.2012
Сообщений: 34,716
Записей в блоге: 14
24.05.2013, 21:11
Ты уверен, что верно выбрал раздел?

Haskell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
listSumm :: (Num a) =>  [a] -> [a] -> [a]
listSumm x [] = x
listSumm [] y = y
listSumm (x:xs) (y:ys) = (x+y) : listSumm xs ys 
 
*Main> listSumm [1,2,3] [1.2,2,4,5]
 
[2.2,4.0,7.0,5.0]
 
oddEven :: [a] -> [a]
oddEven [] = []
oddEven (x:xs) = if null xs then [x] else (head xs) : x : (oddEven $ drop 1 xs)
 
*Main> oddEven [1,2,3,4,5]
 
[2,1,4,3,5]
 
reverse' :: [a] -> [a]
reverse' [] = []
reverse' (x:xs) = (reverse' xs) ++ [x]
 
*Main> reverse [11,22,33]
[33,22,11]
*Main> reverse "QWERTY"
"YTREWQ"
 
map' :: (a -> b) -> [a] -> [b]
map' f [] = []
map' f (x:xs) = (f x) : (map' f xs)
 
*Main> map' (\ x-> x*x*x) [1,2,3,4,5,6]
[1,8,27,64,125,216]
1
 Аватар для _sg
4709 / 4404 / 380
Регистрация: 12.05.2012
Сообщений: 3,102
24.05.2013, 21:17
2.
Lisp
1
2
3
4
5
6
(defun sum-pairs (w v) (mapcar #'+ w v))
 
> (sum-pairs '(1 1) '(1 1))
(2 2)
> (sum-pairs '(1 1) '(1 1 1))
(2 2)
3.
Lisp
1
2
3
4
5
6
7
(defun odd-even (w)
  (if (cdr w) (cons (cadr w) (cons (car w) (odd-even (cddr w)))) w))
 
> (odd-even '(a 1 a 1))
(1 A 1 A)
> (odd-even '(a 1 a 1 a))
(1 A 1 A A)
4.
Lisp
1
2
3
4
5
(defun _reverse (w &optional ac)
  (if w (_reverse (cdr w) (cons (car w) ac)) ac))
 
> (_reverse '(1 2 3 4 5))
(5 4 3 2 1)
5.
Lisp
1
2
3
4
5
(defun _mapcar (p w)
  (when w (cons (funcall p (car w)) (_mapcar p (cdr w)))))
 
> (_mapcar #'1- '(1 2 3))
(0 1 2)
Добавлено через 4 минуты
2.
Lisp
1
2
3
4
5
6
7
8
9
(defun sum-pairs (w v)
  (cond ((null w) v)
        ((null v) w)
        ((cons (+(car w) (car v)) (sum-pairs (cdr w) (cdr v))))))
 
> (sum-pairs '(1 1) '(1 1))
(2 2)
> (sum-pairs '(1 1) '(1 1 1))
(2 2 1)
2
0 / 0 / 2
Регистрация: 24.04.2013
Сообщений: 135
24.05.2013, 21:25  [ТС]
Да, уверен, вот такое задали на Лиспе написать! Спасибо большое)

Добавлено через 7 минут
SG, Вы не моли бы объяснить эту строчку (when w (cons (funcall p (car w)) (_mapcar p (cdr w)))))?
0
 Аватар для _sg
4709 / 4404 / 380
Регистрация: 12.05.2012
Сообщений: 3,102
24.05.2013, 21:42
До тех пор, пока не опустел (существует) список w включаем - cons результат применения функции p, переданной в качестве параметра определяемой функции _mapcar, к первому элементу (car w) списка w в начало списка, полученного в результате вызова определяемой функции _mapcar с параметрами: p и хвостом (cdr w) списка w.
1
0 / 0 / 2
Регистрация: 24.04.2013
Сообщений: 135
24.05.2013, 21:45  [ТС]
А что такое &optional?
0
 Аватар для _sg
4709 / 4404 / 380
Регистрация: 12.05.2012
Сообщений: 3,102
24.05.2013, 21:47
Указатель на то, что далее следуют необязательные (опциональные) параметры.
1
0 / 0 / 2
Регистрация: 24.04.2013
Сообщений: 135
24.05.2013, 22:31  [ТС]
И еще не очень понятно что здесь происходит (if (cdr w) (cons (cadr w) (cons (car w) (odd-even (cddr w)))) w))!
0
 Аватар для _sg
4709 / 4404 / 380
Регистрация: 12.05.2012
Сообщений: 3,102
24.05.2013, 22:44
До тех пор - if, пока cписок w состоит хотя бы из двух элементов (cadr w) включаем - cons второй элемент (cadr w) списка w в начало списка, полученного в результате включения - cons первого элемента (car w) списка w в начало списка, полученного в результате вызова определяемой функции odd-even c хвостом хвоста (cddr w) списка w. Если условие if не выполнено, то есть в списке w меньше двух элементов, то возвращаем сам список w (или что от него осталось).
1
0 / 0 / 2
Регистрация: 24.04.2013
Сообщений: 135
24.05.2013, 22:48  [ТС]
Спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.05.2013, 22:48
Помогаю со студенческими работами здесь

Как искать функции, работающие с определенным типом?
Всем привет! Сейчас у меня типичная нудная задача: создать строку wchar_t, конвертировать цифру из int в wchar_t, затем склеить...

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

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

Построить график функции. вычислить и построить все асимптоты для этой функции
Помогите пожалуйста... Устал с ней возиться... Задание: Построить график функции,вычислить и построить все асимптоты для этой функции. ...

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


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru