DoCon is a program for symbolic computation in mathematics - package of modules DoCon joins the categorial approach to the mathematical computation expressed via the Haskell type classes, and explicit processing of the domain description terms. It implements recently a good piece of commutative algebra: linear algebra, polynomial gcd, factorization, Groebner bases, and other functions. They are programmed under the very generic assumptions , like "over any Euclidean ring", over any GCD-ring, any field, and so on. DoCon also supports the constructions on domains: Fraction, Polynomial, Residue ring, and others. That is certain set of operations on a constructed domain is built automatically.
Haskell lets you write some strange-looking programs in a style known as "circular programming." Imagine transforming a tree with integer leaves into a tree that replaces all the leaves with the minimum leaf value. Normally we'd do this in two passes: first find the minimum leaf, and then traverse the tree a second time, replacing the leaves with the minimum value. In a lazy language you can do this in one go
A Tutorial Implementation of a Dependently Typed Lambda Calculus Andres Löh, Conor McBride and Wouter Swierstra We present the type rules for a dependently-typed core calculus together with a straightforward implementation in Haskell. We explicitly highlight the changes necessary to shift from a simply-typed lambda calculus to the dependently-typed lambda calculus. We also describe how to extend our core language with data types and write several small example programs. The paper is accompanied by an executable interpreter and example code that allows immediate experimentation with the system we describe. Download Draft Paper (submitted to FI) Haskell source code (executable Haskell file containing all the code from the paper plus the interpreter; automatically generated from the paper sources) prelude.lp (prelude for the LambdaPi interpreter, containing several example programs) Instructions (how to get started with the LambdaPi interpreter)
Haskell's overloaded numerical classes can be (ab)used to do some symbolic maths. This is in no way a new discovery, but I thought I'd write a few lines about it anyway since I've been playing with it the last few days. First we need a data type to repres
A. de Buitléir, M. Daly, M. Russell, and D. Heffernan. Trends in Functional Programming: 15th International
Symposium, TFP 2014, Soesterberg, The Netherlands, May
26-28, 2014. Revised Selected Papers, volume 8843 of Lecture Notes in Computer Science, Springer International Publishing, (2015)
E. de Vries, and A. Löh. Proceedings of the 10th ACM SIGPLAN workshop on Generic programming - WGP '14, page 83--94. New York, NY, USA, ACM Press, (2014)
K. Stengel, F. Schmaus, and R. Kapitza. Proceedings of the 12th International Workshop on Adaptive and Reflective Middleware, New York, NY, USA, Association for Computing Machinery, (2013)
R. Hinze, N. Wu, and J. Gibbons. Proceedings of the 18th ACM SIGPLAN International Conference on Functional Programming, page 209--220. New York, NY, USA, ACM, (2013)
M. Hofmann, E. Kitzelmann, and U. Schmid. German Conference on Artificial Intelligence (KI'08), volume 5243 of LNAI, page 78--86. Springer-Verlag, (2008)
P. Hudak, J. Hughes, S. Jones, and P. Wadler. Proceedings of the third ACM SIGPLAN conference on History of programming languages, New York, NY, USA, ACM, (2007)
P. Torrini, C. Lüth, C. Maeder, and T. Mossakowski. Theorem Proving in Higher-Order Logic: Emerging Trends Proceedings, page 178–193. Uni Kaiserslautern, (2007)
N. Danielsson, J. Hughes, P. Jansson, and J. Gibbons. Conference Record of the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, volume 41 of POPL '06, page 206--217. New York, NY, USA, ACM, (January 2006)
T. Harris, S. Marlow, S. Peyton-Jones, and M. Herlihy. Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming, page 48--60. New York, NY, USA, ACM, (2005)
R. Lämmel, and S. Jones. Proceedings of the Tenth ACM SIGPLAN International
Conference on Functional Programming, page 204--215. New York, NY, USA, ACM, (2005)