<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…]
<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?
<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>
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]
<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 :)