oriba has quit [Read error: Connection reset by peer]
Rakko has joined #ocaml
<Rakko>
hi
sebz has joined #ocaml
dnolen has quit [Quit: dnolen]
Associat0r has quit [Quit: Associat0r]
<hcarty>
Rakko: Hello
<Rakko>
what are the good and bad ocaml books?
<Rakko>
I remember reading about one for sale that was pretty bad, but I don't remember which it was
mnabil has joined #ocaml
<hcarty>
Rakko: I've heard that Practical OCaml is awful
<Rakko>
right now I'm reading about the drama with tim rentsch's book and Jason Hickey's free PDF
<Rakko>
oh, that was the one! apress, right?
<_habnabit>
personally I've enjoyed Ocaml For Scientists
<hcarty>
Rakko: Yes, that's the on
<hcarty>
e
<hcarty>
Hickey's book/PDF is quite nice
<hcarty>
The official manual is actually quite readable. And there is an out of print book linked from the main OCaml site which is pretty good as well.
<Rakko>
Ocaml for Scientists
<Rakko>
Only £85
<Rakko>
;)
<Rakko>
OK.
<Rakko>
hcarty: I don't see a book linked besides the manual
mjonsson has quit [Quit: Leaving]
arubin has joined #ocaml
<Rakko>
do the manual or other free resources deal well with objects?
<Rakko>
I'm wondering right now what its object model is like, e.g. compared to smalltalk, java, c++
<thelema>
Rakko: the manual deals with objects in every aspect, but pretty briefly for many aspects.
<adrien>
I'm getting an error when configuring ocamlnet-gtk2 when X is not started: Checking whether lablgtk2 has GMain.Io.add_watch with list support... Fatal error: exception Gtk.Error("GtkMain.init: initialization failed ..........)
<adrien>
that makes ocamlnet-gtk2 believe that something in lablgtk2 is broken
<adrien>
am I the only one getting that? it's not a new issue for me and I'm really wondering how distro maintainers do when they build packages without X running
abdallah has joined #ocaml
Boscop__ has joined #ocaml
lopex has quit [Ping timeout: 264 seconds]
lopex has joined #ocaml
<adrien>
actually, the code in the test is not using the right API, it's pretty weird
Anarchos has quit [Ping timeout: 252 seconds]
<adrien>
ah, no, my bad, I had misread the configure shell script
<adrien>
\o/
<adrien>
having gtkInit.cmo linked automatically was the reason ocamlnet-gtk2 couldn't run its configure outside of X, and so far it looks like my new META for lablgtk2 is working fine
<adrien>
will need for testers however, it's in git, in the adrien/META branch (I need to change the version number however, it's stille at 2.12.0 in the file), I'll ask for comments on the mailing-list and push it in 16 days I think, so better test and comment early =)
<adrien>
gah, the META currently in-use in lablgtk is still at 2.12.0 and lablgtk is at 2.14.2...
Boscop__ is now known as Boscop
lopex has quit []
Boscop has quit [Changing host]
Boscop has joined #ocaml
Boscop is now known as boscop__
boscop__ is now known as Boscop
Anarchos has joined #ocaml
blinky- has quit [Quit: /quat]
avsm has quit [Quit: Leaving.]
Modius has joined #ocaml
avsm has joined #ocaml
Modius has quit [Max SendQ exceeded]
Modius has joined #ocaml
avsm has quit [Quit: Leaving.]
spearalot has joined #ocaml
fraggle_ has quit [Remote host closed the connection]
avsm has joined #ocaml
fraggle_ has joined #ocaml
ulfdoz has joined #ocaml
sebz has quit [Quit: Computer has gone to sleep.]
blinky- has joined #ocaml
especially-corn has joined #ocaml
<especially-corn>
hello ocaml people :)
<especially-corn>
anyone in here?
<adrien>
around 110 people :P
* adrien
is actually going to leave in around 10 minutes
<Anarchos>
especially-corn yes i am
<especially-corn>
well,
<especially-corn>
i want to understand compilers better
<especially-corn>
and my searches lead me to a website
<especially-corn>
that contains files written in ocaml
<Anarchos>
ok
<especially-corn>
i was wondering if anyone here was interested in explaining the syntax to me or should i just google it
<adrien>
you should tell us what is your background (which languages do you know if any)
<especially-corn>
i actually started programming about a year ago
<especially-corn>
so i'm not that good at anything
<especially-corn>
i do a little bit of php
<especially-corn>
a little bit of bash
<especially-corn>
java
<especially-corn>
id say i'm most comfortable with java
<Anarchos>
especially-corn try to focus on one language at first
<especially-corn>
Anarchos, i can't, i study computer science at this university
<Anarchos>
especially-corn ok i opened that site
<especially-corn>
and they make us study a thousand programming languages
<Anarchos>
so where have you troubles ?
<especially-corn>
so far they shoved python, c, c++, java, prolog, (the list goes on and on) down my trought
<especially-corn>
well the syntax looks odd
jimmyrcom has joined #ocaml
<especially-corn>
im not sure what type [something] means
<Anarchos>
it just declares a type
<Anarchos>
as typedef in C
<especially-corn>
I see
<especially-corn>
why does it start with |
<flux>
the first | could actually be omitted, so it's basically for lining up the thing neatly
<Anarchos>
it introduces disjoint values
<especially-corn>
and expression * expression means if there are two expressions and there's a sign in the middle?
<flux>
basically you could read | as 'or'
<Anarchos>
especially-corn an expression is a Numeral formed by an int
<especially-corn>
so an expression can be nothing or numeral or. ..?
<Anarchos>
especially-corn the * is for cartesian product : a Plus is formed by two expresssions
<Anarchos>
especially-corn not nothing, types are always inhabited
<flux>
especially-corn, a * b (* c etc) is the type of a tuple. you could compare it to a javaclass class Tuple2 { public type_a first; public type_b second; }; etc except I'm not sure if java has public properties
<adrien>
have you ever used the combination of unions and enums in C? the enum stating the kind of data to expect in the union
<especially-corn>
adrien, i never got to use enums, i just used a array of strings
<especially-corn>
12: (** Conversion of expresions to strings. *)
<especially-corn>
thats where it starts looking weird
<especially-corn>
does ocaml's let behave in the same way as the lisp's let?
<adrien>
especially-corn: ok, so the image I had in mind won't help you
<flux>
it does, except it has special syntax for functions and it can do deconstructing of data structures
<especially-corn>
adrien, sorry...
<Anarchos>
especially-corn let is definition of things, values or functions
avsm has quit [Quit: Leaving.]
<flux>
(special syntax for functions being: let f a b = a + b in xxx would be the same as (let ((a (lambda (a b) (+ a b)))) xxx)
<flux>
actually I'm not 100% sure if that's legal CL, should work in scheme though..
<especially-corn>
is there a java equivallent of ocaml's let?
<flux>
especially-corn, not really. in java you define functions and values with different syntax.
<especially-corn>
so string_of_expression
<especially-corn>
what is it ?
<flux>
for values it would be close to: let a = 4 <==> final int a = 4;
<flux>
especially-corn, it's a function that takes one parameter, "e"
<especially-corn>
okay
<especially-corn>
that makes sense
<especially-corn>
let rec?
<flux>
it's the same as let* in lisp
<especially-corn>
i never got to use let* in lisp
<flux>
in other words, the values in the definition can define to other values in the same definition
<flux>
it is used for function definitions that are recursive
<flux>
uh, can REFER to other values
<especially-corn>
this is not going to be easy for me
<especially-corn>
let me tell you what i'm doing
<especially-corn>
as i said before i study computer science at a university
<especially-corn>
for my degree i will have to build a compiler
<especially-corn>
which seams impossible for someone with my severly limited computer knowledge
<flux>
well, from experience, I would say it's going to be much nicer in O'Caml, that it would be, say, in C++. and I imagine nicer than in Java as well.
<especially-corn>
i started reading over 10 books and dumping them one after another since i don't understand a thing
<flux>
especially-corn, did you do the exercises in those books?
<especially-corn>
flux, never got to the exercises in those books
<especially-corn>
im usually lost in the first four chapters
<flux>
(it can be said of programming as has been said of maths: it is not spectator sports)
ikaros has joined #ocaml
<flux>
especially-corn, well, have you written programs?
<especially-corn>
related to compilers no
<especially-corn>
i read this book that was written in turbo pascal
<flux>
well, you need to walk before you can run :)
<especially-corn>
and i translated the code there to java
<especially-corn>
and that worked pretty well except at one point in the book i got lost
<especially-corn>
the output had errors in it and the book never said if those should be there or not
<flux>
you should set up small incremental goals and learn to reach them 'on your own', ie, not by looking at the code from the example
<especially-corn>
well looking at the code is what will eventually make me understand i guess
<flux>
ocaml is a nice thing to learn compared to for example java, because there is little ceremony (hello "public static void main") and there is an interactive top level where you can play around in
<flux>
in any case, I doubt you would get lost in the first four chapters of Intro to OCaml, because it has exercises beginning from chapter 2
<flux>
(before getting to them, that is)
<especially-corn>
i don't get lost in the programming language books
<especially-corn>
i get lost in compiler theory books
<flux>
well, you should have a good grasp of programming when reading them, so you can relate better to what the books are talking about.
<especially-corn>
i know
<especially-corn>
it sucks to be me i guess
<flux>
may I ask how did you came to choose CS as your major?