adrien changed the topic of #ocaml to: Discussions about the OCaml programming language | http://www.ocaml.org | Current MOOC: https://huit.re/ocamlmooc | OCaml 4.04.0 release notes: http://ocaml.org/releases/4.04.html | Try OCaml in your browser: http://try.ocamlpro.com | Public channel logs at http://irclog.whitequark.org/ocaml
sillyotter has joined #ocaml
dhil has joined #ocaml
sh0t has quit [Remote host closed the connection]
wtetzner has joined #ocaml
lucasem has quit [Quit: leaving]
jamesst20 has joined #ocaml
ryanartecona has quit [Quit: ryanartecona]
octachron has quit [Quit: Leaving]
dhil has quit [Ping timeout: 260 seconds]
sillyotter has quit [Quit: WeeChat 1.4]
freusque has quit [Ping timeout: 268 seconds]
gk_-1wm_- has joined #ocaml
gk_-1wm_- has left #ocaml [#ocaml]
wtetzner has quit [Remote host closed the connection]
wtetzner has joined #ocaml
wtetzner has quit [Ping timeout: 268 seconds]
jabroney has joined #ocaml
Simn has quit [Quit: Leaving]
malina has quit [Remote host closed the connection]
spew has joined #ocaml
jabroney has quit [Quit: Leaving.]
FreeBirdLjj has joined #ocaml
shinnya has joined #ocaml
jabroney has joined #ocaml
wtetzner has joined #ocaml
wtetzner has quit [Remote host closed the connection]
mfp has quit [Ping timeout: 260 seconds]
gk_-1wm has joined #ocaml
gk_-1wm has left #ocaml [#ocaml]
spew has quit [Quit: foobar]
mengu has quit [Remote host closed the connection]
<jamesst20> Hi
<jamesst20> Does anyone know what is that h_limit synthax ? let sous_arbre ?(h_limit = None) a mot =
<jamesst20> syntax *
<jamesst20> is that a default value ?
silver has quit [Quit: rakede]
gk-------1__w__m has joined #ocaml
gk-------1__w__m has quit [K-Lined]
cbot has joined #ocaml
<jamesst20> How do you get the value of a "'a option"
Frenk has joined #ocaml
<Frenk> hi
<jamesst20> Hi
<Frenk> am tryin to isntall the OCaml compiler/interpreter via OPAM but am having a hard time finding the bit in the documentation explaining that
<Frenk> it says
<Frenk> The OCaml compiler and libraries can be installed in several ways:
<Frenk> With OPAM, the OCaml package manager (recommended).
<Frenk> is the compiler a specific package or it is already included?
wtetzner has joined #ocaml
<jamesst20> Drup: Do you know how to get the integer value of a param "?(h_limit = None)"
<Drup> section 4.1 and 4.1.1
FreeBirdLjj has quit [Remote host closed the connection]
<jamesst20> Drup: They use it just like a regular variable
<jamesst20> Drup: Error: This expression has type 'a option but an expression was expected of type int Is what I get with the same code
<Drup> the default value is None, so it's supposed to be an option, not an int
<jamesst20> Drup: but h_limit is meant to be an height limit, there must be a way to use it as an int. I wouldn't have done it this way, but our teacher is forcing us
<jamesst20> my teacher *
Frenk has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
<jamesst20> match .. Some (Some c) -> c. Got it. Weird syntax though
FreeBirdLjj has joined #ocaml
mengu has joined #ocaml
<jamesst20> Drup: This is really how the parameter should look when used 0_0 ? ?h_limit:(Some (Some 3))
<jamesst20> Drup: Why not just ?h_limit:(Some 3)
mengu has quit [Ping timeout: 240 seconds]
mengu has joined #ocaml
mengu has quit [Ping timeout: 240 seconds]
wtetzner has quit [Remote host closed the connection]
jabroney has quit [Quit: Leaving.]
FreeBirdLjj has quit [Remote host closed the connection]
govg has quit [Ping timeout: 260 seconds]
copy` has quit [Quit: Connection closed for inactivity]
jamesst20 has quit [Remote host closed the connection]
jamesst20 has joined #ocaml
jamesst20 has quit [Ping timeout: 240 seconds]
FreeBirdLjj has joined #ocaml
john51 has joined #ocaml
pon1980 has joined #ocaml
jeffmo_ has joined #ocaml
wagle_ has joined #ocaml
Enjolras_ has joined #ocaml
ohama has quit [Disconnected by services]
vbmithr has joined #ocaml
jmasseo_ has joined #ocaml
xaimus_ has joined #ocaml
ohama has joined #ocaml
shon_ has joined #ocaml
cthuluh_ has joined #ocaml
jstolare1 has joined #ocaml
def`_ has joined #ocaml
fds_ has joined #ocaml
profan_ has joined #ocaml
Cypi_ has joined #ocaml
AdmWiggin has joined #ocaml
haesbaer1 has joined #ocaml
stux|RC-only has joined #ocaml
shinnya has quit [Ping timeout: 260 seconds]
freehck has quit [Ping timeout: 260 seconds]
AlexRussia has quit [Ping timeout: 260 seconds]
_habnabit has quit [Ping timeout: 260 seconds]
jmasseo has quit [Ping timeout: 260 seconds]
rwmjones has quit [Ping timeout: 260 seconds]
jstolarek has quit [Ping timeout: 260 seconds]
Guest76058 has quit [Ping timeout: 260 seconds]
vbmithr_ has quit [Ping timeout: 260 seconds]
tokenrove has quit [Ping timeout: 260 seconds]
philtor has quit [Ping timeout: 260 seconds]
Soni has quit [Ping timeout: 260 seconds]
haesbaert has quit [Ping timeout: 260 seconds]
CcxWrk has quit [Ping timeout: 260 seconds]
StatelessCat has quit [Ping timeout: 260 seconds]
asm89 has quit [Ping timeout: 260 seconds]
zapu has quit [Ping timeout: 260 seconds]
eikke has quit [Ping timeout: 260 seconds]
jeffmo_ has joined #ocaml
jeffmo_ has quit [Changing host]
stux|RC has quit [Ping timeout: 240 seconds]
jeffmo has quit [Ping timeout: 240 seconds]
lukky513 has quit [Ping timeout: 240 seconds]
so has quit [Ping timeout: 240 seconds]
john51_ has quit [Ping timeout: 240 seconds]
cthuluh has quit [Ping timeout: 240 seconds]
troydm has quit [Ping timeout: 240 seconds]
nightmared_ has quit [Ping timeout: 240 seconds]
peddie has quit [Ping timeout: 240 seconds]
cheater2_ has quit [Ping timeout: 240 seconds]
jerith has quit [Ping timeout: 240 seconds]
hnrgrgr_ has quit [Ping timeout: 240 seconds]
Enjolras has quit [Ping timeout: 240 seconds]
pigoz has quit [Ping timeout: 240 seconds]
Johann has quit [Ping timeout: 240 seconds]
xaimus has quit [Ping timeout: 240 seconds]
shon has quit [Ping timeout: 240 seconds]
d0nn1e has quit [Ping timeout: 240 seconds]
wagle has quit [Ping timeout: 240 seconds]
calculemus has quit [Ping timeout: 240 seconds]
gnuyoda has quit [Ping timeout: 240 seconds]
def` has quit [Ping timeout: 240 seconds]
fds has quit [Ping timeout: 240 seconds]
frefity has quit [Ping timeout: 240 seconds]
profan has quit [Ping timeout: 240 seconds]
Cypi has quit [Ping timeout: 240 seconds]
gregoire has quit [Ping timeout: 240 seconds]
tianon has quit [Ping timeout: 240 seconds]
so_ has joined #ocaml
jeffmo_ is now known as jeffmo
nightmared_ has joined #ocaml
Soni has joined #ocaml
gnuyoda has joined #ocaml
shinnya has joined #ocaml
rwmjones has joined #ocaml
peddie has joined #ocaml
lukky513 has joined #ocaml
gregoire has joined #ocaml
zapu has joined #ocaml
pigoz has joined #ocaml
CcxWrk has joined #ocaml
StatelessCat has joined #ocaml
d0nn1e has joined #ocaml
_habnabit has joined #ocaml
troydm has joined #ocaml
tokenrove has joined #ocaml
Johann has joined #ocaml
frefity has joined #ocaml
philtor has joined #ocaml
AlexRussia has joined #ocaml
al-damiri has quit [Ping timeout: 255 seconds]
asm89 has joined #ocaml
ggherdov has quit [Ping timeout: 255 seconds]
cheater2 has joined #ocaml
john51 has quit [Read error: Connection reset by peer]
hnrgrgr has joined #ocaml
MorTal1ty has quit [Ping timeout: 258 seconds]
eikke has joined #ocaml
john51 has joined #ocaml
kandu has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
jerith has joined #ocaml
kandu is now known as Guest90511
al-damiri has joined #ocaml
MorTal1ty has joined #ocaml
ggherdov has joined #ocaml
ggherdov has quit [Excess Flood]
ggherdov has joined #ocaml
jamesst20 has joined #ocaml
mengu has joined #ocaml
lopex has quit [Ping timeout: 240 seconds]
lopex has joined #ocaml
mengu has quit [Ping timeout: 240 seconds]
so_ has quit [Ping timeout: 260 seconds]
eikke has quit [Ping timeout: 260 seconds]
Johann has quit [Ping timeout: 260 seconds]
eikke has joined #ocaml
cheater2_ has joined #ocaml
jerith_ has joined #ocaml
lopex has joined #ocaml
lopex has quit [Changing host]
peddie has quit [Ping timeout: 240 seconds]
jerith has quit [Ping timeout: 240 seconds]
cheater2 has quit [Ping timeout: 240 seconds]
hnrgrgr has quit [Ping timeout: 240 seconds]
hnrgrgr has joined #ocaml
so has joined #ocaml
Johann has joined #ocaml
peddie has joined #ocaml
rgrinberg has quit [Ping timeout: 260 seconds]
ygrek has quit [Ping timeout: 260 seconds]
al-damiri has quit [Quit: Connection closed for inactivity]
FreeBirdLjj has joined #ocaml
jamesst20 has quit [Remote host closed the connection]
jamesst20 has joined #ocaml
jamesst20 has quit [Ping timeout: 268 seconds]
slash^ has joined #ocaml
MercurialAlchemi has joined #ocaml
bobbypriambodo has joined #ocaml
bobbypriambodo has quit [Client Quit]
mengu has joined #ocaml
mengu has quit [Ping timeout: 240 seconds]
nahra` has quit [Quit: ERC (IRC client for Emacs 25.1.1)]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
FreeBird_ has joined #ocaml
mengu has joined #ocaml
moei has quit [Quit: Leaving...]
moei has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 240 seconds]
govg has joined #ocaml
freusque has joined #ocaml
FreeBird_ has quit [Remote host closed the connection]
nahra has joined #ocaml
FreeBirdLjj has joined #ocaml
jamesst20 has joined #ocaml
jamesst20 has quit [Ping timeout: 240 seconds]
djellemah_ is now known as djellemah
_whitelogger has joined #ocaml
TheLemonMan has joined #ocaml
Simn has joined #ocaml
abeaumont has joined #ocaml
AlexDenisov has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
jnavila has joined #ocaml
mengu has quit [Quit: Leaving...]
fraggle_ has quit [Remote host closed the connection]
octarin has joined #ocaml
shinnya has quit [Ping timeout: 240 seconds]
rand__ has joined #ocaml
fraggle_ has joined #ocaml
octarin has quit [Ping timeout: 255 seconds]
octarin has joined #ocaml
octarin has joined #ocaml
octarin has quit [Changing host]
FreeBirdLjj has quit [Remote host closed the connection]
jamesst20 has joined #ocaml
FreeBirdLjj has joined #ocaml
jamesst20 has quit [Ping timeout: 255 seconds]
mfp has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 240 seconds]
abeaumont has quit [Ping timeout: 260 seconds]
<jerith> Leonidas: I've looked through your review, but I have to head out for a bit this afternoon. I should have an update for you later today.
haesbaert has joined #ocaml
moei has joined #ocaml
moei has quit [Read error: Connection reset by peer]
jerith_ is now known as jerith
haesbaer1 has quit [Quit: leaving]
snhmib has joined #ocaml
bobbypriambodo has joined #ocaml
cbot has quit [Quit: Leaving]
TheLemonMan has quit [Remote host closed the connection]
Cypi_ is now known as Cypi
octachron has joined #ocaml
infinity0 has quit [Remote host closed the connection]
infinity0 has joined #ocaml
TheLemonMan has joined #ocaml
jnavila has quit [Ping timeout: 255 seconds]
fre has joined #ocaml
tane has joined #ocaml
<Leonidas> jerith: awesome. I've recently checked the releases and the last one was 3 years ago and there's > 100 commits since that. Time to create the a new release once your changes are in :)
<Leonidas> (and fix up the bugs, but your testsuite will help a lot)
shinnya has joined #ocaml
fraggle_ has quit [Ping timeout: 255 seconds]
fraggle_ has joined #ocaml
profan_ is now known as profan
silver has joined #ocaml
jnavila has joined #ocaml
bobbypriambodo has quit [Ping timeout: 260 seconds]
jnavila has quit [Ping timeout: 240 seconds]
tobiasBora has quit [Ping timeout: 240 seconds]
_y has quit [Ping timeout: 264 seconds]
jamesst20 has joined #ocaml
<jerith> Leonidas: I think I've addressed everything in the PR now.
<jerith> [@@ocaml.deprecated] is really hard to find docs for.
jamesst20 has quit [Ping timeout: 260 seconds]
abeaumont has joined #ocaml
P4Titan has joined #ocaml
<P4Titan> Hi all. I define a module A and then module B. Within module B, I reference the `type t` I defined in module A, however OCaml complains that "it is not visible in the current scope". I don't want to use A.<stuff> everywhere. What is good OCaml practice for this issue.
<jerith> You can use "let open A in" to open the module in a local scope.
<jerith> And "A.(<expr>)" to have it open for just one expression.
<P4Titan> where in the Module would I use let open A in
<jerith> In a function that need things from module A.
<P4Titan> ic
<P4Titan> but if I use this module everywhere, I should open A at the top of Module B
<P4Titan> there's no other way
orbifx has joined #ocaml
<jerith> If you need things from A all over the place in B, it's probably okay.
<P4Titan> One more question
<P4Titan> if I want to perform checks over a record type, ie: have an `is_valid` function that tests if a record is valid in a whole bunch of different ways
<P4Titan> How could I write a bunch of sequential if statements cleanly
AlexDeni_ has joined #ocaml
<P4Titan> Right now I've got: https://hastebin.com/zuyarijade.vbs but that's quite ugly
<lyxia> use &&
<orbifx> why not write a sequence of boolean expressions?
<orbifx> as lyxia says, && and ||
AlexDenisov has quit [Ping timeout: 255 seconds]
<jerith> I'd probably use List.for_all and a list of funs or something.
<P4Titan> if I use &&'s, my if expr would be super long
<jerith> Err, a list of expressions.
<orbifx> P4Titan: you can break it in multiple lines, subfunctions, subexpressions
<orbifx> all those would look better than that
<orbifx> let check_a = ... in
<orbifx> let check_b = ... in
<orbifx> check_a && check_b
<orbifx> use semantic names for that the checks are
<P4Titan> but what if check_a fails, and check_b depends on check_a being valid
<P4Titan> instead of returning false
<P4Titan> and when it evals, you get an exception
<orbifx> those operators evaluate sequentially
<P4Titan> but do they evaluate in the final line of &&'s
<P4Titan> or as they appear in the definition
<orbifx> read boolean operators
<P4Titan> ic ic
<P4Titan> my point is, when doing a let check_a = ... in doesn't evaluated then and there, but when it is first used
<P4Titan> is that the case?
<P4Titan> or should I do let check_a () = ...
tane has quit [Quit: Leaving]
<jerith> List.for_all (fun a -> a) [Uint256.leq hash target; BatList.for_all ((=) true) @@ BatList.map Transaction.is_valid blk.txs; ...]
<jerith> And then you probably put one condition per line or something.
<jerith> If you want short circuiting, you'll probably need the && expression or write your own recursive function.
<orbifx> jerith: for all the elegance of that solution, it's probably not simple for his case
<orbifx> P4Titan: without () it gets evaluated at that point
<P4Titan> yeah
<jerith> And in both cases, you'll need to put each expression in a function.
<P4Titan> and then call them all as check_a () && check_b ()
<orbifx> if you add a unit parameter, you will need to provide a unit before it's evaluated
<jerith> If you're doing that, I'd probably just write "let check_a blk = ...".
<P4Titan> jerith: what does that do differently than check_a ()
<P4Titan> I've got `blk` defined from `is_valid`
<orbifx> P4Titan: if you don't care much about someone understanding what each expression is for, or if they are clear enough, you can just inline them
<jerith> Then you can call them separately if you want, and there's not much difference between passing () and passing blk.
<orbifx> and putt each expression in a line
<P4Titan> I suppose. I'm not quite understanding what you mean
<P4Titan> are you two referring to the same thing?
<jerith> I think we're talking about different things.
<jerith> Well, similar things.
<jerith> Let me rewrite your example in a couple of the ways I'm talking about.
<orbifx> P4Titan: jerith's approach is more flexible and contains more constructs to provide this flexibility
<orbifx> my approach the simple, plain, no frills way of doing some boolean operations
<P4Titan> yea
<orbifx> I haven't looked at what you are trying to achieve to recommend either
<orbifx> you should use jerith's if you need something extendable and dynamic
<orbifx> and what I recommended if you have a very fixed and simplex algorithm
<P4Titan> yep
<jerith> I haven't actually compiled that or anything.
<jerith> P4Titan: ^^^
<jerith> I hope that code explains better than my words. :-)
<P4Titan> I see
<P4Titan> you know BatList.for_all has short circuiting
<jerith> Also, hastebin insists on treating that as VB even if I call it .ml.
<jerith> I assume BatList comes from Batteries?
<jerith> I've never used batteries.
<P4Titan> ye
<P4Titan> Idk if List.for_all has short circuiting
<P4Titan> but I tested BatList and it does
<companion_cube> it does
<jerith> If it does short-circuit (and maybe the stdlib List.for_all does as well), it's even easier.
<P4Titan> I plan on implementing your rec check
<P4Titan> with the for_all
<jerith> let is_valid blk = List.for_all (fun f -> f blk) [check_a; check_b; ...]
<P4Titan> yea
<P4Titan> thanks for the help!!!
<jerith> You're very welcome.
<orbitz> What's my best bet for a 'strftime' function?
<companion_cube> what's it supposed to do already?
<orbitz> strftime takes a format string and a time and turns it into the string rerpesented by the format string
<orbitz> It's like printf but for time
fre has quit [Quit: WeeChat 1.7]
<jerith> It's the kind of thing I usually expect to find built in.
<companion_cube> hum
<jerith> But that's mostly because half the world depends on libc and just uses libc's strftime().
<companion_cube> I thought there was something in Unix for this
<jerith> Yeah, I can't find it in any of the places it would seem sensible to have it.
<jerith> Unix has gettimeofday and various other things that usually live next to strftime and strptime.
<companion_cube> indeed
awal is now known as evilawal
evilawal is now known as awal
P4Titan has quit [Remote host closed the connection]
<orbitz> yeah, oddly not in opam
<companion_cube> hmpf
<orbitz> companion_cube: sounds like a great addition to containers. ;) CCTime
<companion_cube> erf
<companion_cube> that's a rabbit hole I'm not eager to fall in
<companion_cube> especially because I rarely use time in programs, so it would not be driven by usage
<companion_cube> I only use ISO8601
<orbitz> I'm just trying to add time to my Logs output
<orbitz> which oddly seems harder than I'd expect
<companion_cube> :/
<jerith> Time zones! /o\
<companion_cube> have you looked at Calendar?
<companion_cube> (I would consider merging CCTime if someone proposed, but it's really hard to do well)
<orbitz> companion_cube: what if you just limited CCTime to formatting time? Is that really hard as well?
<orbitz> I"m like you, I try to avoid time as mch as possible. But sometimes people wanna know what time it is!
<jerith> orbitz: It's harder than you'd think.
<orbitz> checkign calendar
<companion_cube> well so far I really just use ISO8601
<jerith> There's a lot of subtlety in there.
<jerith> One of the more common errors is ignoring leap seconds.
<orbitz> Maybe I'll make my life easier and just use the ISO
<jerith> 23:59:61 is a valid time. But only sometimes.
<companion_cube> :D
<companion_cube> ohmy.
<jerith> If you try to do anything at all with timezones you're basically completely doomed.
<companion_cube> :D
<jerith> (Even without DST.)
<orbitz> I'm convinced to just use the ISO :)
<jerith> orbitz: And make sure everything is always in UTC?
<companion_cube> I have some small programs using time, so I just store/manipulate the float timestamp (hoipefully in UTC)
<companion_cube> and display with ISO8601, which is simple
<orbitz> jerith: I know no other timezone!
shinnya has quit [Ping timeout: 268 seconds]
<orbifx> orbitz: I use Ptime
<companion_cube> ah, nice
<jerith> Oh, orbitz and orbifx are different people.
<orbifx> yeah, we are variants :P
d0nn1e has quit [Ping timeout: 240 seconds]
<jerith> Thanks for making their nicks the same colour, irssi.
<orbitz> orbifx: that does not have a strtime though right? Looke dliek it was jsut a specific RFC it implemented
<orbitz> jerith: haa, poor hash function!
<companion_cube> jerith: same thought
<jerith> Nah, small colour selection.
<companion_cube> orbi*
<companion_cube> no such identifier: orbitx. Did you mean one of: orbitz, orbifx?
<orbitz> I often wake up to the remnants of questions orbifx asked and were answerd right after he left
<orbifx> lol, sorry orbitz
d0nn1e has joined #ocaml
<orbifx> atleast one of us benefits :P
<orbitz> ha
fraggle_ has quit [Ping timeout: 255 seconds]
fre has joined #ocaml
<orbifx> orbitz: maybe we are even confusing big brother
<orbifx> which is a good thing
<orbitz> orbifx: god willing
jnavila has joined #ocaml
fraggle_ has joined #ocaml
jnavila has quit [Ping timeout: 255 seconds]
jamesst20 has joined #ocaml
jamesst20 has quit [Ping timeout: 240 seconds]
fre has quit [Ping timeout: 260 seconds]
Simn has quit [Ping timeout: 240 seconds]
jnavila has joined #ocaml
Simn has joined #ocaml
jamesst20 has joined #ocaml
jamesst20 has quit [Remote host closed the connection]
jamesst20 has joined #ocaml
jamesst20 has quit [Remote host closed the connection]
jamesst20 has joined #ocaml
fraggle-boate has joined #ocaml
jamesst20 has quit [Ping timeout: 260 seconds]
spew has joined #ocaml
AlexDeni_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
AlexDenisov has joined #ocaml
AlexDenisov has quit [Client Quit]
AlexDenisov has joined #ocaml
AlexDenisov has quit [Client Quit]
AlexDenisov has joined #ocaml
AlexDenisov has quit [Client Quit]
AlexDenisov has joined #ocaml
AlexDenisov has quit [Client Quit]
jnavila has quit [Ping timeout: 255 seconds]
copy` has joined #ocaml
jamesst20 has joined #ocaml
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 255 seconds]
larhat has joined #ocaml
orbifx has quit [Ping timeout: 240 seconds]
octachron has quit [Ping timeout: 255 seconds]
abeaumont has quit [Ping timeout: 260 seconds]
larhat has quit [Quit: Leaving.]
Rzrik has joined #ocaml
<Rzrik> http://pastebin.com/REExQx1M How can I rewrite this function to be better?
<Rzrik> New to OCaml
<Drup> I think if you ask 10 OCaml programmers, you'll get 10 different version for that function
<Drup> personally, I would do that: https://bpaste.net/show/c3651248118c
<companion_cube> List.fold_left (fun n b->if b then n+1 else n) 0
tane has joined #ocaml
shinnya has joined #ocaml
AlexDenisov has joined #ocaml
AlexDenisov has quit [Client Quit]
octachron has joined #ocaml
<Leonidas> jerith: how about naming it method_ or method'? meth sounds kinda like we're dealing with drugs ;)
<Leonidas> jerith: apart from that I consider it ready for merging
<Leonidas> also, who would've known that 'method' is a keyword in a functional language? :D
<Leonidas> (ok well, probably me, since I've used webmachine and that uses methods)
octarin has quit [Ping timeout: 240 seconds]
octarin has joined #ocaml
octarin has joined #ocaml
octarin has quit [Changing host]
jerme_ has left #ocaml [#ocaml]
fraggle_ has quit [Ping timeout: 255 seconds]
tizoc has quit [Read error: Connection reset by peer]
spew has quit [Ping timeout: 260 seconds]
tizoc has joined #ocaml
SpiceGuid has joined #ocaml
SpiceGuid has quit [Quit: ChatZilla 0.9.92 [SeaMonkey 2.46/20161213183751]]
SpiceGuid has joined #ocaml
shinnya has quit [Ping timeout: 255 seconds]
octarin has quit [Ping timeout: 240 seconds]
octarin has joined #ocaml
octarin has joined #ocaml
octarin has quit [Changing host]
AlexDenisov has joined #ocaml
jamesst20 has quit [Remote host closed the connection]
jamesst20 has joined #ocaml
ygrek has joined #ocaml
rpg has joined #ocaml
jamesst20 has quit [Ping timeout: 260 seconds]
rpg has quit [Ping timeout: 268 seconds]
rpg has joined #ocaml
octarin has quit [Ping timeout: 260 seconds]
<Drup> octachron: why are ..( and .<( problematic ? I feel like they wouldn't conflict at all
abeaumont has joined #ocaml
octarin has joined #ocaml
octarin has joined #ocaml
octarin has quit [Changing host]
AlexDenisov has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<octachron> Drup, they would probably works with some extra work at the parser level to recast the DOTOP token to either DOTDOT or DOT LESS
jamesst20 has joined #ocaml
<octachron> Drup, but I was quite unconvinced by either ".." and ".<" , and not altering the rest of the parser sounded like a better alternative
<Drup> You don't even need to do that if you recognize the delimiter directly in the lexer
<Drup> the token would be DOTOPPAREN, paren included
<octachron> Drup, good point
<Drup> It would prevent writing "foo .~ (*potato*) [ x ]"
<Drup> which is probably a good thing
<thizanne> - : int = 0
<thizanne> wait so we can.
<thizanne> utop # [|0|] . ( (*potato*) 0);;
<Drup> "a" (**) . (**) [ (**) 0 (**) ] ;;
<Drup> This is correct OCaml.
<thizanne> I don't believe in anything anymore
<Drup> thizanne: that too: List (**) . (**) length ;;
<Drup> OCaml is very space insensitive :p
<flux> I imagine the same is true for most any language?-o
<jamesst20> In an array Match, x::x’::r, what does x' means ? x is first element, r is the rest, but what is x'
<Drup> jamesst20: the second element
ygrek has quit [Ping timeout: 260 seconds]
<flux> ' is just part of the name
<jamesst20> Drup: Can we use that syntax for as many elements as we want ? :O
<flux> not sure, but yes for any practically human-written code ;)
<jamesst20> Thanks :D
groovy2shoes has quit [Ping timeout: 245 seconds]
<SpiceGuid> souper...
SpiceGuid has quit [Quit: ChatZilla 0.9.93 [SeaMonkey 2.46/20161213183751]]
<octachron> Drup, I will think about it; aka it is hard to choose between edge cases that I hope will stay fully theoretical
<Drup> octachron: well, I don't see any harm in .<( )
<Drup> or, at least, no more than .>( )
<octachron> Drup, quite true; even if I could argue for the principle that .<( should be read as . <( and closed with )> but this is a absolutely minor point
<Drup> (occasional hobby of mine: make emoji operators) .>(8-0)
<octachron> Drup, I see that you also appreciated the acrobatics needed to extract back the operator in pprintast.ml
<Drup> hum, that could be a good argument for not adding <
<Drup> If later on, we want yet another kind of delimiters
<Drup> octachron: even for regular operators, it's kinda ridiculous. But for mixfixs .. blerg
<octachron> ( speaking of delimiters, I just learned about ﴾ ﴿ )
groovy2shoes has joined #ocaml
<Drup> octachron: vade retro, unicode
<octachron> Drup, are you implying that you don't want flowered parentheses near your code editor? I am positively shocked :p
rgrinberg has joined #ocaml
<thizanne> nooo no unicode pls
<thizanne> there are far too much arrow symbols
<companion_cube> :D
ygrek has joined #ocaml
wtetzner has joined #ocaml
<octachron> thizanne, playing the devil's advocate: there are far more english words, and I understand better the difference betwen ⇒ and ⇀ than the difference between cerulean and azured
<thizanne> ☺
<thizanne> .☺()
<Drup> .« »
<octachron> or ⟨a:int⟩ rather than <a:int>
<Drup> With a sufficient amount of utf8, you can reach the point where the latex and the OCaml code related to your article are indistinguishable. :D
AlexDenisov has joined #ocaml
<flux> in my MsC paper I had some fragments of OCaml.. the professor thought they were pseudo code.
<octachron> Drup, only using greek characters at the type level does not sound like a very attractive feature
infinity0 has quit [Ping timeout: 268 seconds]
<Drup> octachron: that's because you don't have the right XCompose shortcuts
tane has quit [Remote host closed the connection]
<Drup> I have <compose> + <g> + letter = greek letter
infinity0 has joined #ocaml
<octachron> Drup, not really, I just don't read ελλενιγ words very fluently
<octachron> and learning to fluently read greek words for the sake of programming languages is an interesting twist to say the least
infinity0 has quit [Remote host closed the connection]
<flux> ..the more so for a person who wants to study a new language.
<Drup> well, OCaml programmers have to learn frenglish to interact with the community, what's the difference ;)
spew has joined #ocaml
<octachron> Drup, and what about the community in 日本 ?
<Drup> true
<Drup> (you can still find OCaml questions in japanese on stack overflow on a regular basis)
<flux> http://www.stroustrup.com/whitespace98.pdf - relevant, in particular the second part
jamesst20 has quit [Remote host closed the connection]
<Drup> Given Bjarne Stroustrup's history, I can't even tell if it's a joke or not
<Drup> ah, 1 April
jamesst20 has joined #ocaml
infinity0 has joined #ocaml
infinity0 has quit [Remote host closed the connection]
tane has joined #ocaml
jamesst20 has quit [Ping timeout: 240 seconds]
infinity0 has joined #ocaml
infinity0 has quit [Remote host closed the connection]
zv has quit [Ping timeout: 268 seconds]
rpg has quit [Ping timeout: 240 seconds]
infinity0 has joined #ocaml
rpg has joined #ocaml
copy` has quit [Quit: Connection closed for inactivity]
tane has quit [Quit: Leaving]
kakadu has joined #ocaml
nightmared_ has quit [Quit: WeeChat 1.7]
AlexDeni_ has joined #ocaml
AlexDenisov has quit [Read error: Connection reset by peer]
jamesst20 has joined #ocaml
foo30303 has joined #ocaml
jamesst20 has quit [Ping timeout: 260 seconds]
yomimono has joined #ocaml
cthuluh_ is now known as cthuluh
cbot has joined #ocaml
rpg has quit [Ping timeout: 255 seconds]
<octachron> I wonder for how many years ocamldoc debug mode has been broken
spew has quit [Ping timeout: 260 seconds]
ygrek has quit [Ping timeout: 240 seconds]
jnavila has joined #ocaml
slash^ has quit [Read error: Connection reset by peer]
octarin has quit [Ping timeout: 240 seconds]
<jerith> Leonidas: Were you sitting there staring at github waiting for me to push a commit? :-P
<Leonidas> jerith: :D nah, but my phone rings everytime I get a new email and merging is a task I can do without interrupting my other work
octarin has joined #ocaml
octarin has joined #ocaml
octarin has quit [Changing host]
<jerith> You must get a *lot* less email than me.
<Leonidas> I filter most of it away, though I still have a queue of 30 mails or so to deal with :(
<Leonidas> like 25 rather average quality nodejs PRs
<jerith> I wonder why my phone isn't going bloop when I'm mentioned on IRC.
<jerith> Maybe IRCCloud's push notifications are broken at the moment.
<haesbaert> jerith: I thought the same :D
mengu has joined #ocaml
ollehar has joined #ocaml
<jerith> Leonidas: Should I rebase my tests branch (well, replace it with the already rebased verion I have handy) or open a PR for the session cache?
<jerith> Or both?
<jerith> I'm not sure what rebasing will do to the existing discussion on the tests. Probably not much, though -- the tests themselves don't change all that much.
<Leonidas> jerith: I would first prefer the test branch. Don't know about the session cache, that's probably a bigger can of worms to do expiration correctly.
<Leonidas> and maybe it would be useful to be able to serialize that cache somehow
micro__ has quit [Ping timeout: 245 seconds]
micro_ has joined #ocaml
micro_ is now known as Guest86370
sillyotter has joined #ocaml
<jerith> Force-pushed the tests branch. I hope they still pass. :-P
<jerith> (I should probably have run them first. Or even just compiled them.)
<Leonidas> travis will let us know :D
<jerith> Also, it would help if I ran these commands in the workspace with slacko in it rather than the workspace with the work puppet repo in it.
<jerith> There, fixed.
* jerith mutters under his breath about horrible maintainers making him rename functions and break all the things.
<jerith> (The fix was about fifteen seconds of search/replace. Such hardship. I am truly cursed to be working on this code.)
sillyotter has quit [Quit: WeeChat 1.4]
<Leonidas> heh
<jerith> Oh, right. It's just gone midnight. That's why my sense of humour has gone all weird and I'm forgetting to run tests before pushing.
mengu has quit [Quit: Leaving...]
<Leonidas> the good news is that said maintainers have researched the cohttp dependencies and found out something useful.
<jerith> Yay for useful things.
<Leonidas> jerith: which TZ are you?
<jerith> UTC+2
<jerith> (Cape Town, South Africa.)
<Leonidas> that's a good time zone for camling :D
<jerith> It is indeed.
<jerith> Turns out it's also a good timezone for hacking on pypy, which I do very occasionally.
<jerith> Yay for things based mostly in Europe rather than the US. :-)
* Leonidas :)
cbot_ has joined #ocaml
<jerith> Regarding deps, I generally prefer to leave them as broad as possible for libraries (it doesn't matter so much for applications) in case my libraries are being used alongside other libraries that share dependencies but have different version requirements.
<jerith> I have been bitten by this before (although not in ocaml), where one of my deps requires an unnecessarily new version of something and another version requires an older version.
cbot has quit [Ping timeout: 240 seconds]
<Leonidas> jerith: I see your point, at work we often have pretty crazy project.clj files fixing up all kinds of issues.
<ollehar> feel free to read and comment on this blog post: http://127.0.0.1:4000/fstar/2017/01/12/typestate-in-fstar.html
<Leonidas> The problem with depending on conduit is that as far as I know, Slacko doesn't and it's purely an implementation detail of cohttp
<ollehar> wait crap
<jerith> I don't think that's really a big deal here, but I was careful to only have the conduit requirement on the tests. For non-test builds, we don't depend on conduit and just get it thorugh cohttp.
<Leonidas> jerith: yes, fair enough.
<jerith> ollehar: Yeah. I don't have your blog server running on port 4000 on my laptop. ;-)
<Leonidas> reading it now and it is quite interesting, thanks for that link ollehar
<ollehar> jerith: ;)
<ollehar> Leonidas: feel free to suggest changes or anything
octarin has quit [Quit: leaving]
<ollehar> the discussion part is not finished yet
jnavila has quit [Remote host closed the connection]
<Leonidas> ollehar: why do you need to name the types to get Tot int inferred?
<Leonidas> also typo: "refinment"
<jerith> I started learning F* a while ago, but I got to the bit where it was getting hard and then work stuff ate all my time.
<ollehar> thanks for typo check
arj has joined #ocaml
<ollehar> Leonidas: you don't
<ollehar> (have to name the types)
<ollehar> hm hm
<Leonidas> ollehar: "turorial"
<jerith> ollehar: "True and true are in fact not the same things in F\*" has a stray \ in it.
<ollehar> yeah!
<Leonidas> also in the == and = part
<ollehar> vim can't handle markdown so good
<jerith> In fact, I think all the F*s in info blocks do.
<ollehar> and I need to install a spellcheck plugin...
<Leonidas> typestate is nice, I emulated it in a crappy way in ocaml once
<jerith> ollehar: That post looks really interesting. I'll have to read it tomorrow when I have more brain.
<ollehar> jerith: thanks! :)
<ollehar> Leonidas: I tried, but it couldn't handle mutable variables
<ollehar> you'd have to wrap it in a monad (tip by gache)
<ollehar> in F*, everything is already wrapped in monads (as I understand it)
* jerith goes to bed.
<ollehar> \o
AlexDeni_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
AlexDenisov has joined #ocaml
AlexDenisov has quit [Client Quit]
AlexDenisov has joined #ocaml
Jtj has joined #ocaml
AlexDenisov has quit [Client Quit]
AlexDenisov has joined #ocaml
<Leonidas> gn8
AlexDenisov has quit [Client Quit]
jamesst20 has joined #ocaml
jamesst20 has quit [Ping timeout: 260 seconds]
planet_en has joined #ocaml
kakadu has quit [Remote host closed the connection]
rand__ has quit [Quit: leaving]
arj has quit [Quit: Leaving.]
ygrek has joined #ocaml
jamesst20 has joined #ocaml
rpg has joined #ocaml
foo30303 has quit [Quit: leaving]
jamesst20 has quit [Remote host closed the connection]
ski has joined #ocaml
rgrinberg has quit [Ping timeout: 260 seconds]
<nicoo> o/ jerith
<jcloud> why do you need to use both #directory and #load in order to use a module from some package in the toplevel? (I know you can use #require as a shorthand)
<jcloud> the documentation says #load loads the object files into memory and that #directory only affects the search path
<jcloud> but what do I need to search for if I have already loaded my module into memory?
<nicoo> Since you mentioned PyPy, I mentioned the unspeakable GC patches to gasche :3
<nicoo> jerith: ^
yomimono has quit [Quit: Leaving]
<octachron> jcloud, the #directory is used by the toplevel to find *cmi* files
<jcloud> octachron: cool, that makes sense. thank you!
abeaumont has quit [Ping timeout: 240 seconds]
rpg has quit [Ping timeout: 240 seconds]
Simn has quit [Read error: Connection reset by peer]