{VERSION 3 0 "DEC ALPHA UNIX" "3.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 } {PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Text Output" -1 2 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 0 0 0 0 0 1 3 0 0 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Warning" 2 7 1 {CSTYLE "" -1 -1 "" 0 1 0 0 255 1 0 0 0 0 0 0 1 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 } {PSTYLE "Error" 7 8 1 {CSTYLE "" -1 -1 "" 0 1 255 0 255 1 0 0 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Diagnostic" 7 9 1 {CSTYLE "" -1 -1 "" 0 1 64 128 64 1 0 0 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Maple Output" 0 11 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }3 3 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 11 12 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }} {SECT 0 {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 212 "List:=proc()\n loc al i;\n if nargs=0 then\n table([first=NULL,tail=NULL])\n elif na rgs=1 then \n table([first=args[1],tail=NULL])\n else\n table([ first=args[1],tail=List(seq(args[i],i=2..nargs))])\n fi\nend:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "L0:=List();" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%#L0G-%&TABLEG6#7$/%&firstG6\"/%%tailGF+" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "L1:=List(x[1]);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%#L1G-%&TABLEG6#7$/%&firstG&%\"xG6#\"\"\"/%%ta ilG6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "L2:=List(x[1],x[2 ]);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%#L2G-%&TABLEG6#7$/%&firstG&% \"xG6#\"\"\"/%%tailG-F&6#7$/F*&F,6#\"\"#/F06\"" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 223 "`type/List`:=proc()\n local ind;\n if not t ype(args[1],table) then\nfalse fi;\n ind:=map(op,\{indices(args[1])\} );\n if not (ind=\{first,tail\}) then \nfalse fi;\n [args[1][tail]] =[]\n or\n `type/List`(eval(args[1][tail]))\n end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 195 "`type/voidList`:=proc()\n local ind;\n \+ if not type(args[1],table) then\nfalse fi;\n ind:=map(op,\{indices(a rgs[1])\});\n if not (ind=\{first,tail\}) then \nfalse fi;\n evalb( [args[1][first]]=[]) \nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "type(L0,List);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%%trueG" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "type(L0,voidList);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%%trueG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "type(L2,List);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%%t rueG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "type(L2,voidList); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%&falseG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 78 "first:=proc(L::List)\n if [L[first]]=[] then ER ROR()\n else L[first]\n fi\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "first(L0);" }}{PARA 8 "" 1 "" {TEXT -1 18 "Error, (in first) " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "first(L2);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#&%\"xG6#\"\"\"" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 144 "tail:=proc(L::List)\n if [L[first]]=[] then \+ ERROR()\n elif [L[tail]]=[] then table([first=NULL,tail=NULL])\n el se eval(args[1][tail])\n fi\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "tail(L0);" }}{PARA 8 "" 1 "" {TEXT -1 17 "Error, (in t ail) " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "tail(L1);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#-%&TABLEG6#7$/%&firstG6\"/%%tailGF)" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "tail(L2);" }}{PARA 12 "" 1 " " {XPPMATH 20 "6#-%&TABLEG6#7$/%&firstG&%\"xG6#\"\"#/%%tailG6\"" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 132 "append:=proc(L1::List,L2::L ist)\n if [L1[first]]=[] then eval(L2)\n else table([first=first(L1) ,tail=append(tail(L1),L2)])\n fi\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "append(L0,L2);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#-%& TABLEG6#7$/%&firstG&%\"xG6#\"\"\"/%%tailG-F$6#7$/F(&F*6#\"\"#/F.6\"" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "append(L2,L2);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#-%&TABLEG6#7$/%&firstG&%\"xG6#\"\"\"/%%tailG -F$6#7$/F(&F*6#\"\"#/F.-F$6#7$F'/F.-F$6#7$F2/F.6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 128 "cons:=proc(x,L::List)\n if [L[first]]=[] \+ then \n table([first=x,tail=NULL])\n else\n table([first=x,tail =eval(L)])\n fi\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "c ons(x,L0);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#-%&TABLEG6#7$/%&firstG% \"xG/%%tailG6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "cons(x,L 1);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#-%&TABLEG6#7$/%&firstG%\"xG/%%t ailG-F$6#7$/F(&F)6#\"\"\"/F+6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 149 "endcons:=proc(L::List,x)\n if [L[first]]=[] then \n table ([first=x,tail=NULL])\n else\n table([first=first(L),tail=endcons( tail(L),x)])\n fi\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "endcons(L0,x);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#-%&TABLEG6#7$/%&fir stG%\"xG/%%tailG6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "endc ons(L1,x);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#-%&TABLEG6#7$/%&firstG&% \"xG6#\"\"\"/%%tailG-F$6#7$/F(F*/F.6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "endcons(L2,x);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#-%& TABLEG6#7$/%&firstG&%\"xG6#\"\"\"/%%tailG-F$6#7$/F(&F*6#\"\"#/F.-F$6#7 $/F(F*/F.6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 98 "reverse:=pr oc(L::List)\n if [L[first]]=[] then eval(L)\n else endcons(tail(L),f irst(L))\n fi\nend:\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "r everse(L2);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#-%&TABLEG6#7$/%&firstG& %\"xG6#\"\"#/%%tailG-F$6#7$/F(&F*6#\"\"\"/F.6\"" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 120 "rest:=proc(L::List,i::posint)\n if [L[first] ]=[] then ERROR()\n elif i=1 then eval(L)\n else rest(tail(L),i-1)\n fi\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "rest(L0,1);" }}{PARA 8 "" 1 "" {TEXT -1 17 "Error, (in rest) " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "rest(L1,1);" }}{PARA 12 "" 1 "" {XPPMATH 20 " 6#-%&TABLEG6#7$/%&firstG&%\"xG6#\"\"\"/%%tailG6\"" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 11 "rest(L1,2);" }}{PARA 8 "" 1 "" {TEXT -1 17 " Error, (in rest) " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "rest(L 2,2);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#-%&TABLEG6#7$/%&firstG&%\"xG6 #\"\"#/%%tailG6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "###" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "l0:=List();" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%#l0G-%&TABLEG6#7$/%&firstG6\"/%%tailGF+" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "l1:=List(a);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%#l1G-%&TABLEG6#7$/%&firstG%\"aG/%%tailG6\"" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "l2:=List(a,b);" }}{PARA 12 " " 1 "" {XPPMATH 20 "6#>%#l2G-%&TABLEG6#7$/%&firstG%\"aG/%%tailG-F&6#7$ /F*%\"bG/F-6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "l3:=List( a,b,c);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%#l3G-%&TABLEG6#7$/%&first G%\"aG/%%tailG-F&6#7$/F*%\"bG/F--F&6#7$/F*%\"cG/F-6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 145 "append:=proc(L1::List,L2::List)\n \+ if [L1[first]]=[] then L1:=eval(L2)\n else \n L1:=table([first=fi rst(L1),tail=append(tail(L1),L2)])\n fi\nend:" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 14 "trace(append):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "append(l1,l2);" }}{PARA 9 "" 1 "" {TEXT -1 32 "\{--> \+ enter append, args = l1, l2" }}{PARA 9 "" 1 "" {TEXT -1 63 "\{--> ente r append, args = table([(tail)=NULL,(first)=NULL]), l2" }}{PARA 9 "" 1 "" {TEXT -1 75 "<-- ERROR in append (now in append) = invalid left h and side in assignment\}" }}{PARA 9 "" 1 "" {TEXT -1 78 "<-- ERROR in \+ append (now at top level) = invalid left hand side in assignment\}" }} {PARA 8 "" 1 "" {TEXT -1 55 "Error, (in append) invalid left hand side in assignment" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 172 "append:= proc(L1::List,L2::List)\n local LL1;\n if [L1[first]]=[] then L1:=ev al(L2)\n else\n LL1:=tail(L1); \n L1:=table([first=first(L1),ta il=append(LL1,L2)])\n fi\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "trace(append):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "a ppend(l1,l2);" }}{PARA 9 "" 1 "" {TEXT -1 32 "\{--> enter append, args = l1, l2" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%$LL1G-%&TABLEG6#7$/%&fi rstG6\"/%%tailGF+" }}{PARA 9 "" 1 "" {TEXT -1 33 "\{--> enter append, \+ args = LL1, l2" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%$LL1G-%&TABLEG6#7$ /%&firstG%\"aG/%%tailG-F&6#7$/F*%\"bG/F-6\"" }}{PARA 9 "" 1 "" {TEXT -1 93 "<-- exit append (now in append) = table([(first)=a,(tail)=(tabl e([(first)=b,(tail)=NULL]))])\}" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%# l1G-%&TABLEG6#7$/%&firstG%\"aG/%%tailG-F&6#7$F)/F--F&6#7$/F*%\"bG/F-6 \"" }}{PARA 9 "" 1 "" {TEXT -1 124 "<-- exit append (now at top level) = table([(first)=a,(tail)=(table([(first)=a,(tail)=(table([(first)=b, (tail)=NULL]))]))])\}" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#-%&TABLEG6#7$ /%&firstG%\"aG/%%tailG-F$6#7$F'/F+-F$6#7$/F(%\"bG/F+6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "eval(l1);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#-%&TABLEG6#7$/%&firstG%\"aG/%%tailG-F$6#7$F'/F+-F$6#7$/ F(%\"bG/F+6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "eval(l2);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#-%&TABLEG6#7$/%&firstG%\"aG/%%tailG- F$6#7$/F(%\"bG/F+6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "#co ns:=proc(x,L::List)\n# L[tail]:=eval(L);\n# L[first]:=x;\n# eval(L) \n#end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "cons:=proc(x,L:: List)\n L:=table([first=x,tail=eval(L)])\nend:" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 16 "l3:=List(a,b,c):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "cons(x,l3);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#-%&TAB LEG6#7$/%&firstG%\"xG/%%tailG-F$6#7$/F(%\"aG/F+-F$6#7$/F(%\"bG/F+-F$6# 7$/F(%\"cG/F+6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "eval(l3) ;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#-%&TABLEG6#7$/%&firstG%\"xG/%%tai lG-F$6#7$/F(%\"aG/F+-F$6#7$/F(%\"bG/F+-F$6#7$/F(%\"cG/F+6\"" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 179 "endcons:=proc(L::List,x)\n \+ local LL;\n if [L[first]]=[] then \n L:=table([first=x,tail=NULL] )\n else\n LL:=tail(L);\n L:=table([first=first(L),tail=endcons (LL,x)])\n fi\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "end cons(l2,x);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#-%&TABLEG6#7$/%&firstG% \"aG/%%tailG-F$6#7$/F(%\"bG/F+-F$6#7$/F(%\"xG/F+6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "eval(l2);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#-%&TABLEG6#7$/%&firstG%\"aG/%%tailG-F$6#7$/F(%\"bG/F+-F$6#7$/F(%\"x G/F+6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 133 "reverse:=proc(L ::List)\n local LL;\n if [L[first]]=[] then L:=eval(L)\n else\n \+ LL:=tail(L); \n L:=endcons(LL,first(L))\n fi\nend:\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "reverse(l2);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#-%&TABLEG6#7$/%&firstG%\"bG/%%tailG-F$6#7$/F(%\"xG/F+-F $6#7$/F(%\"aG/F+6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "eval( l2);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#-%&TABLEG6#7$/%&firstG%\"bG/%% tailG-F$6#7$/F(%\"xG/F+-F$6#7$/F(%\"aG/F+6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 152 "rest:=proc(L::List,i::posint)\n local LL;\n i f [L[first]]=[] then ERROR()\n elif i=1 then eval(L)\n else \n LL :=tail(L);\n L:=rest(LL,i-1)\n fi\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "rest(l2,2);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#-%& TABLEG6#7$/%&firstG%\"xG/%%tailG-F$6#7$/F(%\"aG/F+6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "eval(l2);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#-%&TABLEG6#7$/%&firstG%\"xG/%%tailG-F$6#7$/F(%\"aG/F+6 \"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{MARK "48 0 0" 0 }{VIEWOPTS 1 1 0 1 1 1803 }