Clojure map - Lisp

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

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

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

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

textual
Листинг программы
(defun f (lst)
  (mapcar (lambda (x) (if (numberp x) (+ x 1) x)) lst))
 
==> f
 
(f '("x" 7 "y" 8))
 
==> ("x" 8 "y" 9)
 
;; Если же нужно задавать действие над числами, то вот:
 
(defun ff (lst f)
  (mapcar (lambda (x) (if (numberp x) (funcall f x) x)) lst))
 
==> ff
 
(ff '("x" 7 "y" 8) (lambda (x) (* x x)))
 
==> ("x" 49 "y" 64)

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


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

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

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