tutorial traduccion ropa online español descargar racket

ropa - racket traduccion



¿Por qué falta el "si" de un solo brazo en la raqueta? (1)

En el esquema estándar es posible escribir

(if (> x 2) (set! x (- x 1)))

pero esto no es posible en Racket - Racket''s if siempre requiere dos brazos. ¿Por qué?


Razón fundamental

La variante de un solo brazo de if se eliminó de Racket para evitar errores.

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

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

Olvidar el segundo brazo expr-on-false no llevaría a un error de sintaxis, sino a un error de tiempo de ejecución (la expresión devolvería #<void> ).

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

(when test expr-on-true)

Además de prevenir errores accidentales, el nuevo formulario indica claramente a un lector de código que el código se basa en efectos secundarios.

Código de transferencia del esquema estándar a la raqueta

Si intenta ejecutar el código Scheme en Racket y ve el mensaje de error

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

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

Simplemente reescriba:

(if test expr1) to (when test expr1)

y

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