Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 15.02.2011
Сообщений: 24
1

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

19.10.2012, 13:20. Показов 1236. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
описать функцию, которая находила бы сумму всех числовых элементов в списке. Список может содержать подсписки произвольной глубины.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.10.2012, 13:20
Ответы с готовыми решениями:

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

Описать функцию, которая находила бы сумму всех числовых элементов списка
Здравствуйте, нужна помощь!! Нужно написать функцию которая бы находило бы сумму элементов...

Описать функцию, которая создавала бы список только из числовых элементов списка–аргумента.
Описать функцию, которая создавала бы список только из числовых элементов списка–аргумента. Все...

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

4
Модератор
Эксперт функциональных языков программированияЭксперт Python
36606 / 20334 / 4221
Регистрация: 12.02.2012
Сообщений: 33,653
Записей в блоге: 13
05.03.2015, 18:17 2
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
(defun task (lst)
 (cond ((null lst) 0)
       ((numberp (car lst)) (+ (car lst) (task (cdr lst))))
       ((listp (car lst)) (+ (task (car lst)) (task (cdr lst))))
       (t (task (cdr lst))))) 
 
==> task
 
(task '(1 2 (((3))) (4 5 (((6 7)))) 8))
 
==> 36
 
(task '(1 2 (((3))) (4 a ((b)) 5 (((6 7)))) 8))
 
==> 36
2
2304 / 1063 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
05.03.2015, 20:51 3
Lisp
1
2
3
4
5
6
7
8
9
10
11
(defun f (xs)
  (reduce (lambda (a x)
            (+ a (typecase x
                   (number
                    x)
                   (list
                    (f x))
                   (t
                    0))))
          xs
          :initial-value 0))
2
4699 / 4394 / 380
Регистрация: 12.05.2012
Сообщений: 3,096
05.03.2015, 21:29 4
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
(defun sum-numbers (w)
  (reduce
   #'+ w
   :key
   #'(lambda (a)
       (if (numberp a)
           a
           (if (listp a)
               (sum-numbers a)
               0)))))
 
> (sum-numbers '(1 2 (((3))) (4 a ((b)) 5 (((6 7)))) 8))
36
Добавлено через 13 минут
Lisp
1
2
3
4
5
6
7
(defun sum-numbers (w)
  (loop for a in w
        if (numberp a) sum a
        else if (listp a) sum (sum-numbers a)))
 
> (sum-numbers '(1 2 (((3))) (4 a ((b)) 5 (((6 7)))) 8))
36
3
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
06.03.2015, 11:20 5
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
;; racket-lang.org
(define (foo lst)
  (apply + (filter number? (flatten lst))))
 
;; racket way
(define (bar lst)
  (for/fold ([ sum 0])
            ([i (in-list (flatten lst))])
    (match i
      [(? number? x) (+ sum x)]
      [_ sum])))
 
 
(let ((lst '(1 2 (((3))) (4 a ((b)) 5 (((6 7)))) 8)))
  (map (lambda (f) (f lst)) `(,foo ,bar)))
;'(36 36)
1
06.03.2015, 11:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.03.2015, 11:20
Помогаю со студенческими работами здесь

Описать функцию, которая по атому и списку выдает множество всех атомов в списке
Опишите функцию послед(x, y, n), которая по атому x и списку y выдает множество всех атомов в y,...

Написать функцию, которая вычисляет количество всех атомов в списке(кроме NIL) с учетом всех подсписков всех уровней вложенности
Написать функцию, которая вычисляет количество всех атомов в списке(кроме NIL) с учетом всех...

Определить функцию, которая которая производит круговую перестановку элементов в списке-аргументе вправо
Определить функцию, которая которая производит круговую перестановку элементов в списке-аргументе...

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru