This is a bit of a pickle. For Real World OCaml to be a great book for OCaml almost requires Core to become the stdlib. Core is a pretty nice body of work, but I'm not a user of it myself, and I've been unable to decide if I'd like it as the standard library. There is a very strong flavor to the style. I suppose the official standard library has a bit of an "exceptional" flavor, but aside from that I feel it doesn't impose anything.

Jean, for you example, the List.iter line using the standard library would be:

    List.iter (fun x -> sum := !sum + x) list;

This kind of confusion is certainly not good for learning a language though! To resolve this, we need to clone a single person three times and send each into an alternate future: one continuing with standard library as-is, one with Core, and one with Batteries. Then bring them back so they can argue amongst each other about what was better. :)


On Sat, Nov 9, 2013 at 10:57 AM, Jean Saint-Remy <jeansaintremy@yahoo.com> wrote:
Hi,

I've been working out some of the examples in the https://realworldocaml.org/v1/en/html/a-guided-tour.html, which does utilize JaneStreet 'core' library. The new ocaml website is very impressive, as it allows you to dive right in into very fascinating idiomatic ocaml expressions. Just launching ocaml toplevel though is not enough. 

let sum list =
  let sum  = ref 0 in
  List.iter list ~f:(fun x -> sum := !sum + x);
  !sum ;;
-: Error: The function applied to this argument has type 'a list -> unit
   This argument cannot be applied with label ~f

Jean


On Saturday, November 9, 2013 5:07 AM, Gabriel Kerneis <gabriel@kerneis.info> wrote:
On Fri, Nov 08, 2013 at 07:33:35PM -0800, Jean Saint-Remy wrote:
> I am running ocaml 3.12.1 and getting an error message. Is it an incompatible
> version error or a missing 'core' module?

Since you mention 'core', are you learning OCaml with "Real-World OCaml" (and
hence trying to use JaneStreet's Core library instead of the standard one)?
That would explain the discrepancy you are seeing.


Best,

--
Gabriel

--
Caml-list mailing list.  Subscription management and archives:
https://sympa.inria.fr/sympa/arc/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs