2008-09-15 12:54:42 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								USING:  help.markup  help.syntax  kernel  math  sequences 
							 
						 
					
						
							
								
									
										
										
										
											2012-07-13 18:14:51 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								quotations ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-19 15:06:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								IN:  deques 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								HELP:  deque-empty? 
							 
						 
					
						
							
								
									
										
										
										
											2014-05-23 23:20:15 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ $values { "deque"  deque } { "?"  boolean  } }
							 
						 
					
						
							
								
									
										
										
										
											2008-11-16 06:53:25 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ $contract "Returns true if a deque is empty."  }
							 
						 
					
						
							
								
									
										
										
										
											2014-08-06 10:57:40 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ $notes "This operation is O(1)."  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $examples
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  { $example
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    "USING: deques prettyprint unrolled-lists ;" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    "<unrolled-list> deque-empty? ." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    "t" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-19 15:06:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-09-15 12:54:42 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								HELP:  clear-deque 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $values
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     { "deque"  deque } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $description "Removes all elements from a deque."  } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								HELP:  deque-member? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $values
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     { "value"  object  } { "deque"  deque }
							 
						 
					
						
							
								
									
										
										
										
											2014-05-23 23:20:15 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								     { "?"  boolean  } }
							 
						 
					
						
							
								
									
										
										
										
											2008-09-15 12:54:42 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ $description "Returns true if the "  { $snippet "value"  } " is found in the deque."  } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-08-19 15:06:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								HELP:  push-front 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $values { "obj"  object  } { "deque"  deque } }
							 
						 
					
						
							
								
									
										
										
										
											2014-08-06 10:57:40 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ $description "Push the object onto the front of the deque."  }
							 
						 
					
						
							
								
									
										
										
										
											2008-08-19 15:06:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								{ $notes "This operation is O(1)."  } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								HELP:  push-front* 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $values { "obj"  object  } { "deque"  deque } { "node"  "a node"  } }
							 
						 
					
						
							
								
									
										
										
										
											2014-08-06 10:57:40 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ $contract "Push the object onto the front of the deque and return the newly created node."  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $notes "This operation is O(1)."  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $examples
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  { $example
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    "USING: deques dlists kernel prettyprint ;" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    "33 <hashed-dlist> push-front* node-value ." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    "33" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-19 15:06:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								HELP:  push-back 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $values { "obj"  object  } { "deque"  deque } }
							 
						 
					
						
							
								
									
										
										
										
											2014-08-06 10:57:40 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ $description "Push the object onto the back of the deque."  }
							 
						 
					
						
							
								
									
										
										
										
											2008-08-19 15:06:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								{ $notes "This operation is O(1)."  } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								HELP:  push-back* 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $values { "obj"  object  } { "deque"  deque } { "node"  "a node"  } }
							 
						 
					
						
							
								
									
										
										
										
											2014-08-06 10:57:40 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ $contract "Push the object onto the back of the deque and return the newly created node."  }
							 
						 
					
						
							
								
									
										
										
										
											2008-08-19 15:06:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								{ $notes "This operation is O(1)."  } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-09-15 12:54:42 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								HELP:  push-all-back 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $values
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     { "seq"  sequence  } { "deque"  deque } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $description "Pushes a sequence of elements onto the back of a deque."  } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								HELP:  push-all-front 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $values
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     { "seq"  sequence  } { "deque"  deque } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $description "Pushes a sequence of elements onto the front of a deque."  } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-11-08 16:20:56 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								HELP:  peek-front* 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $values { "deque"  deque } { "obj"  object  } { "?"  boolean  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $contract "Returns the object at the front of the deque, and a boolean indicating if an object was found."  } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-08-19 15:06:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								HELP:  peek-front 
							 
						 
					
						
							
								
									
										
										
										
											2012-07-13 18:14:51 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ $values { "deque"  deque } { "obj"  object  } }
							 
						 
					
						
							
								
									
										
										
										
											2011-11-08 16:20:56 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ $description "Returns the object at the front of the deque."  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $errors "Throws an error if the deque is empty."  } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								HELP:  ?peek-front 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-13 19:09:14 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ $values { "deque"  deque } { "obj/f"  { $maybe object  } } }
							 
						 
					
						
							
								
									
										
										
										
											2011-11-08 16:20:56 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ $description "A forgiving version of "  { $link peek-front } ". If the deque is empty, returns "  { $link f  } "."  } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-19 15:06:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								HELP:  pop-front 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $values { "deque"  deque } { "obj"  object  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $description "Pop the object off the front of the deque and return the object."  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $notes "This operation is O(1)."  } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								HELP:  pop-front* 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $values { "deque"  deque } }
							 
						 
					
						
							
								
									
										
										
										
											2008-11-16 06:53:25 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ $contract "Pop the object off the front of the deque."  }
							 
						 
					
						
							
								
									
										
										
										
											2008-08-19 15:06:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								{ $notes "This operation is O(1)."  } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-11-08 16:20:56 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								HELP:  peek-back* 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $values { "deque"  deque } { "obj"  object  } { "?"  boolean  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $contract "Returns the object at the back of the deque, and a boolean indicating if an object was found."  } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-08-19 15:06:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								HELP:  peek-back 
							 
						 
					
						
							
								
									
										
										
										
											2012-07-13 18:14:51 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ $values { "deque"  deque } { "obj"  object  } }
							 
						 
					
						
							
								
									
										
										
										
											2011-11-08 16:20:56 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ $description "Returns the object at the back of the deque."  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $errors "Throws an error if the deque is empty."  } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								HELP:  ?peek-back 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-13 19:09:14 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ $values { "deque"  deque } { "obj/f"  { $maybe object  } } }
							 
						 
					
						
							
								
									
										
										
										
											2011-11-08 16:20:56 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ $description "A forgiving version of "  { $link peek-back } ". If the deque is empty, returns "  { $link f  } "."  } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-19 15:06:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								HELP:  pop-back 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $values { "deque"  deque } { "obj"  object  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $description "Pop the object off the back of the deque and return the object."  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $notes "This operation is O(1)."  } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								HELP:  pop-back* 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $values { "deque"  deque } }
							 
						 
					
						
							
								
									
										
										
										
											2008-11-16 06:53:25 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ $contract "Pop the object off the back of the deque."  }
							 
						 
					
						
							
								
									
										
										
										
											2008-08-19 15:06:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								{ $notes "This operation is O(1)."  } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-15 12:54:42 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								HELP:  delete-node 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $values
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     { "node"  object  } { "deque"  deque } }
							 
						 
					
						
							
								
									
										
										
										
											2008-11-16 06:53:25 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ $contract "Deletes the node from the deque."  } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-15 12:54:42 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								HELP:  deque 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $description "A data structure that has constant-time insertion and removal of elements at both ends."  } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								HELP:  node-value 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $values
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     { "node"  object  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     { "value"  object  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $description "Accesses the value stored at a node."  } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								HELP:  slurp-deque 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $values
							 
						 
					
						
							
								
									
										
										
										
											2014-12-11 18:59:14 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								     { "deque"  deque } { "quot"  { $quotation (  ...  obj  --  ...  )  } } }
							 
						 
					
						
							
								
									
										
										
										
											2014-08-06 10:57:40 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ $description "Pops off the back element of the deque and calls the quotation in a loop until the deque is empty."  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ $examples
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  { $example
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    "USING: deques dlists io kernel ;" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    "{ \"one\" \"two\" \"three\" } <hashed-dlist> [ push-all-front ] keep [ print ] slurp-deque" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    "one\ntwo\nthree" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-15 12:54:42 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								ARTICLE: "deques"  "Deques" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								"The "  { $vocab-link "deques"  } " vocabulary implements the deque data structure which has constant-time insertion and removal of elements at both ends." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$nl
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								"Deques must be instances of a mixin class:" 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-01 15:56:36 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ $subsections deque }
							 
						 
					
						
							
								
									
										
										
										
											2008-09-15 12:54:42 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								"Deques must implement a protocol." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$nl
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								"Querying the deque:" 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-01 15:56:36 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ $subsections
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    peek-front
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    peek-back
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    deque-empty?
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    deque-member?
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								}
							 
						 
					
						
							
								
									
										
										
										
											2008-09-15 12:54:42 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								"Adding and removing elements:" 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-01 15:56:36 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ $subsections
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    push-front*
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    push-back*
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    pop-front*
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    pop-back*
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    clear-deque
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								}
							 
						 
					
						
							
								
									
										
										
										
											2008-09-15 12:54:42 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								"Working with node objects output by "  { $link push-front* } " and "  { $link push-back* } ":" 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-01 15:56:36 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ $subsections
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    delete-node
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    node-value
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								}
							 
						 
					
						
							
								
									
										
										
										
											2008-09-15 12:54:42 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								"Utility operations built in terms of the above:" 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-01 15:56:36 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ $subsections
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    push-front
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    push-all-front
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    push-back
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    push-all-back
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    pop-front
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    pop-back
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    slurp-deque
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								}
							 
						 
					
						
							
								
									
										
										
										
											2008-09-15 12:54:42 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								"When using a deque as a queue, the convention is to queue elements with "  { $link push-front } " and deque them with "  { $link pop-back } "."  ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								ABOUT: "deques"