about summary refs log tree commit diff stats
path: root/html/nqueens.mu.html
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2017-09-25 21:20:49 -0700
committerKartik K. Agaram <vc@akkartik.com>2017-09-25 21:20:49 -0700
commitc0d61295ed3575cfea7d2a22d81bae93c6009308 (patch)
tree42fc40d4ce6da540c9fa75d5e74ec75e5c313a7b /html/nqueens.mu.html
parent409237204368205a06e2b82fcab26b0a290d7412 (diff)
downloadmu-c0d61295ed3575cfea7d2a22d81bae93c6009308.tar.gz
4008
Allow list `push` operation to save result in a new list rather than
mutate the existing list.
Diffstat (limited to 'html/nqueens.mu.html')
-rw-r--r--html/nqueens.mu.html127
1 files changed, 63 insertions, 64 deletions
diff --git a/html/nqueens.mu.html b/html/nqueens.mu.html
index 8ae9d05d..441561b2 100644
--- a/html/nqueens.mu.html
+++ b/html/nqueens.mu.html
@@ -95,72 +95,71 @@ if ('onhashchange' in window) {
 <span id="L34" class="LineNr"> 34 </span>  <span class="Conceal">¦</span> <span class="muControl">break-if</span> done?
 <span id="L35" class="LineNr"> 35 </span>  <span class="Conceal">¦</span> curr:<a href='nqueens.mu.html#L6'>square</a> <span class="Special">&lt;-</span> merge next-rank, next-file
 <span id="L36" class="LineNr"> 36 </span>  <span class="Conceal">¦</span> <span class="Delimiter">{</span>
-<span id="L37" class="LineNr"> 37 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> curr-conflicts?:bool <span class="Special">&lt;-</span> <a href='nqueens.mu.html#L53'>conflict?</a> curr, queens
+<span id="L37" class="LineNr"> 37 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> curr-conflicts?:bool <span class="Special">&lt;-</span> <a href='nqueens.mu.html#L52'>conflict?</a> curr, queens
 <span id="L38" class="LineNr"> 38 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> curr-conflicts?
-<span id="L39" class="LineNr"> 39 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> queens <span class="Special">&lt;-</span> push curr, queens
-<span id="L40" class="LineNr"> 40 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> sub-result:num <span class="Special">&lt;-</span> <a href='nqueens.mu.html#L11'>nqueens</a> n, queens
+<span id="L39" class="LineNr"> 39 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> new-queens:&amp;:<a href='064list.mu.html#L6'>list</a>:<a href='nqueens.mu.html#L6'>square</a> <span class="Special">&lt;-</span> push curr, queens
+<span id="L40" class="LineNr"> 40 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> sub-result:num <span class="Special">&lt;-</span> <a href='nqueens.mu.html#L11'>nqueens</a> n, new-queens
 <span id="L41" class="LineNr"> 41 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> result <span class="Special">&lt;-</span> add result, sub-result
-<span id="L42" class="LineNr"> 42 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> queens <span class="Special">&lt;-</span> <a href='064list.mu.html#L25'>rest</a> queens
-<span id="L43" class="LineNr"> 43 </span>  <span class="Conceal">¦</span> <span class="Delimiter">}</span>
-<span id="L44" class="LineNr"> 44 </span>  <span class="Conceal">¦</span> next-file <span class="Special">&lt;-</span> add next-file,<span class="Constant"> 1</span>
-<span id="L45" class="LineNr"> 45 </span>  <span class="Conceal">¦</span> <span class="muControl">loop</span>
-<span id="L46" class="LineNr"> 46 </span>  <span class="Delimiter">}</span>
-<span id="L47" class="LineNr"> 47 </span>]
-<span id="L48" class="LineNr"> 48 </span>
-<span id="L49" class="LineNr"> 49 </span><span class="Comment"># check if putting a queen on 'curr' conflicts with any of the existing</span>
-<span id="L50" class="LineNr"> 50 </span><span class="Comment"># queens</span>
-<span id="L51" class="LineNr"> 51 </span><span class="Comment"># assumes that 'curr' is on a non-conflicting rank, and checks for conflict</span>
-<span id="L52" class="LineNr"> 52 </span><span class="Comment"># only in files and diagonals</span>
-<span id="L53" class="LineNr"> 53 </span><span class="muRecipe">def</span> <a href='nqueens.mu.html#L53'>conflict?</a> curr:<a href='nqueens.mu.html#L6'>square</a>, queens:&amp;:<a href='064list.mu.html#L6'>list</a>:<a href='nqueens.mu.html#L6'>square</a><span class="muRecipe"> -&gt; </span>result:bool [
-<span id="L54" class="LineNr"> 54 </span>  <span class="Constant">local-scope</span>
-<span id="L55" class="LineNr"> 55 </span>  <span class="Constant">load-ingredients</span>
-<span id="L56" class="LineNr"> 56 </span>  result <span class="Special">&lt;-</span> <a href='nqueens.mu.html#L61'>conflicting-file?</a> curr, queens
-<span id="L57" class="LineNr"> 57 </span>  <span class="muControl">return-if</span> result
-<span id="L58" class="LineNr"> 58 </span>  result <span class="Special">&lt;-</span> <a href='nqueens.mu.html#L77'>conflicting-diagonal?</a> curr, queens
-<span id="L59" class="LineNr"> 59 </span>]
-<span id="L60" class="LineNr"> 60 </span>
-<span id="L61" class="LineNr"> 61 </span><span class="muRecipe">def</span> <a href='nqueens.mu.html#L61'>conflicting-file?</a> curr:<a href='nqueens.mu.html#L6'>square</a>, queens:&amp;:<a href='064list.mu.html#L6'>list</a>:<a href='nqueens.mu.html#L6'>square</a><span class="muRecipe"> -&gt; </span>result:bool [
-<span id="L62" class="LineNr"> 62 </span>  <span class="Constant">local-scope</span>
-<span id="L63" class="LineNr"> 63 </span>  <span class="Constant">load-ingredients</span>
-<span id="L64" class="LineNr"> 64 </span>  curr-file:num <span class="Special">&lt;-</span> get curr, <span class="Constant">file:offset</span>
-<span id="L65" class="LineNr"> 65 </span>  <span class="Delimiter">{</span>
-<span id="L66" class="LineNr"> 66 </span>  <span class="Conceal">¦</span> <span class="muControl">break-unless</span> queens
-<span id="L67" class="LineNr"> 67 </span>  <span class="Conceal">¦</span> q:<a href='nqueens.mu.html#L6'>square</a> <span class="Special">&lt;-</span> first queens
-<span id="L68" class="LineNr"> 68 </span>  <span class="Conceal">¦</span> qfile:num <span class="Special">&lt;-</span> get q, <span class="Constant">file:offset</span>
-<span id="L69" class="LineNr"> 69 </span>  <span class="Conceal">¦</span> file-match?:bool <span class="Special">&lt;-</span> equal curr-file, qfile
-<span id="L70" class="LineNr"> 70 </span>  <span class="Conceal">¦</span> <span class="muControl">return-if</span> file-match?, <span class="Constant">1/conflict-found</span>
-<span id="L71" class="LineNr"> 71 </span>  <span class="Conceal">¦</span> queens <span class="Special">&lt;-</span> <a href='064list.mu.html#L25'>rest</a> queens
-<span id="L72" class="LineNr"> 72 </span>  <span class="Conceal">¦</span> <span class="muControl">loop</span>
-<span id="L73" class="LineNr"> 73 </span>  <span class="Delimiter">}</span>
-<span id="L74" class="LineNr"> 74 </span>  <span class="muControl">return</span> <span class="Constant">0/no-conflict-found</span>
-<span id="L75" class="LineNr"> 75 </span>]
-<span id="L76" class="LineNr"> 76 </span>
-<span id="L77" class="LineNr"> 77 </span><span class="muRecipe">def</span> <a href='nqueens.mu.html#L77'>conflicting-diagonal?</a> curr:<a href='nqueens.mu.html#L6'>square</a>, queens:&amp;:<a href='064list.mu.html#L6'>list</a>:<a href='nqueens.mu.html#L6'>square</a><span class="muRecipe"> -&gt; </span>result:bool [
-<span id="L78" class="LineNr"> 78 </span>  <span class="Constant">local-scope</span>
-<span id="L79" class="LineNr"> 79 </span>  <span class="Constant">load-ingredients</span>
-<span id="L80" class="LineNr"> 80 </span>  curr-rank:num <span class="Special">&lt;-</span> get curr, <span class="Constant">rank:offset</span>
-<span id="L81" class="LineNr"> 81 </span>  curr-file:num <span class="Special">&lt;-</span> get curr, <span class="Constant">file:offset</span>
-<span id="L82" class="LineNr"> 82 </span>  <span class="Delimiter">{</span>
-<span id="L83" class="LineNr"> 83 </span>  <span class="Conceal">¦</span> <span class="muControl">break-unless</span> queens
-<span id="L84" class="LineNr"> 84 </span>  <span class="Conceal">¦</span> q:<a href='nqueens.mu.html#L6'>square</a> <span class="Special">&lt;-</span> first queens
-<span id="L85" class="LineNr"> 85 </span>  <span class="Conceal">¦</span> qrank:num <span class="Special">&lt;-</span> get q, <span class="Constant">rank:offset</span>
-<span id="L86" class="LineNr"> 86 </span>  <span class="Conceal">¦</span> qfile:num <span class="Special">&lt;-</span> get q, <span class="Constant">file:offset</span>
-<span id="L87" class="LineNr"> 87 </span>  <span class="Conceal">¦</span> rank-delta:num <span class="Special">&lt;-</span> subtract qrank, curr-rank
-<span id="L88" class="LineNr"> 88 </span>  <span class="Conceal">¦</span> file-delta:num <span class="Special">&lt;-</span> subtract qfile, curr-file
-<span id="L89" class="LineNr"> 89 </span>  <span class="Conceal">¦</span> rank-delta <span class="Special">&lt;-</span> <a href='070table.mu.html#L103'>abs</a> rank-delta
-<span id="L90" class="LineNr"> 90 </span>  <span class="Conceal">¦</span> file-delta <span class="Special">&lt;-</span> <a href='070table.mu.html#L103'>abs</a> file-delta
-<span id="L91" class="LineNr"> 91 </span>  <span class="Conceal">¦</span> diagonal-match?:bool <span class="Special">&lt;-</span> equal rank-delta, file-delta
-<span id="L92" class="LineNr"> 92 </span>  <span class="Conceal">¦</span> <span class="muControl">return-if</span> diagonal-match?, <span class="Constant">1/conflict-found</span>
-<span id="L93" class="LineNr"> 93 </span>  <span class="Conceal">¦</span> queens <span class="Special">&lt;-</span> <a href='064list.mu.html#L25'>rest</a> queens
-<span id="L94" class="LineNr"> 94 </span>  <span class="Conceal">¦</span> <span class="muControl">loop</span>
-<span id="L95" class="LineNr"> 95 </span>  <span class="Delimiter">}</span>
-<span id="L96" class="LineNr"> 96 </span>  <span class="muControl">return</span> <span class="Constant">0/no-conflict-found</span>
-<span id="L97" class="LineNr"> 97 </span>]
-<span id="L98" class="LineNr"> 98 </span>
-<span id="L99" class="LineNr"> 99 </span><span class="muRecipe">def</span> <a href='nqueens.mu.html#L99'>main</a> [
-<span id="L100" class="LineNr">100 </span>  <a href='nqueens.mu.html#L11'>nqueens</a><span class="Constant"> 4</span>
-<span id="L101" class="LineNr">101 </span>  $dump-trace <span class="Constant">[app]</span>
-<span id="L102" class="LineNr">102 </span>]
+<span id="L42" class="LineNr"> 42 </span>  <span class="Conceal">¦</span> <span class="Delimiter">}</span>
+<span id="L43" class="LineNr"> 43 </span>  <span class="Conceal">¦</span> next-file <span class="Special">&lt;-</span> add next-file,<span class="Constant"> 1</span>
+<span id="L44" class="LineNr"> 44 </span>  <span class="Conceal">¦</span> <span class="muControl">loop</span>
+<span id="L45" class="LineNr"> 45 </span>  <span class="Delimiter">}</span>
+<span id="L46" class="LineNr"> 46 </span>]
+<span id="L47" class="LineNr"> 47 </span>
+<span id="L48" class="LineNr"> 48 </span><span class="Comment"># check if putting a queen on 'curr' conflicts with any of the existing</span>
+<span id="L49" class="LineNr"> 49 </span><span class="Comment"># queens</span>
+<span id="L50" class="LineNr"> 50 </span><span class="Comment"># assumes that 'curr' is on a non-conflicting rank, and checks for conflict</span>
+<span id="L51" class="LineNr"> 51 </span><span class="Comment"># only in files and diagonals</span>
+<span id="L52" class="LineNr"> 52 </span><span class="muRecipe">def</span> <a href='nqueens.mu.html#L52'>conflict?</a> curr:<a href='nqueens.mu.html#L6'>square</a>, queens:&amp;:<a href='064list.mu.html#L6'>list</a>:<a href='nqueens.mu.html#L6'>square</a><span class="muRecipe"> -&gt; </span>result:bool [
+<span id="L53" class="LineNr"> 53 </span>  <span class="Constant">local-scope</span>
+<span id="L54" class="LineNr"> 54 </span>  <span class="Constant">load-ingredients</span>
+<span id="L55" class="LineNr"> 55 </span>  result <span class="Special">&lt;-</span> <a href='nqueens.mu.html#L60'>conflicting-file?</a> curr, queens
+<span id="L56" class="LineNr"> 56 </span>  <span class="muControl">return-if</span> result
+<span id="L57" class="LineNr"> 57 </span>  result <span class="Special">&lt;-</span> <a href='nqueens.mu.html#L76'>conflicting-diagonal?</a> curr, queens
+<span id="L58" class="LineNr"> 58 </span>]
+<span id="L59" class="LineNr"> 59 </span>
+<span id="L60" class="LineNr"> 60 </span><span class="muRecipe">def</span> <a href='nqueens.mu.html#L60'>conflicting-file?</a> curr:<a href='nqueens.mu.html#L6'>square</a>, queens:&amp;:<a href='064list.mu.html#L6'>list</a>:<a href='nqueens.mu.html#L6'>square</a><span class="muRecipe"> -&gt; </span>result:bool [
+<span id="L61" class="LineNr"> 61 </span>  <span class="Constant">local-scope</span>
+<span id="L62" class="LineNr"> 62 </span>  <span class="Constant">load-ingredients</span>
+<span id="L63" class="LineNr"> 63 </span>  curr-file:num <span class="Special">&lt;-</span> get curr, <span class="Constant">file:offset</span>
+<span id="L64" class="LineNr"> 64 </span>  <span class="Delimiter">{</span>
+<span id="L65" class="LineNr"> 65 </span>  <span class="Conceal">¦</span> <span class="muControl">break-unless</span> queens
+<span id="L66" class="LineNr"> 66 </span>  <span class="Conceal">¦</span> q:<a href='nqueens.mu.html#L6'>square</a> <span class="Special">&lt;-</span> first queens
+<span id="L67" class="LineNr"> 67 </span>  <span class="Conceal">¦</span> qfile:num <span class="Special">&lt;-</span> get q, <span class="Constant">file:offset</span>
+<span id="L68" class="LineNr"> 68 </span>  <span class="Conceal">¦</span> file-match?:bool <span class="Special">&lt;-</span> equal curr-file, qfile
+<span id="L69" class="LineNr"> 69 </span>  <span class="Conceal">¦</span> <span class="muControl">return-if</span> file-match?, <span class="Constant">1/conflict-found</span>
+<span id="L70" class="LineNr"> 70 </span>  <span class="Conceal">¦</span> queens <span class="Special">&lt;-</span> <a href='064list.mu.html#L24'>rest</a> queens
+<span id="L71" class="LineNr"> 71 </span>  <span class="Conceal">¦</span> <span class="muControl">loop</span>
+<span id="L72" class="LineNr"> 72 </span>  <span class="Delimiter">}</span>
+<span id="L73" class="LineNr"> 73 </span>  <span class="muControl">return</span> <span class="Constant">0/no-conflict-found</span>
+<span id="L74" class="LineNr"> 74 </span>]
+<span id="L75" class="LineNr"> 75 </span>
+<span id="L76" class="LineNr"> 76 </span><span class="muRecipe">def</span> <a href='nqueens.mu.html#L76'>conflicting-diagonal?</a> curr:<a href='nqueens.mu.html#L6'>square</a>, queens:&amp;:<a href='064list.mu.html#L6'>list</a>:<a href='nqueens.mu.html#L6'>square</a><span class="muRecipe"> -&gt; </span>result:bool [
+<span id="L77" class="LineNr"> 77 </span>  <span class="Constant">local-scope</span>
+<span id="L78" class="LineNr"> 78 </span>  <span class="Constant">load-ingredients</span>
+<span id="L79" class="LineNr"> 79 </span>  curr-rank:num <span class="Special">&lt;-</span> get curr, <span class="Constant">rank:offset</span>
+<span id="L80" class="LineNr"> 80 </span>  curr-file:num <span class="Special">&lt;-</span> get curr, <span class="Constant">file:offset</span>
+<span id="L81" class="LineNr"> 81 </span>  <span class="Delimiter">{</span>
+<span id="L82" class="LineNr"> 82 </span>  <span class="Conceal">¦</span> <span class="muControl">break-unless</span> queens
+<span id="L83" class="LineNr"> 83 </span>  <span class="Conceal">¦</span> q:<a href='nqueens.mu.html#L6'>square</a> <span class="Special">&lt;-</span> first queens
+<span id="L84" class="LineNr"> 84 </span>  <span class="Conceal">¦</span> qrank:num <span class="Special">&lt;-</span> get q, <span class="Constant">rank:offset</span>
+<span id="L85" class="LineNr"> 85 </span>  <span class="Conceal">¦</span> qfile:num <span class="Special">&lt;-</span> get q, <span class="Constant">file:offset</span>
+<span id="L86" class="LineNr"> 86 </span>  <span class="Conceal">¦</span> rank-delta:num <span class="Special">&lt;-</span> subtract qrank, curr-rank
+<span id="L87" class="LineNr"> 87 </span>  <span class="Conceal">¦</span> file-delta:num <span class="Special">&lt;-</span> subtract qfile, curr-file
+<span id="L88" class="LineNr"> 88 </span>  <span class="Conceal">¦</span> rank-delta <span class="Special">&lt;-</span> <a href='070table.mu.html#L103'>abs</a> rank-delta
+<span id="L89" class="LineNr"> 89 </span>  <span class="Conceal">¦</span> file-delta <span class="Special">&lt;-</span> <a href='070table.mu.html#L103'>abs</a> file-delta
+<span id="L90" class="LineNr"> 90 </span>  <span class="Conceal">¦</span> diagonal-match?:bool <span class="Special">&lt;-</span> equal rank-delta, file-delta
+<span id="L91" class="LineNr"> 91 </span>  <span class="Conceal">¦</span> <span class="muControl">return-if</span> diagonal-match?, <span class="Constant">1/conflict-found</span>
+<span id="L92" class="LineNr"> 92 </span>  <span class="Conceal">¦</span> queens <span class="Special">&lt;-</span> <a href='064list.mu.html#L24'>rest</a> queens
+<span id="L93" class="LineNr"> 93 </span>  <span class="Conceal">¦</span> <span class="muControl">loop</span>
+<span id="L94" class="LineNr"> 94 </span>  <span class="Delimiter">}</span>
+<span id="L95" class="LineNr"> 95 </span>  <span class="muControl">return</span> <span class="Constant">0/no-conflict-found</span>
+<span id="L96" class="LineNr"> 96 </span>]
+<span id="L97" class="LineNr"> 97 </span>
+<span id="L98" class="LineNr"> 98 </span><span class="muRecipe">def</span> <a href='nqueens.mu.html#L98'>main</a> [
+<span id="L99" class="LineNr"> 99 </span>  <a href='nqueens.mu.html#L11'>nqueens</a><span class="Constant"> 4</span>
+<span id="L100" class="LineNr">100 </span>  $dump-trace <span class="Constant">[app]</span>
+<span id="L101" class="LineNr">101 </span>]
 </pre>
 </body>
 </html>