How to reference F# in a research paper?
If you're writing an academic paper or journal, what should you reference for F#? Well, of course it's up to you! :-) But the topic came up here at MSR Cambridge this evening (after all, it is that time of year - POPL deadline!)
Here are some options. I've included a BibTex reference for Expert F# further below since it's not so easy to find an auto-generated one on the usual sites.
- For F# as a language,
- I recommend referencing either Expert F# (for the earliest, end-to-end description of the language) or Expert F# 2.0 (for a more up-to-date reference), or Expert F# 3.0 (for an even more up-to-date reference)
- You could also reference the (informal) F# Language Specification
- You could also reference the MSDN documentation for F#
.
- For F# quotations
- The earliest reference is Leveraging .NET meta-programming components from F#: integrated queries and interoperable heterogeneous execution.
- The feature changed substantially after this - if you want a more up-to-date reference of the actual language feature then probably use Expert F# 2.0, Chapter 9 or the MSDN documentation
.
- For F# active patterns,
- The earliest reference is this blog entry, from 16 September 2006 (for those intersted, that's around about the same time as Scala's extractors).
- The work was then published as Extensible pattern matching via a lightweight language extension
.
- For Try F#,
- The website, of course, www.tryfsharp.org
- There is a short paper called Browser-based software for technology transfer
.
- For F# asynchronous programming (and to some extent C# "await", and indeed for any language integrated value-based asynchronous programming),
- The earliest reference is Chapter 13 of Expert F# from 2007.
- The paper to reference is The F# Asynchronous Programming Model from 2010
.
- For F# Type Providers and Information Rich Progrmaming,
- For an accessible academic paper see <tomasp.net/academic/papers/inforich/>, Themes in Information-Rich Functional Programming for Internet-Scale Data Sources, In Proceedings of Data Driven Functional Programming Workshop 2013 .
- For the most complete exposition see the Microsoft Research Tech Report MSR-TR-2012-101, F#3.0 - Strongly-Typed Language Support for Internet-Scale Information Sources .
- For the earliest reference you should use this talk, The Future of F#: Data and Services at your Finger Tips from 2010.
- For a more up-to-date lecture you could use F# 3.0: data, services, Web, cloud, at your fingertips, from 2011
- For a paper reference you should use Writing F# Type Providers with the F# 3.0 Developer Preview - An Introductory Guide and Samples referencing authors Don Syme and Keith Battocchi.
- .
- The F# "first-class-event" programming model is related to both asynchronous programming and is a precursor and direct inspiration to Rx.
- The essence of first-class events was first described in a blog post from March 2006. Simplicity and Compositionality in Asynchronous Programming through First Class Events. You can also use the "tinyurl" <tinyurl.com/composingevents>
- You can also reference Rx itself
.
- For units-of-measure in F#
- The early reference is Programming Languages and Dimensions , by Andrew Kennedy.
- A later theoretical reference is Relational parametricity and units of measure .
- The version that made its way into F# can be referenced either by referencing these, or Andrew Kennedy's excellent lecture notes Types for Units-of-Measure: Theory and Practice, Andrew Kennedy. Lecture notes , for CEFP'09, Revised July 2010, to appear in LNCS .
- You can also reference some book that describes units of measure, e.g. Expert F# 2.0.
.
- For F# computation expressions
- The earliest reference is Expert F#, 2007 (see above)
- The best paper reference is Syntax Matters: Writing abstract computations in F#
- For .NET, C# and F# Generics, a still-unrivalled system for efficient, unboxed representations combined with generic code and dynamic loading,
- the earliest academic reference you should reference Design and Implementation of Generics for the .NET Common Language Runtime .
- There are a number of other options on Andrew Kennedy's summary of the publications related to C# and .NET Generics.
.
- For that bit of magic in F# called value recursion,
- This is described in the paper Initializing Mutually Referential Abstract Objects: The Value Recursion Challenge.
- It is referenced in a nice way by papers like this one, but the reference systems don't seem to pick up the existence of the paper being referenced!
.
- For some other interesting related papers, primarily by Tomas Petricek, try these:
Here is a bibtex entry for Expert F#, given here because again the academic reference systems don't seem to track books very well!
@book {springerlink:10.1007/978-1-4302-0285-1_19,
author = {Syme, Don and Granicz, Adam and Cisternino, Antonio},
title = {Expert F#},
publisher = {Apress},
isbn = {978-1-4302-0285-1},
url = {dx.doi.org/10.1007/978-1-4302-0285-1_19},
year = {2007} }
Enjoy!
Don
Comments
Anonymous
July 10, 2012
This is a very good Quick Guide for studing F#! Type Providers and Information Rich Progrmaming of F#3.0 is a great feature, since from now on, it can use F# to build large scale business projects with EDM features. However, it has some little regret that the clause of the Query Expressions does not support the Match Expressions, when using the dynamic conditions, the Match Expressions will make the query sentence more concise and beautiful, I look forward to this greate feature. Thanks zhoutaoAnonymous
July 10, 2012
Excellent, thanks!