def digits.go

lawful-fields@0.1.1.0 · fields.bend:74

import lawful-fields@0.1.1.0/fields.bend as Fields
import Base
import lawful-bytes@0.1.1.0/defs.bend as D
import lawful-bytes@0.1.1.0/bytes.bend as B

74# r holds byte j; ok says every byte so far was a digit.
75def digits.go(n: Nat, r: D.Bytes & U32, +j: U32, ok: Bool) -> D.Bytes & Bool:
76  match n:
77    case 0n:
78      digits.out(ok, r)
79    case 1n+m:
80      (b, +x) = r
81      digits.go(m, B.at(b, (j + 1 : U32)), (j + 1 : U32), ok && (U32.is_ge(x, 48) && U32.is_le(x, 57)))

Uses (12)

Used by (3)