Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the correct way to call DateTime.TryParse from F#?

Tags:

.net

f#

tryparse

What is the correct way to call DateTime.TryParse from F#? I am trying to test some code from F# interactive and I can't figure out how to pass a mutable DateTime into the second argument by ref. What is the in/out/ref syntax in F#?

This is the method signature I'm looking at: http://msdn.microsoft.com/en-us/library/ch92fbc1.aspx?cs-save-lang=1&cs-lang=fsharp#code-snippet-1

like image 709
BuddyJoe Avatar asked Nov 27 '12 17:11

BuddyJoe


2 Answers

Chris's answer is correct if you really need to pass a mutable DateTime by reference. However, it is much more idiomatic in F# to use the compiler's ability to treat trailing out parameters as tupled return values:

let couldParse, parsedDate = System.DateTime.TryParse("11/27/2012") 

Here, the first value is the bool return value, while the second is the assigned out parameter.

like image 188
kvb Avatar answered Sep 20 '22 18:09

kvb


Here's how to execute DateTime.TryParse in F#:

let mutable dt2 = System.DateTime.Now let b2 = System.DateTime.TryParse("12-20-04 12:21:00", &dt2) 

Where the & operator finds the memory address of dt2 in order to modify the reference.

Here's some additional information on F# parameter syntaxt.

like image 40
Chris Avatar answered Sep 20 '22 18:09

Chris