Hacker News new | ask | show | jobs
by smosher_ 4016 days ago
The idea is you can write this:

    let _ = print_string "foo"
    let _ = print_string "bar"
at the top level.

Of course you can write

    let msg = "foo" in print_string msg
    let msg = "bar" in print_string msg
(which isn't at issue, except no semicolons are needed.)

But you can't write

    print_string "foo"
    print_string "bar"
without semicolons.
1 comments

> The idea is you can write this:

>

> let _ = print_string "foo"

> let _ = print_string "bar"

>

> at the top level.

Ah. Well, the solution is not use "let _" or ";;", the solution is to avoid sociopathic code like that. Module definition with built-in, unavoidable side effects are evil.

You need at least one module that does something at top-level, otherwise your program won't do anything.
For serious development, yes, but consider the people who are learning OCaml. One of the first programs is going to be some kind of side effecting hello world etc.