Center
People
Research
Ph.D. Theses
Projects
Tech. Reports
Software
FAQ
Links
Colloquium
Master Program
Courses
Students
Miscellaneous
FP Jobs Offered
Center
Home
Courses
People
Projects
Page
Edit Page
Rename Page
Attach File
Printable
Wiki Source
More ...
Web
Recent Changes
Notify Service
News
Page Index
Search
More ...
Wiki
About TWiki
Text Formatting
Registration
Change Password
Reset Password
Users
Groups
Log In
or
Register
Sum Syn
Center
<verbatim> imports { import System.Environment( getArgs ) import System.CPUTime } DATA Root | Root tree: Tree DATA Tree | Node left: Tree right: Tree | Leaf value: Int ATTR Tree Root [ | | sval : Int ] ATTR Tree [ | | sval2, ..., svaln : Int ] SEM Root | Root lhs.sval = @tree.sval + .. + @tree.svaln SEM Tree | Leaf lhs.sval = @value | Node lhs.sval = @left.sval + @right.sval ... SEM Tree | Leaf lhs.svaln = @value | Node lhs.svaln = @left.svaln + @right.svaln { genTree 0 = sem_Tree_Leaf 2 genTree n = sem_Tree_Node (genTree $ n-1) (genTree $ n-1) main = do (cant:_) <- getArgs let p = cpuTimePrecision t1 <- getCPUTime print $ (sem_Root_Root (genTree (read cant))) t2 <- getCPUTime print $ (t2 - t1) `div` p } </verbatim>