yauz has quit [Read error: 60 (Operation timed out)]
cjohnson has quit [Connection timed out]
cjohnson has joined #ocaml
lambdawar has quit ["Leaving"]
GreyLensman has quit ["Leaving"]
lambdawar has joined #ocaml
GreyLensman has joined #ocaml
GreyLensman has quit ["Leaving"]
async has joined #ocaml
<gzl>
what does 'info' do in type declarations? e.g. type foo = bar of info | baz of info
<gzl>
can't seem to find anything about it in my PDFs
<Smerdyakov>
It's probably a type defined earlier.
<gzl>
hrm, didn't seem to be, let me check again though.
<Smerdyakov>
grep for "type info".
<gzl>
aha, there we go. dunno what I screwed up before. sorry about that
mrsolo has joined #ocaml
<debona|r>
What is this Some exactly?
<debona|r>
like in : type 'a option = None | Some of 'a
<gzl>
ocaml doesn't have a 'nil' value that can be assigned to variables of any type, so the None case represents a nil value, while the Some case handles non-nil values. (that's my understanding; i'm a newbie too)
<gzl>
for example, if you wanted to write a function that returns a certain element of a list, but it's not guaranteed that such an element exists, you'd use an option
Herrchen_ has joined #ocaml
<Smerdyakov>
debona|r, were you asking about the option type or about the datatype definition syntax?
Herrchen has quit [Read error: 110 (Connection timed out)]
cjohnson has quit [Read error: 110 (Connection timed out)]
cjohnson has joined #ocaml
ne1 has quit ["To understand recursion, you must first understand recursion."]
monotonom has joined #ocaml
cjohnson has quit [Connection timed out]
cjohnson has joined #ocaml
CosmicRay has joined #ocaml
yauz_ is now known as yauz
<debona|r>
Smerdyakov: I'm asking what exactly the 'Some' means in that statement?
Snark has joined #ocaml
Snark has quit [Read error: 60 (Operation timed out)]
CosmicRay has quit [Operation timed out]
cjohnson has quit [Read error: 110 (Connection timed out)]
cjohnson has joined #ocaml
<Herrchen_>
moin
maihem has quit ["Read error: 54 (Connection reset by chocolate)"]
async has quit [Read error: 110 (Connection timed out)]
Boojum has joined #ocaml
Boojum is now known as Snark
Snark has quit [Client Quit]
kosmikus|away is now known as kosmikus
Herrchen_ is now known as Herrchen
<debona|r>
moin?
cjohnson has quit [Read error: 110 (Connection timed out)]
<Herrchen>
moin ~= hello
cjohnson has joined #ocaml
<debona|r>
mornin' ?
<Herrchen>
no - it looks like, but it's in fact slang for "guten tag"
<Herrchen>
which is hello/good day
cjohnson has quit [orwell.freenode.net irc.freenode.net]
monotonom has quit [orwell.freenode.net irc.freenode.net]
Herrchen has quit [orwell.freenode.net irc.freenode.net]
debona|r has quit [orwell.freenode.net irc.freenode.net]
greenrd has quit [orwell.freenode.net irc.freenode.net]
Hadaka has quit [orwell.freenode.net irc.freenode.net]
gl has quit [orwell.freenode.net irc.freenode.net]
lambdawar has quit [orwell.freenode.net irc.freenode.net]
yauz has quit [orwell.freenode.net irc.freenode.net]
vezenchio has quit [orwell.freenode.net irc.freenode.net]
mattam has quit [orwell.freenode.net irc.freenode.net]
Banana has quit [orwell.freenode.net irc.freenode.net]
Smerdyakov has quit [orwell.freenode.net irc.freenode.net]
kosmikus has quit [orwell.freenode.net irc.freenode.net]
shawn has quit [orwell.freenode.net irc.freenode.net]
sundeep has quit [orwell.freenode.net irc.freenode.net]
dan|el has quit [orwell.freenode.net irc.freenode.net]
mellum has quit [orwell.freenode.net irc.freenode.net]
seafood has quit [orwell.freenode.net irc.freenode.net]
gzl has quit [orwell.freenode.net irc.freenode.net]
cmeme has quit [orwell.freenode.net irc.freenode.net]
Hipo has quit [orwell.freenode.net irc.freenode.net]
pattern has quit [orwell.freenode.net irc.freenode.net]
Lemmih has quit [orwell.freenode.net irc.freenode.net]
lam has quit [orwell.freenode.net irc.freenode.net]
cm47` has quit [orwell.freenode.net irc.freenode.net]
yella has quit [orwell.freenode.net irc.freenode.net]
Riastradh has quit [orwell.freenode.net irc.freenode.net]
buggs has quit [orwell.freenode.net irc.freenode.net]
slashvar[lri] has quit [orwell.freenode.net irc.freenode.net]
Lemmih_ has joined #ocaml
cjohnson has joined #ocaml
slashvar[lri] has joined #ocaml
cm47` has joined #ocaml
lam has joined #ocaml
yella has joined #ocaml
mellum has joined #ocaml
seafood has joined #ocaml
Hipo has joined #ocaml
kosmikus has joined #ocaml
Banana has joined #ocaml
gzl has joined #ocaml
Smerdyakov has joined #ocaml
Hadaka has joined #ocaml
gl has joined #ocaml
cmeme has joined #ocaml
Riastradh has joined #ocaml
dan|el has joined #ocaml
greenrd has joined #ocaml
Lemmih has joined #ocaml
pattern has joined #ocaml
shawn has joined #ocaml
mattam has joined #ocaml
buggs has joined #ocaml
vezenchio has joined #ocaml
debona|r has joined #ocaml
yauz has joined #ocaml
lambdawar has joined #ocaml
Herrchen has joined #ocaml
ionOS has joined #ocaml
_fab has joined #ocaml
smimou has joined #ocaml
sundeep has joined #ocaml
Lemmih has quit [Read error: 110 (Connection timed out)]
greenrd is now known as greenrd_ill
pattern has quit [orwell.freenode.net irc.freenode.net]
Lemmih_ has quit [orwell.freenode.net irc.freenode.net]
yella has quit [orwell.freenode.net irc.freenode.net]
cm47` has quit [orwell.freenode.net irc.freenode.net]
lam has quit [orwell.freenode.net irc.freenode.net]
Riastradh has quit [orwell.freenode.net irc.freenode.net]
buggs has quit [orwell.freenode.net irc.freenode.net]
slashvar[lri] has quit [orwell.freenode.net irc.freenode.net]
ionOS has quit [orwell.freenode.net irc.freenode.net]
debona|r has quit [orwell.freenode.net irc.freenode.net]
greenrd_ill has quit [orwell.freenode.net irc.freenode.net]
gl has quit [orwell.freenode.net irc.freenode.net]
Herrchen has quit [orwell.freenode.net irc.freenode.net]
Hadaka has quit [orwell.freenode.net irc.freenode.net]
vezenchio has quit [orwell.freenode.net irc.freenode.net]
Banana has quit [orwell.freenode.net irc.freenode.net]
lambdawar has quit [orwell.freenode.net irc.freenode.net]
smimou has quit [orwell.freenode.net irc.freenode.net]
Smerdyakov has quit [orwell.freenode.net irc.freenode.net]
yauz has quit [orwell.freenode.net irc.freenode.net]
mattam has quit [orwell.freenode.net irc.freenode.net]
kosmikus has quit [orwell.freenode.net irc.freenode.net]
sundeep has quit [orwell.freenode.net irc.freenode.net]
cjohnson has quit [orwell.freenode.net irc.freenode.net]
dan|el has quit [orwell.freenode.net irc.freenode.net]
seafood has quit [orwell.freenode.net irc.freenode.net]
gzl has quit [orwell.freenode.net irc.freenode.net]
Hipo has quit [orwell.freenode.net irc.freenode.net]
cmeme has quit [orwell.freenode.net irc.freenode.net]
mellum has quit [orwell.freenode.net irc.freenode.net]
shawn has quit [orwell.freenode.net irc.freenode.net]
_fab has quit [orwell.freenode.net irc.freenode.net]
cjohnson has joined #ocaml
Lemmih_ has joined #ocaml
sundeep has joined #ocaml
smimou has joined #ocaml
_fab has joined #ocaml
ionOS has joined #ocaml
Herrchen has joined #ocaml
lambdawar has joined #ocaml
yauz has joined #ocaml
debona|r has joined #ocaml
vezenchio has joined #ocaml
buggs has joined #ocaml
mattam has joined #ocaml
shawn has joined #ocaml
pattern has joined #ocaml
greenrd_ill has joined #ocaml
dan|el has joined #ocaml
Riastradh has joined #ocaml
cmeme has joined #ocaml
gl has joined #ocaml
Hadaka has joined #ocaml
slashvar[lri] has joined #ocaml
cm47` has joined #ocaml
lam has joined #ocaml
yella has joined #ocaml
mellum has joined #ocaml
seafood has joined #ocaml
Hipo has joined #ocaml
kosmikus has joined #ocaml
Banana has joined #ocaml
gzl has joined #ocaml
Smerdyakov has joined #ocaml
debona|r has quit [orwell.freenode.net irc.freenode.net]
greenrd_ill has quit [orwell.freenode.net irc.freenode.net]
cjohnson has quit [orwell.freenode.net irc.freenode.net]
Hadaka has quit [orwell.freenode.net irc.freenode.net]
gl has quit [orwell.freenode.net irc.freenode.net]
ionOS has quit [orwell.freenode.net irc.freenode.net]
Herrchen has quit [orwell.freenode.net irc.freenode.net]
Banana has quit [orwell.freenode.net irc.freenode.net]
yauz has quit [orwell.freenode.net irc.freenode.net]
lambdawar has quit [orwell.freenode.net irc.freenode.net]
smimou has quit [orwell.freenode.net irc.freenode.net]
sundeep has quit [orwell.freenode.net irc.freenode.net]
vezenchio has quit [orwell.freenode.net irc.freenode.net]
kosmikus has quit [orwell.freenode.net irc.freenode.net]
Smerdyakov has quit [orwell.freenode.net irc.freenode.net]
mattam has quit [orwell.freenode.net irc.freenode.net]
dan|el has quit [orwell.freenode.net irc.freenode.net]
seafood has quit [orwell.freenode.net irc.freenode.net]
gzl has quit [orwell.freenode.net irc.freenode.net]
cmeme has quit [orwell.freenode.net irc.freenode.net]
mellum has quit [orwell.freenode.net irc.freenode.net]
Hipo has quit [orwell.freenode.net irc.freenode.net]
shawn has quit [orwell.freenode.net irc.freenode.net]
_fab has quit [orwell.freenode.net irc.freenode.net]
cjohnson has joined #ocaml
sundeep has joined #ocaml
smimou has joined #ocaml
_fab has joined #ocaml
ionOS has joined #ocaml
Herrchen has joined #ocaml
lambdawar has joined #ocaml
yauz has joined #ocaml
debona|r has joined #ocaml
vezenchio has joined #ocaml
mattam has joined #ocaml
shawn has joined #ocaml
greenrd_ill has joined #ocaml
dan|el has joined #ocaml
cmeme has joined #ocaml
gl has joined #ocaml
kosmikus has joined #ocaml
Hipo has joined #ocaml
seafood has joined #ocaml
mellum has joined #ocaml
Banana has joined #ocaml
gzl has joined #ocaml
Smerdyakov has joined #ocaml
Hadaka has joined #ocaml
cjohnson has quit [Connection timed out]
cjohnson has joined #ocaml
vincenz has joined #ocaml
sundeep has quit ["Client exiting"]
cjohnson has quit [Connection timed out]
cjohnson has joined #ocaml
CosmicRay has joined #ocaml
mrsolo has quit [Read error: 113 (No route to host)]
vezenchio has quit ["Join the fight against drunken calculus: Don't drink and derive!"]
vezenchio has joined #ocaml
smimram has joined #ocaml
smimou has quit [Read error: 110 (Connection timed out)]
cjohnson has quit [Connection timed out]
cjohnson has joined #ocaml
pac_away has joined #ocaml
pac_away is now known as pac_
<pac_>
Hi
smimram is now known as smimou
GreyLensman has joined #ocaml
vezenchio has quit ["Join the fight against drunken calculus: Don't drink and derive!"]
Lemmih_ is now known as Lemmih
bk_ has joined #ocaml
cjohnson has quit [Read error: 110 (Connection timed out)]
cjohnson has joined #ocaml
eigenspace has joined #ocaml
eigenspace has quit ["Leaving"]
andrewb has joined #ocaml
mrsolo has joined #ocaml
CosmicRay has quit [Read error: 60 (Operation timed out)]
<debona|r>
hey pac_
<pac_>
debona|r: how are you doing ?
kosmikus is now known as kosmikus|away
jynxzero has joined #ocaml
<jynxzero>
How does tail recursion interact with lazyiness? I have a lazy function which operates on a stream. It contains a loop which is tail recursive. Yet, it is failing with Stack_overflow when forced.
<jynxzero>
set novice off
<Riastradh>
It interacts badly, if OCaml's interface to laziness operates as I think it does.
<jynxzero>
OK, I will have a look. Do you think then, that deeply recusrive functions on streams are impossible, or can it be worked around?
<Riastradh>
What SRFI 45 calls 'promises' are values of type 'a lazy.t; what SRFI 45 calls DELAY is what OCaml calls lazy; what SRFI 45 calls LAZY has no analogue in OCaml; what SRFI 45 calls EAGER is what OCaml calls lazy_from_val.
CosmicRay has joined #ocaml
<Riastradh>
OCaml needs an analogue of SRFI 45's LAZY in order for it to work correctly.
<Riastradh>
You may need to reimplement the Lazy module, but that's not difficult (see SRFI 45's reference implementation; it translates easily enough to OCaml).
<jynxzero>
OK, thanks that is certainly enough to get me going.
sam_ has joined #ocaml
<gzl>
How would I avoid repeating the call to "eval t2" in the following match clause: Foo(a,b,c) when satisfiesproperty (bar b) -> bar b?
<gzl>
er, the call to "bar b"
<Smerdyakov>
Use 'if' in the case body instead of 'when'.
<gzl>
how does that avoid the repeated call?
<Smerdyakov>
Foo(a,b,c) -> let x = bar b in if satisfiesproperty x then x else <other case>
<gzl>
but that would match all expressions of the form Foo(a,b,c), not just the ones where bar b satisfies the property. I have a second match for Foo(a,b,c) when another property is satisfied
<gzl>
or am I misunderstanding how match works?
<pac_>
game, set and match :)
<Smerdyakov>
Right, so you may have to reorganize the structure.
<gzl>
hmm
<sam_>
when is evil
<gzl>
when is evil?
<gzl>
seems really useful
<gzl>
Smerdyakov: ok, thanks, i'll think about it
CosmicRay has quit [Read error: 60 (Operation timed out)]
<sam_>
you can do what you want by getting rid of 'when', and doing a submatch. other than that, i don't think you can do it
<gzl>
ok
<gzl>
thanks
cjohnson has quit [Connection timed out]
cjohnson has joined #ocaml
<jynxzero>
gzl: Not sure exactly what you are trying to do. How about naming the property with let prop = bar b before the match. It will then be evaluated only once no matter how many times it us used in the match.
<sam_>
..it'll then be evaluated, if it the match would not get to the specific case
<sam_>
and you don't have 'b' until you deconstruct Foo, so it wouldn't work anyway
<jynxzero>
True. :)
<gzl>
yeah, what sam said
mfurr has joined #ocaml
<debona|r>
# let i = [1; 2; 3;];;
<debona|r>
val i : int list = [1; 2; 3]
<debona|r>
# let q = i :: [5];;
<debona|r>
This expression has type int but is here used with type int list
<debona|r>
why doesn't this work?
<pac_>
debona|r: beacause !!!!
<debona|r>
:P
<debona|r>
do tell?
<Lemmih>
Use '@' instead of '::'.
<debona|r>
eh?
<bk_>
q = i :: 5 ;;
<pac_>
exactly :)
<pac_>
debona|r: check the type of :: operator
<debona|r>
oh, the first arg needs to be an int?
<debona|r>
ah
<jynxzero>
Yup. You can append two lists with (@)
<debona|r>
let q = 5 :: i;; does work :)
<bk_>
int list is a list, not a list of lists, thats why ::[5} doesn't work
<jynxzero>
let q = i @ [x]
<debona|r>
I'm still having to learn the interpreters error msgs
<debona|r>
thanks
<pac_>
debona|r: it's bad french to english translation
<debona|r>
that's what the tutorial said
<debona|r>
why doesn't someone fix it?
<Banana>
fixed what ?
<bk_>
the tutorial he means
<Banana>
ho ?
<debona|r>
the bad french to english translation in the error messages of the interpreter
<Banana>
there's a typo in the tutorial ?
<sam_>
anyone else played with the new object model coming in 3.08?
<bk_>
not yet
<sam_>
..i'm kind of feeling that finally objects in ocaml will be useful for something :-)
<pac_>
sam_: where is the new object model described ?
<Banana>
is it a new object model or a new object implementation ?
<pac_>
sam_: lol
<sam_>
pac, it's not
<Banana>
did the typing rules changed ?
<sam_>
banana, both, new object model and implementation
<Banana>
hum...
<mattam>
i don't think so
<mattam>
really ? what's new ?
<sam_>
banana, e.g. you can now specify objects without specifying classes.. e.g. let a = object method foo x = x + 1 end
<Banana>
nice.
<debona|r>
how would I write a function 'sum' that can add both floats and ints?
<Banana>
debona|r: you cannot.
<debona|r>
no overloading either?
<Banana>
the + operator is not overloaded.
<Banana>
no.
<debona|r>
I mean, I can't write an overloaded function sum?
<Banana>
no.
<debona|r>
is there no function to check a type of a variable, and do something with that?
<Riastradh>
No. Variables and types exist only at compile-time, so it would be meaningless to have a function that would determine the type of a variable at run-time.
<buggs>
type number = Float of float | Integer of integer ?
<pac_>
debona|r: you may have a function which takes 2 ints or 2 floats and return the sum
<sam_>
pac, you can? :-)
<debona|r>
pac_: ok.. how would I do that? with a match?
<mattam>
pac_: how would you do that ?
<debona|r>
buggs: I thought about that too, but then how would you add the type number?
<pac_>
mattam: well with a match using the type number for example
<pac_>
type number described above
<mattam>
oh yes
<sam_>
pac, but then that takes two numbers, not to floats or two ints
<pac_>
but BUT the function will always have to return a float as result
<mattam>
:)
<pac_>
sam_: yes :)
<mattam>
it can return a number
<pac_>
mattam: if you want
<buggs>
let add pair = match pair with (Integer(i),Integer(j)) -> i + j | (Float(i),Float(j) -> Float.add i j in add(Integer(1), Integer(2)) ?
<buggs>
let add pair = match pair with (Integer(i),Integer(j)) -> Integer(i + j) | (Float(i),Float(j) -> Float(Float.add i j) in add(Integer(1), Integer(2)) ?
<mattam>
buggs ?
<debona|r>
and pair would be what?
<buggs>
debona|r, see "in"
<buggs>
there is no Float.add btw it's called "+." in ocaml
<pac_>
sam_: where may I find information about OCaml 3.08 ?
<bk_>
in the Changelog :>
<pac_>
bk_: 3.07 ?
<bk_>
no, 3.08 its on inrias cvs
<debona|r>
dunno, I still don't have a working function :P
<pac_>
debona|r: keep working :)
<buggs>
debona|r, let add pair = match pair with (Integer(i),Integer(j)) -> Integer(i + j) | (Float(i),Float(j)) -> Float(i +. j) in add(Integer(1), Integer(2)) ;;
<pac_>
bk_: okiii in the CVS when will it be released?
<buggs>
debona|r, and the type you define before that: type number = Float of float | Integer of int;;
<debona|r>
wish there had been a port in fbsd.. had to hunt fo rit
<debona|r>
starting chapter 7... it's slow going when trying to read mysql, java at the same time
<sam_>
that's easy.. play with ocaml for some time, and you'll never want to touch java again.. ..which can be a problem if you work professionally as a java developer, like me :-)
<pac_>
you may also replace Java by c++ or C
<pac_>
in your statement sam_
<pac_>
:)
<debona|r>
I don't ever want to touch Java again
<debona|r>
either way, I mean
<debona|r>
but I'm preparing for an interview
<debona|r>
hope to god I wont have to use it much
GreyLensman has quit ["Leaving"]
<sam_>
at least java is getting generics in the 1.5/5.0 release.. now if it would get proper lexical scoping and first class functions
<mellum>
sam_: that's reserved for version 6*10^23
<gzl>
is there a canonical example for showing off why first class functions are so useful?
<Banana>
map.
<buggs>
sam_, you just wrap them in an bject
<buggs>
*object
CosmicRay has joined #ocaml
<Banana>
or sort.
<debona|r>
are you guys all CS majors, or come from other backgrounds?
<pac_>
CS ?
<Banana>
Computer Science.
<pac_>
aah lol
<Banana>
(me think).
<buggs>
computer linguistics here
<pac_>
debona|r: yep but in Computer Graphics for me
<gzl>
Banana: ok, thanks
<Lemmih>
<- still in highschool.
<debona|r>
computer graphics, and you do programming?
<debona|r>
that doesn't seem common
<pac_>
debona|r: yeah I need to program to get nice image :)
<sam_>
buggs, it gets really ugly and verbose
<buggs>
sam_, you need like 12 lines for hello world in java ... ;)
<Smerdyakov>
debona|r, "computer graphics" in CS academia means developing algorithms for generating graphics, not using premade packages.
<debona|r>
you need like 100 lines and 17 objects to read from a file in java :P
<debona|r>
Smerdyakov: gotcha
<pac_>
Smerdyakov: thx
<gzl>
debona|r: i'm math and cs (while we're sharing). what are you?
<debona|r>
I did robotics
<Smerdyakov>
debona|r is a kitty cat.
<gzl>
heheh
<gzl>
ah, robotics, neat.
<debona|r>
well, i'm not doing it anymore
<gzl>
ok
<debona|r>
i've been programming my whole professional career
<debona|r>
in retrospect I wish I had taken CS, but then again, I always seem to hate whatever I've studied, so who knows
<Smerdyakov>
debona|r, that probably puts you at a disadvantage with people like me, who have been programming approximately since they learned to read. :)
ithkuil has joined #ocaml
<debona|r>
Smerdyakov: it sure does...
<debona|r>
I still stumble on terminology
<ithkuil>
if method calls are always late bound and i can't overload then maybe ill ignore oop in ocaml and do something similar with sum types?
<Smerdyakov>
ithkuil, I think most of us usually ignore OO in OCaml.
<pac_>
Smerdyakov: why ?
<debona|r>
programming with this tail-recursive stuff will take some taking use to, I gather
<ithkuil>
this sum type thing i dont think i really understand it but i think it sort of do the same things im used to with oo
<Smerdyakov>
pac_, why ignore OO, you mean?
<ithkuil>
why ignore it
<Smerdyakov>
Because it's a poor fit for most problems
<pac_>
Smerdyakov: tss troll
<Smerdyakov>
pac_, ?
<pac_>
Smerdyakov: sometimes you need OO other times not
<Riastradh>
pac_, that does not contradict Smerdyakov; indeed, you have just stated that you essentially agree with him.
<sam_>
pac, in most cases using higher order functions is much more convenient than OO.. although, i think with classless objects coming in 3.08, using objects as generalizations of closures will make objects much more useful
<pac_>
Riastradh: yep but I can't quantify when you use OO and when not using it is a complex process according to the problem you have to solve to use it or not
<Riastradh>
pac_, most of the time you don't use it.
<pac_>
Riastradh: may be you not me
<Riastradh>
s/you/OCaml programmers/1
<pac_>
Riastradh: aaaah that's different :)
<pac_>
Riastradh: indeed when I use OCAML I only use the Caml-light part most of the time...
<Smerdyakov>
The official sources say that "OCaml" is the correct capitalization!
<pac_>
Smerdyakov: lol
<pac_>
Smerdyakov: noted
<Riastradh>
With an optional apostrophe between the O and the C.
<Banana>
it's Irish ?
<Banana>
(sorry... had to do this one, pretty lame though).
<ithkuil>
im i getting too excited about the sum type thing or is the answer to my abstraction problems
<ithkuil>
maybe i should understand modules better
<ithkuil>
oh, i get it banana
<ithkuil>
damn im quick today
<pac_>
loool
<Smerdyakov>
ithkuil, I wouldn't say that sum types and modules are too closely related semantically.
greenrd_ill has quit [Client Quit]
<ithkuil>
well what i meant as the answer to my abstraction problems was i am used to taking an oo approach to a problem with subclassing and overloading, and i discoverd the other day i could get similar effects using sum types
<ithkuil>
is sum type equivalent to variant type
<Banana>
there is a variant type to.
<Banana>
you cannot extend a sum type/
<Banana>
neither can you share the same tags between 2 sum types.
<Smerdyakov>
Ignoring the fancy (and horrendous) "polymorphic variants" of OCaml, I would answer with: Sum types are the type theoretical encoding of OCaml variant types.
* Smerdyakov
reads the first abstract interpretation paper by Cousot & Cousot.
<pac_>
Smerdyakov: url?
<Smerdyakov>
These guys don't know English and they don't care. :D
<Banana>
Patrick "Bow before me for what I say is Sacred" Cousot.
<Banana>
I went to one of his lesson.
<Banana>
introduction to abstract interpretation.
<Banana>
i did not go to the following.
<Banana>
the only Name in the bibliography was cousot.
<pac_>
Banana: two french guys working in Grenoble
<Banana>
I try to tell him that assuming we were used to "correspondances de Gallois" (don't know how to translate) was a strong hypothesis.
<Banana>
and just stared at me and the others as if we were stupid morrons.
<Banana>
(which we can be, but still).
<ithkuil>
The last example of the preceding section showed the advantages that there are in mixing the two models for the problem of the extensibility of components. We now propose to mix parameterized modules and late binding to benefit from the power of these two features
<Banana>
there was a summer school recently with many Professor (X. Leroy, Cousot, ...) Every one gave good course notes, that you can actually use as a starting reference.
<ithkuil>
Emmanuel CHAILLOUX - Pascal MANOURY - Bruno PAGANO
<Banana>
Cousot just printed the BibteX entry of his papers.
<Banana>
and a pointer to his web page.
<pac_>
ithkuil: yeah I know this is a french book :)
<Banana>
where his papers are protected by a password :/
<pac_>
Banana: loooooooooool
<pac_>
Banana: he looks like an old school french professor this Cousot guy
<Banana>
he his.
<pac_>
damned
<ithkuil>
should i learn to mix parameterized modules and late binding then
<Banana>
I mean I do not juge him on his work.
<pac_>
only on its personality :)
<Banana>
He is famous for this and all respected troughout the community for it.
<Banana>
but the old man is just horrible.
<pac_>
Banana: senile ?
<Banana>
not at all.
<Banana>
Juste imbu de sa personne et suffisant.
* Banana
closes the Cousot topic.
<pac_>
lol
<Banana>
just felt like bitching on someone this evening.
greenrd has joined #ocaml
<Smerdyakov>
Banana, or we can just shadow it. let cousot = 42 in ...
<Banana>
yeah.
<pac_>
Banana: may be you just have been frustated with the answer he gave you
<pac_>
:)
<Banana>
that's part of it.
<ithkuil>
ok so but parametric modules thats a useful tool?
<mattam>
interestingly, you didn't tell me about that ever Banana :)
<Banana>
I said something like "Coq is more or less only syntactic".
<Banana>
mattam: genre...
<sam_>
banana, ..i kind of feel that there is a pretty much of the "i'm smarter than you, this stuff is complex, so you cant possible comprehend it on the level i do, so i wont even bother with discussing with you" attitude in the ocaml dev team too
<Banana>
no.
<Banana>
not for the main dev, afaik.
<Banana>
i spoke with some of them and some of them where my teacher.
<pac_>
Banana: like who ?
<Banana>
I had François Pottier in Typing Course.
<Banana>
and I spoke with X L for an internship at inria.
<Banana>
mattam: oh damn you, code that in CoQ and stfu.
<pac_>
sam_: did you have a bad experience with the OCaml team ?
<mattam>
;)
<sam_>
pac, not me specifically, but for the about 5 years that i've been following the ocaml mailing list, the dev team has been seemed very inflexible, and quite actively ignoring comments and suggestions coming from the ocaml user community
<pac_>
sam_: french arrogance ?
<gzl>
mattam: was that just a random comment, or does it have something to do with what you're doing in ocaml?
<mfurr>
nah, they just didn't want to turn ocaml into felix :)
<mattam>
gzl: Banana'scomment ?
<gzl>
no, yours, about Galois connections
<mattam>
no, it's not related to what i'm doing in ocaml. Did i imply something like that ?
<gzl>
no, i was just curious
<gzl>
because if it was, you might have been doing some neat thing :)
<sam_>
pac, no stereotyping please :-).. nah, to me it seems more like the dev team is more interested in doing researching programming languages, than developing them.. which is of course ok, but not really what a user community would want
<mattam>
now i'm curious about what you're doing gzl :)
<gzl>
as far as ocaml stuff goes, i'm working through a book on type systems
<mattam>
by Pierce ?
<gzl>
yes
<mattam>
that was easy
<mattam>
Types and prog languages ?
<gzl>
yes
<gzl>
yeah, the book is well written
CosmicRay has quit [Connection timed out]
<gzl>
you went through it?
<pac_>
sam_: well it is not a stereotype I know many french professors in CS
<mattam>
not yet, got to steal it from Banana, or exchange with him a cat-theory book
<Banana>
don't want it.
<mattam>
you don't know ;)
<Banana>
^_^
<Banana>
ok ok, deal.
<gzl>
what was easy then? guessing that it was Pierce's book or the book itself?
<mattam>
ok, i'll steal it...
<pac_>
mattam: thiev
<mattam>
that it was by B. Pierce
<gzl>
ah, ok
<gzl>
is it a book that many people doing this stuff read? i'm just starting out, so i don't know
<mattam>
i think he wrote "Compiler Impl in ML" too
<Smerdyakov>
mattam, "Modern Compiler Implementation in ML" is Andrew Appel.
<mattam>
thanks for the correction
<gzl>
he did write a book on category theory, though. sounds like it might be up your alley
<sam_>
gzl, it's pretty theoretical, so if you are interested more in practise than theory, forget about the book
<gzl>
i'm interested in the theory
<gzl>
mattam: have you read that book, by any chance? "basic category theory for computer scientists"
cjohnson has quit [Connection timed out]
cjohnson has joined #ocaml
<mattam>
yes
<gzl>
how'd you like it?
<gzl>
compared to something like maclane
<mattam>
i'm still unhappy with my understanding of adjoints, i've got to work through more examples, but it's pretty clear and motivating
<gzl>
ok, cool. what do you do category theory for?
sam_ has left #ocaml []
__mattam__ has joined #ocaml
<pac_>
too much mattam here :)
mattam has quit [Nick collision from services.]
__mattam__ is now known as mattam
<mattam>
sorry, got a bizarre problem with my irssi
CosmicRay has joined #ocaml
<pac_>
mattam: eheheee
<mattam>
it just locked up when my adsl connection restarted
<gzl>
i just asked what you study category theory for
<mattam>
i was led to it by some Haskell papers and now for its own sake, as a great unifying "framework" for algebra
<greenrd>
I recently started reading "Conceptual Mathematics" by Lawvere and Schanuel, which is supposed to be a nice easy intro to category theory for beginners
<greenrd>
I'm kind of interested in it for its own sake, but I also wonder if it might be useful to me as an amateur programming language designer.
<greenrd>
Like I say I only just started reading the book, so I don't really even know what category theory IS yet, even :)
<greenrd>
So what do you think mattam, could it be useful to a programming language designer?
<greenrd>
Yeah? Could you explain, in as simple a way as possible, but no simpler?
<monotonom>
For instance in the OO world there is an eternal debate over multiple inheritance. Some say it is indispensible, some others say it is evil. If they had known pushouts, the war would be less religious and dogmatic.
<greenrd>
Hmm interesting. I heard mention of pushouts the other day in a different context.
<monotonom>
Yes Steve Easterbrook's slide show v.good!
<ithkuil>
greencrd read the pdf in the link i gave you
<greenrd>
I am firmly for MI myself... but open-minded. :)
<monotonom>
Pushout is multiple inheritance done right.
* greenrd
dl's the pdf
CosmicRay has quit [Read error: 60 (Operation timed out)]
<greenrd>
monotom: That's a grand claim! ;)
<monotonom>
So, my little dream is one day some OO language designer understands pushouts and build it into his language as much as possible for multiple inheritance. This will be baby category theory in good use.
<greenrd>
damn buggy kghostview
<monotonom>
You need kacroread
<greenrd>
that doesn't sound Free
<monotonom>
hehe
<pac_>
Is this chan too elitist ?
<monotonom>
Are the other channels too watered-down?
<pac_>
you see you already make an elitist statement
<pac_>
:)
<greenrd>
heh
mrsolo has quit [Connection timed out]
skylan has joined #ocaml
buggs^z has joined #ocaml
mfurr has quit ["Client exiting"]
cjohnson has quit [Connection timed out]
cjohnson has joined #ocaml
buggs has quit [Connection timed out]
ionOS has quit ["Using KVIrc 3.0.1 'System Virtue'"]