uqbar-project / wollok

Wollok Programming Language
GNU General Public License v3.0
60 stars 16 forks source link

0 no entiende el mensaje negate() #1607

Open npasserini opened 5 years ago

npasserini commented 5 years ago

Estudiantes intentan usar los números como booleanos y les da un error

wollok.lang.MessageNotUnderstoodException: 0 no entiende el mensaje negate()

method cuantoQuiereVolar() {
        var quierevolar = energia / 5
        if (energia >= 300 && energia <= 400) quierevolar += 10 
        if (!(energia % 20)) quierevolar += 15
        return quierevolar
    }

¿Ideas para mejorar esto?

lspigariol commented 5 years ago

tal vez, el estudiante sabe que el ! es la negacion y se aplica sobre booleanos, pero piensa que % significa "es divisible por" y retorna bool.

Seria localizable más si el mensajes de error dijera "0 no entiende !"

El lun., 18 mar. 2019 a las 15:36, Nico Passerini (notifications@github.com) escribió:

Estudiantes intentan usar los números como booleanos y les da un error

wollok.lang.MessageNotUnderstoodException: 0 no entiende el mensaje negate()

method cuantoQuiereVolar() {

    var quierevolar = energia / 5

    if (energia >= 300 && energia <= 400) quierevolar += 10

    if (!(energia % 20)) quierevolar += 15

    return quierevolar

}

¿Ideas para mejora resto?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/uqbar-project/wollok/issues/1607, or mute the thread https://github.com/notifications/unsubscribe-auth/ALMbm7VyADUxA5DSRKNtzvDQTtSV58Uuks5vX9yZgaJpZM4b6f64 .

isaiaslafon commented 5 years ago

tal vez, el estudiante sabe que el ! es la negacion y se aplica sobre booleanos, pero piensa que % significa "es divisible por" y retorna bool. Seria localizable más si el mensajes de error dijera "0 no entiende !" El lun., 18 mar. 2019 a las 15:36, Nico Passerini (notifications@github.com) escribió: Estudiantes intentan usar los números como booleanos y les da un error wollok.lang.MessageNotUnderstoodException: 0 no entiende el mensaje negate() method cuantoQuiereVolar() { var quierevolar = energia / 5 if (energia >= 300 && energia <= 400) quierevolar += 10 if (!(energia % 20)) quierevolar += 15 return quierevolar } ¿Ideas para mejora resto? — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub <#1607>, or mute the thread https://github.com/notifications/unsubscribe-auth/ALMbm7VyADUxA5DSRKNtzvDQTtSV58Uuks5vX9yZgaJpZM4b6f64 .

Concuerdo, el modulo devuelve un resto de tipo numérico, no un booleano, deberían poner: !(energia % 20 == 0) o (energia % 20 <> 0) o un objeto divideA(dividendo, divisor) y devuelve un booleano.

Podría decir que 0 (y cualquier número), no es de tipo booleano, pero debe ser complicad hacer este tipo de respuesta.

asanzo commented 5 years ago

Si haces assert.that(42) da el mismo error