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

Описать функцию (max1 x)

12.04.2013, 16:40. Просмотров 611. Ответов 2
Метки нет (Все метки)

Указания к решению задачи.
Списки, являющиеся аргументами функций, могут содержать подсписки. Рекурсия распространяется как в направлении cdr, так и в направлении car, т.е. на подсписки. Для определения главной функции можно использовать собственные подфункции.
В задаче можно вначале исходный список выровнять, затем сделать из него множество. Например:
((a b) b ((c)) a) https://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrow (a b b c a) https://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrow (a b c).
После этого к списку можно применить основную функцию. Можно воспользоваться и другими более эффективными под функциями.

Задача.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.04.2013, 16:40
Ответы с готовыми решениями:

Описать функцию в классе Name и создать объект, вызывающий данную функцию.
Описать функцию в классе Name и создать объект, вызывающий данную функцию. Проверить истинность...

Описать функцию F(m,n)=n!*m!/(n+m)!, где n, m - неотрицательные целые числа. (Определить внутреннюю функцию, вычисляющую факториал)
Задача: Описать функцию F(m,n)=n!*m!/(n+m)!, где n, m - неотрицательные целые числа. (Определить...

Написать функцию, которая вычисляет объем и площадь поверхности параллелепипеда, описать функцию IsSquare(K)
Здравствуйте, нужна помощь по решению двух зачад в TC++(Turbo C++); Задача 1. Написать функцию,...

Задачка на массивы (описать функцию случайной генерации элементов массива, а за тем логическую функцию)
Необходимо описать функцию случайной генерации элементов массива, а за тем логическую функцию,...

2
Модератор
26278 / 13685 / 2603
Регистрация: 12.02.2012
Сообщений: 22,454
12.04.2013, 17:20 2
Lisp
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
(defun max-depth (lst)
  (cond ((null lst) 0)
        ((atom (car lst)) (max-depth (cdr lst)))
        (t (max (1+ (max-depth (car lst))) (max-depth (cdr lst))))))
 
==> max-depth
 
(max-depth '(1 (2 3)))
 
==> 1
 
(max-depth '(1 (2 3) (((5)))  ))
 
==> 3
 
(trace max-depth)
 
==> max-depth
 
(max-depth '(1 (2 3) (((5)))  ))
 
Вход в функцию max-depth Аргументы: (1 (2 3) (((5))))
  Вход в функцию max-depth Аргументы: ((2 3) (((5))))
    Вход в функцию max-depth Аргументы: (2 3)
      Вход в функцию max-depth Аргументы: (3)
        Вход в функцию max-depth Аргументы: NIL
        Возврат из функции max-depth Результат: 0
      Возврат из функции max-depth Результат: 0
    Возврат из функции max-depth Результат: 0
    Вход в функцию max-depth Аргументы: ((((5))))
      Вход в функцию max-depth Аргументы: (((5)))
        Вход в функцию max-depth Аргументы: ((5))
          Вход в функцию max-depth Аргументы: (5)
            Вход в функцию max-depth Аргументы: NIL
            Возврат из функции max-depth Результат: 0
          Возврат из функции max-depth Результат: 0
          Вход в функцию max-depth Аргументы: NIL
          Возврат из функции max-depth Результат: 0
        Возврат из функции max-depth Результат: 1
        Вход в функцию max-depth Аргументы: NIL
        Возврат из функции max-depth Результат: 0
      Возврат из функции max-depth Результат: 2
      Вход в функцию max-depth Аргументы: NIL
      Возврат из функции max-depth Результат: 0
    Возврат из функции max-depth Результат: 3
  Возврат из функции max-depth Результат: 3
Возврат из функции max-depth Результат: 3
==> 3
1
4325 / 4053 / 320
Регистрация: 12.05.2012
Сообщений: 2,863
12.04.2013, 17:32 3
Lisp
1
2
3
4
5
6
(defun max-depth (w)
  (cond ((atom w) 0)
        ((max (+ 1 (max-depth (car w))) (max-depth (cdr w))))))
 
> (max-depth '(a b (c d (e f) g)))
3
Lisp
1
2
3
4
5
(defun max-depth (w)
  (if (atom w) 0 (max (1+ (max-depth (car w))) (max-depth (cdr w)))))
 
> (max-depth '(a b (c d (e f) g)))
3
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.04.2013, 17:32

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

Описать функцию max (X) для определения максимального элемента вектора X, введя вспомогательную рекурсивную функцию
Всем доброго времени суток. Помогите пожалуйста разобраться в условиях задачи, а то что-то у...

Описать функцию, имитирующую встроенную функцию strip_tags()
Описать функцию, имитирующую встроенную функцию Strip_tags. Параметры: обрабатываемая переменная,...

Описать функцию, функцию Test(G), проверяющую, что в группе самая высокая из женщин ниже самого высокого из мужчин
type name = (Mary, Jane, Kim, Bob, Jan, Pit, Tom, Sara); data = record male: boolean; {пол:...

Дана матрица А nxn. Написать программу нахождения минимального элемента из (max1, .,maxn), где maxi – максимальный в i - той строке
Дана матрица А nxn. Написать программу нахождения минимального элемента из (max1, ...,maxn), где...

Описать функцию C++
Описать функцию: PowerA3(A), возвращающую третью степень числа A (A - вещественный параметр), С...

Описать функцию в с++
Помогите описать функцию в с++, y'' - xy' - y=0, для дальнейшей работы с ней.


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

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

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