People often ask me how to find F# jobs. I don't have any special connections to companies using F#, and I don't have any special tricks either. I wish I did!
So, given that, here's my take on F# jobs.
For job hunting my suggestions are:
let inline tryParse<'a when 'a: (static member TryParse: string * byref<'a> -> bool)> x = | |
let mutable res = Unchecked.defaultof<'a> | |
if (^a: (static member TryParse: string * byref<'a> -> bool) (x, &res)) | |
then Some res | |
else None | |
let a = tryParse<int>("19") | |
let b = tryParse<Guid>("4A9FA193-26D6-4D21-8610-02B060D43744") | |
let c = tryParse<DateTimeOffset>("ddd") |
[<AutoOpen>] | |
module PriorityQueue = | |
[<AutoOpen>] | |
module private Heap = | |
type 'a Node = | |
| Empty | |
| Node of 'a NodeData | |
and 'a NodeData = |
module TestingInterpreter = | |
open CardManagement | |
open System | |
open CardDomain | |
open CardManagement.Common.Errors | |
open CardManagement.Common.CommonTypes | |
open CardManagement.Common.CountryModule | |
open CardProgramBuilder | |
open CardManagement.Common |
(* | |
WHAT'S GOING ON HERE?! | |
Sometimes you don't care about a particular type, you're interested in one field only, let's say `EntityId`. | |
Instead of using interface (which isn't even possible if don't own a type), | |
we can do structural typing in F# using SRTP and Active Patterns. | |
Active patterns are not required for this, but they do make code much easier to use. | |
*) | |
// So we have 2 types with field `EntityId: string`: |