tricu

An interpreted language for exploring Tree Calculus
Log | Files | Refs | README | LICENSE

zig-utf8.tri (793B)


      1 !import base as B
      2 !import native_math as N
      3 !import io_v2 as IO
      4 !export excessEncode
      5 !export excessDecode
      6 !export excessWrite
      7 !export excessDigest
      8 
      9 zeros 0 tail = tail
     10 zeros n tail = B.pair 0 (zeros (N.predecessor n) tail)
     11 diverge seed = diverge seed
     12 excessEncode seed = IO.io (IO.encodeUTF8 (zeros 1024 (B.pair (diverge seed) (diverge seed))))
     13 excessDecode seed = IO.io (IO.decodeUTF8 0 (zeros 4096 (B.pair (diverge seed) (diverge seed))))
     14 excessWrite path seed = IO.io <| IO.scope (owner : IO.require (IO.openWriter owner path) (writer :
     15   IO.writeSome writer (zeros 4096 (B.pair (diverge seed) (diverge seed)))))
     16 excessDigest seed = IO.io <| IO.scope (owner : IO.require (IO.openDigest owner "sha256") (digest :
     17   IO.updateDigest digest (zeros 4096 (B.pair (diverge seed) (diverge seed)))))