<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Mu - 063list.mu</title> <meta name="Generator" content="Vim/7.4"> <meta name="plugin-version" content="vim7.4_v1"> <meta name="syntax" content="none"> <meta name="settings" content="use_css,pre_wrap,no_foldcolumn,expand_tabs,prevent_copy="> <meta name="colorscheme" content="minimal"> <style type="text/css"> <!-- pre { white-space: pre-wrap; font-family: monospace; color: #eeeeee; background-color: #080808; } body { font-family: monospace; color: #eeeeee; background-color: #080808; } * { font-size: 1.05em; } .muRecipe { color: #ff8700; } .muScenario { color: #00af00; } .Comment { color: #9090ff; } .Constant { color: #00a0a0; } .Special { color: #ff6060; } .CommentedCode { color: #6c6c6c; } .muControl { color: #c0a020; } --> </style> <script type='text/javascript'> <!-- --> </script> </head> <body> <pre id='vimCodeElement'> <span class="Comment"># A list links up multiple objects together to make them easier to manage.</span> <span class="Comment">#</span> <span class="Comment"># Try to make all objects in a single list of the same type, it'll help avoid bugs.</span> <span class="Comment"># If you want to store multiple types in a single list, use an exclusive-container.</span> container list [ value:location next:address:list ] <span class="Comment"># result:address:list <- push x:location, in:address:list</span> <span class="muRecipe">recipe</span> push [ <span class="Constant">local-scope</span> x:location<span class="Special"> <- </span><span class="Constant">next-ingredient</span> in:address:list<span class="Special"> <- </span><span class="Constant">next-ingredient</span> result:address:list<span class="Special"> <- </span>new <span class="Constant">list:type</span> val:address:location<span class="Special"> <- </span>get-address *result, <span class="Constant">value:offset</span> *val<span class="Special"> <- </span>copy x next:address:address:list<span class="Special"> <- </span>get-address *result, <span class="Constant">next:offset</span> *next<span class="Special"> <- </span>copy in <span class="muControl">reply</span> result ] <span class="Comment"># result:location <- first in:address:list</span> <span class="muRecipe">recipe</span> first [ <span class="Constant">local-scope</span> in:address:list<span class="Special"> <- </span><span class="Constant">next-ingredient</span> result:location<span class="Special"> <- </span>get *in, <span class="Constant">value:offset</span> <span class="muControl">reply</span> result ] <span class="Comment"># result:address:list <- rest in:address:list</span> <span class="muRecipe">recipe</span> rest [ <span class="Constant">local-scope</span> in:address:list<span class="Special"> <- </span><span class="Constant">next-ingredient</span> result:address:list<span class="Special"> <- </span>get *in, <span class="Constant">next:offset</span> <span class="muControl">reply</span> result ] <span class="muScenario">scenario</span> list-handling [ run [ <span class="CommentedCode">#? $start-tracing #? 1</span> <span class="Constant">1</span>:address:list<span class="Special"> <- </span>copy <span class="Constant">0</span> <span class="Constant">1</span>:address:list<span class="Special"> <- </span>push <span class="Constant">3</span>, <span class="Constant">1</span>:address:list <span class="Constant">1</span>:address:list<span class="Special"> <- </span>push <span class="Constant">4</span>, <span class="Constant">1</span>:address:list <span class="Constant">1</span>:address:list<span class="Special"> <- </span>push <span class="Constant">5</span>, <span class="Constant">1</span>:address:list <span class="Constant">2</span>:number<span class="Special"> <- </span>first <span class="Constant">1</span>:address:list <span class="Constant">1</span>:address:list<span class="Special"> <- </span>rest <span class="Constant">1</span>:address:list <span class="Constant">3</span>:number<span class="Special"> <- </span>first <span class="Constant">1</span>:address:list <span class="Constant">1</span>:address:list<span class="Special"> <- </span>rest <span class="Constant">1</span>:address:list <span class="Constant">4</span>:number<span class="Special"> <- </span>first <span class="Constant">1</span>:address:list <span class="Constant">1</span>:address:list<span class="Special"> <- </span>rest <span class="Constant">1</span>:address:list ] memory-should-contain [ <span class="Constant">1</span><span class="Special"> <- </span><span class="Constant">0</span> <span class="Comment"># empty to empty, dust to dust..</span> <span class="Constant">2</span><span class="Special"> <- </span><span class="Constant">5</span> <span class="Constant">3</span><span class="Special"> <- </span><span class="Constant">4</span> <span class="Constant">4</span><span class="Special"> <- </span><span class="Constant">3</span> ] ] </pre> </body> </html> <!-- vim: set foldmethod=manual : -->