ChanServ changed the topic of #ocaml to: Discussions about the OCaml programming language | http://caml.inria.fr/ | http://www.ocaml.org | OCaml 4.01.0 announce at http://bit.ly/1851A3R | Logs at http://irclog.whitequark.org/ocaml
NoNNaN has quit [Ping timeout: 264 seconds]
johnnydiabetic has joined #ocaml
refaktor has quit [Quit: Lost terminal]
fraggle_ has quit [Ping timeout: 240 seconds]
alinab has joined #ocaml
alpounet has joined #ocaml
alpounet has quit [Ping timeout: 272 seconds]
ustunozgur has joined #ocaml
philtor_ has quit [Ping timeout: 240 seconds]
ustunozgur has quit [Ping timeout: 250 seconds]
fraggle_ has joined #ocaml
jwatzman|work has quit [Quit: jwatzman|work]
racycle has quit [Quit: ZZZzzz…]
alexst has joined #ocaml
rizo has quit [Quit: rizo]
alexst has quit [Ping timeout: 240 seconds]
fold has quit [Quit: WeeChat 0.4.3]
fold has joined #ocaml
malc has joined #ocaml
philtor_ has joined #ocaml
manizzle has quit [Ping timeout: 250 seconds]
penglingbo has joined #ocaml
q66 has quit [Quit: Leaving]
dapz has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
NoNNaN has joined #ocaml
divyanshu has joined #ocaml
alexst has joined #ocaml
tnguyen1 has quit [Ping timeout: 264 seconds]
numeo is now known as luneo
alexst has quit [Ping timeout: 240 seconds]
shinnya has quit [Ping timeout: 256 seconds]
ygrek has joined #ocaml
jpdeplaix has quit [Ping timeout: 256 seconds]
boogie has quit [Remote host closed the connection]
dapz has joined #ocaml
alpounet has joined #ocaml
alpounet has quit [Ping timeout: 256 seconds]
jpdeplaix has joined #ocaml
ygrek_ has joined #ocaml
ygrek has quit [Ping timeout: 240 seconds]
WraithM has quit [Ping timeout: 260 seconds]
luneo is now known as numeo
johnnydiabetic has quit [Ping timeout: 240 seconds]
bjorkintosh has quit [Ping timeout: 240 seconds]
alexst has joined #ocaml
divyanshu has quit [Quit: Computer has gone to sleep.]
alexst has quit [Ping timeout: 240 seconds]
philtor_ has quit [Ping timeout: 264 seconds]
tidren has joined #ocaml
racycle has joined #ocaml
BitPuffin has quit [Ping timeout: 240 seconds]
dapz has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
tidren has quit [Remote host closed the connection]
tidren has joined #ocaml
tidren has quit [Read error: Connection reset by peer]
tidren has joined #ocaml
WraithM has joined #ocaml
divyanshu has joined #ocaml
dapz has joined #ocaml
araujo has quit [Read error: Connection reset by peer]
araujo has joined #ocaml
no0y has quit [Remote host closed the connection]
malc has quit [Quit: leaving]
boogie has joined #ocaml
ustunozgur has joined #ocaml
ustunozgur has quit [Ping timeout: 272 seconds]
tidren has quit [Remote host closed the connection]
tidren has joined #ocaml
boogie has quit [Remote host closed the connection]
dapz has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
WraithM has quit [Ping timeout: 240 seconds]
alexst has joined #ocaml
tidren has quit [Remote host closed the connection]
BitPuffin has joined #ocaml
WraithM has joined #ocaml
tidren has joined #ocaml
alexst has quit [Ping timeout: 264 seconds]
siddharthv_away is now known as siddharthv
boogie has joined #ocaml
BitPuffin has quit [Ping timeout: 240 seconds]
tidren has quit [Remote host closed the connection]
divyanshu has quit [Quit: Computer has gone to sleep.]
WraithM has quit [Ping timeout: 240 seconds]
araujo has quit [Quit: Leaving]
fold has quit [Ping timeout: 260 seconds]
<adrien> mfp: oh, your UnixW is awesome
<adrien> I was sometimes annoyed that I had to deal with ansi and its limitations on windows
alexst has joined #ocaml
tidren has joined #ocaml
axiles has joined #ocaml
fold has joined #ocaml
penglingbo has quit [Ping timeout: 240 seconds]
alexst has quit [Ping timeout: 264 seconds]
azuh has joined #ocaml
ddosia has quit [Quit: Leaving.]
bjorkintosh has joined #ocaml
badon has quit [Read error: Connection reset by peer]
bjorkintosh has quit [Ping timeout: 256 seconds]
badon has joined #ocaml
BitPuffin has joined #ocaml
boogie has quit [Remote host closed the connection]
<whitequark> DreamLinuxer: poke
<whitequark> errr sorry, Drup ^
maattdd has joined #ocaml
divyanshu has joined #ocaml
badon_ has joined #ocaml
badon has quit [Ping timeout: 264 seconds]
badon_ is now known as badon
racycle has quit [Quit: ZZZzzz…]
BitPuffin has quit [Ping timeout: 240 seconds]
NoNNaN has quit [Remote host closed the connection]
NoNNaN has joined #ocaml
ygrek_ has quit [Remote host closed the connection]
ggole has joined #ocaml
alexst has joined #ocaml
relrod has quit [Changing host]
relrod has joined #ocaml
alexst has quit [Ping timeout: 264 seconds]
bjorkintosh has joined #ocaml
maattdd has quit [Ping timeout: 240 seconds]
dapz has joined #ocaml
dapz has quit [Max SendQ exceeded]
WraithM has joined #ocaml
badon has quit [Ping timeout: 260 seconds]
badon_ has joined #ocaml
badon_ is now known as badon
zpe has joined #ocaml
hhugo has joined #ocaml
boogie has joined #ocaml
zpe has quit [Remote host closed the connection]
boogie has quit [Ping timeout: 256 seconds]
azuh has quit []
Hannibal_Smith has joined #ocaml
ggole has quit [Ping timeout: 250 seconds]
eikke__ has joined #ocaml
cdidd has joined #ocaml
ygrek has joined #ocaml
ggole has joined #ocaml
Simn has joined #ocaml
alexst has joined #ocaml
alexst has quit [Ping timeout: 256 seconds]
BitPuffin has joined #ocaml
mcclurmc has joined #ocaml
_0xAX has joined #ocaml
eikke__ has quit [Ping timeout: 240 seconds]
BitPuffin has quit [Ping timeout: 240 seconds]
hhugo has quit [Quit: Leaving.]
BitPuffin has joined #ocaml
fold has quit [Quit: WeeChat 0.4.3]
maattdd has joined #ocaml
BitPuffin has quit [Ping timeout: 240 seconds]
maattdd has quit [Ping timeout: 264 seconds]
cago has joined #ocaml
eikke__ has joined #ocaml
q66 has joined #ocaml
ustunozgur has joined #ocaml
zpe has joined #ocaml
ustunozgur has quit [Ping timeout: 260 seconds]
zpe has quit [Ping timeout: 264 seconds]
yacks has quit [Ping timeout: 250 seconds]
alpounet has joined #ocaml
ddosia has joined #ocaml
alexst has joined #ocaml
alexst has quit [Ping timeout: 256 seconds]
BitPuffin has joined #ocaml
claudiuc has joined #ocaml
maattdd has joined #ocaml
BitPuffin has quit [Ping timeout: 264 seconds]
arquebus has joined #ocaml
BitPuffin has joined #ocaml
Kakadu has joined #ocaml
BitPuffin has quit [Ping timeout: 264 seconds]
ustunozgur has joined #ocaml
BitPuffin has joined #ocaml
AltGr has joined #ocaml
BitPuffin has quit [Ping timeout: 272 seconds]
maattdd has quit [Ping timeout: 240 seconds]
rand000 has joined #ocaml
rand000 has quit [Ping timeout: 240 seconds]
BitPuffin has joined #ocaml
jludlam has joined #ocaml
hhugo has joined #ocaml
BitPuffin has quit [Ping timeout: 240 seconds]
BitPuffin has joined #ocaml
alexst has joined #ocaml
rossberg_ has quit [Remote host closed the connection]
AltGr has left #ocaml [#ocaml]
AltGr has joined #ocaml
rossberg has joined #ocaml
zpe has joined #ocaml
alexst has quit [Ping timeout: 260 seconds]
zpe has quit [Remote host closed the connection]
zpe has joined #ocaml
thomasga has joined #ocaml
maufred has quit [Ping timeout: 240 seconds]
maufred has joined #ocaml
hhugo has quit [Quit: Leaving.]
claudiuc_ has joined #ocaml
claudiuc has quit [Ping timeout: 264 seconds]
Hannibal_Smith has quit [Quit: Sto andando via]
Anarchos has joined #ocaml
Eyyub has quit [Ping timeout: 260 seconds]
mcclurmc has quit [Remote host closed the connection]
WraithM has quit [Ping timeout: 260 seconds]
claudiuc_ has quit [Read error: Connection reset by peer]
claudiuc has joined #ocaml
claudiuc has quit [Read error: Connection reset by peer]
claudiuc has joined #ocaml
claudiuc has quit [Remote host closed the connection]
alexst has joined #ocaml
alexst has quit [Ping timeout: 264 seconds]
arquebus has quit [Quit: Konversation terminated!]
yacks has joined #ocaml
AltGr has left #ocaml [#ocaml]
AltGr has joined #ocaml
dsheets has joined #ocaml
ustunozg_ has joined #ocaml
rizo_ has joined #ocaml
ustunozgur has quit [Ping timeout: 240 seconds]
thomasga has quit [Quit: Leaving.]
matematikaadit has joined #ocaml
dsheets_ has joined #ocaml
tidren has quit [Remote host closed the connection]
yacks has quit [Ping timeout: 272 seconds]
eikke__ has quit [Remote host closed the connection]
dsheets_ has quit [Quit: Leaving]
alexst has joined #ocaml
alexst has quit [Ping timeout: 240 seconds]
yacks has joined #ocaml
_andre has joined #ocaml
mbac has quit [Ping timeout: 240 seconds]
sagotch has joined #ocaml
siddharthv is now known as siddharthv_away
siddharthv_away has quit [Quit: Lost terminal]
ygrek has quit [Ping timeout: 272 seconds]
sheijk has joined #ocaml
Anarchos has quit [Quit: Vision[0.9.7-H-20140108]: i've been blurred!]
hhugo has joined #ocaml
alexst has joined #ocaml
rizo_ has quit [Quit: rizo_]
ski has quit [Quit: Lost terminal]
alexst has quit [Ping timeout: 240 seconds]
baz_ has quit [Ping timeout: 240 seconds]
mbac has joined #ocaml
thomasga has joined #ocaml
baz_ has joined #ocaml
ustunozgur has joined #ocaml
ustunozg_ has quit [Ping timeout: 240 seconds]
avsm has joined #ocaml
ustunozgur has quit [Remote host closed the connection]
<Drup> aaah, I forgot to merge your PR, sorry, I had a busy week end
bjorkintosh has quit [Ping timeout: 240 seconds]
ustunozgur has joined #ocaml
ustunozgur has quit [Remote host closed the connection]
seanmcl has joined #ocaml
bjorkintosh has joined #ocaml
alexst has joined #ocaml
hhugo has quit [Quit: Leaving.]
penglingbo has joined #ocaml
alexst has quit [Ping timeout: 256 seconds]
<companion_cube> whitequark: any idea whether {foo| |foo} supports escaping "|foo}" inside the string?
<whitequark> companion_cube: not as far as I'm aware
<companion_cube> aww
AltGr has left #ocaml [#ocaml]
AltGr has joined #ocaml
AltGr has left #ocaml [#ocaml]
AltGr has joined #ocaml
AltGr has left #ocaml [#ocaml]
AltGr has joined #ocaml
divyanshu has quit [Quit: Computer has gone to sleep.]
darkf has quit [Quit: Leaving]
alexst has joined #ocaml
matematikaadit has quit [Quit: Leaving]
alexst has quit [Ping timeout: 256 seconds]
<Drup> whitequark: hum, actually, can you make the original PR mergeable ?
<Drup> I have documentation to add before merging upstream.
<Drup> s/upstream/master/
<whitequark> Drup: nope
<whitequark> that's why I made a new one
<whitequark> I mean, I can, but then there will be noise in the diff
<Drup> ok, I will just rebase the ppx branch to make it clean
<whitequark> or in other words, it will be mergeable either to ppx or to master, and if mergeable to ppx, it needs to include changes to master
<Kakadu> o/
Anarchos has joined #ocaml
avsm has quit [Quit: Leaving.]
<Kakadu> I have written another tutorial for lablqt 0.3 (with PPX syntax extension). My english in the last one was criticized very much... and it will be great if somebody on the channel has free time to read it...
NoNNaN has quit [Remote host closed the connection]
Hannibal_Smith has joined #ocaml
NoNNaN has joined #ocaml
<Drup> whitequark: done.
<Drup> (you should have let me rebase it, it would have been simpler :p)
avsm has joined #ocaml
divyanshu has joined #ocaml
<Drup> hum, actually, almost done
<freling> Kakadu: "Starting from lablqt version 0.3 external JSON file is not longer needed (deprecated?) for specifing API and PPX extension should be used (are required?)."
<freling> Kakadu: "In this chapter a very simple QtQuick application" (missing 'a')
<freling> Kakadu: "In Qt Modeling Language (QML) we describe the user interface" (missing 'the')
<Kakadu> yes
<Kakadu> hmm
<Kakadu> maybe it will be great to have google doc version
<freling> :D as you wish
<freling> I was just typing as I was reading it
<freling> but that doesn't scale well
Hannibal_Smith has quit [Quit: Sto andando via]
<Kakadu> freling: http://goo.gl/bzUk0T
<whitequark> Drup: wheeee, thanks
<Drup> git mergetool is my friend
NoNNaN has quit [Remote host closed the connection]
boogie has joined #ocaml
NoNNaN has joined #ocaml
shinnya has joined #ocaml
* whitequark is finishing ppx_deriving
<Drup> you're rewriting from scratch, without using the original deriving library, I suppose ?
<whitequark> yes
<Drup> yeah, that's the way to go
<whitequark> it uses very little code with ppx
<whitequark> mostly I'm working on some initial plugins / examples
<Drup> (do appreciate, that I'm saying the way to go is to rewrite from scratch)
<whitequark> ppx_deriving_show, _eq and _compare
<Drup> (it doesn't happen often)
<whitequark> Drup: I do
<whitequark> oh, I'll also port protobuf over
<Drup> link to the code ?
<whitequark> um
<whitequark> I think I didn't even initial commit it yet
<whitequark> sec
<Drup> no problem
<whitequark> or I think I did...
<Drup> did you introduce an abstract data type to allow plugin independent from the ppx mecanism ?
<whitequark> no
<Drup> huum
<whitequark> I considered that and rejected it as an unnecessary abstraction layer
<whitequark> perhaps I'll reconsider after implementing those three
<Drup> ok
<whitequark> but so far it very much looks like the plugins would want to see the AST details
<whitequark> it is not something I like much, but I think it is the way to go.
<whitequark> *cough*practical*cough*
<Drup> yeah, I was not sure about that
cdidd has quit [Remote host closed the connection]
<Drup> the risk of an abstract data type is that you might end up duplicating part of the ocaml AST
<Drup> which is not good :p
<whitequark> yes, exactly
<whitequark> and the annotations contain the AST fragments anyway
<Drup> indeed
<Drup> otoh, everything is going to break on each ocaml version
<Drup> :(
<whitequark> hmmmm, need also implement ppx_cppo to contain that
<Drup> (that modifies the ast* of course)
<whitequark> okay...
<whitequark> some very raw stuff, not even a README yet
<whitequark> but it works
<Drup> cool, I will have a look at it later
cdidd has joined #ocaml
<Drup> hnrgrgr: you might want to look at it ^
<whitequark> mostly working Show is under 100 lines
<whitequark> which I really like
<whitequark> and there's very little boilerplate
<Drup> ppx metaquot makes the code quite clean indeed
<whitequark> yeh, Alain really did a good job there
<whitequark> bbl
zarul[afk] has joined #ocaml
alexst has joined #ocaml
zarul has quit [Ping timeout: 264 seconds]
baz_ has quit [Ping timeout: 256 seconds]
alexst has quit [Ping timeout: 240 seconds]
baz_ has joined #ocaml
penglingbo has quit [Ping timeout: 250 seconds]
sagotch has quit [Remote host closed the connection]
ygrek has joined #ocaml
arj has quit [Quit: Leaving.]
tane has joined #ocaml
_0xAX has quit [Remote host closed the connection]
boogie has quit [Remote host closed the connection]
boogie has joined #ocaml
xaimus has quit [Ping timeout: 240 seconds]
xaimus has joined #ocaml
BitPuffin has quit [Ping timeout: 240 seconds]
cago has quit [Quit: cago]
thomasga has quit [Quit: Leaving.]
thomasga has joined #ocaml
BitPuffin has joined #ocaml
thomasga has quit [Quit: Leaving.]
avsm has quit [Quit: Leaving.]
philtor_ has joined #ocaml
boogie has quit [Remote host closed the connection]
AltGr has left #ocaml [#ocaml]
AltGr has joined #ocaml
<freling> Kakadu: alright, I'm done
<freling> nice tutorial
avsm has joined #ocaml
Anarchos has quit [Quit: Vision[0.9.7-H-20140108]: i've been blurred!]
slash^ has joined #ocaml
zpe has quit [Remote host closed the connection]
<Kakadu> I'm a little bit ashamed
<Kakadu> too many missing articles
<Kakadu> thank you very much
alexst has joined #ocaml
philtor_ has quit [Ping timeout: 256 seconds]
penglingbo has joined #ocaml
<freling> you're welcome
alexst has quit [Ping timeout: 250 seconds]
shinnya has quit [Ping timeout: 240 seconds]
araujo has joined #ocaml
araujo has joined #ocaml
araujo has quit [Changing host]
AltGr has left #ocaml [#ocaml]
racycle has joined #ocaml
divyanshu has quit [Ping timeout: 260 seconds]
jludlam is now known as jonludlam
boogie has joined #ocaml
penglingbo has quit [Ping timeout: 260 seconds]
smondet_ is now known as smondet
zpe has joined #ocaml
Algebr has joined #ocaml
alexst has joined #ocaml
alexst has quit [Ping timeout: 240 seconds]
boogie has quit [Quit: Leaving...]
<Algebr> why is ocaml called a functional language when imperative features are all over the place?
jwatzman|work has joined #ocaml
tane has quit [Quit: Verlassend]
<pjdelport> Algebr: Functional doesn't imply non-imperative; the choices would be between functional and procedural.
<ggole> It's an impure functional language
<pjdelport> (and imperative versus declarative (?))
<Algebr> but it has a for loop, a while, mutating data structures.
alpounet has quit [Read error: Connection reset by peer]
alpounet_ has joined #ocaml
<ggole> Those are for the impure bits
<pjdelport> It's an imperative functional language :)
<Drup> and C has function pointers, does thats make it a functional language ? :D
<ggole> It also has immutable variables, immutable data structures by default, proper tail recursion
jonludlam has quit [Ping timeout: 240 seconds]
<pjdelport> Algebr: It's functional because the emphasis is still on immutable values and functions, even though they're not all that exists in the language.
<pjdelport> (Haskell has mutable data structures and imperative-style control structures too, but that doesn't make it non-functional.)
alpounet has joined #ocaml
<Algebr> pjdelport: it feels like such a bigger language than haskell
alpounet_ has quit [Read error: Connection reset by peer]
<Drup> it's because all the haskell weird features are hidden into opt-in ghc extensions (that almost everyone activates in practice)
<ggole> You couldn't call ocaml small, though...
<Drup> indeed
<Algebr> is ; a function or syntax?
<Drup> syntax
<ggole> No shortage of syntax here :/
<Algebr> ggole: yes, seems noisy to me...
<Drup> noisy ? which kind of syntax are you used to ?
<smondet> Algebr: which languages are you comparing with?
<Algebr> haskell and python, even C.
<ggole> I can't really disagree
<ggole> I've got used to it, of course
<Algebr> I have to use it for a compilers course.
<ggole> It's a pretty good language for that.
<Algebr> I do love the infrastruture around the language, especially opam, merlin, utop
thomasga has joined #ocaml
<ggole> (I wouldn't mind abstraction over patterns to make instruction selection a little less verbose, though.)
_0xAX has joined #ocaml
<Kakadu> I have read some articles where meaning of ; is explained via monads
<Algebr> Kakadu: happen to have link?
<pjdelport> Kakadu: That sounds terrible. :)
<Kakadu> I don't think so
<Drup> ahah, how to over complicate something x)
<Algebr> is utop just a wrapper on ocaml?
<Drup> yes
<Algebr> so it seems like jane street built wrappers on top of everything ocaml? corebuild over ocamlbuild
<Drup> (it calls the underlying functions exported by the compiler, not the executable, but it still qualify as a wrapper)
Kakadu has quit [Ping timeout: 246 seconds]
hhugo has joined #ocaml
ollehar has joined #ocaml
<smondet> utop was not initialy a janestreet project, right?
<Drup> no
<Drup> (it wouldn't use lwt otherwise :D)
NoNNaN has quit [Ping timeout: 264 seconds]
WraithM has joined #ocaml
alexst has joined #ocaml
alexst has quit [Ping timeout: 260 seconds]
Kakadu has joined #ocaml
avsm has quit [Quit: Leaving.]
philtor_ has joined #ocaml
Algebr has quit [Ping timeout: 240 seconds]
alpounet has quit [Remote host closed the connection]
alpounet has joined #ocaml
Algebr has joined #ocaml
<Algebr> just lost connection, not sure if my RWO question went through...
alpounet_ has joined #ocaml
alpounet has quit [Read error: Connection reset by peer]
<Drup> it didn't
<Algebr> RWO says: OCaml distinguishes between nonrecursive definitions (using let) and recursive definitions (using let rec) largely for technical reasons: the type-inference algorithm needs to know when a set of function definitions are mutually recursive, and for reasons that don't apply to a pure language like Haskell, these have to be marked explicitly by the programmer.
<Algebr> What are reasons?
<Drup> mutations, I presume
<Drup> ocaml has value restriction, as opposed to haskell (which restriction is slightly different)
<ggole> It would be unsound to evaluate arbitrary mutually recursive expressions afaik
<Algebr> Also, why are tuples delimitied by , when other datastructures are split by ;, is there something deeper going on?
<ggole> Since the value of one wouldn't be guaranteed to exist when it was accessed during the evaluation of another
<ggole> (Not a problem in a lazy language.)
<ggole> The ; thing is just a syntactic foible as far as I know
<ggole> Parens aren't required around tuples, so it would be ambiguous for , to also separate list elements.
dsheets has quit [Ping timeout: 272 seconds]
<orbitz> the ; is weird but i can't say I mind
<orbitz> I do hate when people don't put () around tuples though. my brain just doesn' tfunction tha tway
<Drup> I will take ; weirdness anyday, compare to indentation sensitive languages, but it's a matter of taste
<orbitz> with twt you can make your Ocaml identation sensitive!
<Algebr> Is # the way to get ocaml's meta commands? I found #typeof, but its strange to me that it takes a string of a identifier. (Was looking for ghci's :t equivalent)
<ggole> The toplevel will print the type of a thing when evaluating it, so you can often use that
angerman has joined #ocaml
<Drup> line starting by # in the repl are pragmas, yes
<Drup> only in the repl
WraithM has quit [Ping timeout: 256 seconds]
<maurer> Hey, is there a simple way to get something like a cabal sandbox in ocaml?
<Algebr> but how can I see the type signature? I have to load the function up in memory first?
<maurer> I would just use opam, but it needs to work on windows
ygrek has quit [Ping timeout: 256 seconds]
<ggole> Algebr: if it's in scope, just name it
<ggole> If it isn't in scope, then you'll need to fix that.
<Drup> maurer: have you tried opam on windows ? I heard it's almost working, so maybe it's good enough
_0xAX has quit [Remote host closed the connection]
<maurer> Drup: I tried for 2 days a couple weeks ago and couldn't get it to install some basic packages
<maurer> Since I already burned two days failing to get it to work, I was figuring I would wait on opam until they were actually done
<Drup> ok
<Algebr> So .mls don't have a main, but you can't have top level function invocations?
<Algebr> ie, I can't level a naked printf..So how do programs get started?
Hetu has joined #ocaml
<Drup> let _ = ....
<sheijk> Algebr: you can emulate them by doing 'let () = printf "lalala\n"' etc
avsm has joined #ocaml
<ggole> You can actually have toplevel function calls, you just need to separate with ;;
<ggole> It's more common to use let () = ... though
<Algebr> Ocamls seems like javascript insofar as there are a multitude of ways to define functions.
<Drup> oh ? =')
<Drup> this is an interesting comparison
<maurer> Drup: Would the answer be roughly to make a findlib.conf file pointing to a local directory, then set OCAMLFIND_CONF in the environment, and go about my business?
<Algebr> let a = (fun x -> x+1), let a x = x + 1, let a = function (*body*)
<Drup> maurer: I have no idea, I don't work on windows
<maurer> Drup: Would this strategy work on linux?
<Drup> Algebr: same thing in haskell
<Algebr> Drup: ha, true.
<sheijk> and any other language that does have first class functions (minus the fun vs function fun)
<ggole> Algebr: it's just a bit of sugar
<ggole> let f a b = ... is let f = (fun a -> (fun b -> ...))
<Drup> maurer: I would rather use opam switches
<maurer> Drup: As would I, I'm just wondering if I'm missing anything obvious with this idea :/
<ggole> And function is (fun a -> match a with ...)
<Drup> maurer: actually, I think what you describe is roughly what opam switch is doing
<maurer> Yes
<Algebr> What is apply in ocaml? (haskell's $)
<maurer> I'm trying to do a very small subset of what opam does for the purpose of a build system
<Drup> Algebr: @@
<maurer> We've got a couple packages that are being developed closely together, and I don't like having to repeatedly change what exact revision is installed on the system
<maurer> so my plan was to use git submodules to reference dependencies, then loop through them and install them all to a sandbox
<maurer> as part of the CI test procedure
ollehar has quit [Ping timeout: 240 seconds]
alexst has joined #ocaml
alexst has quit [Ping timeout: 264 seconds]
alpounet_ has quit [Remote host closed the connection]
alpounet has joined #ocaml
angerman has quit [Quit: Bye]
alpounet has quit [Ping timeout: 264 seconds]
thomasga has quit [Quit: Leaving.]
alexst has joined #ocaml
manizzle has joined #ocaml
slash^ has quit [Read error: Connection reset by peer]
alpounet has joined #ocaml
ollehar has joined #ocaml
hhugo has quit [Quit: Leaving.]
zpe has quit [Remote host closed the connection]
avsm has quit [Quit: Leaving.]
zpe has joined #ocaml
hhugo has joined #ocaml
<Algebr> What's the difference of #require and just doing an open?
<flux> open only brings symbols to your scope. it doesn't load code that has the meat behind the symbols.
<flux> also #require tells the toplevel where to find the symbols as well
<Algebr> flux: So you have to do both?
<flux> yes
<flux> for most libraries that come with OCaml the toplevel already knows that, so you don't need to #require them
<ggole> You don't have to open to use code
<flux> ah, yes :)
<ggole> Just refer to it qualified
<flux> or you can introduce module aliases
<Algebr> seems alittle redundant.
<flux> I think many (or at least I) open very few modules in programs
<flux> because it becomes more difficult to see where the symbols originate from if you have many module sopen
<ggole> open is a language level construct: #require is part of the toplevel
<flux> I suppose less of an issue with merlin nowadays, but you still cannot -see- where the symbol comes from, you need to traverse it
<ggole> When working on a project you would usually just stick in them in .ocamlinit and not have to worry about it anyway
<Drup> Algebr: #require is the analogous to -I (or -package) for the compiler
WraithM has joined #ocaml
tane has joined #ocaml
<Algebr> so in a .ml, you don't need a #require, just the open?
<Drup> yes
<ggole> You don't even need the open
<ggole> Just refer to Foo.bar directly
<flux> programs don't use #requires, they are for the benefit of interactive use
<flux> programs use a build system that are told which modules are needed to compile it
mk270 has left #ocaml [#ocaml]
teiresias has quit [Quit: leaving]
<Drup> ah yes, as opposed to haskell, you don't need to import stuff
teiresias has joined #ocaml
<Algebr> Drup: so then 1) Merlin will know stuff without even having to do open? So I could do String.<get code completion> 2) So when I want to compile it, I just do corebuild foo.native, and the build system will figure everything out??
<Drup> String is built in, so yes
<Drup> for not built in libraries, no.
teiresias has quit [Client Quit]
hhugo has quit [Quit: Leaving.]
<ggole> ocamlbuild figures out a fair amount, but not everything
<ggole> For basic usage you can just ocamlbuild foo.native, but eventually you have to start fiddling with tags and myocamlbuild.ml
<Drup> let's say you want to use a package foo exposing a module SuperFoo. for merlin, you need to put the line "PKG foo" in a .merlin on the root of your project
<Drup> and for ocamlbuild, you can do "-use-ocamlfind -package foo"
<Drup> and then the module SuperFoo will be available (and merlin autocompletion will work)
Anarchos has joined #ocaml
alexst has quit [Ping timeout: 240 seconds]
alpounet has quit [Remote host closed the connection]
alpounet has joined #ocaml
alexst has joined #ocaml
alpounet has quit [Ping timeout: 272 seconds]
shinnya has joined #ocaml
<Algebr> for a type signature, 'a list, does the ' have significance?
<flux> ' starts type parameters
<flux> another example: ('key, 'value) Hashtbl.t
_andre has quit [Quit: leaving]
<flux> or, you could replace 'key with int to fix it to be a hash table from integers to some 'value
<Algebr> ah, I see because ocaml's types are lower case.
<ggole> Foo a in haskell would be 'a foo in ocaml
<ggole> Don't ask why it's backwards.
<Drup> (I'm so used to it being backward that I'm confused when it's not)
<Algebr> ggole: ha, was about to..
Eyyub has joined #ocaml
<ggole> It's from SML originally
<ggole> I really don't know why SML choce it
<ggole> *chose
<Algebr> whoa, looks like List has >>=
<Algebr> Is that how ocaml does typeclasses? with modules?
Snark has quit [Ping timeout: 245 seconds]
<flux> for some value of 'does', yes
<flux> it also has a few local open syntaxes to help with that
<flux> let open List in expr and List.(expr)
<ggole> modules are considerably more explicit though
<sheijk> i always thought it's 'a option instead of option 'a because it was made by french people. but that might just be a really retarted idea :)
Snark has joined #ocaml
<Drup> sheijk: huuum, what would it have to do with frenchness ?
<ggole> Milner was English, though
<sheijk> it's what they do with adjectives. i'm not sure how/why i ever made this connection, though..
<ggole> (I think it's his doing, but I'm not entirely sure.)
<Algebr> So ocaml must be really big in France?
<Drup> really big, I don't know
<Drup> bigger than outside, yeah
<Drup> outside of france*
<sheijk> but actually 'int list' etc. are closer to regular speech than list<int> so it might even be the more natural choice
<Drup> sheijk: adjectives are before the noun in french, sometimes :D
<Algebr> Thanks for all your help today everyone :)
<dmbaturin> Not sure about France, but I've learnt ocaml exists from a project by a german guy.
Algebr has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
<smondet> it's actually english to call a "box of eggs" an "egg box"
<smondet> list of ints → int list
jludlam has joined #ocaml
Anarchos has quit [Ping timeout: 264 seconds]
Submarine has joined #ocaml
Submarine has quit [Changing host]
Submarine has joined #ocaml
Anarchos has joined #ocaml
<mrvn> smondet: lets make it german. Kiste mit Eiern, Eierkiste. :) Ganzahllistelistelisteliste.
<mrvn> sorry, Ganzahlenlistenlistenlistenliste
<Drup> aggregative languages <3
<mrvn> You would use plural in german.
axiles has quit [Remote host closed the connection]
teiresias has joined #ocaml
alexst has quit [Ping timeout: 240 seconds]
ggole has quit [Ping timeout: 240 seconds]
alpounet has joined #ocaml
alpounet has quit [Remote host closed the connection]
alpounet has joined #ocaml
Simn has quit [Read error: Connection reset by peer]
alpounet has quit [Ping timeout: 272 seconds]
hhugo has joined #ocaml
jabesed has joined #ocaml
shinnya has quit [Ping timeout: 272 seconds]
fold has joined #ocaml
shinnya has joined #ocaml
Kakadu has quit [Quit: Konversation terminated!]
hhugo has quit [Quit: Leaving.]
tobiasBora has joined #ocaml
<tobiasBora> Hello,
<tobiasBora> Yesterday you told me that in a file the // operator was defined as
<tobiasBora> let (//) = Filename.concat
<tobiasBora> Is it defined in any library that I should open, or do I need to redefine it every time I use it ?
no0y has joined #ocaml
avsm has joined #ocaml
tane has quit [Quit: Verlassend]
Hetu has quit [Remote host closed the connection]
alexst has joined #ocaml
saarin has quit [Ping timeout: 240 seconds]
saarin has joined #ocaml
ollehar has quit [Ping timeout: 240 seconds]
Submarine has quit [Quit: Leaving]
alexst has quit [Ping timeout: 250 seconds]
yacks has quit [Read error: Connection reset by peer]
darkf has joined #ocaml
mw10011 has joined #ocaml
mw10011 has left #ocaml [#ocaml]
Anarchos has quit [Quit: Vision[0.9.7-H-20140108]: i've been blurred!]
<tobiasBora> Does anyone has a good source to learn the main points of the Batteries library ? It seems to be so powerfull, but I can only read some example but I'm affraid to miss important feature.
<pippijn> tobiasBora: as far as I'm concerned, it's just a collection of useful modules
<pippijn> tobiasBora: apart from BatEnum, I don't think there is a main idea that goes through all of the library
<tobiasBora> pippijn: Ok... So I should find the interessting module in http://ocaml-batteries-team.github.io/batteries-included/hdoc2/ ?
<pippijn> I suppose so
<Drup> yes
<tobiasBora> And are they better alternatives to Batteries ?
<Drup> different yes, better no
<tobiasBora> Ok, so I think I will learn some stuff about Batteries. Thank you !
no0y has quit [Remote host closed the connection]
no0y has joined #ocaml
fold has quit [Ping timeout: 240 seconds]
alexst has joined #ocaml
<tobiasBora> That's awesome ^^
philtor_ has quit [Ping timeout: 250 seconds]
alexst has quit [Ping timeout: 240 seconds]
<tobiasBora> What should I do to be able to use the list comprehensions syntax : https://github.com/ocaml-batteries-team/batteries-included/wiki/Syntax-extensions ?
<Drup> I think it's not there anymore, it was in batteries 1
<tobiasBora> And it's not possible to use it anymore ?
<tobiasBora> (or any equivalent ?)
alpounet has joined #ocaml
<Drup> for list comprehension, there is something in camlp4 directly
<Drup> camlp4.listcomprehension probably
<Drup> otherwise, no
<tobiasBora> Ok, too bad...
<tobiasBora> Do you know why they removed it ?
<tobiasBora> And I loaded camlp4o in the toplevel and now I've the error
<tobiasBora> Error: Parse error: [a_LIDENT] expected after "?" (in [expr])
<tobiasBora> Is [? mapped to another function ?
<Drup> [? doesn't exist, I don't know how camlp4.listcomprehension works, so you will have to read the documentation :)
zpe has quit [Remote host closed the connection]
jludlam has quit [Ping timeout: 264 seconds]
mort___ has joined #ocaml
alpounet has quit [Remote host closed the connection]
madroach has quit [Ping timeout: 250 seconds]
alpounet has joined #ocaml
manizzle has quit [Ping timeout: 272 seconds]
madroach has joined #ocaml
jabesed has quit [Ping timeout: 240 seconds]
alpounet has quit [Ping timeout: 240 seconds]
parcs has joined #ocaml
<tobiasBora> Ok I found how to use camlp4 listcomprehension. But do you know why Batteries stop developping it ?
<tobiasBora> (And I can't find any thing saying "we don't support it anymore")
asmanur has quit [Remote host closed the connection]
mcclurmc has joined #ocaml
jabesed has joined #ocaml
alexst has joined #ocaml
omqal has joined #ocaml