Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
AndreWwWwwW
3 / 3 / 0
Регистрация: 15.09.2018
Сообщений: 78
1

Обработка списков

09.10.2018, 23:51. Просмотров 526. Ответов 3
Метки нет (Все метки)

Реализовать на Scheme:

Определите следующие процедуры для обработки списков:

Процедуру (my-range a b d), возвращающую список чисел в интервале [a, b) с шагом d.
Процедуру my-flatten, раскрывающую вложенные списки.
1
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2018, 23:51
Ответы с готовыми решениями:

Обработка списков
1. Используя только CAR и CDR вытащить 'aaa' и следующего списка: (((( ddd (aaa)) eee) nnn) kkk) ...

Обработка списков
сессия, хелп :( кто чем может :( Заранее пасибо 1) Удалить из списка все элементы, большие...

Обработка списков рекурсивным методом
Привет всем! Вот мучаюсь с объединением списков без применения операторов циклов; функций прямого...

Арифметика и обработка списков в LISP. Задание функций
Задание: Реализовать средствами Лиспа пользовательские функции: a. uf1(x)=tan(x/8)+ctn(x/8) b....

3
_sg
4279 / 4011 / 316
Регистрация: 12.05.2012
Сообщений: 2,835
10.10.2018, 10:49 2
вариант Common Lisp:
Lisp
1
2
3
4
5
6
7
8
9
10
(defun step-range (n m d)
  (cond ((> n m) nil)
        (t (cons n (step-range (+ n d) m d)))))
 
> (step-range 2 8 2)
(2 4 6 8)
> (step-range 3 8 2)
(3 5 7)
> (step-range 3 9 2)
(3 5 7 9)
Добавлено через 1 минуту
Lisp
1
2
3
4
5
6
7
8
9
(defun step-range (n m d)
  (when (<= n m) (cons n (step-range (+ n d) m d))))
 
> (step-range 2 8 2)
(2 4 6 8)
> (step-range 3 8 2)
(3 5 7)
> (step-range 3 9 2)
(3 5 7 9)
Добавлено через 3 минуты
Lisp
1
2
3
4
5
6
7
8
9
(defun step-range (n m d)
  (loop for a from n to m by d collect a))
 
> (step-range 2 8 2)
(2 4 6 8)
> (step-range 3 8 2)
(3 5 7)
> (step-range 3 9 2)
(3 5 7 9)
Добавлено через 2 минуты
Lisp
1
2
3
4
5
6
7
(defun flatten (w &optional ac) 
  (cond ((null w) ac)
        ((atom w) (cons w ac))
        ((flatten (car w) (flatten (cdr w) ac)))))
 
> (flatten '(a (b (c))))
(A B C)
Добавлено через 46 секунд
Lisp
1
2
3
4
5
6
7
(defun flatten (w)
  (loop for a in w 
        if (listp a) append (flatten a)
        else collect a))
 
> (flatten '(a (b (c))))
(A B C)
Добавлено через 52 секунды
Lisp
1
2
3
4
5
(defun flatten (w)
  (mapcan #'(lambda (a) (if (listp a) (flatten a) `(,a))) w))
 
> (flatten '(a (b (c))))
(A B C)
Добавлено через 1 минуту
Lisp
1
2
3
4
5
(defun flatten (w) 
  (if (atom w) `(,w) (mapcan #'flatten w)))
 
> (flatten '(a (b (c))))
(A B C)
Добавлено через 7 минут
Lisp
1
2
3
4
5
6
7
(defun flatten (w &optional ac) 
  (if w (if (atom w) (cons w ac) 
            (flatten (car w) (flatten (cdr w) ac)))
      ac))
 
> (flatten '(a (b (c))))
(A B C)
Добавлено через 4 минуты
Lisp
1
2
3
4
5
6
7
(defun flatten (w)
  (loop for a in w
        if (listp a) nconc (flatten a)
        else collect a))
 
> (flatten '(a (b (c))))
(A B C)
Добавлено через 3 минуты
Lisp
1
2
3
4
5
6
(defun flatten (w)
  (loop for a in w nconc
        (if (listp a) (flatten a) `(,a))))
 
> (flatten '(a (b (c))))
(A B C)
1
Catstail
Модератор
25832 / 13334 / 2527
Регистрация: 12.02.2012
Сообщений: 21,869
10.10.2018, 20:54 3
Scheme:

Lisp
1
2
3
(define (task a b n)
    (if (> a b) '() (cons a (task (+ a n) b n))))
(display (task 1 11 3))
https://ideone.com/EREzXP
1
Catstail
Модератор
25832 / 13334 / 2527
Регистрация: 12.02.2012
Сообщений: 21,869
11.10.2018, 20:06 4
Scheme:

Lisp
1
2
3
4
5
6
7
8
9
10
(define (append l1 l2)
    (cond ((null? l1) l2)
          (#t (cons (car l1) (append (cdr l1) l2)))))
 
(define (flatten lst)
    (cond ((null? lst) '())
          ((atom? (car lst)) (cons (car lst) (flatten (cdr lst))))
          (#t (append (flatten (car lst)) (flatten (cdr lst))))))
 
(display (flatten '(a (b c) (((d))))))
https://ideone.com/0kmVEf
1
11.10.2018, 20:06
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2018, 20:06

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Перестановка списков заданных уровней, учитывая промежуточное состояние списков
Написать программу перестановки списков заданных уровней, учитывая промежуточное состояние списков....

Список списков списков чисел
Всем привет) Задание: l1 - список списков списков чисел. Необходимо получить список чисел l2,...

Обработка списков
Помогите защитить учебную практику. Заранее спасибо

Обработка списков
Помогите пожайлуста!!! Задание: 1. Создать список, состоящий из значений первых аргументов...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.