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

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

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

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

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

textual
Листинг программы
  1. (defun type-sym (lst)
  2.   (mapcar #'(lambda (x)
  3.               (list x '-
  4.                  (cond ((numberp x) 'число)
  5.                        ((stringp x) 'строка)
  6.                        (t 'symbol)))) lst))    
  7.  
  8. ==> type-sym
  9.  
  10. (type-sym '(1 марта 2015 в МХМ им. Чехова пройдет спектакль "2 сестры"))
  11.  
  12. ==> ((1 - число) (марта - symbol) (2015 - число) (в - symbol) (МХМ - symbol) (им. - symbol) (Чехова - symbol) (пройдет - symbol) (спектакль - symbol) ("2 сестры" - строка))
  13.  
  14. (type-sym ' магазине 7 континент с 1.03.2015 действует скидка 35%))
  15.  
  16. ==> ((в - 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы