Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Lisp
Перезагрузить страницу Написать функцию FIRST-атом, ее формальным параметром является L
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
MILA270 MILA270 вне форума
Новичок
 
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 01.12.2007
По умолчанию Написать функцию FIRST-атом, ее формальным параметром является L - 03.12.2007, 12:04

Написать функцию FIRST-атом, ее формальным параметром является L (список). Результат функции - первый атом списка (в учет принимаются списки всех уровней).
Ответить с цитированием
  (#2 (permalink)) Старый
_sg _sg вне форума
Member
 
Аватар для _sg
 
Сообщений: 525
Сказал(а) спасибо: 5
Поблагодарили 42 раз(а) в 38 сообщениях
Регистрация: 23.01.2007
По умолчанию 03.12.2007, 14:49

Код:
(defun atomf (w)
  (cond ((null w) nil)
        ((listp (car w)) (atomf (car w)))
        ((car w))))
(atomf '((a (b c) d)))
A
Ответить с цитированием
  (#3 (permalink)) Старый
Undertaker Undertaker вне форума
Member
 
Сообщений: 68
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 20.10.2007
По умолчанию 06.12.2007, 23:38

скажите правильно ли я понимаю работу данной программы:

Код:
Алгоритм atomf (w)

Начало

if (w-пусто ) then
                         вернуть nil
                         выход
if (голова w- список) then
                                      atomf (голова w)
                                else
                                       вернуть голову w              
Конец
Ответить с цитированием
  (#4 (permalink)) Старый
nastya530
Guest
 
Сообщений: n/a
По умолчанию 24.01.2008, 01:20

Объясните мне, пожалуйста, строку с повторным вызовом atomf (atomf (car w)) в коде и алгоритме
Ответить с цитированием
  (#5 (permalink)) Старый
Undertaker Undertaker вне форума
Member
 
Сообщений: 68
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 20.10.2007
По умолчанию 24.01.2008, 15:04

Функция atomf - является рекурсивной , поэтому в коде вы видите повторный вызов этой же функции.
Ответить с цитированием
Ads.
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
курсовая по формальным языкам на делфи Hevadimka Работа 0 11.01.2012 13:33
Как написать и протестировать функцию Владлена Вопросы начинающих программистов 0 01.06.2011 17:09
Написать программу, возвращающую Т, если lst2 является под-списком lst1 neud Lisp 3 24.01.2011 19:55
Разработать функцию, аргументом которой является список Alenky Lisp 0 23.11.2010 17:55
Является ли память на видеокарте основным параметром? DiM88 Любые вопросы от новичков 4 10.07.2008 23:10
Определить функцию, результатом которой является список из N копий platonior3767 Lisp 1 26.05.2008 19:32
Функция FIRST-ATOM - результатом функции является первый атом списка V@rom Lisp 6 23.05.2008 21:31
Написать программу, проверяющую, является ли первое из двух множеств подмножеством Zetka Lisp 4 29.05.2007 01:16
Как программно написать функцию MIX taboozx Lisp 5 22.05.2007 17:34
написать функцию на си ДжиневЪра Задания за деньги 1 05.04.2006 15:40
Написать две программы, одна из которых является сервером RPC Dima22 Visual C++ 1 17.12.2004 10:34
Как функцию DLL передать параметром объект своего класса etc С/С++ 9 11.09.2004 18:27



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов