ABSTRACT
Datatype generic programming enables programmers to define functions by induction over the structure of types on which these functions operate. This paper presents a library for datatype generic programming in F#, built on top of the .NET reflection mechanism.The generic functions defined using this library can be called by any other language running on the .NET platform.
- R. Backhouse, P. Jansson, J. Jeuring, and L. Meertens. Generic programming. In Advanced Functional Programming, pages 28–115. Springer, 1999.Google Scholar
- B. C. d. S. Oliveira and J. Gibbons. Scala for generic programmers. Journal of Functional Programming, 20(3,4):303–352, 2010.. URL http://www.comlab.ox.ac.uk/ jeremy.gibbons/ publications/ scalagp-jfp.pdf. Revised version of the WGP2008 paper. A. Granicz. Functional web and mobile development in f#. In V. Zsk, Z. Horvth, and L. Csat, editors, Central European Functional Programming School, volume 8606 of Lecture Notes in Computer Science, pages 381–406. Springer International Publishing, 2015. ISBN 978-3-319-15939-3.. URL http://dx.doi.org/10.1007/978-3-319-15940-9 9. R. Hinze and J. Jeuring. Generic Haskell: Practice and Theory. In Generic Programming, pages 1–56. Springer, 2003. Google ScholarDigital Library
- A. H˚akansson and S. Robbins. Nancy. http://nancyfx.org. P. Jansson and J. Jeuring. Polyp – a polytypic programming language extension. In Proceedings of the 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 470–482. ACM, 1997. Google ScholarDigital Library
- R. Lämmel and S. Peyton Jones. Scrap your boilerplate: A practical design pattern for generic programming. In Proceedings of the 2003 ACM SIGPLAN International Workshop on Types in Languages Design and Implementation, TLDI ’03, pages 26–37, New York, NY, USA, 2003. ACM. ISBN 1-58113-649-8.. URL http://doi.acm.org/10.1145/604174.604179. Google ScholarDigital Library
- J. P. Magalh˜aes, A. Dijkstra, J. Jeuring, and A. Löh. A generic deriving mechanism for haskell. In Proceedings of the Third ACM Symposium on Haskell, Haskell ’10, pages 37–48, 2010. ISBN 978-1-4503-0252-4.. J. P. Magalh˜aes and J. Jeuring. Generic programming for indexed datatypes. In Proceedings of the seventh ACM SIGPLAN workshop on Generic programming, pages 37–46. ACM, 2011. Google ScholarDigital Library
- N. Mitchell and C. Runciman. Uniform boilerplate and list processing. In Proceedings of the ACM SIGPLAN Workshop on Haskell Workshop, Haskell ’07, pages 49–60, New York, NY, USA, 2007. ACM. ISBN 978-1-59593-674-5.. URL http://doi.acm.org/10.1145/1291201.1291208. Google ScholarDigital Library
- T. V. Noort, A. Rodriguez, S. Holdermans, J. Jeuring, and B. Heeren. A lightweight approach to datatype-generic rewriting. In International Conference on Functional Programming, pages 13–24, 2008.. E. Rodriguez. A library for datatype generic programming in F#. http://github.com/netogallo/FSharp-Generics, 2015.Google ScholarDigital Library
- T. Sheard and S. Peyton Jones. Template meta-programming for haskell. In In Proceedings of the ACM SIGPLAN Workshop on Haskell, pages 1–16. ACM, 2002. Google ScholarDigital Library
- D. Syme. Leveraging .net meta-programming components from f#: integrated queries and interoperable heterogeneous execution. In Proceedings of the 2006 workshop on ML. ACM, 2006. URL http://research.microsoft.com/ apps/ pubs/ default.aspx? id=147193. Google ScholarDigital Library
- D. Syme, K. Battocchi, K. Takeda, D. Malayeri, J. Fisher, J. Hu, T. Liu, B. McNamara, D. Quirk, M. Taveggia, W. Chae, U. Matsveyeu, and T. Petricek. F#3.0 - strongly-typed language support for internet-scale information sources. Technical Report MSR-TR-2012-101, September 2012a. URL http://research.microsoft.com/ apps/ pubs/ default.aspx?id=173076.Google Scholar
- D. Syme, A. Granicz, and A. Cisternino. Expert F# 3.0. Apress, November 2012b. URL http://research.microsoft.com/ apps/ pubs/ default.aspx?id=192596.Google ScholarDigital Library
- E. Tsarpalis. FsPickler. http://nessos.github.io/ FsPickler, 2013.Google Scholar
- S. Weirich. Replib: A library for derivable type classes. In Proceedings of the 2006 ACM SIGPLAN Workshop on Haskell, Haskell ’06, pages 1–12, New York, NY, USA, 2006. ACM. ISBN 1-59593-489-8.. URL http://doi.acm.org/10.1145/1159842.1159844. Google ScholarDigital Library
- A. R. Yakushev, S. Holdermans, A. Lh, and J. Jeuring. Generic programming with fixed points for mutually recursive datatypes. In International Conference on Functional Programming, pages 233–244, 2009.. Google ScholarDigital Library
Index Terms
- Datatype generic programming in F#
Recommendations
Arity-generic datatype-generic programming
PLPV '10: Proceedings of the 4th ACM SIGPLAN workshop on Programming languages meets program verificationSome programs are doubly-generic. For example, map is datatype-generic in that many different data structures support a mapping operation. A generic programming language like Generic Haskell can use a single definition to generate map for each type. ...
The early history of F#
This paper describes the genesis and early history of the F# programming language. I start with the origins of strongly-typed functional programming (FP) in the 1970s, 80s and 90s. During the same period, Microsoft was founded and grew to dominate the ...
Robotics reactive programming with F#/Mono
CEE-SECR '14: Proceedings of the 10th Central and Eastern European Software Engineering Conference in RussiaAll that computing power of modern controllers has made possible the use of modern programming languages, different paradigms, and libraries even for embedded systems development. This also provides new capabilities for modern trends of software ...
Comments