Обязательно проконсультируйтесь с Clojure CheatSheet для подобных вопросов.
Для чего-то такого простого, просто используйте mapv
(или map
) и функцию second
:
(def data [["2011-01-01" "2011" "01" "01"]
["1869-01-01" "1869" "01" "01"]
["1922-01-01" "1922" "01" "01"]
["1905-01-01" "1905" "01" "01"]])
(mapv second data) => ["2011" "1869" "1922" "1905"]
Я предпочитаю mapv
, поскольку он дает результат в виде вектора (не ленивый), который легче вырезать и вставить без нужных кавычек.
Если у вас есть более сложные потребности, вы можете sh просмотреть библиотеку tupelo.array
. Ваши данные уже представлены в виде двумерного массива Clojure (вектор векторов), поэтому вы можете просто использовать функцию col-get
:
(ns tst.demo.core
(:use tupelo.core tupelo.test)
(:require
[tupelo.array :as ta]))
(def data ...)
; Note zero-based indexing
(ta/col-get data 1) => ["2011" "1869" "1922" "1905"]
Библиотека включает в себя множество других функций для ввода / вывода , получить / установить значения, перевернуть массивы вверх / вниз или влево / вправо, вращение, добавление / удаление строк и столбцов и т. д. c. Существует также версия, которая работает с изменяемыми массивами (Java массивами собственных объектов) вместо неизменяемых структур данных Clojure.