Courses/CS 460/Fall 2005/Homework/Andre Liv/Nov 19
From CSWiki
[edit] Homework 8
This code does not compile, don't know how to fix it and need to work furthermore on it
local
proc {CreateJug Size Amount Jug}
Jug = {MakeRecord jug [size amount]}
Jug.size = size
Jug.amount = Amount
end
proc {Fill Jug NewJug}
NewJug = {CreateJug Jug.size Jug.size}
end
proc {Empty Jug NewJug}
NewJug = {CreateJug Jug.size 0}
end
proc {Pour Jug1 Jug2 NewJug NewJug1}
choice
NewJug = [{Create Jug1.size (Jug1.amount + Jug2.size)}]
[]
NewJug1 = [{CreateJug Jug2.size Jug2.size}]
end
end
fun {Start J J1 States NewJug}
NewJug = [{Fill J} J1]
end
proc {Append Xs Ys Zs}
choice
Xs = nil Ys = Zs
[] X Xr in
Xs = X | Xr
Zs = X | {Append Xr Ys}
end
end
fun {Goal}
{Start [[{CreateJug 3 0} {CreateJug 5 0}]] 4}
end
in
{Browse {SearchAll Goal}}
end

