Проверка числа на значение в cond - Lisp

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

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

Ребят, такая проблема. При сравнения числа с 0, происходит ошибка "Error(s), warning(s): *** - COND: variable > has no value"
(print (cond (> 0 5) (list  (/ 10 5)(rem 10 5))(T "2")))
. В чём проблема? Цифры тут на абум взяты. Самое задание "Написать функцию, которая по двум числам формирует список из двух элементов. Первый элемент - это результат целочисленного деления первого числа на второе, второй - остаток. Деление выполнять только, если делитель больше 0". Вот до этого я дошёл
(defun task2-2 (x1 x2) (cond (= 0 x2) (list  (/ x1 x2)(rem x1 x2))(T "2")))
(print (task2-2 '(5) '(1)))
.

Решение задачи: «Проверка числа на значение в cond»

textual
Листинг программы
(cond ((> 0 5) (list (/ 10 5) (rem 10 5))) (t ...))

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

В представленном коде происходит проверка числа на значение в условной конструкции cond. Условная конструкция cond возвращает результат выполнения одного из условий, представленных в списке. В данном случае, условие (> 0 5) проверяет, является ли первое число (0) больше второго числа (5). Так как это условие не выполняется, программа переходит к следующему условию в списке. Второе условие (t ...)) является универсальным условием и выполняется, если предыдущее условие не выполнилось. В данном случае, внутри этого условия не указано никаких действий, поэтому программа просто возвращает ... (три точки). Таким образом, результат выполнения данного кода будет зависеть от значений и типа данных переменных 0 и 5. Если первое число (0) будет больше второго числа (5), то программа вернет список с одним элементом (/ 10 5). Если первое число (0) будет меньше или равно второму числу (5), то программа вернет три точки (...).

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


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

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

10   голосов , оценка 4.2 из 5