<companion_cube>
I don't think video tutorials are any good...
<companion_cube>
follow the tutorial
<tutak>
ok...
<companion_cube>
good luck ^^
<tutak>
thanks :D
<companion_cube>
you can ask questions here if you're stuck
avsm has joined #ocaml
<tutak>
companion_cube, What kind of areas is Ocaml used outside the diddatic area? I mean what kind of jobs is it associated with if any? I read it currently doesnt have widespread adoption
<companion_cube>
it's used by a few companies (including a trading one), and by many researchers
baldandgoateed is now known as MacNuggard
skchrko has joined #ocaml
<companion_cube>
but if you don't know a functional language, learning it will anyway be beneficial for you
<tutak>
Ya, it would be interesting to have another outlook of programming rather than the usual OOP
<hcarty>
Kakadu: A well designed OCaml course would be nice to have on Coursera. I think it could help in promoting the language.
zxqdms has joined #ocaml
<Kakadu>
hcarty: I think that too
<hcarty>
Something based on OCaml From The Very Beginning or RWO, depending on the audience you want to target.
<NoNNaN>
any idea about the proposed course topics?
<companion_cube>
algorithmics ? :p
<Kakadu>
Creating compilers using OCaml?
ontologiae has joined #ocaml
<pippijn>
OFTVB is not a nice acronym
amirmc has joined #ocaml
<NoNNaN>
Peter Sestoft, IT University of Copenhagen has some good courses on programming language concepts & compiler topic (eg.: http://www.itu.dk/courses/BPRD/E2013/),and the course use fsharp as the base/implementation language
<companion_cube>
f# -_-
amirmc has quit [Ping timeout: 252 seconds]
ygrek has quit [Ping timeout: 272 seconds]
thomasga has joined #ocaml
mort___ has quit [Quit: Leaving.]
thomasga has quit [Client Quit]
kyrylo has joined #ocaml
<bernardofpc>
Kakadu> What do you think, should some OCaml courses will be presented on www.coursera.org ? -> if you have a *really* good one, then sure yes
<bernardofpc>
(if not, this is a good motivation to create such a good course :d)
<bernardofpc>
as OCaml is not like "Lin Algebra" or "Philosophy 101" (a mandatory course for lots of people), having a "not top-notch course" might do more harm than good in promoting "this is a hard language, besides, nobody uses it"
<bernardofpc>
otoh, if the course gets people doing fun stuff (my takes: matching, polymorphic functions, recursive algorithms on recursive data structures) then it will encourage people finding more and more about it
tianon has quit [Ping timeout: 260 seconds]
tianon has joined #ocaml
Thooms has quit [Ping timeout: 272 seconds]
<nicoo>
hcarty: Regarding basing it on RWO, we would have to choose between OCaml/Core and OCaml. (And RWO is frustrating w.r.t. not specifying what is syntax extensions and what is vanilla OCaml)
<Drup>
(in all cases, we need a cute camel drawing)
mocrunsthecity has quit [Remote host closed the connection]
<MacNuggard>
fds, pen and paper theorem proving seldom seems to be "formal" though.
<MacNuggard>
I would take the position that anything other than a formal proof is pseudoscience and I think it's funny how extremely defensive everyone gets over it if their favourite academic disciple is called a pseudoscience.
_andre has quit [Quit: leaving]
willb1 has joined #ocaml
xkb_ is now known as Xebia
Xebia is now known as xkb
tobiasBora_ has quit [Quit: Konversation terminated!]
Anarchos has joined #ocaml
Eyyub has quit [Ping timeout: 252 seconds]
dsheets has joined #ocaml
Eyyub has joined #ocaml
<bernardofpc>
Well, if you start calling people names, it is fairly understandable that they get defensive ;-)
willb1 has quit [Read error: Operation timed out]
<bernardofpc>
(pseudoscience being outright aggressive, at least if you want what you're doing to BE science)
<adrien>
if we invented computers through science and couldn't do science before we had computers, how did we do it?
<companion_cube>
:)
<bernardofpc>
maybe we did not invent computers through science ?
<bernardofpc>
(maybe we didn't even INVENT computers !)
<companion_cube>
maybe it's the illuminati from the future :p
<bernardofpc>
(maybe the matrix gots us)
<bernardofpc>
</brain needs rest>
<adrien>
but who built the machines that built the matrix?
Eyyub has quit [Ping timeout: 240 seconds]
<MacNuggard>
bernardofpc, where am I calling people names?
<MacNuggard>
Besides, formal proofs existed before computers, it just happens that computers are such a great tool constructing and verifying them that doing it without them nowadays is insanity.
Eyyub has joined #ocaml
<Anarchos>
companion_cube don't feed the troll....
<bernardofpc>
MacNuggard: in fact, "science" as defined by philosophy is not formalism, rather the cycle "hypothesis -> model -> forecasts -> experiments"
<bernardofpc>
(so Math, and maybe Computer "Science" are not sciences since they don't admit falsifiable hypothesis through experiments
<MacNuggard>
bernardofpc, well, maybe, but formalism is the only thing that meets Popper's criteria.
<MacNuggard>
It is the only thing that is purely objective and reproducible and free from human interpretation
<bernardofpc>
of falsifiability ?
<MacNuggard>
Of reproducibility actually.
<bernardofpc>
Oh
<adrien>
ls
<adrien>
ergh
<MacNuggard>
The point of non formalism is that there can exist debate on how to interpret things because well, there is human interpretation
<bernardofpc>
This is IRC, Not zsh ;-)
<adrien>
tired brain
<MacNuggard>
And formal proofs also have this amazing property of not really being disprovable.
<bernardofpc>
ribht
<asmanur_>
MacNuggard: uh?
<bernardofpc>
so you disjoin falsifiability from reproducibility
<asmanur_>
have you been away for the last century ?
<bernardofpc>
therefore ther's no science
<MacNuggard>
asmanur_, such as?
rand000 has quit [Ping timeout: 272 seconds]
<MacNuggard>
bernardofpc, if we add the criterion of empirical I would submit to that
<asmanur_>
MacNuggard: I'm not sure what you mean by a proof being "disprovable"
<asmanur_>
but a formal proof is no assurance of the "truth" of the statement
<bernardofpc>
truth is just a formal value anyway ;-)
<MacNuggard>
asmanur_, what is this "truth" of which you speak?
<bernardofpc>
it bears no relation to the Universe
<MacNuggard>
All I know is following from the axioms by the rules of inference.
<bernardofpc>
of course, one might object to the purpose of doing something absolutely disconnected from reality by fiat
<asmanur_>
yes MacNuggard but what the point of writing overly formal proof in a system where you have no guarantee on the soundness of the system?
<MacNuggard>
asmanur_, well, clearly proofs are not disprovable, that makes them proofs.
<MacNuggard>
If they were disprovables they wouldn't be proofs.
<MacNuggard>
Proving the negation does not disprove the proof, it just proves the inconsistenty of the system
<MacNuggard>
asmanur_, I never spoke of use or points or truthfulness.
<MacNuggard>
I'm saying what it is, not if we should do it or if it's useful.
<asmanur_>
MacNuggard: uh, you were saying that without formal proofs, no science is possible
<MacNuggard>
which is more or less the jumps in logic many people tend to make when I call thnigs pseudosciences, that they are not useful or I dislike them or dislike the people that practice them or whatever, people seem to have a very hard time keeping those things disjoint
<MacNuggard>
indeed
<bernardofpc>
well, you were the one calling "pseudoscience", which is a very negative word, at least as people interpret it
<bernardofpc>
if you just say "empirical science" or "interpreted science", this is much more precise, and also will not invoke flames on you
<bernardofpc>
even though human interpretation might be a very bad thing for science, it's the way most people (if not all) interact
<MacNuggard>
bernardofpc, therein lies the problem more or less.
<MacNuggard>
People's disposition to use terms more as value judgements rather than descriptive.
<MacNuggard>
Like ehh "terrorist" and "freedom fighter" ultimately they mean the same thing, it just communicates if you agree with their cause or not.
<MacNuggard>
And then you have people who actually say "No, we're not terrorists, we're fredeom fighters!"
<bernardofpc>
well, that's a different issue, because "pseudoscience" is not well defined, nor your definition of science is common to everybody
<bernardofpc>
most people don't even know Popper's criteria
<MacNuggard>
I'm just taking popper's criteria literally in this case.
<MacNuggard>
But I usually qualify it as "accordingly popper's criteria, everything but formalism is a pseudosciecne"
<MacNuggard>
Or at least not a science.
<MacNuggard>
Where a pseudoscience is something that claims to be a science but isn't.
Yoric has joined #ocaml
<adrien>
popper was an idiot then
<Drup>
bernardofpc: very brave of you to try to convince a troll not to use an abrasive, I admire the effort, though I find it pointless.
<MacNuggard>
More like popper didn't intend people to take his criteria literally.
<Drup>
abrasive term*
tane has joined #ocaml
<MacNuggard>
or "strictly" rather
rand000 has joined #ocaml
rand000 has quit [Client Quit]
tlockney has quit [Quit: I may return, one day...]
Yoric has quit [Ping timeout: 252 seconds]
mocrunsthecity has joined #ocaml
malvarez has quit [Remote host closed the connection]
talzeus has joined #ocaml
tlockney has joined #ocaml
tlockney has quit [Client Quit]
tlockney has joined #ocaml
shadynasty_ has joined #ocaml
thomasga has joined #ocaml
Anarchos has quit [Quit: Vision[0.9.7-H-20131020]: i've been blurred!]
mocrunsthecity has quit [Remote host closed the connection]
ocp has joined #ocaml
lostcuaz_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<shadynasty_>
what is the difference between a functor and a function of type module -> module?
shadynasty_ has quit [Quit: Page closed]
<companion_cube>
aww
<shadynasty>
hi
<shadynasty>
:)
<companion_cube>
shadynasty: a functor is, indeed, a function from modules to modules :)
<companion_cube>
most of the time called at compile time, but sometimes also at runtime
<companion_cube>
let module M = Map.Make(....) in
<shadynasty>
functors seem to take as argument a non-first-class module though
<companion_cube>
indeed
<companion_cube>
I think that's an artifact of the type system
<companion_cube>
which separates modules and values
<companion_cube>
and provides way to convert between them, the "first class modules", indeed
Yoric has joined #ocaml
nikki93 has joined #ocaml
<MacNuggard>
companion_cube, a functor is a function from module to module?
<MacNuggard>
I always thought it was more from type to module
Yoric has quit [Client Quit]
Yoric has joined #ocaml
<companion_cube>
MacNuggard: no, it takes a module as an argument
mocrunsthecity has joined #ocaml
<companion_cube>
argument that may contain several types and values
thomasga has quit [Quit: Leaving.]
Kakadu has quit []
<MacNuggard>
companion_cube, can't a functor take pretty much any value as argument which needn't be a module?
<companion_cube>
no, a functor takes a module as argument and returns a module
<companion_cube>
if you want to give it a simple value, wrap it in a module :p
FreeArtMan has joined #ocaml
<MacNuggard>
THen I am verily confused
<MacNuggard>
oh well
<MacNuggard>
I'mretarded anyway
axiles has quit [Remote host closed the connection]
<companion_cube>
nah
<MacNuggard>
companion_cube, well, maybe not that bright.
<MacNuggard>
I'm good at StarCraft II though.
malvarez has joined #ocaml
<MacNuggard>
I play every race and every matchuyp is my finest.
<nicoo>
l
<dsheets>
starcraft ii is basically ocaml, you should be fine
<nicoo>
:D
<nicoo>
dsheets: What is the OCaml equivalent of zerglings ?
<dsheets>
boxes
zpe has quit [Remote host closed the connection]
<MacNuggard>
integers, clearly.
<dsheets>
when you transform your town center, it is a functor application
zpe has joined #ocaml
<dsheets>
when you transform a unit, it is a function
<companion_cube>
MacNuggard: then you should write bots for starcraft 2, in OCaml
<companion_cube>
and win the championships :>
<MacNuggard>
I don't think SC2 has an exposed API, only BW.
<companion_cube>
ah, right
<tautologico>
there was a competition a couple of years ago for StarCraft 1 AIs
ontologiae has joined #ocaml
<adrien>
BW doesn't have an exposed API either
<adrien>
it's RE iirc
mocrunsthecity has quit [Remote host closed the connection]
<MacNuggard>
Well, not by Blizzard, but someone made BWAPI.
<tautologico>
yeah I don't think they have an official API
<MacNuggard>
It's not official, it just exists.
<MacNuggard>
And Blizzard has been kind enough to let AI competitions happen
<MacNuggard>
How exactly does this work with lexical scope though?
<MacNuggard>
If a module exists at runtime and potentially even depend on user input.
<Drup>
wat with lexical scope ?
<Drup>
It doesn't change anything
mcclurmc has quit [Ping timeout: 272 seconds]
<Drup>
module type S = sig val x : char end ;;
<Drup>
let f x = let module M = struct let x = x end in (module M : S) ;;
<Drup>
here is a simple example
<MacNuggard>
Well, if modules are first class then it is only decidable at runtime what bindings they define no?
<MacNuggard>
Well, it's not decidable at all in fact then
<Drup>
you have to provide the type if you want to use a module as value
<malvarez>
Drup: I think he means you can't bind names to values at compile time
<MacNuggard>
at runtime rather
<Drup>
you still now what's in the scope
<Drup>
know*
<MacNuggard>
but the type of the module basically encorporates all its bindings and their types?
<Drup>
yes
<MacNuggard>
Well, that solves it I guess.
<Drup>
yes =)
<MacNuggard>
Makes for some very inflexible first class modules though.
<MacNuggard>
I thought it was more something like how python modules functioned
<Drup>
there is no such things as "python modules", call them by their names : they are dictionaries.
<malvarez>
As I understand it, it's basically like passing around a record
<malvarez>
Perhaps with existential types if you have abstract types in your module
<malvarez>
But I could be terribly wrong
<MacNuggard>
Drup, oh please, that's just a definition war.
<MacNuggard>
They are called modules in python nomenclature, Ocaml functions are technically not functions either.
<Drup>
MacNuggard: you mean, like pseudoscience ? :p
<ousado>
MacNuggard: inflexible in what way?
<MacNuggard>
Drup, I didn't make the definition, I just took the one everyone swears by and for kicks and funs poibnt out that when you take it strictly only formalism falls under it.
<MacNuggard>
inflexible in that they aren't dictionaries that grossly violate static scope
<MacNuggard>
I have no idea how python's scoping model works, I feel guido wants us to not worry about how it works at all and just hack stuff together having no idea what we are doing.
thomasga has quit [Quit: Leaving.]
<ousado>
you mean "... that don't circumvent the type system" ?
<Drup>
(also, MacNuggard, python modules really *are* exactly the same as python's dictionaries)
<Drup>
(you can manipulate them in the same way ... like adding stuff in another module at runtime)
<MacNuggard>
Isn't that extremely expensive, to hash every time you just want to access a binding?
<MacNuggard>
Python has no type system
<MacNuggard>
I reserve my right to call dynamic typing untyped.
<Drup>
I will let the implementation details to python people, but you can do the same stuff with both.
<MacNuggard>
Though I suppose you can argue that a > b > c in python constitutes a form of static typing.
<ousado>
static typing happens at compile time
<ousado>
.. and I assumed "they" referred to ocaml modules, in your above sentence
sillyotter has joined #ocaml
<MacNuggard>
The gripe people have with the term "dynamic typing" is more that it is a completely unrelated concept to static typing and in fact not something special.
<MacNuggard>
Static typing is investigating the structure of a datum and deciding based on it what the return value of a procedure must bee.
sillyotter has quit [Client Quit]
<Drup>
huh, no, that's inference.
<MacNuggard>
Ehh
<MacNuggard>
dynamic typing is ...*
<MacNuggard>
I'm basically saying there is no real difference between investigating the "tag" of a datum and investigating the first character of a string.
<MacNuggard>
In fact, internally many dynamic types are implemented as vectors whose first element is some special value
<Drup>
and ?
<MacNuggard>
And therefore dynamic typing doesn't really exist, there is no hard definition of what a "dynamic type" would be,.
<MacNuggard>
And what would make it different from simply the first character of a string.
<Drup>
you like to redefine words to your own definition, don't you ?
<flux>
actually he is following the definitions used in research about.. types?
cesar_ has joined #ocaml
<MacNuggard>
I am.
cesar_ is now known as Guest60476
<flux>
the type of any value in a dynamically typed language is the one and same, universal type
<MacNuggard>
In type theory python's grammar would be called untyped or unityped.
<flux>
how it behaves depends completely on what is done at runtime, so you cannot pick a fragment of code in isolation and see what it means type-wise, you must execute it
<MacNuggard>
Also, all languages almost have some form of dynamic typing. that ( > ) in OCaml fails on two functions int -> int is arguably dynamic typing.
<MacNuggard>
flux, well, I wouldn't call it a "type" or at the very least it's something fundamentally different from the types of expressions in a recursive langauge.
<MacNuggard>
And I don't think it's even been formalized what a "dynamic type" would be given that it's not really magical, it's just part of the structure of a datum much like the first character of a string.
travisbrady has quit [Quit: travisbrady]
Simn has quit [Quit: Leaving]
Guest60476 has quit [Remote host closed the connection]
lostcuaz has joined #ocaml
<ousado>
pythons grammar wouldn't be called anything in type theory, grammar is about syntax
<MacNuggard>
static typing is very much about grammar.
<MacNuggard>
In fact, it's basically a hack to keep calling a langauge context free when it actually isn't.
skchrko has quit [Quit: Leaving]
<ousado>
uhm.. this is getting weird
willb1 has quit [Ping timeout: 264 seconds]
<MacNuggard>
Not at all.
<MacNuggard>
That's what it is. The grammar for OCAM would say something like <lambda> := fun <id> + -> <exp>; or whatever which is a context free grammar because a context free grammar can't express the limitatins to <exp> that would be required, that would be context sensitive.
<MacNuggard>
But then we just say that it is "grammatical, but wrongly typed" in some cases which means that because we call it grammatical, it's still a context free grammar, if we said it was ingrammatical it would not be a context free grammar but ultimately that would change nothing as far as partioning the kleene set of symbols into compilable and uncompitable ocaml programs.
<MacNuggard>
We could just as well say that wrongly typed programs are "ingrammatical" and arrive at the same accept/reject partitioning but then the langauge's grammar is no longer context free.
madroach has quit [Ping timeout: 252 seconds]
dant3 has quit [Remote host closed the connection]
dant3 has joined #ocaml
dant3 has quit [Remote host closed the connection]