2012-06-02 12 views

Respuesta

43

Fundamento

La variante de un solo brazo de if se eliminó de raqueta para evitar que los insectos.

En el código funcional uno siempre usa la variante de dos brazos de if.

(if test expr-on-true expr-on-false) 

olvido del segundo brazo expr-on-false no daría lugar a una sintaxis de errores, pero a un error de tiempo de ejecución (la expresión volvería #<void>).

Para evitar estos errores frecuentes en el código funcional, se decidió introducir el formulario when para la variante de un brazo de if.

(when test expr-on-true) 

Además de prevenir errores accidentales, la nueva forma indicaron claramente a un lector de código, el código que se basa en los efectos secundarios.

código de Portabilidad del esquema estándar para raqueta de

Si intenta ejecutar código de Scheme en la raqueta y ver el mensaje de error

if: bad syntax (must have an "else" expression) 

debe volver a escribir la expresión if a when o unless.

Simplemente vuelva a escribir:

(if test expr1) to (when test expr1) 

y

(if (not test) expr1) to (unless test expr1). 
Cuestiones relacionadas