Re: [Yhc] Help me for haskel problem please

Hi,
For homework help I suggest you read
http://haskell.org/haskellwiki/Homework_help and follow the links
listed there.
Thanks, Neil
2010/12/5 Suresh
Dear Sir,
My be this question will be funny for you but I am new in Haskel and got only few lection and now I have to solve the question as test. Please let me know about suitable api for this question. We have wrong code and there is some test. Have to find out needed or suitable api and using these we have to pass all the test. But still I am so poor on Haskel. Please give me your good idea and material for this question. IF possible please give some example to solve this problem.
module Grammar where
import Data.Set (Set) import qualified Data.Set as Set import Prelude hiding (Int)
import Test.HUnit
data Term = Int Integer | Atom String | Var String | Pair (Term, Term) | Tuple [Term]
data Expr = Term Term | Fun [Term] [Expr] | Apply Expr [Expr] | Assign Term Expr
boundVariables :: Expr -> Set String boundVariables _ = Set.empty fromList:: Map X Y -> [(X, Y)]
freeVariables :: Expr -> Set String freeVariables _ = Set.empty
tests = let bv = boundVariables fv = freeVariables -- e0 := 'fun () -> ok end' e0 = Fun [] [Term (Atom "ok")] -- e1 := 'foo' e1 = Term (Atom "foo") -- e2 := 'fun (X, Y) -> F(X) end' e2 = Fun [Var "X", Var "Y"] [Apply (Term (Var "F")) [Term (Var "X")]] -- e3 := 'fun (true) -> F = fun (X) -> Mul(X, X) end, Add(F(X), 10) end' e3 = Fun [Atom "true"] [ Assign (Var "F") (Fun [Var "X"] [ Apply (Term (Var "Mul")) [ Term (Var "X"), Term (Var "X") ] ]), Apply (Term (Var "Add")) [ Apply (Term (Var "F")) [ Term (Var "X") ], Term (Int 10) ] ] -- e4 := 'fun () -> F(X), F = G end' e4 = Fun [] [ Apply (Term (Var "F")) [ Term (Var "X") ], Assign (Var "F") (Term (Var "G")) ] -- e5 := 'fun () -> F = G, F(X) end' e5 = Fun [] [ Assign (Var "F") (Term (Var "G")), Apply (Term (Var "F")) [ Term (Var "X") ] ] in runTestTT (test [ bv e1 ~=? Set.empty , fv e1 ~=? Set.empty , bv e2 ~=? Set.fromList ["X", "Y"] , fv e2 ~=? Set.fromList ["F"] , bv e3 ~=? Set.fromList ["X", "F"] , fv e3 ~=? Set.fromList ["Mul", "Add", "X"] , bv e4 ~=? Set.fromList ["F"] , fv e4 ~=? Set.fromList ["F", "G", "X"] , bv e5 ~=? Set.fromList ["F"] , fv e5 ~=? Set.fromList ["G", "X"] ])
Best regards Suresh
participants (1)
-
Neil Mitchell