systems changed the topic of #ocaml to: OCaml 3.07 ! -- Archive of Caml Weekly News: http://pauillac.inria.fr/~aschmitt/cwn , A tutorial: http://merjis.com/richj/computers/ocaml/tutorial/ , A free book: http://cristal.inria.fr/~remy/cours/appsem, Mailing List (best ml ever for any computer language): http://caml.inria.fr/bin/wilma/caml-list
smklsmkl has joined #ocaml
m[kel[ has quit [Read error: 110 (Connection timed out)]
Dybbuk has joined #ocaml
m[kel[ has joined #ocaml
smklsmkl has quit [Read error: 110 (Connection timed out)]
omar_ has joined #ocaml
JPL-Justin has joined #ocaml
magnus-- has quit ["Leaving"]
Godeke has quit [Read error: 104 (Connection reset by peer)]
reltuk has left #ocaml []
JPL-Justin has quit ["gtg"]
smklsmkl has joined #ocaml
m[kel[ has quit [Read error: 110 (Connection timed out)]
noss has quit ["hej då"]
The-Fixer has joined #ocaml
The-Fixer has quit [Client Quit]
Dybbuk has quit [Remote closed the connection]
Dybbuk has joined #ocaml
minDscope has joined #ocaml
minDscope has left #ocaml []
m[kel[ has joined #ocaml
smklsmkl has quit [Read error: 110 (Connection timed out)]
<Smerdyakov> Anyone here in the USA starting graduate school in the fall?
avlondono has quit [Remote closed the connection]
<JPL-Justin-away> hey
<JPL-Justin-away> no I"ll be doing grad school in the spring
<JPL-Justin-away> why?
JPL-Justin-away is now known as JPL-Justin
<Smerdyakov> Just curious to see who will be joining the profession. :)
<JPL-Justin> :)
<JPL-Justin> where did you go to school?
<Smerdyakov> UC Berkeley
<JPL-Justin> Not bad :)
<JPL-Justin> I'm in pasadena at the moment.
<Smerdyakov> Where will you do grad school?
<JPL-Justin> Berkeley has done tons of good for the CS community, both theoretical and practical.
<JPL-Justin> Probably Cornell for my masters.
<JPL-Justin> that's CS
<Smerdyakov> You've been admitted?
<JPL-Justin> my physics PhD will be somewhere else
<JPL-Justin> well
<JPL-Justin> I'm a cornell undergrad
<JPL-Justin> and I'm way beyond their minimum requirments in everything so
<JPL-Justin> sure
<Smerdyakov> So? Cornell is about the 5th most selective grad CS program in the USA.
<Smerdyakov> Maybe you mean a "5th year masters" program with lax admissions requirements?
<JPL-Justin> yeah
<Smerdyakov> OK
<JPL-Justin> I don't have years to spend
<JPL-Justin> on a thesis
<JPL-Justin> esp for CS
<JPL-Justin> I have years to spend on a physics thesis though
<Smerdyakov> It sounds like you have the years to spend but just don't want to spend them./
<JPL-Justin> no
<JPL-Justin> basically
<JPL-Justin> Computational Physics is... IMHO, ready for a revolution
<JPL-Justin> maybe not just yet but... in the next ten year's its getting closer
<JPL-Justin> computational physics right now just uses computers as big calculators and graphers
<JPL-Justin> I would like to work eventually on extending that paradigm to scientific exploration of problem space
<JPL-Justin> That is, automated hypothesis generation and testing inside a simulation framework.
<Smerdyakov> I don't see how this explains why you have years for physics but not CS. :P
<JPL-Justin> It's going to be a why before computer speeds are near where they will have to be for this to haappen, but it's almost ineveitable
<JPL-Justin> well
<JPL-Justin> cause I want a PhD in physics
<JPL-Justin> and an MEng in CS is good enough
<JPL-Justin> here's why:
<Smerdyakov> Right. Your "have" is based on non-objective reasons. That's all I'm getting at.
<Smerdyakov> You "want" a PhD in physics and not CS.
<JPL-Justin> every year doing numerical stuff on computers becomes more and more abstract. each year my CS skills become less and less important because you need less and less to get good math work done. there's all kinds of rpobelms that 30 years ago you'd have to be a CS genius to solve that 10 lines of mathematica can solve today
<JPL-Justin> dude
<JPL-Justin> like planning isn't math, splitting hairs on it is pedantic
<JPL-Justin> you could say that
<JPL-Justin> you don't have 50 years to spend on a PhD
<JPL-Justin> when in reality you probably do
<JPL-Justin> you just don't want to
<JPL-Justin> but you might actually say "I don't have 50 years to spend on that"
<Smerdyakov> You said you _do_ have years for physics but not CS.
<JPL-Justin> or you could say "I don't have $50 to spend on that DVD"
<JPL-Justin> which really means "I'd rather spend the $50 on something else"
<JPL-Justin> because you probably could cough it up if you need to
<JPL-Justin> I do have years for physics, because that's my goal. I don't have extra years to waste on non-helpful things
<JPL-Justin> and to be honest, a PhD in CS will be of limited utility for me. I"m thinking about going back and getting it when I'm older but we'll see if I want to
<Smerdyakov> Mine's pretty useful to me.
<JPL-Justin> Yes I"m sure it is
<Smerdyakov> I have guaranteed income for 6 years.
<JPL-Justin> DUde
<JPL-Justin> I'm talking about MY goals not yours
<Smerdyakov> You won't find that in many other places. :)
<JPL-Justin> I could get a PhD in CS and become successful etc
<JPL-Justin> I can work for JPL and never get fired
<JPL-Justin> no matter what :)
<JPL-Justin> gov't work pays less but it's almost impossible to fire someone here
<Smerdyakov> Yes, but you have to do what they tell you to do.
Demitar has quit [orwell.freenode.net irc.freenode.net]
<Smerdyakov> I can do whatever interests me that month.
<JPL-Justin> Smerdyakov: eh, you have a lot of choice
<JPL-Justin> yeah anyways
<JPL-Justin> what I"m saying is
<JPL-Justin> I'm sure a CS degree is useful in general
<JPL-Justin> but it is NOT AS USEFUL AS A PHYSICS DEGREE for what I want to do
<Smerdyakov> Sure.
<Smerdyakov> Where do you think you'll do the PhD?
<JPL-Justin> no idea
smklsmkl has joined #ocaml
<JPL-Justin> I'm looking at caltech, MIT, stanford etc
<JPL-Justin> the standard physics places
<JPL-Justin> where I'll get in, I don't know
<Smerdyakov> Do you think you can get into them?
<JPL-Justin> It really depends on a lot
<JPL-Justin> my resume is fantastic
<JPL-Justin> my grades aren't bad
<JPL-Justin> my skillset is pretty diverse
<JPL-Justin> but... whether I"ll be selected, no idea
<Smerdyakov> What does "not bad" mean?
<JPL-Justin> 3.5...
<JPL-Justin> out of 4.0
<Smerdyakov> Hm. Probably less than 10% of people admitted to physics at those schools have GPA's that low.
m[kel[ has quit [Connection timed out]
<JPL-Justin> yes however
<JPL-Justin> I'd be surprised if the people that have GPAs a lot higher than that
<JPL-Justin> had as many different student jobs as I have had
<JPL-Justin> that's the main reason it's "low"
Demitar has joined #ocaml
<JPL-Justin> also you have to ekep in mind that
<Smerdyakov> Dunno. Average GPA for admitted CS students at CMU is ~3.75.
<JPL-Justin> while I don't know about other parts of Cornell
<JPL-Justin> the engineering part DOES NOT INFLAT
<JPL-Justin> and IIRC there is a GPA equalizer index used by grad schools
<JPL-Justin> and you multiply the GPA by it to get an adjusted value
<JPL-Justin> and the only places with a value greater than 1 are Cornell and I blieve U of Chicago
<JPL-Justin> and no this didn't come from someone at Cornell telling me this
<JPL-Justin> Anyways I don't know if I"m going to get in or not. I'm quite okay if I don't, I don't want to go anywhere that does not like the choices I"ve made, etc.
<JPL-Justin> I chose a long time ago to pursue other forms of education than just going to class and doing homework
<JPL-Justin> and I probably took on a bit too much etc
<JPL-Justin> but I've got several coauthored papers
<JPL-Justin> I think by the time I"m done with my masters I'll be up to 6
* Smerdyakov nods.
<JPL-Justin> not including the one for my masters
<JPL-Justin> so I"m not a slacker I just
<JPL-Justin> thiunk there are multiple ways to learn
<JPL-Justin> I've learned as much from my job at JPL etc as I have in classes
<JPL-Justin> and my computational physics research has been most enlightening
<JPL-Justin> And my 3D software contracting has gotten me used to solving all kinds of crazy problems
<JPL-Justin> and my robocup team efforts paid off, learning how to do kinematics simulations quickly etc
<JPL-Justin> I've learned so much in the past 4 years it's crazy, and I don't think I'd make those decisions any different if I had it to do over again
<JPL-Justin> I think I could have been maybe .2 higher if I'd tried harder on homework and somehow wasted less time
<JPL-Justin> which would have been nice but... oh well can't really do that over again
<JPL-Justin> oh and the leadership experience from my robotics project class was incredibly useful
<JPL-Justin> There's always plenty of places to get a PhD in physics, a UC might not be a bad choice, especially if I'm working at JPL
<JPL-Justin> UCLA isn't a bad place
<Smerdyakov> "Might not be a bad choice"? Berkeley is in the same league as the places you mentioned.
<JPL-Justin> dude
<JPL-Justin> you can't take everything I say so damn litterally
<JPL-Justin> I'm being conversational not analytical
<JPL-Justin> I often say "not bad" to mean good
<JPL-Justin> it's a subtlety of the english language perhaps, but it's very common
<JPL-Justin> I realize that IRC does not carry tone, however I'm accustomed to talking online in the same manner as I would if I was sitting around talking to a group of people
<JPL-Justin> etc
<Smerdyakov> I don't agree that it was "obvious" how you meant the phrase.
<JPL-Justin> I never said it was
<JPL-Justin> I said you can't take everything I say literally
<JPL-Justin> I said it was subtle
<Riastradh> It was obvious to me, Smerdyakov.
Dybbuk has quit [Remote closed the connection]
<Smerdyakov> Riastradh, well, now the sample size is so large that I _must_ give in!
<JPL-Justin> I wish you wouldn't dispute everything that comes out of my keyboard it's infuriating
<JPL-Justin> Smerdyakov: is english your first language?
<Smerdyakov> JPL-Justin, when I really don't understand what you say the way you mean, it's not fair to accuse me of "disputing" purposely....
<Smerdyakov> Yes
<JPL-Justin> then I apologize for speaking in a way that is confusing to you. I have only ever learned one other language and
<Smerdyakov> I'm a logician. I don't let imprecisions slip by.
<JPL-Justin> however I have a hard time believing that if engilsh is your first language yo'uve never heard someone talk like this
<Smerdyakov> I have, and, like you said, tone matters. Without the tone, there are at least two opposite interpretationsw.
<JPL-Justin> And as a logician you should realize that the difference between natural language and formal logic is profound
<Riastradh> He's a crusty & pedantic academic.
<JPL-Justin> and if you cannot learn to parse the standard protocol for human information interchange than you will cause problems, like this one
<Smerdyakov> It's not as profound among OCaml users as among the general populace.
<JPL-Justin> I agree that sometimes it's important to be precise
<JPL-Justin> you know, I love ocaml but I hate it when people get all elitist about it
<JPL-Justin> blah blah yes it attracts people that aren't just perl hackers blah blah
<JPL-Justin> Riastradh: you would agree that precision is something which is only needed sometimes?
<Smerdyakov> What was "elitist" about what I said?
<JPL-Justin> You stated via implication that OCaml users are more logically pure than the average person in their speech
<Riastradh> I do agree with that, and in this context as I have been reading the conversation, absolute precision is the sort of thing that would bug me as well.
<JPL-Justin> and it was clear that this is something that you value by the fact that you are willing to spend time clearing up inprecision that is mostly unimportant
<JPL-Justin> this has the not-directly stated implication that OCaml users think/speak in a way that you consider to be more "pure"
<JPL-Justin> now, I admit you did not say all of that directly
<JPL-Justin> however you know that statements have implications, and sometimes the subtext is the most important part of a commmunication
<JPL-Justin> Riastradh: where are you in your education?
<Smerdyakov> Do you know that ML was invented for use in a logical framework and automated theorem proving?
<JPL-Justin> Yes
<JPL-Justin> I do know that.
<JPL-Justin> Like all the ML books and web sites etc talk about it
<JPL-Justin> so did my professor etc...
<Smerdyakov> So a very large proportion of people here are directly involved with automated theorem proving research.
<JPL-Justin> right yes
<Smerdyakov> That's what I meant.
<JPL-Justin> a very large portion of people who program are highly logical because if you're irrational you can only program in perl
<JPL-Justin> okay fine whatever
<JPL-Justin> anyways Riastradh where are you in schooling?
<Riastradh> Smerdyakov, the purpose of a language _thirty_years_ prior to now has very little bearing on anything to do with reality in the present day.
<JPL-Justin> acutally I agree with Smerdyakov that that's still something it's used for
<JPL-Justin> however... I'm not sure it's the majority
* Riastradh must depart.
<JPL-Justin> hey see you later dude
<Smerdyakov> Riastradh, not true.
Demitar has quit [orwell.freenode.net irc.freenode.net]
<Smerdyakov> Riastradh, almost everyone who knows about ML has close relations to the formal logic branch of CS research.
<JPL-Justin> Riastradh: uh... there are all kinds of CS students who don't do any formal logic stuff that learn ML. AT cornell every CS student must learn SML, and some non-CS students take the course too, it's consdiered the best undergrad course at Cornell
<JPL-Justin> * Smerdyakov I mean
<JPL-Justin> also if you search for ocaml software on the web, almost none of it is theorom proving
<Smerdyakov> And so you think people from Cornell make up a large proportion of computer scientists?
<JPL-Justin> I'm saying that i know it's taught at many places
<Smerdyakov> No, it isn't.
<JPL-Justin> caltech teaches ocaml to a lot of students, evne non CS places
<Smerdyakov> Gosh, now we're up to 2 schools!
<JPL-Justin> ahhh
<JPL-Justin> so
<JPL-Justin> tell me
<JPL-Justin> what percentage of ocaml users
<JPL-Justin> do formal logic analysis?
<Smerdyakov> I don't know, but it's appreciable.
<JPL-Justin> I think we'll have to wait until the next Ocaml user census
<Smerdyakov> Just poll the channel here. :)
<JPL-Justin> of the people talking
<JPL-Justin> there are two
<Smerdyakov> Who besides me?
<JPL-Justin> and you know that this channel may not be a representative sample
<JPL-Justin> there are two people talking to poll man
<JPL-Justin> unless everyone else in here is actually reading but not saying anything
<JPL-Justin> anyways the sample size in here is rediculously low and I believe you are aware of it, and the statistical invalidity of such a poll
<Smerdyakov> I was only talking about the people here in my original statement, remember.
<JPL-Justin> I believe a good way to measure it is through what software is available that uses ocaml
<JPL-Justin> <Smerdyakov> It's not as profound among OCaml users as among the general populace.
<pattern> why does it matter how many people use ocaml to study formal logic?
<JPL-Justin> unless you have a statement that's more origional than that
<JPL-Justin> I don't know ask Smerdyakov
<JPL-Justin> I personally don't care
<JPL-Justin> although I suppose it's good to know what ocaml is used for
<Smerdyakov> pattern, the original context is that I said that OCaml users are more likely to require precision in use of language than the general public is.
<Smerdyakov> (in use of natural language)
<pattern> and if that's the case?
<JPL-Justin> yes, not #ocaml people, ocaml users in general
<JPL-Justin> if that's the case then he can be pedantic!
<pattern> ahh
<JPL-Justin> because ocaml users are suppose to be!
<pattern> i see
<pattern> hehe
<JPL-Justin> whereas if it's not the case
<JPL-Justin> pedantry is considered a 'no-no' like in most sane channels
<Smerdyakov> JPL-Justin, no offense, but most people who do as well as I do in academic settings are probably "pedantic" to an extent that you view as inappropriate.
<JPL-Justin> I mean, I'm all for pedantry when discussing say a mathematical theorom etc
<pattern> i don't think being interested in formal logic gives one license to be pedantic
<JPL-Justin> dude
<JPL-Justin> none of my professors talk like you
<JPL-Justin> not one of them
<JPL-Justin> they all talk like real people, at least when I sit and talk to them
<Smerdyakov> You've never heard me talk.
<JPL-Justin> maybe if I argue a scientific poitn with them
<JPL-Justin> yes I have, and if it's anything like this I"m not sure how long I'd last listening
<Smerdyakov> pattern, it's more like logicians _tend_ to be pedantic.
<pattern> maybe so
<JPL-Justin> pattern: omg you got the smack down
<pattern> but is that a virtue or a vice?
<Smerdyakov> pattern, and it's _useful_ for logicians to be pedantic to be good at what they do.
<JPL-Justin> pattern: use ocaml to prove your statments before you say them man, or else you _lose_
<JPL-Justin> Smerdyakov is right!
<JPL-Justin> it's useful for logic
<pattern> smerdyakov, yes, when they're evaluating logical theorems
<JPL-Justin> otherwise you'll reach bad conclusions
<JPL-Justin> however, it's not useful with people, because people don't like that
<Smerdyakov> I don't like people who don't like it.
<JPL-Justin> in fact, I can think of almost nothing more infuriating than having every little thing I say pieced apart even when it doesn't matter!
<Smerdyakov> There's no universal source of morality that can tell me that that is a bad attitude.
<JPL-Justin> There is no way you can prove that statment
<JPL-Justin> it's a negative
<JPL-Justin> ah HA
<pattern> smerdyakov, what do you mean by "not like"? please define your terms to infinite precision
<Smerdyakov> Prove what statement?
<JPL-Justin> that ther'es no universal source of morality
<JPL-Justin> there could be, but it might not be determinable
<Smerdyakov> Oh, I don't think "morality" is ever defined properly. I was encouraging the reader to plug in his definition if he thinks he has a counterexample.
<JPL-Justin> yes well luckily this is a case wehre no counterexample is necessary
<JPL-Justin> because there's no way to possibly prove that statement!
<Smerdyakov> So?
<pattern> i think you two just want to argue
<JPL-Justin> So you just made an unwarranted assertion
<JPL-Justin> and you were using it in a logical argument
<JPL-Justin> isn't that... not a good thing to logicians?
<Smerdyakov> No. I want to use methods that augment my ability to get around human limitations.
<JPL-Justin> and in _SOME DOMAINS_ formal logic works
<Smerdyakov> I can avoid being wrong by being careful in how I approach things.
<JPL-Justin> there are all kinds of places where it breaks down via paradoxes etc
<JPL-Justin> because definitions of things can't always be precise
<pattern> maybe so... but that doesn't mean either of you have a point in this particular debate except to prove one or the other of you are right, on soemthing
<JPL-Justin> the universe is inherently fuzzy
<JPL-Justin> hahaha
<JPL-Justin> well i already know I'm wrong
m[kel[ has joined #ocaml
<JPL-Justin> I'm just waiting for Smerdyakov to know he's wrong too
<Smerdyakov> pattern, I have the following meta-point: The world is in a sorry state to a large degree because people think sloppily, and thus they don't know what is good for them. I like to defend an alternative philosophy whenever possible, in hopes of improving the world.
smklsmkl has quit [Connection timed out]
<JPL-Justin> Smerdyakov: Accademia is in a sorry state because of this kind of ivory tower thinking. The human mind evolved very well to deal with the fuzzy nature of reality.
<Smerdyakov> How is "academia in a sorry state"?
<JPL-Justin> Formal logic is inherently limited (godel etc) and only works on descrite quantities etc
Demitar has joined #ocaml
<JPL-Justin> dude, outside of accademia, few people even take them seriously
<Smerdyakov> Tell that to the people using fuzzy logic. :)
<JPL-Justin> Fuzzy logic is much different than what you've been using
<JPL-Justin> I support fuzzy logic for a lot of things
<Smerdyakov> So? How does that make it a "sorry state"?
<pattern> smerdyakov, your crusade to improve the world by making people think less "sloppily" is laudible... but what makes you think precision is warranted in all cases?
<JPL-Justin> I think the world could be improved if people just thought MORE
<Smerdyakov> pattern, you never know what will have important future consequences.
<JPL-Justin> People jus tdon't think
<JPL-Justin> I believe that it's important to teach logic and problem solving skills to children, moreso than teaching them anything else just about
<JPL-Justin> FOr instance, I'd like to see long division replaced by logic
<Smerdyakov> JPL-Justin, that depends on if you include "questioning authority" as part of logic.
<JPL-Justin> there's absolutely no reason anyone ever needs to do long division in every day life, however logic is important
<JPL-Justin> well
<JPL-Justin> authority is flawed
<JPL-Justin> therefore it's logically important to question it
<Smerdyakov> Unfortunately, the human mind doesn't have the ability to determine all logical consequences of a theory instantly.
<Smerdyakov> Thus, it is important to state certain things explicitly, even if they follow.
<JPL-Justin> I will say that I agree a lot with you on this
<JPL-Justin> I do not like the lack of precision some people have
<JPL-Justin> my family is very precise about things compared to the average family and I have a hard time dealing with some lack of precision
<JPL-Justin> however I believe I have found a "sweet spot"
<JPL-Justin> because you can use additional words to restrict the meaning of your sentences more an dmore
<JPL-Justin> however you get diminishing returns
<JPL-Justin> usually contextual information is sufficient to handle small thyings that are omitted, however large things need to be dealt with
<JPL-Justin> it does not help that there are many words in english with more than one meaning though :(
<pattern> i think the "sweet spot" depends on both people and the context
<pattern> it does not pay to be rigid in your precision across all circumstances, imo
<JPL-Justin> that is true
<JPL-Justin> I do not believe mine is universal, however it is sufficient as I deal with a mixture of technical and nontechnical people in here.
<JPL-Justin> And I also believe that a lot of the problems that nontechnical poeople have dealing with highly logical technical people is this logic-worship
<JPL-Justin> Imprecision is a form of lossy compression which works very well for most people, however there's always problems.
<pattern> i vary my precision depending on my conversation partner, the circumstances, subject matter and where we are in the conversation
<JPL-Justin> of course
<JPL-Justin> I do not speak in this manner to, say, a hot 18 year old chick I meet at some random social event
<JPL-Justin> however if discussing a logical syllagism (sp?) with a collegue perhaps I would do so
<pattern> most of the time imprecision is not only acceptable, it is much more efficient than high precision
<JPL-Justin> yes, that's the compression aspect
<pattern> which is the point of many of the Data and Spok jokes on star trek
<JPL-Justin> it's also sometimes really really really insulting to someone to point out the obvious
<pattern> depends on the people involved
<JPL-Justin> Anyways Smerdyakov, I'm very interested to hear what you like the most about ocaml
<Smerdyakov> I think you two have completely left the original discussion and have switched to poking a straw man.
<Smerdyakov> Look at the actual cases where I have been displeased with what JPL-Justin has said, not at jokes from Star Trek.
<pattern> if a stranger corrects you or questions you then people tend to be more offended then if it's done by someone they know
<Smerdyakov> Best things about ML: Type system, module system
<JPL-Justin> I need to get better with modules
<JPL-Justin> I do have a wuestion abou thtem
<JPL-Justin> but I like most the expressivity
<JPL-Justin> if that's a word :)
<JPL-Justin> expressiveness or whatever the term is
<JPL-Justin> I like the fact that I can make solutions that resemble very clearly the solution in my mind, or in a spec.
<Smerdyakov> What is your question?
<JPL-Justin> it has to do with sigs
<JPL-Justin> let me phrase it properly here
smklsmkl has joined #ocaml
<JPL-Justin> you can have a sig for a fuctor right?
<Smerdyakov> If I understand you properly, yes.
Meta has joined #ocaml
<JPL-Justin> specifically, I mean can you have a signature which defines a type of functor?
<Smerdyakov> You mean the "return type" of the functor?
<JPL-Justin> no
<JPL-Justin> the type of the functor
<JPL-Justin> like a type of a function might be int->bool
<JPL-Justin> a type of a functor might be
<JPL-Justin> sig1 -> sig2
<JPL-Justin> right?
m[kel[ has quit [Read error: 110 (Connection timed out)]
<Smerdyakov> Hm. I don't know. That's sure not valid SML. I don't know about OCaml.
<JPL-Justin> oh okay
<JPL-Justin> then my question is silly :)
<JPL-Justin> I haven't used modules much
<Smerdyakov> A functor can't have a type, though.
<JPL-Justin> I'v estayed away from that while I tried to get some other stuff done
<Smerdyakov> Types and signatures are separate.
<JPL-Justin> okay I'm being imprecise here, and I realize it's important
<JPL-Justin> let me state it a better way
<JPL-Justin> is there some way that I can have a signature for a functor, as in I use any module adhering to the sig in its place
<Smerdyakov> Ah. See this:
<Smerdyakov> I think the 3rd production for module-type is what you want.
<JPL-Justin> what's a production?
<Smerdyakov> Rule in a grammar
<JPL-Justin> ok
<JPL-Justin> well I'll think about my quetion more and gt back to you with it stated better sometime
<JPL-Justin> thanks
<JPL-Justin> that's a good page I will read it through
<Smerdyakov> I think I just answered your question, didn't I?
<JPL-Justin> that wasn't my quetsion
<JPL-Justin> that was the prelude :)
<JPL-Justin> but my question may be flawed
Kinners has joined #ocaml
<JPL-Justin> so the answer is
<JPL-Justin> you cannot have a single signature for a functor?
<Smerdyakov> No, you _can_.
<Smerdyakov> The third production gives the syntax.
Meta_ has quit [Read error: 110 (Connection timed out)]
<JPL-Justin> hmmm
<JPL-Justin> mod-constraint?
<Smerdyakov> No, the third production for module-type.
<JPL-Justin> module-type with mod-constraint
<JPL-Justin> uh
<JPL-Justin> how does that help?
<JPL-Justin> you can dooh wait
<JPL-Justin> I'm not able to count
<JPL-Justin> I see functor (module-name : module-type) -> module type
<JPL-Justin> that doesn't look like a sig
<JPL-Justin> oh wait
<JPL-Justin> got it
<Smerdyakov> It appears that "module type" and "signature" are distinct terms in OCaml.
<JPL-Justin> okay I hate parsing these
<JPL-Justin> actually I think you can do
<JPL-Justin> sig specification end
<JPL-Justin> and spec can be
<JPL-Justin> module type modtype-name
<JPL-Justin> wait
<JPL-Justin> that means you're saying ther'es a module inside that module
<JPL-Justin> that sucks
<JPL-Justin> what I want to do is
<JPL-Justin> make
<JPL-Justin> a signature for a functor
<JPL-Justin> like, in it's own file
<JPL-Justin> so that I can functors of functors
<Smerdyakov> Please use as few lines as possible to express yourself.
mfurr has quit [Remote closed the connection]
<JPL-Justin> ok
m[kel[ has joined #ocaml
smklsmkl has quit [Read error: 110 (Connection timed out)]
<JPL-Justin> so are there functors of functors in ocaml, or not?
<Smerdyakov> There are.
<JPL-Justin> I guess that while it may be very obvious from that grammar to you how to do that
<JPL-Justin> it is not in any way obvious to me how to create a signature file which correpsondes to a "kind" of functor, like sig1 -> sig2
<Smerdyakov> module type A = functor (x : B) -> functor (y : C) -> D
<JPL-Justin> how do you write this in a signature file?
<Smerdyakov> Exactly like I said, though you probably need X instead of x and Y instead of y.
<JPL-Justin> okay what I really mean is
<JPL-Justin> what does the entirety of the file look like?
<Smerdyakov> module type A = functor (X : B) -> functor (Y : C) -> D
<Smerdyakov> There is nothing else in the file.
<JPL-Justin> okay, thank you for clarifying it, I appreciate it
<Smerdyakov> .mli files only define signatures.
<Smerdyakov> Functor module types are not signatures.
<JPL-Justin> oh
<Smerdyakov> Thus, you must put your functor module types inside signatures.
<JPL-Justin> hmm
<JPL-Justin> that's okay I guess
<JPL-Justin> it's not that importnat, I'm just trying to keep my interpreter general enough to be useful and modular.
<Smerdyakov> This is one of the annoying points of the OCaml assocation of files with named modules.
<JPL-Justin> eh I hate how the ocaml compiler works on OS X... you have to rename files becuase of wierd case sensitivity
Meta_ has joined #ocaml
<JPL-Justin> hey meta
bk_ has joined #ocaml
Meta has quit [Read error: 110 (Connection timed out)]
Vekza has joined #ocaml
Kinners has left #ocaml []
smklsmkl has joined #ocaml
m[kel[ has quit [Read error: 110 (Connection timed out)]
__DL__ has joined #ocaml
reltuk has joined #ocaml
m[kel[ has joined #ocaml
smklsmkl has quit [Read error: 110 (Connection timed out)]
pattern has quit [Read error: 110 (Connection timed out)]
<vegai> oh
<vegai> a minor revelation about ocaml's odd list syntax
<vegai> [1,2; 3,4; 5,6] -- handy =)
<reltuk> why?
<__DL__> vegai: it's not odd... it's relativly standart in functional programing...
det has quit [Read error: 60 (Operation timed out)]
<vegai> is it?
<vegai> not in SML
<vegai> not in Haskell
<reltuk> haskell uses commas for list element seperators...
<reltuk> so obviously [1,2,3,4,5,6] doesn't create a list of 3 tuples
<__DL__> vegai: oops, my memory deserve me there.
<__DL__> but I won't call weird the fact to use ; instead of ; it is still a clear separator...
<vegai> it seemed weird as a minor detail
<vegai> as in "why do this thing differently?"
<__DL__> In most of those case, the question is what do the original ML do ?
<reltuk> apparently sml uses it too
<reltuk> (comma I mean)
<vegai> hmm, my mosml didn't =P
<vegai> ah, yes
<__DL__> caml (and then caml-light, and then ocaml) have been more near from this orignial ml than sml
<__DL__> but then, this original ml is long dead, so it is not easy to find information about it.
<reltuk> what's ml stand for?
<__DL__> Meta Language, if memory serve.
mrsolo has joined #ocaml
<reltuk> heh, makes meta ml sound weird
<reltuk> ml should stand for ml language
<reltuk> but yeah, looks like meta-language
pattern has joined #ocaml
<__DL__> and then the meta ml language look realy like a weird name..
wazze has quit ["--- reality is that which, when you stop believing in it, doesn't go away ---"]
smklsmkl has joined #ocaml
m[kel[ has quit [Read error: 110 (Connection timed out)]
m[kel[ has joined #ocaml
smklsmkl has quit [Read error: 110 (Connection timed out)]
Maddas has left #ocaml []
JPL-Justin is now known as JPL-Justin-away
mrsolo has quit [Read error: 54 (Connection reset by peer)]
mads- has joined #ocaml
<mads-> Hey. Anyone running OCaml on Windows...? Please I need help!
reltuk has left #ocaml []
<Banana> Though the ml in caml does'nt stand for meta language but for machine language.
<Banana> (my $0.02).
Shammah has joined #ocaml
omar_ has quit []
mattam_ has joined #ocaml
mattam has quit [Read error: 60 (Operation timed out)]
smklsmkl has joined #ocaml
m[kel[ has quit [Read error: 110 (Connection timed out)]
shawn_ has quit [Read error: 110 (Connection timed out)]
shawn has joined #ocaml
m[kel[ has joined #ocaml
smklsmkl has quit [Read error: 110 (Connection timed out)]
Shammah has quit ["ChatZilla 0.9.35 [Mozilla rv:1.5/20030925]"]
noss has joined #ocaml
__DL__ has quit ["Bye Bye"]
bk_ has quit ["I'll be back"]
bk_ has joined #ocaml
smklsmkl has joined #ocaml
m[kel[ has quit [Read error: 110 (Connection timed out)]
mads- has quit ["( www.nnscript.de :: NoNameScript 3.81 :: www.XLhost.de )"]
cmeme has quit ["Client terminated by server"]
cmeme has joined #ocaml
Lemmih has joined #ocaml
m[kel[ has joined #ocaml
smklsmkl has quit [Read error: 110 (Connection timed out)]
smklsmkl has joined #ocaml
m[kel[ has quit [Read error: 110 (Connection timed out)]
karryall has joined #ocaml
m[kel[ has joined #ocaml
smklsmkl has quit [Read error: 110 (Connection timed out)]
Godeke has joined #ocaml
smklsmkl has joined #ocaml
m[kel[ has quit [Client Quit]
bk_ has quit ["I'll be back"]
shawn has quit [Connection timed out]
mattam_ is now known as mattam
karryall has quit ["tcho"]
bk_ has joined #ocaml
vezenchio has joined #ocaml
m[kel[ has joined #ocaml
smklsmkl has quit [Read error: 110 (Connection timed out)]
shawn_ has joined #ocaml
smklsmkl has joined #ocaml
m[kel[ has quit [Read error: 110 (Connection timed out)]
Dybbuk has joined #ocaml
<Dybbuk> Howdy folks!
<Banana> hello Dybbuk.
<Dybbuk> Anything new and exciting today?
<Banana> dunno.
<Godeke> My goodness... people were talking! I thought this was the programmers equivalent to the "G7 IRC Idling RPG".
<Dybbuk> Anybody played with the oci8ml package?
<Dybbuk> Hmmm...doesn't look like it supports LOBs. Too bad.
<bk_> i'm not sure what this really is, ppl keep telling me i have to know everything about building a compiler and hindley-milner syntax checking in order to enjoy ocaml to its full extend
<Banana> don't you mean type checking ?
<bk_> probably, yes
<bk_> the point is, i don't want to know about these things
<Banana> you don't have to.
<bk_> i just want to use the language w/o having to worry about that
<bk_> ok
<Banana> HM is the theory behinf Caml typesystem.
<Banana> you have to learn it only if you want to know how ocaml does what it does.
<Dybbuk> bk_: I enjoy OCaml greatly, but don't understand those things. :)
* Dybbuk certainly appreciates what they do, though.
<bk_> ok then
<bk_> yesterdays chat about how ocaml is supposedly 'broken' worried me somewhat
<Dybbuk> How is it broken?
<Demitar> You need to understand how they work of course (as in any language) but not "why" it works as it does.
<Banana> the '_a thing ?
<bk_> if i wanted to know everything there is to know about compilers, i probably wouldn't bother being here or using ocaml
<Banana> Demitar : you said it better than i could, thx :)
<bk_> yes, banana, the '_a thing yesterday
<Demitar> Heh.
<Banana> bk_: if you wanted to write a compiler, BELIVE ME you realy would want to write it in ocaml.
<Demitar> They said what about '_a?
<Banana> you loose polymorphism with partial application...
<Dybbuk> Heheh. I didn't read that thread.
<Demitar> Someone not understanding that '_a types can only exist in the interpreter? =)
<Banana> ;)
<Banana> well not quite.
<bk_> but i don't want to write one, i just want a language that is concise, eays to write code in & easy to maintain
<Banana> the question was interesting (that's why the answer was in the FAQ :))))
<Dybbuk> bk_: OCaml is good for that, I think.
<Banana> bk_: it all depends of what you write.
<Dybbuk> Yeah.
<Banana> ocaml code is concise and easy to maintain either way.
<Demitar> bk_, ocaml allows me to write crap code and get away with it. ;-)
<Dybbuk> OCaml keeps you from writing crap code. :)
<Banana> if it's the best suited for your application, that i cannot say.
<Demitar> Dybbuk, you can write crappy code in any language, it's just a matter of effort. =)
<Banana> but at least, you will write code that will NOT segfault.
<bk_> Dybbuk: that's excatly why i want to use it
<Banana> no matter what.
<Demitar> bk_, in ocaml you'll want to leverage the typesystem as much as you can.
<bk_> yes
<Demitar> At least, that's what I do. =)
<Dybbuk> Yes indeed.
<Banana> (ok with -unsafe you can but ...)
<Dybbuk> Also, learn how to make your functions tail recursive.
<Demitar> Type inference does wonders when it comes to maintenance. =)
<bk_> i want the language to help me w/ the app i want to write, and i don't want to know everything about compiler theory
<bk_> kinda practical approach, but i don't think that's wrong
* Dybbuk doesn't know anything about compiler theory, but writes complex OCaml apps.
<Demitar> bk_, what application are you writing now?
<Banana> bk_: but you will learn eventually something about compilers by writing you own code ;)
<bk_> just small toy-apps for now, for learning purposes
<Banana> then just code a toy-compiler ;)
<Dybbuk> Write a btree.
<Banana> (or interpretter).
<bk_> no ! i want to write small apps that include some networking, GUI & database access, nothing fancy really
* Dybbuk wrote a ttree as one of his early OCaml projects.
<Demitar> bk_, what gave you the idea you need to learn any more compiler theory to write applications in ocaml than in any other language?
<Dybbuk> Er, a "ternary search tree".
<Banana> Dybbuk: what do you put in the middle ?
<bk_> yestersdays weird chat about the '_a thing and List.fold
<Banana> it's not related to List.fold.
<Banana> but to partial application.
<bk_> yes, i read the FAQ afterwards
<Dybbuk> Banana: I based it on some Dr. Dobbs article I read, I think. You just partition your comparison into three categories rather than two.
<Banana> ok.
<Demitar> bk_, '_a is a fringe case of the type system, you can't really use it in actual code anyway.
<Dybbuk> Banana: Mine wasn't that complex.
<Demitar> (Since it only exists in the interpreter.)
<Dybbuk> Banana: And it should have been a functor. :)
<Banana> yes, bk_ you saw the '_a because you were using the toplevel interpreter. You wouldn't have had this problem writing the program in a file and compiling it.
<bk_> nm for now i just know i -will- eventually come back to you folks asking more or less stupid questions about the language as such, what worried me yesterday was that the guy who asked about List.fold and '_a claimed that ocamls typechecking is simply broken
<bk_> i have to rely on the designers of the language on that, ie. that it is not broken
<Banana> it is not.
<bk_> i believe so, yes
<Banana> I mean you don't have to belive me, there is a proof that it is not broken.
<Demitar> bk_, people claim all kind of things. Luckily it's mostly either FUD, vapour or lack of understanding. ;-)
<bk_> ok :>
<Godeke> Actually, since actual people are hanging around... I have been reading Purely Functional Data Structures by Chris Okasaki.
<Dybbuk> Godeke: Look how quiet you just made it.
<bk_> i will find out myself by just using it soon enough, it just worried me that he came up w/ typechecking theory to prove his point
<Banana> Godeke: A good reading.
* Dybbuk remembers when this channel first started, and there were just three or four of us here all the time.
<Godeke> One of the things that disturbed me was that ocaml has this very nice "purely functional" language, but when it came to data structures, everyone still in the end uses mutable structures.
<Banana> Godeke: not every one....
<Dybbuk> Godeke: Hmmm...I don't use mutable structures unless it's absolutely necessary.
<Godeke> I found a port of the code to ocaml, but was disappointed to find that the same problem that ml has exists.
<Godeke> The lack of lazy evaluation causes something that should be o(1) to be o(n) or o(log n)...
<Banana> Godeke: what ?
m[kel[ has joined #ocaml
<Banana> Godeke: what should be O(1) and becomes O(n) ?
<Godeke> In the book, manipulations of a list don't become o(1) until the introduction of a faked lazy evaluation.
smklsmkl has quit [Read error: 110 (Connection timed out)]
<Godeke> (For a purely functional version... not using a mutable structure...)
<Demitar> What kind of manipulation?
<Godeke> Well, take the very first chapter... the book is considering concatination of lists.
<Banana> ok i see.
<Banana> indeed, but that's not a problem.
<Banana> even introducing "a fake" lazy evaluation.
<Demitar> Still this assumes you're catentating the same lists over and over, right?
<Banana> it's not fake.
<Godeke> With mutable structures, you can just chain from the back to the other list (which is what most procedural languages do).
<Banana> just not built into the language.
<Demitar> That is, otherwise laziness doesn't help.
<Godeke> But with a purely functional approach (the reason I became interested in ocaml) you end up doing a lot of copies of the first list.
<Riastradh> Godeke, that still takes O(n) time.
<Riastradh> Whether you construct a new list or traverse a list to the last pointer, it's still traversing the list.
<Godeke> Right. I can concatinate lists in C in O(1) time (keeping pointers for top* and bottom*).
<Godeke> Obviously though, proving anything about the code goes out the window when you do that though.
<Riastradh> That's cheating, though.
<Dybbuk> Can we point and call him a cheater? :)
<Riastradh> Yes, please do.
<bk_> C is terrible, C is hell
<Dybbuk> Heheh.
* Riastradh points and calls Godeke a cheater.
<Godeke> Cheating? Keeping pointers to both is pretty standard in C :)
<Godeke> But yes, perhaps trying to compare ocaml and C in such a direct way would be cheating :)
<Demitar> Well some kind of ropeish lists would be nice. But you'd have to be careful about passing mutable data around.
<Riastradh> There are a lot of cheats in C.
<Banana> i dont understand why you say the lazyness he introduces is fake...
<Godeke> Well, he takes two forms to every "lazy" eval.
<Banana> imho, it's nice that one to have a strict evaluation language, and being able to express lazyness with it.
<Godeke> The first won't compile (do to no polymorphic recursion), but is clear to read.
<Demitar> (rope as in STL rope which is a string consisting of a number of strings in various memory locations)
<Banana> because you don't have the memory problem you have with "real" lazy languages.
<Godeke> The second compiles, but seems ugly and awkward.
<Godeke> One of the attractions to ocaml is that it is *clear* to read.
<Godeke> (I prefer it by far to the nested nested nested nested ()'s of lisp/scheme)
<Riastradh> Clear to read? Hah.
* Riastradh nags Godeke about the subjectivity of the statement he just made.
<Godeke> Well, any language can be deliberately muddied...
<Demitar> I overheard one person in the computer lab telling someone else of his largest LISP application which had 900 )'s at the end. =)
<Riastradh> Somehow I think Demitar is exaggerating a bit.
<Demitar> Godeke, you don't have to be deliberate. Only careless.
<Godeke> ... but *subjectively* I prefer the match syntax to ()
<Riastradh> You prefer a certain _grammatical_ syntax to a certain _lexical_ syntax?
<Demitar> Riastradh, I wasn't, but perhaps he was. =) (It could have been 700 though, it happened a while ago.)
<Godeke> Basically, you find the same syntax in both languages....
jasen has joined #ocaml
<Godeke> A bunch of conditions to test against, and then recursion or other function calls.
<Godeke> But in lisp like languages you end up with a lot of seemingly "extra" baggage in the form of all the ()'s.
<Godeke> Scheme trys to help by allowing [] and {} matches, so you can tell what goes where :)
<Godeke> That just seems to be an admission that the language is hard to parse for a human.
<Demitar> I really like that ocaml allows me to skip lots of (); when it's not strictly needed.
<Riastradh> In other languages, you get a lot of seemingly 'extra' conceptual baggage in the form of operator precedence, not knowing quite where to put parentheses, complicated lexical syntax, and the necessity of writing your own parser whenever you have a new language (whatever it be for; a configuration language, for instance).
<Godeke> Oh, I'm not trying to bash lisp like languages: I found ocaml only after working with them long enough to appreciate those things....
<Riastradh> That it is an admission that Scheme is hard to parse is just wrong; that's like saying some idiom in OCaml, such as using fold, is an admission that recursion is hard to understand.
<Riastradh> s/in OCaml/in functional languages/1
<Godeke> But when I started writing *real life* programs, the size of the nesting got pretty absurd.
jasen has left #ocaml []
<Riastradh> Then maybe you ought to have split down those programs into smaller components.
<Godeke> The same level of nesting in oCaml just *subjectively* reads cleaner to me. Probably my long history of procedural languages with algorithmic parsing...
<mellum> I don't see any reason why nesting should tend to be higher in Lisp than in other languages.
<Riastradh> mellum, lack of proficiency with Lisp idioms, perhaps?
Smerdy has joined #ocaml
Smerdyakov has quit [Read error: 110 (Connection timed out)]
<Godeke> It was the goofy stuff like needing to break arithmetic up into a half dozen (+ (* (+ a b) c) d e f) to express c*(a+b)+d+e+f... surely an artifact of too long in languages that parsed math in a traditional way.
<Godeke> I *get* it... it isn't hard to *write*, but I don't like trying to read it that way.
<Riastradh> If you have a mathematical expression that's complex enough for it to be hard to parse with all the parentheses, it's probably cognitively too complicated to have any right to be stuffed together in one expression as it is.
<Godeke> Anyway... I didn't start on the topic of syntax. Frankly, syntax is style, nothing more.
Smerdy is now known as Smerdyakov
<Riastradh> You didn't?
smklsmkl has joined #ocaml
<Godeke> No.. I started on the issue of performance issues of using purely functional data structures without resorting to lazy evaluation.
* Dybbuk is a big fan of prefix syntax for math. But then again, that's a question of personal preference. :)
m[kel[ has quit [Connection timed out]
<Riastradh> Oh, I misread what you said; I missed the 'on' of 'start on.'
<Demitar> No wonder bk_ gets scared when we get off track on discussions like this. (But they're fun discussions of course. ;-)
<Godeke> I read there was some work being done on polymorphic recursion, but I haven't found much beyond "it causes problems/no it doesn't" arguments.
<bk_> yes !
_jpl_ has joined #ocaml
Lemmih has quit [Read error: 110 (Connection timed out)]
CosmicRay has joined #ocaml
<CosmicRay> How can I define a new unary operator in OCaml? (One that takes just one argument?)
<CosmicRay> I have tried this:
<CosmicRay> # let (+>) x = x + 5;;
<CosmicRay> val ( +> ) : int -> int = <fun>
<CosmicRay> but:
<CosmicRay> # +> 5;;
<CosmicRay> Syntax error
<CosmicRay> # 5 +>;;
<CosmicRay> Syntax error
<CosmicRay> any hints?
<Smerdyakov> Maybe you can't define a new unary operator.
<vegai> (+>) 5;;
* vegai smirks.
<CosmicRay> vegai: yes that works but it's not what I'm after :-)
<Demitar> It's most likely a matter of parsing rather than definition. Check the grammar in the manual. You can redefine unary minus (-) if you want.
<CosmicRay> I have tried to check the grammar but couldn't figure out where to look
<Dybbuk> let (+) = Pervasives.(-) and (-) = Pervasives.(+)
<Dybbuk> Start all your source that way. :)
<CosmicRay> heh
<Dybbuk> CosmicRay: Anyhow, you can't define a new unary operator.
<Dybbuk> But you could do this: let pluswakka = (+) 5
<CosmicRay> ah. rats.
<Demitar> You can do it in camlp4 no doubt.
<Dybbuk> Heck, you could do it with cpp.
<Dybbuk> or m4 :)
<Demitar> Dybbuk, cpp doesn't know about the syntax though. :)
<Dybbuk> It doesn't need to. ;)
<CosmicRay> pfft, real men filter with sed :-)
* Dybbuk does use sed quite a bit with his OCaml stuff.
<Dybbuk> But only because so far I've been too lazy to learn camlp4.
<Demitar> No, real men write specialized C applications using incorrect assumptions and end up redoing a months work due to a filter going haywire.
<_jpl_> That's "keeping it real".
<_jpl_> I guess. :)
<Dybbuk> OCI is such a horrid mess.
<Dybbuk> You guys should all know that, before you accidentally get hired to write apps that use it.
smklsmkl has quit [Read error: 110 (Connection timed out)]
smklsmkl has joined #ocaml
CosmicRay has quit ["Client exiting"]
m[kel[ has joined #ocaml
smklsmkl has quit [Connection timed out]
smklsmkl has joined #ocaml
m[kel[ has quit [Read error: 110 (Connection timed out)]
cjohnson has quit [Read error: 110 (Connection timed out)]
cjohnson has joined #ocaml
m[kel[ has joined #ocaml
cjohnson has quit ["Drawn beyond the lines of reason"]
smklsmkl has quit [Read error: 110 (Connection timed out)]
cjohnson has joined #ocaml
smklsmkl has joined #ocaml
m[kel[ has quit [Read error: 110 (Connection timed out)]
m[kel[ has joined #ocaml
smklsmkl has quit [Read error: 110 (Connection timed out)]
Lemmih has joined #ocaml
smklsmkl has joined #ocaml
m[kel[ has quit [Read error: 110 (Connection timed out)]
pattern has quit [Remote closed the connection]
pattern has joined #ocaml
<Lemmih> "The method insert has type #widget -> unit where .. is unbound"??
<Dybbuk> Bummer.
<Lemmih> I'm somewhat confused...
<Dybbuk> Maybe tell us what you're doing?
<Lemmih> val mutable wg = None
<Lemmih> method insert w = wg <- Some (w :> widget)
<Dybbuk> Well...hmmm...what's :> do?
smklsmkl has quit [Read error: 110 (Connection timed out)]
smklsmkl has joined #ocaml
<Lemmih> Dybbuk: coerce.
<Dybbuk> Ah...hmmm...I don't know, then.
<Dybbuk> Haven't worked with any of the GUI interfaces much.
<JPL-Justin-away> oh wow are you doing gui stuff?
<JPL-Justin-away> I want to learn how to do GUI stuff in ocaml, it'd make it a lot more usevul for some of the thigns I want to do.
* Dybbuk has only used cameleon to do GUI stuff so far.
<Dybbuk> But I did some neat things.
<Lemmih> (:>) isn't specific to GUI programming.