/ brainfuck interpreter p:flat({"+-<>[].,"?x}'input`) / get input ls:[];bm:(#p)#0;pc:0;t:,0;tp:0 i:0;{:[x=4;ls,:i;x=5;:{m::*ls#-1;ls_:-1;bm@:m,i;bm@:i,m}];i+:1}'p / parse loops oi:{t@:(succ t tp),tp} / + od:{t@:(pred t tp),tp} / - op:{tp-:1} / < on:{tp+:1;:[tp=#t;t,:0]} / > ol:{:[0=t tp;pc:bm pc]} / [ oe:{:[~0=t tp;pc:bm pc]} / ] os:{say(?t tp)} / . og:{t@:(#getc()),tp} / , do({pc<#p};{((oi,od,op,on,ol,oe,os,og)@p pc)();pc+:1}) / main loop "\n" / prettify output