; Jonathan Frech, 19th, 20th of March 2029 <| prelude.zpr (if true .t .f) |> t (if false .t .f) |> f (init ()) |> error:init:empty-list (init (' ._ ())) |> () (init (' .x (' .y .ys))) |> (' x (init (' y ys))) (tail' ()) |> () (tail' (' ._ .xs)) |> xs ; lazy in its second argument (index ._ ()) |> 0 (index () (' .x ._)) |> x (index (S .j) (' ._ .xs)) |> (index j xs) (isZero ()) |> true (isZero (S ._)) |> false 255 |> (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S ()))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (byte- ()) |> 255 (byte- (S .n)) |> n (byte+ .n) |> (if (n == 255) 0 (S n)) (parse ()) |> () (parse (' MNS .src)) |> (' DEC (parse src)) (parse (' PLS .src)) |> (' INC (parse src)) (parse (' LES .src)) |> (' LFT (parse src)) (parse (' GRT .src)) |> (' RGT (parse src)) (parse (' PER .src)) |> (' WRT (parse src)) (parse (' COM .src)) |> (' RED (parse src)) (parse (' BRK .src)) |> (' (LOP : (parse (takeBody src))) (parse (dropBody src))) (parse (' KRB .src)) |> error:parse:superfluous-closing-bracket (takeBody .src) |> (init (takeBody' 1 src)) (takeBody' () ._) |> () (takeBody' ._ ()) |> () (takeBody' (S .n) (' MNS .src)) |> (' MNS (takeBody' (S n) src)) (takeBody' (S .n) (' PLS .src)) |> (' PLS (takeBody' (S n) src)) (takeBody' (S .n) (' LES .src)) |> (' LES (takeBody' (S n) src)) (takeBody' (S .n) (' GRT .src)) |> (' GRT (takeBody' (S n) src)) (takeBody' (S .n) (' PER .src)) |> (' PER (takeBody' (S n) src)) (takeBody' (S .n) (' COM .src)) |> (' COM (takeBody' (S n) src)) (takeBody' (S .n) (' BRK .src)) |> (' BRK (takeBody' (S (S n)) src)) (takeBody' (S .n) (' KRB .src)) |> (' KRB (takeBody' n src)) (dropBody .src) |> (drop (length (takeBody' 1 src)) src) (interpret .pointer .input () .tape) |> () (interpret .pointer .input (' DEC .program) .tape) |> (interpret pointer input program (((take pointer tape) ++ (singleton (byte- (index pointer tape)))) ++ (tail' (drop pointer tape)))) (interpret .pointer .input (' INC .program) .tape) |> (interpret pointer input program (((take pointer tape) ++ (singleton (byte+ (index pointer tape)))) ++ (tail' (drop pointer tape)))) (interpret () .input (' LFT .program) .tape) |> (interpret () input program (' 0 tape)) (interpret (S .pointer) .input (' LFT .program) .tape) |> (interpret pointer input program tape) (interpret .pointer .input (' RGT .program) .tape) |> (interpret (S pointer) input program tape) (interpret .pointer .input (' WRT .program) .tape) |> (' (index pointer tape) (interpret pointer input program tape)) (interpret .pointer () (' RED .program) .tape) |> (interpret pointer () program (((take pointer tape) ++ (singleton 0)) ++ (tail' (drop pointer tape)))) (interpret .pointer (' .i .input) (' RED .program) .tape) |> (interpret pointer () program (((take pointer tape) ++ (singleton i)) ++ (tail' (drop pointer tape)))) (interpret .pointer .input (' (LOP : .body) .program) .tape) |> \ (if (isZero (index pointer tape)) \ (interpret pointer input program tape) \ (interpret pointer input (body ++ (' (LOP : body) program)) tape)) empty-tape |> (' 0 empty-tape) (kolmogorov .src) |> (interpret 0 () (parse src) empty-tape) ; [info (main)] Completed matching; memory usage peaked at 8098916 of 1073741824 bytes (0.7543%). ; [info (main)] Took 22.3078 seconds. main |> (kolmogorov (' PLS (' PLS (' BRK (' MNS (' GRT (' PLS (' PLS (' PLS (' LES (' KRB (' GRT (' PER ()))))))))))))) ; [info (main)] Completed matching; memory usage peaked at 72651024 of 1073741824 bytes (6.7662%). ; [info (main)] Took 205.1882 seconds. ;main |> (kolmogorov (' PLS (' PLS (' PLS (' BRK (' MNS (' GRT (' PLS (' PLS (' LES (' KRB (' GRT (' PER ())))))))))))))