typestar

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

  1. scaled[factor: Int] hornea el multiplicador en cada especialización.
  2. scaled[3](7) y scaled[10](7) compilan a dos funciones distintas.
  3. repeated[times] muestra un parámetro manejando el tope de un bucle.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 2 de 5 en Mojo en tiempo de compilación; paso 2 de 22 en Parámetros y SIMD.

← Anterior Siguiente →