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

Определить функционал Аналогичный предикату MAPLIST для одноуровнего списка. (Используйте применяющий функционал FUNCALL)

21.03.2014, 11:24. Показов 2276. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
определить функционал Аналогичный предикату MAPLIST для одноуровнего списка. (Используйте применяющий функционал FUNCALL).
Заранее благодарю
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.03.2014, 11:24
Ответы с готовыми решениями:

Опpеделите функционал, аналогичный предикату MAPLIST для одноуровнего списка
Опpеделите функционал, аналогичный предикату MAPLIST для одноуровнего списка. (Используйте...

lisp. определить функционал аналогичный предикату MAPLIST.
Опpеделите на языке ЛИСП функционал, аналогичный встроенному предикату MAPLIST для одноуровнего...

Создать функционал\макрос аналогичный функции FUNCALL
Здравствуйте! Помогите пожалуйста в решении задачи: Необходимо создать функционал\макрос...

функционал (MAPLIST fn список)
Нужно решить задачу. Определите функционал (MAPLIST fn список) для одного списочного аргумента.

2
Модератор
Эксперт функциональных языков программированияЭксперт Python
35363 / 19962 / 4181
Регистрация: 12.02.2012
Сообщений: 33,127
Записей в блоге: 13
21.03.2014, 11:58 2
Предикат - это функция, возвращающая логическое значение. maplist предикатом не является.
Funcall здесь не слишком удобен. Лучше Apply:

Lisp
1
2
3
4
5
6
7
8
9
(defun my-maplist (lst f)
  (cond ((null lst) nil)
        (t (cons (apply f lst) (my-maplist (cdr lst) f)))))
 
==> my-maplist
 
(my-maplist '(1 2 3 4 5 6) '*)
 
==> (720 720 360 120 30 6)
но если очень нужен Funcall, то так:

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
(defun my-maplist (lst f)
  (cond ((null lst) nil)
        (t (cons (apply 'funcall (cons f lst)) (my-maplist (cdr lst) f)))))
 
==> my-maplist
 
(my-maplist '(1 2 3 4 5 6) '*)
 
==> (720 720 360 120 30 6)
 
(my-maplist '(1 2 3 4 5 6) 'list)
 
==> ((1 2 3 4 5 6) (2 3 4 5 6) (3 4 5 6) (4 5 6) (5 6) (6))
3
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
22.03.2014, 19:21 3
Lisp
1
2
3
4
5
6
;;racket
(define (maplist proc lst)
  (if (null? lst) '()
      (cons (proc lst) (maplist proc (cdr lst)))))
 
(maplist (lambda (x) (foldr * 1 x)) '(1 2 3 4 5))
3
22.03.2014, 19:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.03.2014, 19:21
Помогаю со студенческими работами здесь

Определите FUNCALL через функционал APPLY
Определите FUNCALL через функционал APPLY. Как это сделать?

Как сделать задачу применив функционал maplist или mapcar
Напишите функцию с использованием функционалов. При необходимости используйте локальные или...

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

Написать функционал, применяющий первую функцию первого аргумента к первым элементам списков, вторую - ко вторым и тд
Написать функционал (МНОЖ (f1 f2..fn) s1 s2..sk), применяющий функцию f1 к первым элементам списков...


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

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

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