Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Lisp
Перезагрузить страницу Построить списки числовых элементов и текстовых элементов
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
dobuzu dobuzu вне форума
Новичок
 
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.01.2008
По умолчанию Построить списки числовых элементов и текстовых элементов - 27.01.2008, 16:51

Дали две задачи, не одолел

1) Дан список, который может содержать подсписки. Построить списки числовых элементов и текстовых элементов данного списка
2) Дана алгебраическая форума в инфиксной форме, преобразовать в префиксную. Пример - на входе a+b/c, на выходе - (+ a (/ b c)

По второй задачи нашёл в "Мире ЛИСПа" Хювёнена следующее:
Код:
(defun schet (l)
 (eval (inpref l)))

(defun inpref (l)
 (cond ((ATOM l) l)
 ((= (length lis) 2)
     (cons (first l) (inpref (second l))))
 ((= (length l) 3)
     (list (second l)
             (inpref (first l))
             (inpref (third l))))
 (t (format t "Ошибочная форма: ~S~%" l))))
Но не понимаю, как это прикрутить к моей конкретной задаче.

P.S. Заранее спасибо
Ответить с цитированием
  (#2 (permalink)) Старый
VH VH вне форума
Member
 
Сообщений: 781
Сказал(а) спасибо: 0
Поблагодарили 11 раз(а) в 10 сообщениях
Регистрация: 29.06.2006
По умолчанию 27.01.2008, 21:01

"Мир Лиспа" Хювёнена-Сеппянена, с Вашего позволения.
2) У Вас в пятой строке опечатка.
Код:
(defun EVALUATE (L); в оригинале ВЫЧИСЛИ
  (eval (inpref L)))
Код:
(defun INPREF (L); в оригинале В-ПРЕФИКСНУЮ
  (cond
   ((atom L) L)
   ((= (length L) 2)
    (cons (first L) (INPREF (second L))))
   ((= (length L) 3)
    (list
     (second L)
     (INPREF (first L))
     (INPREF (third L))))
   (T (format t "Invalid form: ~S~%" L))))
> (inpref '(a + (b / c)))
(+ A (/ B C))
> (evaluate '(1 + (2 / 3)))
5/3
1) "...элементов данного списка..." с учетом подсписков?
Ответить с цитированием
  (#3 (permalink)) Старый
dobuzu dobuzu вне форума
Новичок
 
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.01.2008
По умолчанию 27.01.2008, 21:55

Цитата:
1) "...элементов данного списка..." с учетом подсписков?
Да.
Ответить с цитированием
  (#4 (permalink)) Старый
VH VH вне форума
Member
 
Сообщений: 781
Сказал(а) спасибо: 0
Поблагодарили 11 раз(а) в 10 сообщениях
Регистрация: 29.06.2006
По умолчанию 28.01.2008, 02:16

Код:
(defun NUMTEXT_LIST (L)
  (if (null L) '(nil nil)
   ((lambda (head result)
     (mapcar 'append
      (cond
       ((listp head) (NUMTEXT_LIST head))
       ((numberp head) (list (list head) nil))
       ((stringp head) (list nil (list head)))
       (T '(nil nil)))
      result))
    (car L)
    (NUMTEXT_LIST (cdr L)))))
Ответить с цитированием
  (#5 (permalink)) Старый
dobuzu dobuzu вне форума
Новичок
 
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.01.2008
По умолчанию 28.01.2008, 20:49

Спасибо большое.
Ответить с цитированием
Ads.
Ads
Ответ

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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск двух максимальных элементов и обнуление элементов между ними. Navokie С/С++ 8 18.12.2011 18:02
Сортировка элементов в QListWidget посредством перетягивания элементов Chiz Trolltech Qt 0 16.02.2011 13:43
Многоуровневые списки. Количество элементов на каждом уровне batoon Lisp 6 10.12.2009 12:23
Подсчёт элементов в БД Garik Prolog 0 07.12.2009 11:33
Списки: сумма положительных элементов kugur Prolog 5 28.07.2009 19:10
Найти максимальный из положительных элементов матрицы и сумму отрицательных элементов. bessonov12 Visual Basic 1 29.04.2009 11:30
Как построить список из элементов 1го списка входящих во 2ой список Ирина 24 Lisp 3 10.02.2009 10:55
Построить список из элементов 2го списка не входящий в 1ый список Ирина 24 Lisp 4 10.02.2009 10:28
Подсчёт элементов в БД Наташка Задания за деньги 0 16.04.2008 18:45
Сумма элементов Светлый Грусть Prolog 3 20.06.2007 02:07
Даны списки L1 и L2 элементов типа char. Построить список L3 Geront Lisp 1 31.10.2006 00:50
Задача со списком функция, которая находила бы сумму всех числовых элементов Sever Lisp 2 13.05.2005 02:37



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