Estoy tratando de completar el segundo ejercicio el día 2 de IO en el libro Siete idiomas en siete días. En ella, tu preguntó: “¿Cómo cambiaría/a devolver 0 si el denominador es cero?” He determinado que puedo agregar un método a utilizar Número:¿Cómo se reemplazan los operadores existentes sin invocarlos en Io?
Number new_div := method(i, if(i != 0, self/i, 0))
lo que no estoy seguro de cómo es para reemplazar el "/" en la tabla del operador. He intentado:
Number/:= Number new_div
Number/:= self new_div
Pero consigo una excepción a la vez, ya que está tratando de invocar “/”. ¿Cómo puedo manejar el Número/para que pueda almacenar una referencia al método anterior y luego redefinirlo para mis propios fines? ¿Me estoy equivocando?
Estoy tratando de resolver el mismo problema. Hago "Number /: = method (...)". Y estoy atrapado con el mismo bucle infinito que jer señaló. No puedo encontrar una manera de preservar la implementación original de/y llamarlo. –
@Eric Hogue: No publiqué mi respuesta porque * jer * ¡simplemente me gané! Lo publiqué ahora porque muestra cómo preservar la división original y evitar el ciclo de recursión. – draegtun