typestar

Operaciones con vectores en Clojure

Arma una ruta de ferry como vector y la lee por índice, por conteo y por rebanada.

;; a vector literal is written with square brackets
(def legs ["quarry" "ridge" "hollow" "ferry"])

;; conj adds to the end of a vector and hands back a new one
(def route (conj legs "depot"))

;; nth reads by position, and a vector is itself a function of its index
(println (nth route 0) "then" (route 1))
(println "legs:" (count route))

;; subvec takes a slice that shares the original storage
(println "middle:" (subvec route 1 3))

;; vectors compare by value, so an equal slice is equal
(println (= ["quarry" "ridge"] (subvec route 0 2)))

Cómo funciona

  1. (conj legs "depot") devuelve un vector nuevo con la parada agregada al final.
  2. (nth route 0) y (route 1) leen por posición, porque un vector es una función de su índice.
  3. (subvec route 1 3) toma una rebanada, y = muestra que los vectores se comparan por valor.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
15
Caracteres a escribir
545
Tokens
71
Ritmo de tres estrellas
75 tpm

Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 57 segundos.

Escribe este fragmento

Paso 1 de 3 en Colecciones; paso 4 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →