every?
devuelve verdadero o falso, por lo que se obtiene un signo de interrogación. some
no devuelve un booleano, devuelve "el primer valor lógicamente verdadero devuelto por pred", y devuelve nil
en caso contrario.
Aquí está el ejemplo cojo me ocurrió:
user=> (some #(if (= 0 %) 1 0) [1 3 5 0 9])
0
El primer elemento de la colección se pasa en el predicado, el predicado evalúa a 0, que es lógicamente cierto modo some
devuelve 0. se puede ver some
no está devolviendo verdadero o falso.
Entonces every?
obtiene un signo de interrogación porque devuelve verdadero o falso. some
devuelve el valor devuelto por pred
o nil, por lo que no se obtiene un signo de interrogación.
Gracias. Intenté uno más y lo dejo en claro. '(algunos # {2 3 4 5} [2 3 4 5 6])' da o/p '2'. Esperaba que el 'algunos' devolviera booleanos. Arrgh. De todos modos, gracias. – nishnet2002
@nestle: ese es un mejor ejemplo –
Además, si desea devolver un booleano usando alguno, puede envolverlo en la función booleana: (booleano (algunos # {2 3 4 5} [2 3 4 5 6])) => true –