Clojure map - Lisp

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

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

Есть ли map, который бы применял переданную функцию ко всем значениям из PersistentArrayMap'а т.е. я хочу что-то в духе
Листинг программы
  1. (map inc {"x" 7 "y" 8}) ; ==> ({"x" 8 "y" 9})

Решение задачи: «Clojure map»

textual
Листинг программы
  1. (defun f (lst)
  2.   (mapcar (lambda (x) (if (numberp x) (+ x 1) x)) lst))
  3.  
  4. ==> f
  5.  
  6. (f '("x" 7 "y" 8))
  7.  
  8. ==> ("x" 8 "y" 9)
  9.  
  10. ;; Если же нужно задавать действие над числами, то вот:
  11.  
  12. (defun ff (lst f)
  13.   (mapcar (lambda (x) (if (numberp x) (funcall f x) x)) lst))
  14.  
  15. ==> ff
  16.  
  17. (ff '("x" 7 "y" 8) (lambda (x) (* x x)))
  18.  
  19. ==> ("x" 49 "y" 64)

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


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

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

15   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут