drop y select en WebAssembly
Tira un valor, o elige entre dos sin ramificar.
(module
;; drop throws the top of the stack away; select picks between two
;; values by a condition without any branching.
(func $noisy (result i32)
i32.const 99)
(func (export "ignore_result") (result i32)
(drop (call $noisy))
(i32.const 7))
(func (export "larger") (param $a i32) (param $b i32) (result i32)
(select
(local.get $a)
(local.get $b)
(i32.gt_s (local.get $a) (local.get $b)))))
Cómo funciona
dropdescarta el resultado no deseado de la función llamada.selecttoma dos valores y una condición y se queda con uno.- Ninguno ramifica: select evalúa ambos lados y luego elige.
Palabras clave y builtins usados aquí
calldropexportfunci32moduleparamresultselect
El intento, en números
- Líneas
- 15
- Caracteres a escribir
- 393
- Tokens
- 84
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 78 segundos.
Paso 3 de 3 en Locales y la pila; paso 9 de 28 en Fundamentos del lenguaje.