Построить английское существительное в множественном числе - Lisp

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

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

Множественное число большинства английских существительных получается путем добавления буквы "s" к форме единственного числа. Но если существительное заканчивается буквой "у'', следующей за согласной, множественное число образуется путем замены буквы "у" на сочетание "ies": если же существительное заканчивается буквой "о", следующей за согласной, множественное число образуется путем добавления сочетания "es". Напишите функцию (f W), вычисляющую множественное число для английского слова, представленного списком букв W.

Решение задачи: «Построить английское существительное в множественном числе»

textual
Листинг программы
(defun mnogo (x)
 (setq x (reverse x))
 (reverse
  (cons
   's
   (if
    (and
     (member (cadr x) '(b c d f g h k l m n p q r s t v w x z))
     (member (car x) '(o y)))
    (cons 'e
     (if (eq (car x) 'y)
      (cons 'i (cdr x))
      x))
    x))))

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

В данном коде определена функция со именем mnogo, которая принимает один аргумент x.

  1. Сначала с помощью setq переменной x присваивается значение обратного списка x.
  2. Затем с помощью reverse извлекается первый элемент из списка x.
  3. С помощью cons создается новый список, в который добавляется буква 's.
  4. Затем с помощью if проверяется условие: если второй элемент списка x является буквой 'o, то выполняется одно действие, а если это не так - другое.
  5. В первом случае с помощью cons к новому списку добавляется буква 'i, а во втором - список x.
  6. Затем с помощью cons к новому списку добавляется буква 'e.
  7. И наконец, с помощью return из функции возвращается получившийся список.

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


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

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

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