def digits.go
import lawful-fields@0.1.1.0/fields.bend as Fieldsimport 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)))