## Functional Programming and Mathematical Objects (1995)

### BibTeX

@MISC{Karczmarczuk95functionalprogramming,

author = {Jerzy Karczmarczuk},

title = {Functional Programming and Mathematical Objects},

year = {1995}

}

### OpenURL

### Abstract

. We discuss the application of the Haskell/Gofer type classes and constructor classes to the implementation and teaching of the manipulation techniques in the domain of formal mathematical expressions. We show also how the lazy evaluation paradigms simplify the construction and the presentation of several algorithms dealing with iterative data types, such as power series or formal Pad'e expansion. We show the application of higher order functions to algebra and geometry, and specifically --- to the construction of parametric surfaces. 1 Introduction Formal manipulation of algebraic and geometric objects seems `a priori to be a wonderful training ground for mathematically oriented students who want to learn the design and the implementation of complex algorithms and heterogeneous data structures. It is not very often exploited, though. While it is standard at quite elementary level, to teach formal differentiation of algebraic tree structures, or the arithmetic of compound data struct...

### Citations

165 |
The Art of Computer
- Knuth
- 1973
(Show Context)
Citation Context ...all the appropriate operations. This part of the work was rather trivial, it was mainly straightforward coding of mathematical formulae, something a little optimised, see for example the book of Knuth=-=[4]-=-. Still, it was interesting to see how the system protects itself from an attempt of making fractions of anything/anything, demanding that a specific algebraic context of anything be respected. There ... |

65 |
et al. Report on the Programming Language Haskell
- Hudak, Jones, et al.
- 1992
(Show Context)
Citation Context ...Computer Science. We decided to look at the problem mentioned above from the perspective of modern, typed lazy functional programming. The relation between types -- as realized in the language Haskell=-=[2]-=- -- and the mathematical domains, will be discussed in the section 3. With lazy streams it is easy to create potentially infinite data structures such as series, continuous fractions, etc. But there a... |

12 | Introduction to Gauss
- Gruntz, Monagan
- 1994
(Show Context)
Citation Context ...ures in a mathematically structured way was recognized many years ago. The system Axiom was built explicitly upon this principle, and the Maple package is distributed now with the public library Gauss=-=[1] -- an &qu-=-ot;object-oriented" sublanguage which heavily uses inheritance. Their learning curves are unfortunately quite steep, and their pedagogical influence is rather weak, as too many details are hidden... |

8 |
Circular programs and self-referential structures. Softwareâ€”Practice and Experience
- Allison
- 1989
(Show Context)
Citation Context ... positive integers, the Fibonacci sequence, or all the primes constructed with the aid of the Eratosthenes sieve. The construction of cyclic data structures has been also discussed in the literature (=-=[5]-=-). We found thus a useful and a little less worked domain of lazy infinite power series. An effective and simple coding of an algorithm dealing with such series is not entirely trivial. The algorithms... |

3 |
Functional Programming Environment
- Jones, Gofer
- 1991
(Show Context)
Citation Context ...n a static, declarative manner, without polluting them with countless for/while loops and other imperative constructs, which hide sometimes the clarity of the underlying strategy. We have chosen Gofer=-=[3]-=-, a popular dialect of Haskell, which permits the redefinition of the standard prelude where the properties of the standard operators are specified. We wanted to bridge the gap between formal descript... |

1 |
Lazy Functional Programming and Manipulation of Perturbation Series
- Karczmarczuk
- 1993
(Show Context)
Citation Context ...ying the continuous fraction expansion to the field of series, and reconstructing the rational form. It is possible also to apply lazy streams to the generation of graphs from their partition function=-=[7]-=-, but this is a topic too distant from the aim of this conference. 4.2 Partition Generating Function Another interesting example of the extrapolating recursion is the generation of the number of parti... |