Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lisp
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
Kot_Enot
0 / 0 / 0
Регистрация: 03.12.2011
Сообщений: 33
1

Функция Все-равны, которая возвращает T, если первый элемент списка равен второму

01.03.2012, 21:20. Просмотров 1084. Ответов 5
Метки нет (Все метки)

как создать функцию Все-равны, которая возвращает T, если первый элемент списка равен второму, второй третьему и т.д. При первом же неравенстве элементов возвращается NIL
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2012, 21:20
Ответы с готовыми решениями:

Функция которая возвращает первый, второй, предпоследний и последний элемент списка, в виде четырехэлементного списка
Был бы признателен за помощь. И если не затруднит, то с комментариями. ...

Написать функцию, которая возвращает первый, второй, предпоследний и последний элементы этого списка
Дан список произвольной длины. Написать функцию, которая возвращает первый,...

Если 1-й элемент списка равен 1, то заменить его на букву А
Если 1-й элемент списка равен 1, то заменить его на букву А.

Продублировать каждый 3 элемент списка ,если тот равен некому Х
Здравствуйте. Помогите с решением такой задачки . Спасибо .

PROG функция, которая возвращает в качестве значения длину списка
Помогите разобраться в программе. Нужно преподу объяснить как она работает, а я...

5
bokunopico
306 / 261 / 5
Регистрация: 03.04.2011
Сообщений: 456
01.03.2012, 21:49 2
Lisp
1
2
3
4
(defun f (lst)
  (if (cdr lst)
      (and (eql (car lst) (cadr lst)) (f (cdr lst)))
      t))
1
Nameless One
Эксперт С++
5786 / 3435 / 351
Регистрация: 08.02.2010
Сообщений: 7,448
02.03.2012, 04:47 3
Цитата Сообщение от Kot_Enot Посмотреть сообщение
как создать функцию Все-равны, которая возвращает T, если первый элемент списка равен второму, второй третьему и т.д. При первом же неравенстве элементов возвращается NIL
если равенство у нас транзитивное, то все просто — нам нужно определить, равны ли все элементы списка:
Lisp
1
2
(defun fun (list)
  (apply #'= list))
0
Hretgir
439 / 79 / 2
Регистрация: 25.01.2012
Сообщений: 3,091
Записей в блоге: 23
03.03.2012, 09:15 4
Добавлено через 12 минут
bokunopico,
Nameless One,
извините, а вы могли бы прокомментировать? у bokunopico всё ясно, но к созданию цикла для решения одной и той же задачи, как правило можно подойти с двух позиций, как минимум. или я ошибаюсь? давно не кодил, сорри, если что, очень давно.
0
Nameless One
Эксперт С++
5786 / 3435 / 351
Регистрация: 08.02.2010
Сообщений: 7,448
03.03.2012, 09:27 5
Hretgir, что именно? Мой код? Дано условие
Цитата Сообщение от Kot_Enot Посмотреть сообщение
возвращает T, если первый элемент списка равен второму, второй третьему и т.д.
т.е. http://www.cyberforum.ru/cgi-bin/latex.cgi?(x_1 = x_2) \wedge (x_2 = x_3) \wedge \ldots \wedge (x_{n-1} = x_n), где http://www.cyberforum.ru/cgi-bin/latex.cgi?x_i \, (i = \overline{1,n}) — элементы исходного списка http://www.cyberforum.ru/cgi-bin/latex.cgi?L.
Из чего следует (если допустить, что равенство транзитивно), что любые два элемента списка равны, т.е. http://www.cyberforum.ru/cgi-bin/latex.cgi?x_1 = x_2 = \ldots = x_n, что на Лиспе соответствует записи:
Lisp
1
(= x_1 x_2 x_3 x_4)
т.к. функция «=» принимает переменное число аргументов и проверяет, равны ли они одинаковому значению. Функция «apply» же просто применяет функцию, переданную первым аргументом, к списку, как если бы эта функция была вызвана с аргументами, составляющими список.
0
Hretgir
439 / 79 / 2
Регистрация: 25.01.2012
Сообщений: 3,091
Записей в блоге: 23
03.03.2012, 09:47 6
спасибо, хотелось бы детально, по каждому слову, не просто вникать по книгам 70-ых годов, тем более большей части функций, встроенных, тогда и не было наверное. можно посмотреть в набор функций home lisp, но не факт что это там будет, да и не факт что всякий читающий ваш ответ будет иметь информацию.

Добавлено через 11 минут
придумал самую первую прогу, которую нужно накодить-прогу пишущую комментарии О_о, не знаю насколько это реально, и работоспособно, но нужно, и можно делать по ходу освоения языка. хотя у задачи науверное есть минимальный стартовый уровень знания языка, при владении которого она выполнима. мм. скорее всего его нужно знать весь. это практически ещё один компилятор, только на человеческий язык. задача для настоящих профи
0
03.03.2012, 09:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.03.2012, 09:47

Функция, которая находит первый атом, не являющийся массивом, списка с подсписками
Здравствуйте, помогите с задачей... Написать функцию, которая находит первый...

Написать функцию F6(a1 a2), которая возвращает Т, если в списке а1 хотя бы дважды встречается элемент а2
1. Написать функцию F6(a1 a2 ), которая возвращает Т, если в списке а1 хотя бы...

Определить функцию, которая возвращает последний элемент первого списка, входящий также и во второй список
Даны два списка. Определить функцию, которая возвращает последний элемент...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru