typestar

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

  1. i32.le_s compara con signo; el resultado es solo un entero.
  2. i32.and combina dos pruebas en un chequeo de rango.
  3. i32.eqz es el atajo para comparar contra cero.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 2 de 3 en Números; paso 5 de 28 en Fundamentos del lenguaje.

← Anterior Siguiente →