_EDITOR <- "vi "; _MORE <- "more < "; FUNC vi(f) STATE sh(strcat(_EDITOR, _FILENAME)) returns nload(f); metoo ( def vi. lambda ( ) (vi FILENAME)) ( def cat. lambda ( ) (cat FILENAME)) ( def test lambda ( ) ( progn ( def _l1 ( lerstr "\".\" to end\n ? " )) ( while ( nequal _l1 "." ) ( let ( ( f1 (fopen "_tmp1" "w")) ( x19 ( fputs _l1 f1)) ( x20 (fclose f1)) ( x ( sh "seca _tmp1 _tmp" ))) (if (equal x 0) (let ( ( f ( fopen "_tmp" "r" )) ( x1 ( pp ( m2read f )))) ( fclose f )) (princ "error, try again ...\n") ) ) ( def _l1 ( lerstr "? " )) ) ) ) endmetoo FUNC nload(f:str) state sh(strcat("seca ",f," _tmp")) returns load("_tmp"); sig()=nwrite(stdout ,_ops); types()={x | x <- oblist : type(eval(x)) == 'TYPE }; cat(f)= sh (strcat(_MORE,f)); FUNC help(simb) pre is-SYM(simb) -> " use: (help 'func) " returns sh( strcat(_EDITOR ,"-R \"+/N : ", symstr(simb) , "/\" " ,HelpDir, "nyag.hlp")); func edit(s:SYM) pre is-SYM(s) -> " use: (edit 'object) " returns let(f=fopen("_tmp1","w"), l1=fputs(strcat(symstr(s), " <- "), f), l2=nwrite(f,eval(s)), l3=fputs(" ;\n",f), l4=fclose(f)) in vi("_tmp1"); stsave(filename,State)= let(f=fopen(filename,"w"), l1= m2write(f,State)) in fclose(f); stload(filename)= let(f=fopen(filename,"r"), l1= m2read(f), l2= fclose(f)) in l1; ;---------------------