Algoritmos paramétricos
Um algoritmo, várias versões especializadas.
Algoritmos paramétricos é uma aula grátis de Mojo Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Mojo Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Mojo Academy inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
One Algorithm, Many Shapes
A parametric algorithm describes the logic once, then lets compile-time parameters mint a specialized version for each size, type, or width you need. ⚙️
Parameters Carry the Variation
Anything that changes the code's structure, like a vector width or element type, becomes a parameter instead of a runtime argument.
fn sum[width: Int](data: SIMD[DType.float32, width]) -> Float32:
return data.reduce_add()Type Parameters Generalize
Use a type parameter so the same routine handles Int32, Float64, or any numeric type without you rewriting the body.
fn scale[T: DType, w: Int](v: SIMD[T, w], s: Scalar[T]) -> SIMD[T, w]:
return v * sThe Compiler Specializes Each Use
For every distinct set of parameter values, Mojo generates a fresh specialized function, each optimized exactly for that combination.
No Runtime Cost for Parameters
Because parameters are fixed at compile time, the generated code pays zero runtime cost to read them, unlike normal arguments.
Constraining Type Parameters
Pair a type parameter with a trait so the body can rely on the methods every conforming type promises to provide.
fn total[T: Copyable](items: List[T]) -> Int:
return len(items)Parameters Can Combine
Mix several parameters at once: a type for the data and an Int for the size or width, all resolved together before the program runs.
fn fill[T: DType, n: Int](value: Scalar[T]) -> SIMD[T, n]:
return SIMD[T, n](value)Inference Saves Typing
Mojo can often infer a parameter from the arguments you pass, so you fill in fewer brackets and the compiler completes the rest.
One Source of Truth
You keep a single readable definition while the compiler quietly emits a fast tailored build for each parameter combination behind the scenes.
Where It Shines
Parametric algorithms power Mojo's fast numeric kernels: one matmul or reduction definition, many specialized versions tuned per type and width. 🚀
Readable Yet Generic
The big win is staying readable: your logic reads like normal code, while parameters quietly handle every type and size variation for you.
Quick Check
Think about why parametric algorithms stay fast.
Recap
A parametric algorithm is written once but specialized many times: parameters carry the variation, and each build is tuned with no runtime cost. 🎯
Perguntas Frequentes
A aula “Algoritmos paramétricos” é grátis?
Sim — o texto completo de “Algoritmos paramétricos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Mojo Academy, atualize para CoddyKit PRO. O curso de Mojo Academy inclui 4 aulas no total.
O que vou aprender em “Algoritmos paramétricos”?
Um algoritmo, várias versões especializadas. Você pratica Mojo Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Mojo Academy?
Nenhuma experiência prévia é necessária. Mojo Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Algoritmos paramétricos”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Mojo Academy?
Sim. Cada aula de Mojo Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Algoritmos paramétricos
- Desenrolamento de laços em tempo de compilação
- Compilação condicional
- Restrições e verificações estáticas