Функция (f W), вычисляющая множественное число для английского слова - Lisp

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

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

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

Решение задачи: «Функция (f W), вычисляющая множественное число для английского слова»

textual
Листинг программы
(defun ending (w &aux (z (last w 2)) (a (car z)) (b (cadr z))
               (m (not (member a '(a e i o u y)))))
  (nconc (butlast w) (cond ((and m (eql b 'y)) '(i e s))
                           ((and m (eql b 'o)) `(,b e s))
                           (`(,b s)))))
 
> (ending '(h i s t o r y))
(H I S T O R I E S)
> (ending '(h e r o))
(H E R O E S)
> (ending '(w a r))
(W A R S)

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

В этом коде определена функция ending, которая принимает английское слово w в качестве входного значения. Сначала определяется значение переменной z, которая является результатом применения функции last к переменной w, а затем результат используется для определения значений переменных a и b. Переменная m определяется как результат применения функции not к значению переменной a, а затем проверяется значение переменной b. Если b равно 'y, то переменная m устанавливается в true, и результатом выполнения функции является (i e s). Если b равно 'o', то результат функции зависит от значения переменной m. Если m равно true, то результат функции — (os), иначе результат — (o s). Если b не равно 'y' или 'o', то результат функции — (b s). Вот список номеров, названий и значений переменных в порядке их появления в коде:

  1. w — английское слово, которое передается в функцию в качестве входного значения.
  2. z — результат применения функции last к переменной w.
  3. a — первый элемент значения переменной z.
  4. b — второй элемент значения переменной z.
  5. m — результат применения функции not к значению переменной a.
  6. n — результат применения функции butlast к переменной w.
  7. s — строка, которая добавляется к переменной n в зависимости от значения переменной m и b.

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


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

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

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