skip to main content
research-article
Open Access
Artifacts Available
Artifacts Evaluated & Reusable

Herbarium Racketensis: a stroll through the woods (functional pearl)

Published:29 August 2017Publication History
Skip Abstract Section

Abstract

Domain-specific languages are the ultimate abstraction, dixit Paul Hudak. But what abstraction should we use to build such ultimate abstractions? What is sauce for the goose is sauce for the gander: a language, of course!

Racket is the ultimate abstraction-abstraction, a platform for quickly and easily building new ultimate abstractions. This pearl demonstrates Racket's power by taking a leisurely walk through the implementation of a DSL for Lindenmayer systems, the computational model par excellence of theoretical botany.

Skip Supplemental Material Section

Supplemental Material

References

  1. Masaki Aono and Tosiyasu L. Kunii. Botanical tree image generation. IEEE Computer Graphics and Applications 4(5), 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Eli Barzilay and John Clements. Laziness without all the hard work: combining lazy and strict languages for teaching. In Proc. Functional and Declarative Programming in Education (@ICFP), 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. John D. Corbit and David J. Garbary. Computer simulation of the morphology and development of several species of seaweed Using Lindenmayer systems. Computers & Graphics 17(1), 1993.Google ScholarGoogle Scholar
  4. Ryan Culpepper and Matthias Felleisen. Fortifying macros. In Proc. ICFP, pp. 235–246, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. R. Kent Dybvig, Robert Hieb, and Carl Bruggeman. Syntactic abstraction in Scheme. Lisp and Symbolic Computation 5(4), pp. 295–326, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi, Eli Barzilay, Jay McCarthy, and Sam Tobin-Hochstadt. The Racket manifesto. In Proc. SNAPL, 2015.Google ScholarGoogle Scholar
  7. Robert Bruce Findler, John Clements, Cormac Flanagan, Matthew Flatt, Shriram Krishnamurthi, Paul Steckler, and Matthias Felleisen. DrScheme: a programming environment for Scheme. JFP 12(2), pp. 159–182, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Matthew Flatt. Composable and compilable macros: you want it when? In Proc. ICFP, pp. 72–83, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Matthew Flatt. Submodules in Racket: you want it when, again? In Proc. GPCE, pp. 13–22, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Matthew Flatt. Bindings as sets of scopes. In Proc. POPL, pp. 705–717, 2016. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Matthew Flatt, Eli Barzilay, and Robert Bruce Findler. Scribble: closing the book on ad-hoc documentation tools. In Proc. ICFP, pp. 109–120, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Matthew Flatt and Matthias Felleisen. Units: Cool modules for HOT languages. In Proc. PLDI, pp. 236–248, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Spencer Florence, Burke Fetscher, Matthew Flatt, Tina Kiguradze, Dennis P. West, Charlotte Niznik, Paul R. Yarnold, Robert Bruce Findler, and Steven M. Belknap. POP-PL: A patient-oriented prescription programming language. In Proc. GPCE, pp. 131–140, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Winfried Kurth. Specification of morphological models with L-systems and relational growth grammars. Journal of Interdisciplinary Image Science 5, 2007.Google ScholarGoogle Scholar
  15. Aristid Lindenmayer. Mathematical models for cellular interactions in development. Journal of Theoretical Biology 18, pp. 280–315, 1968. Google ScholarGoogle ScholarCross RefCross Ref
  16. Stelios Manousakis. Musical L-Systems. MS dissertation, The Royal Conservatory, The Hague, 2006.Google ScholarGoogle Scholar
  17. Pascal Müller, Peter Wonka, Simon Haegler, Andreas Ulmer, and Luc Van Gool. Procedural modeling of buildings. In Proc. Conference on Computer Graphics and Interactive Techniques, pp. 614–623, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Yoav I H Parish and Pascal Müller. Procedural generation of cities. In Proc. Conference on Computer Graphics and Interactive Techniques , pp. 301–308, 2001.Google ScholarGoogle Scholar
  19. Przemyslaw Prusinkiewicz. Applications of L-systems to computer imagery. In Proc. International Workshop on Graph Grammars and Their Application to Computer Science , 1986a.Google ScholarGoogle Scholar
  20. Przemyslaw Prusinkiewicz. Graphical applications of L-systems. In Proc. Proceedings of Graphics Interface / Vision Interface , 1986b.Google ScholarGoogle Scholar
  21. Przemyslaw Prusinkiewicz and Aristid Lindenmayer. The Algorithmic Beauty of Plants. Springer Verlag, 1990. Google ScholarGoogle ScholarCross RefCross Ref
  22. Sam Tobin-Hochstadt and Matthias Felleisen. Logical types for untyped languages. In Proc. ICFP, pp. 117–128, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Sam Tobin-Hochstadt, Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Ben Greenman, Andrew Kent, Vincent St-Amour, T. Stephen Strickland, and Asumu Takikawa. Migratory typing: Ten years later. In Proc. SNAPL , 2017.Google ScholarGoogle Scholar
  24. Sam Tobin-Hochstadt, Vincent St-Amour, Ryan Culpepper, Matthew Flatt, and Matthias Felleisen. Languages as libraries. In Proc. PLDI, pp. 132–141, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Herbarium Racketensis: a stroll through the woods (functional pearl)

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Article Metrics

        • Downloads (Last 12 months)64
        • Downloads (Last 6 weeks)4

        Other Metrics

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!