El trabajo en el laboratorio está encaminado a ilustrar en la práctica los conceptos teóricos de la asignatura. El lenguaje empleado será Haskell y, en particular, el entorno Hugs.
Las prácticas a realizar en el laboratorio son:
Los siguientes recursos pueden ser útiles para el trabajo a desarrollar en el laboratorio
1) main = print (bta ppower [D,S])
[("power",[D,S])]
2) main = print (ann pexamen (bta pexamen [S,D]))
[ADefine f[]["x","y"] = Calld "g" [] [Var "y"]
,ADefine g[]["x"] = Calld "f" [] [Var "x",Var "x"]
]
3) main = print (mix (ann pexamen (bta pexamen [S,D])) [Con 1])
[Define (f,[Con 1]) ["x","y"] = Call_ ("g",[]) [Var "x"]
,Define (g,[]) ["x"] = Call_ ("f",[]) [Var "x",Var "x"]
,Define (f,[]) ["x","y"] = Call_ ("g",[]) [Var "y"]
]
4) main = print (ann ppower (bta ppower [S,D]))
[ADefine power["x"]["n"] = Ifd (Opd "=" [Var "n",Con 0]) (Con 1) (Opd "*" [Var "x",Calld "power" [Var "x"] [Opd "-" [Var "n",Con 1]]])
]
5) main = print (mix (ann ppower (bta ppower [S,D])) [Con 3])
[Define (power,[Con 3]) ["n"] = If (Op "=" [Var "n",Con 0]) (Con 1) (Op "*" [Con 3,Call_ ("power",[Con 3]) [Op "-" [Var "n",Con 1]]])
]