Напишите, пожалуйста, функцию в Homelisp, которая проверяет принадлежность элемента к списку
Формулировка задачи:
Напишите, пожалуйста, функцию в Homelisp, которая проверяет принадлежность элемента к списку. Но так, что бы список и элемент, который проверяется на принадлежность к этому списку задавался через диалоговые окна. Ну и результат в ввиде да/нет,...
Вот был вариант реализации без форм самого алгоритма у А вот сам вариант работы с диал. окнами, не могу дотямкать как это объеденить в рабочее что-то, а то я пока что нуб:
Catstail
:((lambda (lst a f) (cond ((null lst) nil) ((equal a (car lst)) t) (t (funcall f (cdr lst) a f)))) '(a b (c d) e f) 'e '(lambda (lst a f) (cond ((null lst) nil) ((equal a (car lst)) t) (t (funcall f (cdr lst) a f)))))
(defun task () (input (strCat "(" (ask "Введите фразу") ")"))) ==> task (task) ==> (Хорошо ходить конем, власть держать над полным залом)
Решение задачи: «Напишите, пожалуйста, функцию в Homelisp, которая проверяет принадлежность элемента к списку»
textual
Листинг программы
(defun isInList (a lst) (if lst (if (eq a (car lst)) t (isInList a (cdr lst))) nil)) ==> isInList (isInList 's '(a s d f)) ==> T (isInList 'q '(a s d f)) ==> NIL (defun task nil (let ((a (input (ask "Введите атом"))) (lst (input (ask "Введите список")))) (if (isInList a lst) (say (strCat "Атом " (output a) " входит в список " (output lst))) (say (strCat "Атом " (output a) " НЕ входит в список " (output lst))))))
Объяснение кода листинга программы
В этом коде написана функция проверки принадлежности элемента к списку.
- В функции
isInList
первым аргументом является элемент, который нужно проверить на принадлежность к списку, вторым — сам список. - Если список не пустой, то выполняется проверка: если первый элемент списка равен проверяемому элементу, то возвращается
t
(истина), то есть выводится сообщение о том, что элемент принадлежит списку. - В противном случае функция вызывает саму себя, но уже без первого элемента списка.
- Если список пустой, то возвращается
nil
(ложь), то есть выводится сообщение о том, что элемент не принадлежит списку. - В функции
task
сначала выполняется запрос на ввод элемента и списка, а затем вызывается функцияisInList
с введёнными данными. - В зависимости от результата проверки выводится соответствующее сообщение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д