Tengo curiosidad por saber por qué la coma <,> es un atajo para and
y no andalso
en las pruebas de guardia.Cuándo preferir `y` sobre` andalso` en las pruebas de guardia
Como me llamaría un "nativo de C", no veo ninguna deficiencia en la evaluación booleana de cortocircuitos.
Recopilé código de prueba usando la bandera to_core
para ver qué código realmente se genera. Usando la coma, veo el valor de la mano izquierda y el valor de la derecha y el valor se evalúan y se hacen las dos. Con andalso
, tiene un bloque de mayúsculas y minúsculas dentro del bloque de mayúsculas y minúsculas sin llamar al erlang:and/2
.
No realicé pruebas de referencia, pero me atrevo a decir que la variante andalso
es la más rápida.