Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
From the 'code which is valid but looks strange and might be removed in the next release of F#, but isn't a big deal anyways' department: Adding managed, generic .Net names as part of the inference proceedure process.
#light
open System.Collections.Generic
let x = new ``List`1``<int>([1..10])
Note that you need to use the double back ticks "``" in order to declare the type name, otherwise you get a syntax error. Back ticks allow you to specify a literal type name, in case it conflicts with an F# keyword. For example, you can create a C# type named 'unit'. This also allows you to write the strange, yet valid code:
let ``_`` = 3
let f x = 3 * 3
assert ((f ``_``) = 9)
Yes, using back ticks you can name an identifier '_'. Not especially useful, but interesting none the less.