<?xml version='1.0'?>
-<expr>
+<expr xmlns="http://www.m17n.org/MIM">
<defun fname="factorial">
- <args><variable vname="x"/></args>
- <body>
- <if><lt><variable vname="x"/><integer>2</integer></lt>
- <variable vname="x"/>
- <mul>
- <variable vname="x"/>
- <funcall fname="factorial">
- <sub vname="x"><integer>1</integer></sub>
- </funcall>
- </mul>
- </if>
- </body>
+ <args><fixed vname="x"/></args>
+ <if><lt><varref vname="x"/><integer>2</integer></lt>
+ <varref vname="x"/>
+ <mul>
+ <varref vname="x"/>
+ <funcall fname="factorial">
+ <sub vname="x"><integer>1</integer></sub>
+ </funcall>
+ </mul>
+ </if>
</defun>
<defun fname="temp">
- <args-unevalled><variable vname="x"/>
- <optional/><variable vname="y"/>
- <rest/><variable vname="rest"/>
+ <args-unevalled>
+ <fixed vname="x"/>
+ <optional vname="y"/>
+ <rest vname="rest"/>
</args-unevalled>
- <body>
- <list><variable vname="x"/></list>
- </body>
+ <eval><varref vname="x"/></eval>
+ </defun>
+
+ <defun fname="looptest">
+ <args-unevalled><fixed vname="l"/></args-unevalled>
+ <loop><loop>
+ <foreach vname="term"><varref vname="l"/>
+ <eval><varref vname="term"/></eval>
+ </foreach>
+ </loop></loop>
+ <symbol>looptest-finished</symbol>
</defun>
<set vname="x"><integer>10</integer></set>
<set vname="str"><string>ABC</string></set>
<append>
- <funcall fname="factorial"><variable vname="x"/></funcall>
+ <catch><symbol>tag</symbol>
+ <funcall fname="looptest">
+ <list>
+ <set vname="i"><integer>0</integer></set>
+ <throw><symbol>tag</symbol><symbol>returned</symbol></throw>
+ <add vname="i"><integer>1</integer></add>
+ <varref vname="i"/>
+ </list>
+ </funcall>
+ </catch>
+ <funcall fname="factorial"><varref vname="x"/></funcall>
<ins vname="str"><integer>1</integer><string>123</string></ins>
<del vname="str"><integer>2</integer><integer>4</integer></del>
<cond>
</cond>
<foreach vname="a">
<list><integer>10</integer><integer>11</integer></list>
- <add vname="x"><variable vname="a"/></add>
+ <add vname="x"><varref vname="a"/></add>
</foreach>
- <variable vname="x"/>
- <eval><variable vname="x"/></eval>
+ <varref vname="x"/>
+ <eval><varref vname="x"/></eval>
<eval>
<eval>
- <quote><add><variable vname="x"/><integer>1</integer></add></quote>
+ <quote><add><varref vname="x"/><integer>1</integer></add></quote>
</eval>
</eval>
+ <concat><integer>?a</integer><integer>?b</integer></concat>
+ <quote><add><varref vname="x"/><integer>1</integer></add></quote>
</append>
+ <set vname="count"><integer>0</integer></set>
+ <loop>
+ <set vname="l"><copy><list><symbol>k</symbol></list></copy></set>
+ <append vname="l"><symbol>a</symbol></append>
+ <add vname="count"><integer>1</integer></add>
+ <if><ge><varref vname="count"/><integer>4</integer></ge>
+ <break><symbol>broken</symbol></break>
+ </if></loop>
+ <varref vname="l"/>
</expr>