nullifidian__ has quit [Ping timeout: 246 seconds]
_whitelogger has joined #ocaml
bitwinery has joined #ocaml
jao has quit [Remote host closed the connection]
jao has joined #ocaml
tormen has joined #ocaml
tormen_ has quit [Ping timeout: 248 seconds]
mfp has quit [Ping timeout: 272 seconds]
_whitelogger_ has joined #ocaml
dh_work has quit [Remote host closed the connection]
jao has quit [Ping timeout: 244 seconds]
aphprentice__ has quit [Quit: Connection closed for inactivity]
_whitelogger has joined #ocaml
lalitmee has joined #ocaml
theglass has quit [Ping timeout: 250 seconds]
theglass has joined #ocaml
theglass has quit [Changing host]
theglass has joined #ocaml
mbuf has joined #ocaml
narimiran has joined #ocaml
bitwinery has quit [Quit: Leaving]
Haudegen has joined #ocaml
lalitmee has quit [Ping timeout: 268 seconds]
jbrown has quit [Ping timeout: 264 seconds]
terps has joined #ocaml
lalitmee has joined #ocaml
nullifidian__ has joined #ocaml
nullifidian_ has quit [Ping timeout: 244 seconds]
Birdface has joined #ocaml
madroach has quit [Ping timeout: 264 seconds]
madroach has joined #ocaml
keep_learning has quit [Ping timeout: 268 seconds]
jbrown has joined #ocaml
bacam has joined #ocaml
Birdface has quit [Remote host closed the connection]
Birdface has joined #ocaml
nullifidian_ has joined #ocaml
nullifidian__ has quit [Read error: Connection reset by peer]
mfp has joined #ocaml
bartholin has quit [Ping timeout: 246 seconds]
Netsu has quit [Remote host closed the connection]
bartholin has joined #ocaml
Haudegen has quit [Quit: Bin weg.]
jbrown has quit [Ping timeout: 252 seconds]
jbrown has joined #ocaml
gareppa has joined #ocaml
Haudegen has joined #ocaml
terps has quit [Ping timeout: 264 seconds]
terps has joined #ocaml
gravicappa has quit [Ping timeout: 268 seconds]
gravicappa has joined #ocaml
gareppa has quit [Quit: Leaving]
nullifidian__ has joined #ocaml
nullifidian_ has quit [Ping timeout: 272 seconds]
lalitmee has quit [Ping timeout: 248 seconds]
freyr69 has joined #ocaml
spew has joined #ocaml
steenuil has joined #ocaml
esum has joined #ocaml
steenuil has quit [Client Quit]
jao has joined #ocaml
gareppa has joined #ocaml
FreeBirdLjj has joined #ocaml
tane has joined #ocaml
gareppa has quit [Quit: Leaving]
terps has quit [Ping timeout: 264 seconds]
jao has quit [Ping timeout: 268 seconds]
terps has joined #ocaml
lalitmee has joined #ocaml
nullifidian_ has joined #ocaml
jao has joined #ocaml
nullifidian__ has quit [Ping timeout: 244 seconds]
freyr69 has quit [Remote host closed the connection]
terps has quit [Ping timeout: 250 seconds]
terps has joined #ocaml
pyan has quit [Ping timeout: 252 seconds]
mbuf has quit [Quit: Leaving]
terps has quit [Ping timeout: 264 seconds]
jbrown has quit [Ping timeout: 252 seconds]
terps has joined #ocaml
jbrown has joined #ocaml
Serpent7776 has joined #ocaml
pyan has joined #ocaml
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #ocaml
ziyourenxiang has quit [Ping timeout: 245 seconds]
<Leonidas>
lizzin: We use that style a lot in our code base
<Leonidas>
I think my rule of thumb is "if I can't give the intermediate results a decent name, they probably go about better without a name in the first place"
<Leonidas>
let first_half_of_transformation_result = … in …
FreeBirdLjj has quit [Ping timeout: 248 seconds]
<Leonidas>
OTOH I don't use composition much, because I always end up in weak polymorphism territory and that's more frustrating than composition is fun
ravenous_ has joined #ocaml
Haudegen has quit [Quit: Bin weg.]
jmiven_ has joined #ocaml
jmiven has quit [Quit: reboot]
jmiven_ has quit [Quit: WeeChat 2.4]
jmiven has joined #ocaml
lalitmee has quit [Quit: Leaving]
Jesin has quit [Quit: Leaving]
Jesin has joined #ocaml
jnavila has joined #ocaml
terps has quit [Ping timeout: 264 seconds]
terps has joined #ocaml
FreeBirdLjj has joined #ocaml
FreeBirdLjj has quit [Ping timeout: 246 seconds]
Haudegen has joined #ocaml
<lizzin>
Leonidas: that's good to hear; pipes are awesome.
<lizzin>
seems like your rule of thumb could result in instances where you are giving names to things you may not have any other need for though
<lizzin>
i've always like using them because they save me from having to name things i know have no future purpose
<lizzin>
on another note, why isn't [x,y] = [1,2] considered exhausted
<lizzin>
i'm not sure what to make of this possible case, supplied by the repl: (_::_::_::_|_::[]|[])
<lizzin>
does '_|_' mean 'is comparable to' here?
<Armael>
the compiler doesn't try to do a value analysis of the right hand side
<Armael>
(even if it would be trivial here)
<Armael>
so let [x,y] = [1,2] in .. (btw did you mean [x,y] or [x;y]?) is morally the same as let [x,y] = foo in .. where foo is an unknown list
bitwinery has joined #ocaml
<Armael>
(as for the repl cases, AFAICT "|" separate several cases. so it gives you three "counter-examples": [] (empty list), _::[] (singleton list), _::_::_::_ (list of length 3))
nullifidian__ has joined #ocaml
nullifidian_ has quit [Ping timeout: 272 seconds]
<lizzin>
Armael: err, i meant [x;y]. still not used to these ;'s
<Armael>
yeah that makes sense :)
AtumT has joined #ocaml
<lizzin>
is [x;y] and x::y::[] the same patterns?
<lizzin>
everything i've read suggests they are equivalent
<lyxia>
yes
<lizzin>
but i still fail to see why the utop would throw a warning when trying to patter match a 2 element list against those two patterns
terps has quit [Ping timeout: 252 seconds]
jao has quit [Ping timeout: 268 seconds]
<Armael>
it doesn't look at the value on the right hand side
<Armael>
it just sees "let [x;y] = ..." and says "hmmm this is not exhaustive because the right-hand side might not have exactly two elements"
q9929t has joined #ocaml
tane has quit [Quit: Leaving]
<Armael>
in your case, it is really easy to see that the right-hand side has indeed exactly two elements, but it's hard to do in the general case
<lizzin>
oh ok, thanks for confirming. i thought that is what you were suggesting earlier, but it just didn't feel right. i should learn more about compilers
terps has joined #ocaml
<lizzin>
any idea what this '_|_' means?
<Armael>
you should read it like that: (_::_::_::_ "or" _::[] "or" [])
<Armael>
the "|" separates different counter-examples
<Armael>
_::[] means "any list matched by _::[]", so any list containing a single element in fact
q9929t has quit [Quit: q9929t]
klntsky has quit [Read error: Connection reset by peer]
andreas303 has quit [Write error: Connection reset by peer]
nicoo has quit [Write error: Connection reset by peer]
<lizzin>
wait a sec, so that is an 'OR' bar and not some other symbol?
nicoo has joined #ocaml
<Armael>
yes
andreas303 has joined #ocaml
<lizzin>
i'll take your word for it. but those lack of spaces around it sure make things more confusing than they should be
klntsky has joined #ocaml
<Armael>
indeed, the printing could be better
<Armael>
if you have time, could you open an issue on github, just so we can keep track of it as potential easy improvement?
<lizzin>
sure, i'd love too!
lizzin has quit [Read error: Connection reset by peer]
lizzin has joined #ocaml
lizzin is now known as Guest94534
Guest94534 has quit [Changing host]
Guest94534 has joined #ocaml
Guest94534 is now known as lizzin
<lizzin>
Armael: not sure if you saw my last msg, but i'll submit an issue
<Armael>
cool, thanks!
jao has joined #ocaml
jao is now known as Guest13728
jnavila has quit [Remote host closed the connection]
jnavila has joined #ocaml
terps has quit [Ping timeout: 252 seconds]
jnavila has quit [Quit: Konversation terminated!]
jnavila has joined #ocaml
Serpent7776 has quit [Quit: leaving]
gravicappa has quit [Ping timeout: 245 seconds]
ravenous_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Birdface has quit [Ping timeout: 268 seconds]
aubian has joined #ocaml
aubian has quit [Client Quit]
aubian has joined #ocaml
sagax has quit [Remote host closed the connection]
narimiran has quit [Read error: Connection reset by peer]
jnavila has quit [Ping timeout: 246 seconds]
Hrundi_V_Bakshi has joined #ocaml
Netsu has joined #ocaml
<Netsu>
still can't get, why that https://tinyurl.com/yycm2gem work with explicit type parameter only, but not with an abstract one (`'a`)
bitmapper has joined #ocaml
<bitmapper>
spew: you there?
<Netsu>
oh, maybe, understand, why: with `'a` the first-class module not actually refer to function's type argument, but to some abstract type in general
Netsu has quit [Remote host closed the connection]
AtumT_ has joined #ocaml
ziyourenxiang has joined #ocaml
AtumT has quit [Ping timeout: 272 seconds]
AtumT has joined #ocaml
AtumT_ has quit [Ping timeout: 268 seconds]
spew has quit [Quit: Connection closed for inactivity]