Courses/CS 460/Fall 2005/Homework/Jay Donnell/Oct 15
From CSWiki
< Courses | CS 460 | Fall 2005 | Homework | Jay Donnell
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

