RPN

Run Settings
LanguageF#
Language Version
Run Command
open System let evalRpnExpr (s : string) = let solve items current = match (current, items) with | "+", y::x::t -> (x + y)::t | "-", y::x::t -> (x - y)::t | "*", y::x::t -> (x * y)::t | "/", y::x::t -> (x / y)::t | _ -> (float current)::items (s.Split(' ') |> Seq.fold solve []).Head [<EntryPoint>] let main argv = [ "4 2 5 * + 1 3 2 * + /" "5 4 6 + /" "10 4 3 + 2 * -" "2 3 +" "90 34 12 33 55 66 + * - + -" "90 3 -" ] |> List.map (fun expr -> expr, evalRpnExpr expr) |> List.iter (fun (expr, result) -> printfn "(%s) = %A" expr result) Console.ReadLine() |> ignore 0 // return an integer exit code
Editor Settings
Theme
Key bindings
Full width
Lines