Lambda in Motion: Controlling Robots with Haskell

  • John Peterson
  • Paul Hudak
  • Conal Elliott
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1551)


We present our experiences using a purely functional language, Haskell, in what has been traditionally the realm of low-level languages: robot control. Frob (Functional Robotics) is a domain-specific language embedded in Haskell for robot control. Frob is based on Functional Reactive Programming (FRP), as initially developed for Fran, a language of reactive animations. Frob presents the interaction between a robot and its stimuli, both onboard sensors and messages from other agents, in a purely functional manner. This serves as a basis for composable high level abstractions supporting complex control regimens in a concise and reusable manner.


Robot Control Functional Programming Event Stream Error Handler Continuous Behavior 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [ry94]
    K. Arya. A functional animation starter-kit. Journal of Functional Programming, 4(1):1–18, 1994.Google Scholar
  2. [Bar91]
    Joel F. Bartlett. Don’t fidget with widgets, draw! Technical Report 6, DEC Western Digital Laboratory, May 1991.Google Scholar
  3. [EH97]
    Conal Elliott and Paul Hudak. Functional reactive animation. In International Conference on Functional Programming, pages 163–173, June 1997.Google Scholar
  4. [Ell96]
    Conal Elliott. A brief introduction to Active VRML. Technical Report MSR-TR-96-05, Microsoft Research, 1996.Google Scholar
  5. [Ell98a]
    Conal Elliott. Composing reactive animations. Dr. Dobb’s Journal, July 1998. Extended version with animations at,
  6. [Ell98b]
    Conal Elliott. Fran user’s manual., July 1998.
  7. [ESYAE94]
    Conal Elliott, Greg Schechter, Ricky Yeung, and Salim Abi-Ezzi. TBAG: A high level framework for interactive, animated 3D graphics applications. In Proceedings of SIGGRAPH’ 94, pages 421–434. ACM SIGGRAPH, July 1994.Google Scholar
  8. [FJ95]
    Sigbjorn Finne and Simon Peyton Jones. Pictures: A simple structured graphics model. In Proceedings of Glasgow Functional Programming Workshop, July 1995.Google Scholar
  9. [Hen82]
    P. Henderson. Functional geometry. In Proceedings of the 1982 ACM Symposium on Lisp and Functional Programmming, pages 179–187. ACM, 1982.Google Scholar
  10. [HMGW96]
    P. Hudak, T. Makucevich, S. Gadde, and B. Whong. Haskore music notation-an algebra of music. Journal of Functional Programming, 6(3):465–483, May 1996.CrossRefGoogle Scholar
  11. [JGF86]
    Simon Peyton Jones, Andrew Gordon, and Sigbjorn Finne. Concurrent Haskell. In Proceedings of ACM Symposium on Principles of Programming Languages. ACM SIGPLAN, January 1986.Google Scholar
  12. [LZ87]
    Peter Lucas and Stephen N. Zilles. Graphics in an applicative context. Technical report, IBM Almaden Research Center, July 1987.Google Scholar
  13. [PH97]
    John Peterson and Kevin Hammond. Haskell 1.4: A non-strict, purely functional language. Technical Report YALEU/DCS/RR-1106, Department of Computer Science, Yale University, May 1997.Google Scholar
  14. [Rep91]
    John H. Reppy. CML: A higher-order concurrent language. In Conference on Programming Language Design and Implementation, pages 293–305. SIGPLAN, June 1991.Google Scholar
  15. [ZLL+88]
    S.N. Zilles, P. Lucas, T.M. Linden, J.B. Lotspiech, and A.R. Harbury. The Escher document imaging model. In Proceedings of the ACM Conference on Document Processing Systems, pages 159–168, December 1988.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1998

Authors and Affiliations

  • John Peterson
    • 1
  • Paul Hudak
    • 1
  • Conal Elliott
    • 2
  1. 1.Yale UniversityUSA
  2. 2.Microsoft ResearchUSA

Personalised recommendations