companion_cube changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | OCaml 4.05.0 release notes: https://caml.inria.fr/pub/distrib/ocaml-4.05/notes/Changes | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml
malina has quit [Ping timeout: 248 seconds]
eh_eff has joined #ocaml
jlam has joined #ocaml
jlam__ has quit [Ping timeout: 255 seconds]
jlam__ has joined #ocaml
eh_eff has quit [Ping timeout: 260 seconds]
jlam has quit [Ping timeout: 240 seconds]
malina has joined #ocaml
AceJohnny has joined #ocaml
AceJohnny has quit [Client Quit]
AceJohnny has joined #ocaml
AceJohnny has left #ocaml [#ocaml]
AceJohnny has joined #ocaml
jao has quit [Ping timeout: 248 seconds]
Associat0r has quit [Ping timeout: 240 seconds]
AceJohnny has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
AceJohnny has joined #ocaml
AceJohnny has quit [Client Quit]
AceJohnny has joined #ocaml
AceJohnny has quit [Client Quit]
nullifidian__ is now known as nullifidian
samrat has joined #ocaml
malina has quit [Quit: Throwing apples of Montserrat]
enterprisey has quit [Ping timeout: 252 seconds]
mfp__ has quit [Ping timeout: 240 seconds]
enterprisey has joined #ocaml
pierpa has quit [Quit: Page closed]
malina has joined #ocaml
mbuf has joined #ocaml
jao has joined #ocaml
malina has quit [Quit: Throwing apples of Montserrat]
FreeBirdLjj has quit [Remote host closed the connection]
jao has quit [Ping timeout: 260 seconds]
FreeBirdLjj has joined #ocaml
jlam has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 240 seconds]
jlam__ has quit [Ping timeout: 240 seconds]
alexelcu has quit [Remote host closed the connection]
alexelcu has joined #ocaml
eh_eff has joined #ocaml
eh_eff has quit [Ping timeout: 248 seconds]
mengu has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
KeyJoo has quit [Ping timeout: 260 seconds]
FreeBirdLjj has quit [Ping timeout: 240 seconds]
samrat has quit [Ping timeout: 248 seconds]
mahtob has joined #ocaml
<mahtob> when i run server it shows goodbye world than connection is resetting
<mahtob> when i refresh page i see response immediately then conn resets
samrat has joined #ocaml
MercurialAlchemi has joined #ocaml
mengu has joined #ocaml
mengu has quit [Ping timeout: 246 seconds]
mbuf has quit [Ping timeout: 248 seconds]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 240 seconds]
mbuf has joined #ocaml
samrat has quit [Ping timeout: 240 seconds]
al-damiri has quit [Quit: Connection closed for inactivity]
samrat has joined #ocaml
enterprisey has quit [Read error: Connection reset by peer]
enterprisey has joined #ocaml
mahtob has quit [Remote host closed the connection]
Pedro has joined #ocaml
Pedro is now known as Pedro2
<Pedro2> Hi everyone
enterprisey has quit [Remote host closed the connection]
<companion_cube> o/
kakadu has joined #ocaml
kakadu_ has joined #ocaml
kakadu has quit [Ping timeout: 240 seconds]
Pedro2 has quit [Ping timeout: 260 seconds]
MercurialAlchemi has quit [Ping timeout: 260 seconds]
Pedro2 has joined #ocaml
<Pedro2> Hi have a question for jbuilder experts. I'm playing around with porting Jun Furuse's ppx_overload to jbuilder. It's a type based ppx, depending on Jun's own typpx library, meaning that it does perform a phase of typechecking to guide the transformation. Therefore, it requires compilation units on which the file being transformed depends to be in the include path.
<companion_cube> no idea, sorry
<Drup> jbuilder's way of applying ppxs is not compatible with ppxs that depends on other compilation units
<Drup> (such as typechecking)
<Drup> IIRC, there is a ticket open on the topic on github
Simn has joined #ocaml
Pedro2_ has joined #ocaml
Pedro2_ is now known as Pedro2123
<Pedro2123> eg: I have a.ml and b.ml, b.ml contains "open A" and I need jbuilder to pass "-I wherever/is/a.cmx" to the ppx
<Pedro2123> ah, thanks Drup
Pedro2 has quit [Ping timeout: 260 seconds]
<Pedro2123> (crappy connection here, sorry for that)
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 240 seconds]
Sim_n has joined #ocaml
Simn has quit [Ping timeout: 240 seconds]
MercurialAlchemi has joined #ocaml
eh_eff has joined #ocaml
eh_eff has quit [Ping timeout: 260 seconds]
Ragora has quit [Quit: Konversation terminated!]
argent_smith has joined #ocaml
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 240 seconds]
mbuf has quit [Ping timeout: 240 seconds]
reynir has quit [Quit: WeeChat 1.7.1]
reynir has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 255 seconds]
mbuf has joined #ocaml
jimmyrcom_ has quit [Ping timeout: 240 seconds]
mfp__ has joined #ocaml
<kakadu_> Folks, does anybody teach Functional Programming course? I want to adopt some possible exercises to give them for students...
samrat has quit [Ping timeout: 248 seconds]
FreeBirdLjj has joined #ocaml
peterppp has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 248 seconds]
<Leonidas> KU and TUM do.
<kakadu_> Can you expand abbrevations?
<Leonidas> København Universitet and Technische Universität München. I believe both of them are in english but I am not 100% sure
<Leonidas> TUM sometimes uses OCaml, sometimes SML or Haskell.
<Leonidas> KU has used SML but afaik switched to F#
<reynir> Aarhus University used to use OCaml for the compiler course. Not sure what they use now
fraggle_ has quit [Read error: Connection reset by peer]
ShalokShalom_ has joined #ocaml
fraggle_ has joined #ocaml
ShalokShalom has quit [Ping timeout: 252 seconds]
argent_smith has quit [Quit: Leaving.]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 260 seconds]
TheLemonMan has joined #ocaml
<peterppp> the university of innsbruck they also teach ocaml
MercurialAlchemi has joined #ocaml
mengu has joined #ocaml
copy_ has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 240 seconds]
TheLemonMan has quit [Quit: Lost terminal]
tane has joined #ocaml
ShalokShalom_ is now known as ShalokShalom
Algebr has joined #ocaml
sepp2k has joined #ocaml
<rvense> looks like the previously-optional FP course at the danish technical university was made mandatory last year. page here: http://www2.compute.dtu.dk/courses/02157/ - handouts linked if you go to the course plan
<rvense> but no exercises afaict
<rvense> think everything at KU goes on the intranet, nothing's public.
FreeBirdLjj has joined #ocaml
eh_eff has joined #ocaml
eh_eff has quit [Ping timeout: 240 seconds]
peterppp has quit [Remote host closed the connection]
mbuf has quit [Quit: Leaving]
malina has joined #ocaml
samrat has joined #ocaml
Associat0r has joined #ocaml
Associat0r has joined #ocaml
Associat0r has quit [Changing host]
FreeBirdLjj has quit [Remote host closed the connection]
Algebr has quit [Ping timeout: 248 seconds]
MercurialAlchemi has joined #ocaml
TheLemonMan has joined #ocaml
rdouglass has joined #ocaml
KeyJoo has joined #ocaml
rdouglass has quit [Client Quit]
mbuf has joined #ocaml
mbuf has quit [Quit: Leaving]
Sakarah has joined #ocaml
mbuf has joined #ocaml
FreeBirdLjj has joined #ocaml
jlam__ has joined #ocaml
jlam has quit [Ping timeout: 248 seconds]
ShalokShalom has quit [Read error: No route to host]
ShalokShalom has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
TheLemonMan has quit [Quit: "It's now safe to turn off your computer."]
FreeBirdLjj has joined #ocaml
sepp2k has quit [Quit: Leaving.]
eh_eff has joined #ocaml
eh_eff has quit [Ping timeout: 255 seconds]
mbuf has quit [Quit: Leaving]
nightmared has quit [Ping timeout: 240 seconds]
nightmared has joined #ocaml
tormen has joined #ocaml
sepp2k has joined #ocaml
sam_ has joined #ocaml
sh0t has joined #ocaml
maarhart has joined #ocaml
maarhart has quit [Client Quit]
KeyJoo has quit [Remote host closed the connection]
enterprisey has joined #ocaml
mengu has quit [Remote host closed the connection]
Pedro2123 has quit [Ping timeout: 260 seconds]
argent_smith has joined #ocaml
two_wheels has joined #ocaml
two_wheels has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
theblatte has quit [Ping timeout: 240 seconds]
sepp2k has quit [Ping timeout: 240 seconds]
AlexRussia has quit [Quit: WeeChat 1.9]
two_wheels has joined #ocaml
<kakadu_> ShalokShalom: I think nothing stops you to use them in lablqml
<ShalokShalom> isnt that an extra library?
<ShalokShalom> framework
<kakadu_> Yes it's extra library
<kakadu_> AFAIR there is a part of kirigami that depends on KDE and another part that doesn't
<ShalokShalom> so, it works with an extra connection?
<ShalokShalom> nope
<ShalokShalom> its Tier1
<kakadu_> if it doesn't depend on KDE you are fine
<ShalokShalom> :)
<kakadu_> linking external QML sources is a question of right search paths on the disk
<kakadu_> everything should be fine
<ShalokShalom> hnn
sam_ has quit [Ping timeout: 240 seconds]
two_wheels has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 246 seconds]
malina has quit [Ping timeout: 248 seconds]
sam_ has joined #ocaml
sam_ has quit [Ping timeout: 252 seconds]
jlam has joined #ocaml
jlam__ has quit [Ping timeout: 248 seconds]
enterprisey has quit [Ping timeout: 248 seconds]
kakadu has joined #ocaml
kakadu_ has quit [Ping timeout: 240 seconds]
<ShalokShalom> i see a lot of code in OCaml, written without begin and end, is that basically something like indentation inference?
<flux> shalokshalom, begin end is the same as ( )
enterprisey has joined #ocaml
<flux> but depending on the used expression, neither might not be required. for example in let x = y in z... the scope is really long ;)
<ShalokShalom> ah, so you can use () instead?
<flux> but for example in if x then z; the scope of "if" stops at ";"
<flux> yes
<ShalokShalom> i see, thanks
<ShalokShalom> is there a list of all the cases where non of both is required?
<ShalokShalom> indentation inference - i like that term ^.^ :P
benzrf has joined #ocaml
<benzrf> hey!
<reynir> Ok, so my hakyll setup finally broke. What static site generator should I use instead? :)
<benzrf> i've done typed functional programming in haskell, but that's pure, and i've done typed impure programming in java, C, and rust, but that's not functional
<benzrf> what kind of stuff might be foreign to me if i tried to pick up ocaml?
sam_ has joined #ocaml
<reynir> Modules and functors maybe
<benzrf> oh, ive heard about those, they seem very good :D
<benzrf> but what about things like the "value restriction" that i've heard about?
<reynir> Ah
<kakadu> you usually do eta-expansion and value restriction gone
<flux> benzrf, basically you cannot write: let a = ref None and then compile it by itself
<flux> benzrf, do you understand why?
<benzrf> basically, since there's a lot of distinctions like pass-by-value vs pass-by-name that purity makes moot, im unsure what stuff i might trip over
<benzrf> flux: i think i read once that this lets you subvert the type system
<flux> yes
<benzrf> hold on i remember now
<benzrf> b/c u can give it a polymorphic type which can be instantiated differently for getting and setting
<flux> right. so let a () = ref None is ok, but of course a different thing
<flux> but the same effect can be detected in more subtle situations
<benzrf> so, hm, gold on
<benzrf> *hold on
<benzrf> is there something like - are local bindings required to be monomorphic, or something?
<benzrf> and does ref have some special marker attached to it that makes the above non-ok?
KeyJoo has joined #ocaml
<flux> no, it's actually ok to have: let a = None
sam_ has quit [Ping timeout: 240 seconds]
<benzrf> ok
<benzrf> actually im just gonna go look at this page :V http://mlton.org/ValueRestriction
<flux> :)
<ShalokShalom> is there a documentation about the cases, where begin/end and () are not needed?
<reynir> Yes, well, the grammar is documented
<flux> well yes, but it doesn't directly answer to that question :)
<octachron> Note that OCaml uses a relaxed value restriction that lifts the restriction for "read-only" types
<benzrf> awfully obnoxious of haskell to swap : and ::
<ShalokShalom> o,o
<reynir> benzrf: I heard it was because they thought people wouldn't need to type type signatures because of type inference, and that list operations would be more common
<flux> I can't really find how the grammar would differentiate between if x then y; z and if x then (y; z) :(, how should one read it from here? https://caml.inria.fr/pub/docs/manual-ocaml/expr.html
<flux> if and ; precedency?
<reynir> yes
<reynir> there's a table right before 6.7.1
<flux> right, there it is, didn't even look for it :)
<flux> so it's relatively subtle..
<reynir> yea
<reynir> reading grammars is difficult often :/
<ShalokShalom> is there an official statement about this?
<ShalokShalom> Real World OCaml?
<benzrf> reynir: ive heard that too, i think :\
<ShalokShalom> how does it come, that this is undocumented?
<reynir> ShalokShalom: what?
<flux> I would imagine introductory material would demonstrate how to use 'if' :-)
<ShalokShalom> when to place block building syntax
<ShalokShalom> [20:07:26] <ShalokShalom> is there a documentation about the cases, where begin/end and () are not needed?
<flux> well, () in general are needed when you need to precedence other than the default :)
<reynir> ^
TheLemonMan has joined #ocaml
eh_eff has joined #ocaml
<ShalokShalom> ah i see
<ShalokShalom> so, like in mathematic?
<flux> yes
<ShalokShalom> i think that is a nice sentence to include into the documentation
<ShalokShalom> easy to remember
<flux> maybe the key here is that if the scope of "if" "fell through" after "then", ie. its precedency would be lower than ;, then ie. this code: let trace_int x = if debug then Printf.printf "trace: %d\n" x; x would need to be written let trace_int x = (if debug then Printf.printf "trace: %d\n" x); x
<ShalokShalom> o.o opposite of "easy to remember" ^
eh_eff has quit [Ping timeout: 240 seconds]
Sakarah has quit [Quit: No Ping reply in 180 seconds.]
Sakarah has joined #ocaml
sepp2k has joined #ocaml
dejanr has joined #ocaml
dejanr_home has joined #ocaml
dejanr has quit [Ping timeout: 248 seconds]
KeyJoo has quit [Remote host closed the connection]
KeyJoo has joined #ocaml
sam_ has joined #ocaml
KeyJoo has quit [Quit: Good luck! Have a nice Day!]
KeyJoo has joined #ocaml
sam_ has quit [Ping timeout: 260 seconds]
<mrvn> ShalokShalom: use () when the auto indentation shows it's not what you want. :)
<ShalokShalom> kakadu: plasma is an optional dep of kirigami, for plasma integration and plasma mobile.
nahra has quit [Quit: ERC (IRC client for Emacs 25.1.1)]
<ShalokShalom> mrvn: not the opposite?
<ShalokShalom> how you mean that?
jao has joined #ocaml
nahra has joined #ocaml
Sakarah has quit [Ping timeout: 255 seconds]
dejanr_home has quit [Read error: Connection reset by peer]
dejanr has joined #ocaml
dejanr has quit [Read error: Connection reset by peer]
dejanr has joined #ocaml
samrat has quit [Ping timeout: 246 seconds]
sam_ has joined #ocaml
dejanr has quit [Read error: Connection reset by peer]
sam_ has quit [Ping timeout: 240 seconds]
dejanr has joined #ocaml
MercurialAlchemi has quit [Ping timeout: 260 seconds]
jlam__ has joined #ocaml
jlam has quit [Ping timeout: 248 seconds]
jlam1 has joined #ocaml
jlam__ has quit [Ping timeout: 240 seconds]
jao has quit [Ping timeout: 240 seconds]
enterprisey has quit [Read error: Connection reset by peer]
tane has quit [Quit: Leaving]
sam_ has joined #ocaml
sam_ has quit [Ping timeout: 248 seconds]
TheLemonMan has quit [Quit: "It's now safe to turn off your computer."]
sh0t has quit [Remote host closed the connection]
peterpp has joined #ocaml
infinity0 has quit [Ping timeout: 240 seconds]
infinity0 has joined #ocaml
argent_smith has quit [Quit: Leaving.]
argent_smith has joined #ocaml
argent_smith has quit [Client Quit]
Sim_n has quit [Quit: Leaving]
sepp2k has quit [Quit: Leaving.]
sam_ has joined #ocaml
sam_ has quit [Ping timeout: 240 seconds]
pierpa has joined #ocaml
coventry has joined #ocaml
mengu has joined #ocaml
<coventry> Anyone got an example of generating a value from a sized QCheck generator, given a specific size? I want to check that my generator is shrinking properly.
jao has joined #ocaml
kakadu has quit [Ping timeout: 248 seconds]
sam_ has joined #ocaml
sam_ has quit [Ping timeout: 240 seconds]
ziyourenxiang has quit [Ping timeout: 252 seconds]
ShalokShalom has quit [Ping timeout: 260 seconds]
coventry has quit [Ping timeout: 246 seconds]
kerrhau has joined #ocaml
<kerrhau> hey
<mengu> hi kerrhau
<kerrhau> how would I do something like this in ocaml? https://hastebin.com/aceritodop.vbs
<kerrhau> ignore the vbs, hastebin has really bad lang detection
<mengu> kerrhau: ocaml will not allow you to modify the variable x
<mengu> unless you really really want to do
<mengu> kerrhau: if you are using ocaml std lib, you'll need to right a range generator first
<kerrhau> hm
<mengu> if you are using janestreet core, it has a range function https://ocaml.janestreet.com/ocaml-core/113.33/doc/core_kernel/Core_kernel/Core_list.mod/#/range.val
<mengu> what exactly do you want to accomplish
<kerrhau> well, I'm doing project euler in ocaml
<kerrhau> and im trying to solve the first problem
<mengu> kerrhau: alright, that's a nice problem
<mengu> in an imperative language, you would do a for loop from 1 to 1000, check if the number is divided by 3 or 5 and add the number to a variable named sum
<mengu> and display or return that number
peterpp has quit [Ping timeout: 240 seconds]
<mengu> in a declarative language like ocaml, you'd generate a range from 1 to 1000, filter the numbers in the list (num is divided by 3 or 5) and then get the sum with reduce
<kerrhau> hm
<kerrhau> mengu: how exactly would one go about writing a range generator?
<mengu> kerrhau: this would be the simplest one
<mengu> taken from ocaml site
<mengu> let rec range a b =
<mengu> else a :: range (a+1) b;;
<mengu> if a > b then []
<mengu> beware it's not tail-call optimized, so don't generate huge range of numbers with this :)
jao has quit [Ping timeout: 260 seconds]
jao has joined #ocaml
<kerrhau> mengu: thanks
<mengu> yw kerrhau