Skip to main content Accessibility help

A combinator library for the design of railway track layouts


In the design of railway track layouts, there are only a small number of geometric configurations that are used in practice, and a number of constraints as to how those configurations can be fitted together to create a whole layout. In order to solve these problems, we construct a Haskell combinator library. The library has been used for the design of real-world track layouts.

Hide All
Adobe Systems (2000) PDF Reference. Adobe Press.
Bird, R. (1998) Introduction to Functional Programming Using Haskell. 2nd ed., Prentice Hall.
Cope, G. H. (1993) British Railway Track. 6th ed., Permanent Way Institution.
Karczmarczuk, J. (2001) Functional differentiation of computer programs. Higher-Order and Symb. Comput, 14 (1), 3557.
Peyton Jones, S. (ed) (2003) Haskell 98 Language and Libraries—The Revised Report. Cambridge, England, UK: Cambridge University Press.
Pfeiffer, R. E. & van Hook, C. (1993) Circles, vectors, and linear algebra. Math. Mag., 66 (2), 7586.
Press, W. H., Teukolsky, S. A., Vetterling, W. T. & Flannery, B. P. (2007) Numerical Recipes. 3rd ed., Cambridge, England, UK: Cambridge University Press.
Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Journal of Functional Programming
  • ISSN: 0956-7968
  • EISSN: 1469-7653
  • URL: /core/journals/journal-of-functional-programming
Please enter your name
Please enter a valid email address
Who would you like to send this to? *


Altmetric attention score

Full text views

Total number of HTML views: 0
Total number of PDF views: 0 *
Loading metrics...

Abstract views

Total abstract views: 0 *
Loading metrics...

* Views captured on Cambridge Core between <date>. This data will be updated every 24 hours.

Usage data cannot currently be displayed

A combinator library for the design of railway track layouts

Submit a response


No Discussions have been published for this article.


Reply to: Submit a response

Your details

Conflicting interests

Do you have any conflicting interests? *