5 ms·
F# has diverged from OCaml a bit, but they're still very similar. I mentioned in a top-level comment that F#'s "lightweight" syntax is basically what I want wh
by rpeden 1y ago
F# has diverged from OCaml a bit, but they're still very similar.
I mentioned in a top-level comment that F#'s "lightweight" syntax is basically what I want when I use OCaml. I know ReasonML is a thing, but if I'm writing OCaml I don't want it to look more JavaScripty - I prefer syntax like "match x with" over "switch(x)" for pattern matching, for example.
I know some people dislike the way F#'s newer syntax makes whitespace significant, and that's fair. But the older verbose syntax is there if you need or want to use it. For example, something like
let things =
let a = 1 in
let b = 2 in
let c = 3 in
doSomething a b c
should still work in F# like it would in OCaml.
- yawaramin 1y ago> F#'s "lightweight" syntax is basically what I want It's actually not that far off. For definitions that don't need to be self-referential you can use 'and': let things = let a = 1 and b = 2 and c = 3 in do_something a b c
- rpeden 1y agoThank you! I knew this, but of course blanked on it when I came up with an Ocaml example. There are a few other places I prefer F#'s syntax, but overall it's not the reason I'd pick F# over OCaml for a project. It's usually mostly about needing to integrate with other .NET code or wanting to leverage .NET libraries for specific use cases. Can't lose either way - they're both a please to work with.