Посмотрите на Clojure. Приведенные вами типы примеров там сделаны лучше, чем где либо.
(def v1 [1 2 3]) ;; определение вектора v1
определим операцию ++, которой нет в языке как (def ++ (partial mapv inc))
[i j k] v1 ;; "деструктуризация" (без let) вектора v1 в виде i j k, т.е. {i,j,k}={1,2,3};
(++ [i j k]) ;;=> [2 3 4]. а тут применение ++ к i j k {i,j,k}++;
После Лиспов, в особенности Clojure, трудно найти более лаконичный и законченный дизайн языка, а также более совершенную работу с коллекциями.
После Лиспов, в особенности Clojure, трудно найти более лаконичный и законченный дизайн языка, а также более совершенную работу с коллекциями.