Courses/CS 460/Fall 2005/Homework/Jay Donnell/Oct 15

From CSWiki

< Courses | CS 460 | Fall 2005 | Homework | Jay Donnell
Revision as of 16:53, 5 November 2005 by Jay (Talk | contribs)
(diff) ←Older revision | Current revision (diff) | Newer revision→ (diff)
Jump to: navigation, search

Turned In Late

Contents

[edit] Reverse

local
   Reverse ListIn
in
      proc {Reverse Xs Ys}
	 choice Head Tail in
	    Xs = Head| Tail
	    Ys = {Append {Reverse Tail} [Head]}
	 []
	    Xs = nil
	    Ys = nil
	 end
      end

      ListIn = [1 2 3 4]
      {Browse {SearchAll proc{$ ListOut} {Reverse ListIn ListOut} end}}
end


[edit] Last

local
   Last
in
   proc {Last ListIn Out}
      choice Head Tail in
	 ListIn = Head | nil
	 Out = Head
      [] Head Tail in
	 ListIn = Head | Tail
	 {Last Tail Out}
      end
   end
   {Browse {SearchAll fun {$} {Last [1 2 3 4 5]} end} }
end


[edit] Nth

local
   Nth
in
   proc {Nth ListIn I Out}
      Head Tail in
      ListIn = Head | Tail
      choice
         I = 1
         Out = Head
      []
         {Nth Tail I-1 Out}
      end
   end

   {Browse {SearchAll proc {$ Out} {Nth [1 2 3 4 5] 4 Out} end}}
end


[edit] Length

local
   Length
in
   proc {Length ListIn Out}
      Head Tail in
      ListIn = Head | Tail
      choice
         ListIn = Head | nil
         Out = 1
      []
         Out = 1 + {Length Tail}
      end
   end

   {Browse {SearchAll proc {$ Out} {Length [1 2 3 4] Out} end}}
end