My Brainfuck interpreter in F#
Let me make a few comments:


F# has a good system of type inference. You don't need to specify the type explicitly, the compiler in many cases will do it for you. You can read more about it here.
In function getValue. Usually, matched with None|Some value:

match Map.tryFind position memory with
    | None  -&gt; 0
    | Some value -&gt; value


Although you can rewrite this code with using defaultArg

let getValue position memory =
    defaultArg (Map.tryFind position memory) 0 

In function updateIndex you can check the value with 0 in match:

let updateIndex (code:string) index value =
    match code.[index], value = 0 with
    | '[', true  -&gt; findMatch code ']' '['  1 (index + 1) 0
    | ']', false -&gt; findMatch code '[' ']' -1 (index - 1) 0
    | _      -&gt; index + 1

The helper functions better write as nested: 

let interpret (code:string) =
    let rec interpretHelper index memory position =


You can read more about it here
In function interpretHelper, use if-then-else instead of PM:

let rec interpretHelper index memory position =
    if code |&gt; String.length = index  then
        memory
    else ...