Heinrich Apfelmus schrieb: > Henning Thielemann wrote: >> I want for long to write math formulas in a paper in Haskell. Actually, >> lhs2TeX can do such transformations but it is quite limited in handling >> of parentheses and does not support more complicated transformations >> (transforming prefix notation in infix notation or vice versa with >> minimal parentheses). >> >> I would like to write >> sumFor [0..n] (\i -> i^2) >> (with sumFor xs f = sum $ map f xs) >> which is rendered as >> \sum_{i=0}^{n} i^2 >> or >> integrate 1000 (a,b) (\t -> f t) >> to be rendered as >> \int_a^b f(t) \dif t > > Neat idea! Can't you do implement this as a DSL? > > sumFor x xs f = > "\sum_{" ++ x ++ "=" ++ head xs ++ "}^{" ++ last xs ++ "} " > ++ f x
My original idea was to use the formulas in papers both for typesetting and for unit testing. Thus, when you state that a function fulfills a law, that it can be automatically tested by QuickCheck, that this at least true for some instances. The same would be useful for Haddock documentation. I remember that someone proposed to permit Haddock to expose the implementation of some functions as examples or as unit-tests/laws. Now we could extend this idea to allow Haddock not only to expose the implementation of functions, but also to tell Haddock how to render its implementation. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe