Someone on IRC asked a question about the following snippet of code:
|
let concat ?sep x y = |
|
let sep = match sep with None -> "" | Some x -> x in |
|
x ^ sep ^ y |
|
;; |
I noticed the snippet exercises non-recursive let-bindings, scoping, and shadowing, and I think a newcomer would easily find it confusing to read. The user mentioned it might have been to reinforce earlier-learned concepts. If so, then maybe it would be a good idea to mention this :-)
Relevant logs from IRC: https://irclog.whitequark.org/ocaml/2018-05-23#1527056651-1527058456;