Comparaciones en WebAssembly
Las pruebas devuelven un i32: uno para verdadero, cero para falso.
(module
;; Comparisons return i32: one for true, zero for false. The _s and
;; _u suffixes say how to read the sign bit.
(func (export "is_freezing") (param $temp i32) (result i32)
(i32.le_s (local.get $temp) (i32.const 0)))
(func (export "in_range") (param $n i32) (param $lo i32) (param $hi i32)
(result i32)
(i32.and
(i32.ge_s (local.get $n) (local.get $lo))
(i32.le_s (local.get $n) (local.get $hi))))
;; eqz is the one-operand shortcut for "equals zero".
(func (export "is_empty") (param $count i32) (result i32)
(i32.eqz (local.get $count))))
Cómo funciona
i32.le_scompara con signo; el resultado es solo un entero.i32.andcombina dos pruebas en un chequeo de rango.i32.eqzes el atajo para comparar contra cero.
Palabras clave y builtins usados aquí
exportfunci32moduleparamresult
El intento, en números
- Líneas
- 15
- Caracteres a escribir
- 550
- Tokens
- 113
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 104 segundos.
Paso 2 de 3 en Números; paso 5 de 28 en Fundamentos del lenguaje.