Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/14: Рейтинг темы: голосов - 14, средняя оценка - 4.50
 Аватар для Oxotnuk
78 / 78 / 6
Регистрация: 18.06.2009
Сообщений: 533

Объясните кусочек кода

21.05.2010, 18:28. Показов 2949. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Объясните кусочек кода,как,что выполняется,можно в эквиваленте на c++
Lisp
1
2
3
4
(defun app (x y)
  (cond ((endp x) y)
        (t (cons (car x) 
                 (app (cdr x) y)))))
Можно и просто словами объяснить что как,что выполняется.
Заранее спасибо

Добавлено через 1 час 12 минут
Разве никто не может ответить?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.05.2010, 18:28
Ответы с готовыми решениями:

Объясните кусочек кода
В общем есть строчка: var sortDict = dict.OrderByDescending(x => x.Value); Объясните ее полностью и особенно интересно "x...

Объясните этот кусочек кода
Здравствуйте, объясните пожалуйста, чем отличается такой метод: public partial class Form1 : Form { public Form1() { ...

Объясните короткий кусочек кода
Задание: написать программу которая расшифровывает сообщение закодированное в файле c_autorun_ru.bmp Код программы на фото, нужно...

2
 Аватар для Aye Aye
373 / 287 / 97
Регистрация: 17.12.2009
Сообщений: 567
01.06.2010, 16:03
Функция app склеивает два списка в один, так что в новом списке сначала идут элементы первого списка затем элементы второго списка.
Lisp
1
2
3
4
5
6
7
8
9
10
(defun app (x y)                 ;объявление функции
    (cond
            ((endp x) y)          ;условие, если список х закончился то вернуть список у
            (t (cons
                       (car x)              ;если список х не закончился то взять его голову, и сделать головой
                       (app (cdr x) y);нового списка хвостом которого будет результат рекурсивного применения функции app к хвосту списка х и списку y
                )
            )
     )
)
проще говоря:
эта функция проходит по списку х рекурсивно, каждый раз откусывая голову от него, и вставляя её в новый список, а список y просто передается в качестве второго аргумента. затем список х кончается, и возвращается список y. получается, что когда рекурсия разворачивается функция app возвращает откусанную голову списка х соединенную с... сначала со списком у, затем со списком ((последний элементы из х) + список y), затем два последних эл. из х + список у и т. д.
например для списков (a b c d) и (e f g h i):
первый вызов app:
x==(a b c d)
y==и (e f g h i)
второй вызов app:
x==(b c d), элемент 'a' "хранится" в памяти отведенной под текущий вызов app
y==и (e f g h i)
3:
x==(c d), элемент 'b' "хранится" в памяти отведенной под текущий вызов app
y==и (e f g h i)
4:
x==(d)
y==и (e f g h i)
5:
x==(), х пустой! возвращаем y, рекурсия начинает разворачиваться.
y==и (e f g h i)
4:
вернуть 'd' + y , где y==(e f g h i)
3:
вернуть 'c' + (d e f g h i)
2:
вернуть 'b' + (c d e f g h i)
1:
вернуть 'a' + (b c d e f g h i)
И тут функция возвращает конченый результат: (a b c d e f g h i)
символ + (плюс) я использовал для обозначения соединения элемента и списка (функция cons).
надеюсь, что обьяснил
1
 Аватар для Oxotnuk
78 / 78 / 6
Регистрация: 18.06.2009
Сообщений: 533
01.06.2010, 19:24  [ТС]
Спасибо,но с этим я уже разобрался,уже есть гораздо более сложные задачи
Но,всеравно спасибо,что ответил
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.06.2010, 19:24
Помогаю со студенческими работами здесь

Найти кусочек кода
Так, чёртова джумла. У меня уже расплавился мозг. Есть 1 сайт, мне нужно найти, куда добавили кусочек стилей. Ссылка на сайт Шаблон...

непонятен кусочек кода
Вот функция равномерного распределинея чисел. int x1=time(NULL)*16331; int rand_d(int t) { float r; int da=0, db=t, m=97,...

Объяснить кусочек кода
for (i = 0; i < a; i++) { printf("введите строку #%d\n",i+1); Конкретно интересует - зачем(почему, на кой и т.д.) в printf мы...

Перевести кусочек кода с Java
for(int i=0; i<5; i++) { for(int j=0; j<5; j++) System.out.print(" "+(char)('A'+((i==j)?0:(i<j)?j:(4-j)))); ...

Не могу понять кусочек кода
Здравствуйте, может кто-то подскажет как это работает comboBox.addItemListener(new ItemListener(){ @Override public...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru