<greenbagels>
is there a way to unpack lists using pattern matching in a way that is not verbose but also doesnt invoke a bunch of unmatched pattern warnings
<greenbagels>
i.e. something like let [a; b; c; d] = <function that returns a list>
<greenbagels>
i feel like i want something in between tuples and lists to handle coordinates without so much code duplication (like being able to map over coordinates but not needing a bunch of List.nths or similar)
<greenbagels>
bah i guess writing my own map is the better way
waleee has joined #ocaml
pippijn has quit [Ping timeout: 252 seconds]
pippijn has joined #ocaml
motherfsck has quit [Ping timeout: 268 seconds]
azimut has quit [Ping timeout: 255 seconds]
azimut has joined #ocaml
waleee has quit [Ping timeout: 268 seconds]
jtm has quit [Ping timeout: 260 seconds]
jtm has joined #ocaml
azimut has quit [Remote host closed the connection]
azimut has joined #ocaml
mbuf has joined #ocaml
<shamelessshill>
Hello, I'm using utop with the following lines in `.ocamlinit` - "#require "core.top"; #require "ppx_jane"`. I do not seem to be able to access the Thread module. Do I need to add something to ocamlinit?
<shamelessshill>
Not very active here, is it? Sigh.
shamelessshill has left #ocaml [#ocaml]
jao has quit [Ping timeout: 255 seconds]
trev has joined #ocaml
motherfsck has joined #ocaml
bgs has joined #ocaml
bartholin has joined #ocaml
kurfen has quit [Read error: Connection reset by peer]
genpaku has quit [Read error: Connection reset by peer]
genpaku has joined #ocaml
calvnce has quit [Quit: Client closed]
bartholin has quit [Quit: Leaving]
spip has joined #ocaml
hackinghorn has quit [Ping timeout: 264 seconds]
szkl has joined #ocaml
jlrnick has quit [Read error: Connection reset by peer]
hackinghorn has joined #ocaml
salkin has joined #ocaml
alexherbo2 has quit [Remote host closed the connection]
xgqt has quit [Ping timeout: 256 seconds]
alexherbo2 has joined #ocaml
hsw_ has joined #ocaml
xgqt has joined #ocaml
waleee has joined #ocaml
hsw_ has quit [Quit: Leaving]
Haudegen has quit [Quit: Bin weg.]
azimut has joined #ocaml
perrierjouet has quit [Quit: WeeChat 3.7.1]
<waleee>
happy 5.0 day everyone
jao has joined #ocaml
wingsorc has quit [Ping timeout: 252 seconds]
Haudegen has joined #ocaml
waleee has quit [Quit: WeeChat 3.7.1]
gdd has quit [Ping timeout: 264 seconds]
<theblatte>
happy 5.0 :)
<theblatte>
21:28 [libera] -!- WALLOP Unit193: We'd like to give a hearty congratulations to the Xfce team on their 4.18 release after two years of solid work. To read about what's new, see: https://xfce.org/about/news/?post=1671062400
<theblatte>
pfff, 2 years is a rookie number!
<sadiq>
hah
<companion_cube>
Woooot ocaml 5!!!
<olle>
today?
<vsiles>
\o/
azimut has quit [Ping timeout: 255 seconds]
azimut has joined #ocaml
perrierjouet has joined #ocaml
bartholin has joined #ocaml
alexherbo2 has quit [Ping timeout: 260 seconds]
mbuf has quit [Quit: Leaving]
alexherbo2 has joined #ocaml
Haudegen has quit [Quit: Bin weg.]
motherfsck has quit [Ping timeout: 272 seconds]
random-jellyfish has joined #ocaml
motherfsck has joined #ocaml
alexherbo2 has quit [Ping timeout: 260 seconds]
alexherbo2 has joined #ocaml
perrierjouet has quit [Quit: WeeChat 3.7.1]
perrierjouet has joined #ocaml
kakadu has quit [Remote host closed the connection]
xd1le has quit [Quit: xd1le]
alexherbo2 has quit [Remote host closed the connection]
Haudegen has joined #ocaml
random-jellyfish has quit [Quit: Client closed]
perrierjouet has quit [Quit: WeeChat 3.7.1]
perrierjouet has joined #ocaml
alexherbo2 has joined #ocaml
azimut has quit [Ping timeout: 255 seconds]
azimut has joined #ocaml
bartholin has quit [Remote host closed the connection]
Tuplanolla has joined #ocaml
alexherbo2 has quit [Remote host closed the connection]
alexherbo2 has joined #ocaml
waleee has joined #ocaml
<Leonidas>
greenbagels: It's kinda hard, because the type system doesn't know the length of the list so that pattern match cannot be assumed to be safe
<Leonidas>
You can sort of construct lists which track lengths with GADTs, but its rather unpractical
trev has quit [Remote host closed the connection]
<greenbagels>
Leonidas: right, that seems to be the main issue
<greenbagels>
It just makes me wonder why that pattern matching assignment even exists
<greenbagels>
Is it just a consequence of some more general syntactic sugar for pattern matching + assignment?
<Leonidas>
greenbagels: It's probably mostly because let always accepts a pattern, so disallowing lists "just because" feels weird.
<greenbagels>
Gotcha
<Leonidas>
e.g. `let (`Foo x) = function_that_returns_variant_foo () in`
<companion_cube>
Or even just matching a tuple
<companion_cube>
Very common
<greenbagels>
right
<greenbagels>
i guess i forgot that the most general syntax for let bindings involves patterns, not expressions, right?
<companion_cube>
Always
<greenbagels>
i.e. an identifier is just a pattern
<companion_cube>
But it should be used only with irrefutable patterns
<companion_cube>
Unless you feel lucky or are sure the non covered cases are impossible
<greenbagels>
irrefutable as in a single exhaustive pattern?
<Leonidas>
Exactly
<greenbagels>
gotcha
azimut has quit [Ping timeout: 255 seconds]
rgrinberg has joined #ocaml
azimut has joined #ocaml
rgrinberg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
alexherbo2 has quit [Remote host closed the connection]