Числовые и символьные атомы - Lisp

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, помогите решить задачу по функциональному программированию. Необходимо определить, что является числовыми, а что символьными атомами в S-выражениях: 1 марта 2015 в МХМ им. Чехова пройдет спектакль «2 сестры» В магазине 7 континент с 1.03.2015 действует скидка 35% Спасибо за внимание.

Решение задачи: «Числовые и символьные атомы»

textual
Листинг программы
(defun type-sym (lst)
  (mapcar #'(lambda (x)
              (list x '- 
                 (cond ((numberp x) 'число)
                       ((stringp x) 'строка)
                       (t 'symbol)))) lst))    
 
==> type-sym
 
(type-sym '(1 марта 2015 в МХМ им. Чехова пройдет спектакль "2 сестры"))
 
==> ((1 - число) (марта - symbol) (2015 - число) (в - symbol) (МХМ - symbol) (им. - symbol) (Чехова - symbol) (пройдет - symbol) (спектакль - symbol) ("2 сестры" - строка))
 
(type-sym '(В магазине 7 континент с 1.03.2015 действует скидка 35%))
 
==> ((в - symbol) (магазине - symbol) (7 - число) (континент - symbol) (с - symbol) (1.03.2015 - symbol) (действует - symbol) (скидка - symbol) (35% - symbol))

Объяснение кода листинга программы

В данном коде определён функционал, который позволяет определить тип элемента списка. Функция type-sym принимает входной список lst и возвращает список, в котором каждый элемент исходного списка помечен тегом, указывающим на его тип: число, строка или символ. В данном случае, код выполняет следующие шаги:

  1. Определяет функцию type-sym.
  2. В функции type-sym используется функция mapcar, которая применяет анонимную функцию (лямбда-функцию) к каждому элементу входного списка lst.
  3. Анонимная функция проверяет тип элемента списка.
  4. Если элемент является числом, то возвращается список, в котором данный элемент помечен тегом 'число.
  5. Если элемент является строкой, то возвращается список, в котором данный элемент помечен тегом 'строка.
  6. Если элемент не является числом и не является строкой, то возвращается список, в котором данный элемент помечен тегом 'symbol.
  7. Возвращается результат применения mapcar к входному списку lst. Пример использования функции type-sym со следующим входным списком: '(1 марта 2015 в МХМ им. Чехова пройдет спектакль 2 сестры)' показывает, что функция корректно определяет тип каждого элемента списка и возвращает список с правильными тегами. Пример использования функции type-sym со следующим входным списком: '(В магазине 7 континент с 1.03.2015 действует скидка 35%))' также показывает, что функция корректно определяет тип каждого элемента списка и возвращает список с правильными тегами.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4 из 5
Похожие ответы