Funciones paramétricas en Mojo
Los corchetes toman parámetros de compilación; los paréntesis, argumentos de ejecución.
def scaled[factor: Int](value: Int) -> Int:
return value * factor
def repeated[times: Int](text: String) -> String:
var out = String()
for _ in range(times):
out += text
return out
def main():
print(scaled[3](7), scaled[10](7))
print(repeated[3]("ha"))
Cómo funciona
scaled[factor: Int]hornea el multiplicador en cada especialización.scaled[3](7)yscaled[10](7)compilan a dos funciones distintas.repeated[times]muestra un parámetro manejando el tope de un bucle.
Palabras clave y builtins usados aquí
IntStringdefforprintrangereturnvar
El intento, en números
- Líneas
- 14
- Caracteres a escribir
- 256
- Tokens
- 79
- Ritmo de tres estrellas
- 70 tpm
Al ritmo de tres estrellas de 70 tokens por minuto, este intento toma unos 68 segundos.
Paso 2 de 5 en Mojo en tiempo de compilación; paso 2 de 22 en Parámetros y SIMD.