0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 15
1

Описать на языке Лисп функцию f(x y z) от трёх аргументов

15.09.2016, 18:27. Показов 1684. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Описать на языке Лисп функцию f(x y z) от трёх аргументов, которая формирует из своих аргументов список. Далее нужно
проверить, является ли первый элемент подсписком, и найти его длину. Если первый элемент  подсписок, то вернуть исходный список при условии, что длина подсписка меньше либо равна 2, иначе вернуть подсписок без последнего элемента. Иначе вернуть исходный список без первого элемента.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.09.2016, 18:27
Ответы с готовыми решениями:

Описать на языке Лисп функцию f(x y z)
Описать на языке Лисп функцию f(x y z) от трёх аргументов, которая формирует из своих аргументов...

Написать языке Лисп функцию, которая заменяет все отрицательные элементы списка значением 0
Написать языке Лисп функцию, которая заменяет все отрицательные элементы списка значением 0.

Описать двуместную функцию от целочисленных аргументов
Описать двуместную функцию от целочисленных аргументов. Если аргументы меньше нуля, функция...

Описать функцию max3, которая возвращает наибольший из трех своих аргументов
Описать функцию max3, которая возвращает наибольший из трех своих аргументов.

2
4687 / 4383 / 379
Регистрация: 12.05.2012
Сообщений: 3,089
15.09.2016, 19:28 2
Лучший ответ Сообщение было отмечено vanillathunder как решение

Решение

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
(defun process (a b c)
  (if (listp a)
      (if (<= (length a) 2)
          (list a b c)
          (butlast a))
      (list b c)))
 
> (process 1 2 3)
(2 3)
> (process '(1 1) 2 3)
((1 1) 2 3)
> (process '(1) 2 3)
((1) 2 3)
> (process '(a b c) 2 3)
(A B)
2
4687 / 4383 / 379
Регистрация: 12.05.2012
Сообщений: 3,089
02.10.2016, 10:52 3
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
(defun process (a b c)
  (if (listp a)
      (if (not (cddr a))
      (list a b c)
      (butlast a))
      (list b c)))
 
> (process 1 2 3)
(2 3)
> (process '(1 1) 2 3)
((1 1) 2 3)
> (process '(1) 2 3)
((1) 2 3)
> (process '(a b c) 2 3)
(A B)
Добавлено через 16 секунд
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
(defun process (a b c)
  (if (listp a)
      (if (cddr a)
      (butlast a)
      (list a b c))
      (list b c)))
 
> (process 1 2 3)
(2 3)
> (process '(1 1) 2 3)
((1 1) 2 3)
> (process '(1) 2 3)
((1) 2 3)
> (process '(a b c) 2 3)
(A B)
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.10.2016, 10:52
Помогаю со студенческими работами здесь

Описать и протестировать функцию с переменным количеством аргументов произвольного типа, возвращающую максимум
Помогите решить задачу на языке JavaScript. 1)Описать и протестировать функцию с переменным...

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

Описать функцию PowerA234(A) На языке си . Builder
Буду очень признательна если поможете с данной задачей:-) На языке Си Описать функцию...

ветвление на языке Лисп
Помогите, пожалуйста, решить задачу на языке ЛИСП. Заданы три числа a, b, c. Определить являются...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru