Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 20.02.2018
Сообщений: 6
1

Заменить число на его глубину вложения

20.02.2018, 12:54. Показов 1905. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
2. Напишите функцию, заменяющую Y на число, равное глубине
вложения Y в W, например, Y=a, W=((a b) a (c (a (a d)))) ->
((2 b) 1 (c (3 (4 d)))).

Я пользуюсь HomeLisp, не могли бы написать, я не понимаю.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.02.2018, 12:54
Ответы с готовыми решениями:

Если первое число отрицательно, то его значение заменить его модулем; в противном случае второе число заменить
Доброго времени суток. В университете задали эти задания по информатике (PascalABC). Сама полный...

Указать глубину вложения через параметр
Есть задачка. Запустить батник из командной строки(с %параметрами). Нужно вывести на экран файлы,...

Определить максимальную глубину вложения операторных скобок в программе
"Текст - программа на языке Си. Определить максимальную глубину вложения операторных скобок в этой...

Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получ
Вобщем,если не сложно,именно саму функцию помочь написать,ибо я просто не могу понять:) ...

2
4699 / 4394 / 380
Регистрация: 12.05.2012
Сообщений: 3,096
20.02.2018, 17:16 2
Переделать рекурсию по аргументу в рекурсию по значению
1
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,644
Записей в блоге: 13
20.02.2018, 19:58 3
Лучший ответ Сообщение было отмечено dante666lcf как решение

Решение

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
(defun task (el lst &optional (lv 1))
  (cond ((null lst) nil)
        ((eq el (car lst)) (cons lv (task el (cdr lst) lv)))
        ((listp (car lst)) (cons (task el (car lst) (+ lv 1)) (task el (cdr lst) lv)))
        (t (cons (car lst) (task el (cdr lst) lv))))) 
 
==> TASK
 
(task 'a '((a b) a (c (a (a d)))))
 
==> ((2 B) 1 (C (3 (4 D))))
 
(defun task (el lst &optional (lv 1))
  (mapcar (lambda (x) (cond ((eq el x) lv)
                            ((listp x) (task el x (+ lv 1)))
                            (t x))) lst))
 
==> TASK
 
(task 'a '((a b) a (c (a (a d)))))
 
==> ((2 B) 1 (C (3 (4 D))))
2
20.02.2018, 19:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.02.2018, 19:58
Помогаю со студенческими работами здесь

Если число кратно 12, то найти произведение его цифр, иначе заменить число нулем
С клавиатуры вводится десять трехзначных чётных чисел. Если число кратно 12, то найти произведение...

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru