Otra pregunta mas =$

13 views
Skip to first unread message

José Luis Romero

unread,
Jul 8, 2010, 8:24:47 PM7/8/10
to clojure-hispano
Buenas noches ... me preguntaba cual es la manera mas eficiente de
realizar iteraciones sobre cadenas de caracteres y manipularlas en
clojure (en realidad cualquier manera me sirve)

Disculpen lo odiosa de la pregunta pero no doy pie con bolas con estas
tareas simples

iTony

unread,
Jul 8, 2010, 8:55:06 PM7/8/10
to clojure-hispano
las cadenas implementan la sequencia, asi que puedes usar map para
aplicar una funcion a cada elmento o puedes usarla en un for loop algo
asi:
user=> (map #(str "my_" %) "hello")
("my_h" "my_e" "my_l" "my_l" "my_o")

user=> (for [x "hello"] (str "my_" x))
("my_h" "my_e" "my_l" "my_l" "my_o")

José Luis Romero

unread,
Jul 8, 2010, 9:30:34 PM7/8/10
to clojure-hispano
Seria algo como una compresion de lista cierto? el ejemplo que quiero
resolver es algo como que dado una cadena "hola" devolver una cadena
formada por los caracteres salteados de la lista... esto es dada la
cadena "hola" devolver "hl"... para esto necesito saber el indice de
cada caracter. De verdad se que es un poco necio preguntar por
ejemplos concretos, pero de ahi en mas agarro hilo

iTony

unread,
Jul 8, 2010, 10:36:56 PM7/8/10
to clojure-hispano
la forma (for) usa compresion de lista que no estoy muy familiarizado
pero aqui te va un ejemplo algo verboso porque ando de prisa y tambien
soy nuevo en clojure.
este ejemplo reduce la cadena a los pares nada mas.

(def s "hola")
(apply str (filter #(not (empty? %))
(map #(str (if (even? %2) %1 ""))
s
(range 0 (.length s)))))

José Luis Romero

unread,
Jul 8, 2010, 10:40:20 PM7/8/10
to clojure-hispano
Gracias Tony! Encontre esto en el canal #clojure

(apply str (take-nth 2 s))

Y bueno ahi vamos dandole carajazos!

iTony

unread,
Jul 9, 2010, 11:23:29 AM7/9/10
to clojure-hispano
duh *facepalm* como no se me ocurrio :P debo meterma mas al canal
Reply all
Reply to author
Forward
0 new messages