Quiero componer dos funciones y aplicarlas, por ejemplo:
user> ((comp inc dec) 3)
3
Funciona, incrementa y decrementa el 3, evalúa a 3
Ahora, si hago lo siguiente:
user> ((apply comp '(inc dec)) 3)
nil
¿no debería salir 3? ¿por qué evalúa a nil?
saludos
user> ((apply comp [dec inc]) 3)
3
mmmm
2010/2/14 Marcelo Morales <marcelomo...@gmail.com>:
--
Marcelo Morales
Cuando pasas '(inc dec) estás pasando una lista con dos símbolos cuando
pasas [inc dec] o (list inc dec) estás pasando una lista con dos funciones:
user> (= (list inc dec) '(inc dec))
false
user> (class '(inc dec))
clojure.lang.Persist:entList
user> (first '(inc dec))
Inc
user> (class (first '(inc dec)))
clojure.lang.Symbol
user> (class (list inc dec))
clojure.lang.PersistentList
user> (first (list inc dec))
#<core$inc__4497 clojure.core$inc__4497@500c954e>
user> (class (first (list inc dec)))
clojure.core$inc__4497
Eso es lo que hace que la primera evaluación falle, mira el siguiente
transcript:
user> ((apply comp ['inc 'dec]) 3)
nil
user> ((apply comp '(inc dec)) 3)
nil
user> ((apply comp [inc dec]) 3)
3
user> ((apply comp (list inc dec)) 3)
3
user> ((apply comp ['inc 'dec]) 3)
nil
Un saludo.
Super!, gracias
On Feb 15, 2010 3:17 AM, "Antonio Garrote" <antonio...@gmail.com> wrote:
Hola.
Cuando pasas '(inc dec) estás pasando una lista con dos símbolos cuando
pasas [inc dec] o (list inc dec) estás pasando una lista con dos funciones:
user> (= (list inc dec) '(inc dec))
false
user> (class '(inc dec))
clojure.lang.Persist:entList
user> (first '(inc dec))
Inc
user> (class (first '(inc dec)))
clojure.lang.Symbol
user> (class (list inc dec))
clojure.lang.PersistentList
user> (first (list inc dec))
#<core$inc__4497 clojure.core$inc__4497@500c954e>
user> (class (first (list inc dec)))
clojure.core$inc__4497
Eso es lo que hace que la primera evaluación falle, mira el siguiente
transcript:
user> ((apply comp ['inc 'dec]) 3)
nil
user> ((apply comp '(inc dec)) 3)
nil
user> ((apply comp [in...
3
user> ((apply comp (list inc dec)) 3)
3
Un saludo.
user> ((apply comp ['inc 'dec]) 3)
nil
On 2/15/10 2:56 AM, "Marcelo Morales" <marcelomorales.name@gmail.com> wrote:
> Corchetes arreglan...