2022/12/10

2022-12-10 00:00:10 +0100acidjnk(~acidjnk@p54ad5adb.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2022-12-10 00:00:17 +0100phma(~phma@host-67-44-208-53.hnremote.net) (Read error: Connection reset by peer)
2022-12-10 00:00:40 +0100phma(phma@2001:5b0:212a:a8b8:8561:6792:7340:d9af)
2022-12-10 00:03:58 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Remote host closed the connection)
2022-12-10 00:04:16 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
2022-12-10 00:07:21 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 256 seconds)
2022-12-10 00:15:57 +0100tremon(~tremon@83-84-18-241.cable.dynamic.v4.ziggo.nl)
2022-12-10 00:16:36 +0100ubert1(~Thunderbi@p200300ecdf264edcfc4b3345093f7868.dip0.t-ipconnect.de)
2022-12-10 00:16:38 +0100Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi)
2022-12-10 00:17:03 +0100merijn(~merijn@86.86.29.250) (Ping timeout: 260 seconds)
2022-12-10 00:18:34 +0100Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-12-10 00:18:50 +0100ubert1(~Thunderbi@p200300ecdf264edcfc4b3345093f7868.dip0.t-ipconnect.de) (Client Quit)
2022-12-10 00:28:25 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2022-12-10 00:38:40 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:cc2a:ce80:f3c:358f) (Remote host closed the connection)
2022-12-10 00:43:41 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-12-10 00:45:53 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-12-10 00:57:51 +0100Inoperable(~PLAYER_1@fancydata.science)
2022-12-10 00:59:06 +0100money_(~money@user/polo)
2022-12-10 01:04:58 +0100ozkutuk5(~ozkutuk@176.240.173.153) (Ping timeout: 252 seconds)
2022-12-10 01:11:19 +0100waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-12-10 01:11:37 +0100OscarZ(~oscarz@95.175.104.30)
2022-12-10 01:12:07 +0100Inoperable(~PLAYER_1@fancydata.science) (Quit: All your buffer are belong to us!)
2022-12-10 01:13:16 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-10 01:15:03 +0100Tuplanolla(~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Quit: Leaving.)
2022-12-10 01:16:30 +0100bilbo(~root@64.251.77.178)
2022-12-10 01:17:34 +0100 <bilbo> is it possible to query lambdabot? it seems to be ignoring me (but I also forgot how to talk to lambdabot even in-channel)
2022-12-10 01:19:03 +0100dekh^(~caef@76.145.185.103)
2022-12-10 01:19:30 +0100 <EvanR> I do this
2022-12-10 01:19:44 +0100 <EvanR> /msg lambdabot :t id
2022-12-10 01:20:15 +0100 <EvanR> /msg lambdabot @botsnack
2022-12-10 01:21:36 +0100 <monochrom> For evaluating expressions, /msg lambdabot > 1+1
2022-12-10 01:22:00 +0100 <monochrom> But it is expression only, "f x = x+1" is rejected.
2022-12-10 01:22:20 +0100 <monochrom> And I don't understand it but most programmers think "> 1+1" means ">1+1"
2022-12-10 01:22:21 +0100 <xerox> > "f x = x+1"
2022-12-10 01:22:23 +0100 <lambdabot> "f x = x+1"
2022-12-10 01:22:32 +0100 <monochrom> Ugh haha
2022-12-10 01:22:35 +0100xeroxchuckles
2022-12-10 01:22:43 +0100 <mauke> > var "f x = x+1"
2022-12-10 01:22:45 +0100 <lambdabot> f x = x+1
2022-12-10 01:23:48 +0100hueso(~root@user/hueso) (Ping timeout: 248 seconds)
2022-12-10 01:25:57 +0100 <geekosaur> also note that libera disables /msg for unauth users by default to reduce spam; I don't think lambdabot has the umode setting to override that
2022-12-10 01:26:16 +0100 <monochrom> Yikes.
2022-12-10 01:27:08 +0100 <monochrom> In lieu of that, you can use all those commands in channel.
2022-12-10 01:27:41 +0100 <monochrom> We still encourage using PM until you have something to show the channel.
2022-12-10 01:29:05 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:cc2a:ce80:f3c:358f)
2022-12-10 01:29:17 +0100 <bilbo> oh maybe I should auth...
2022-12-10 01:29:39 +0100 <bilbo> I don't have my password with me though :(
2022-12-10 01:31:58 +0100tremon(~tremon@83-84-18-241.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in)
2022-12-10 01:32:32 +0100bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 256 seconds)
2022-12-10 01:32:58 +0100kuribas(~user@ptr-17d51epibvf1t5xp3ze.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
2022-12-10 01:35:22 +0100Erutuon_(~Erutuon@user/erutuon) (Ping timeout: 256 seconds)
2022-12-10 01:36:33 +0100Andrew13(~Andrew@37.19.220.202)
2022-12-10 01:37:12 +0100 <Andrew13> can anyone explain this "list literal" and how it's being used in this function?
2022-12-10 01:37:21 +0100 <Andrew13> allSums :: [Int] -> [Int]
2022-12-10 01:37:22 +0100 <Andrew13> allSums [] = [0]
2022-12-10 01:37:22 +0100 <Andrew13> allSums (x:xs) = do
2022-12-10 01:37:23 +0100 <Andrew13>   term <- [x,0]
2022-12-10 01:37:23 +0100 <Andrew13>   sum <- allSums xs
2022-12-10 01:37:24 +0100 <Andrew13>   pure $ term + sum
2022-12-10 01:37:30 +0100 <geekosaur> please use a pastebin
2022-12-10 01:38:39 +0100 <monochrom> Are you willing to exchange that for list comprehension? allSums (x:xs) = [ term + sum | term <- [x,0], sum <- allSums xs ]
2022-12-10 01:39:00 +0100 <geekosaur> anyway: this function is using the list Monad instance. you can think of <- here as running the rest of the computation in parallel for each element of the list and combining the results
2022-12-10 01:40:48 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2022-12-10 01:40:48 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2022-12-10 01:40:48 +0100wroathe(~wroathe@user/wroathe)
2022-12-10 01:40:53 +0100 <Andrew13> it's the [x,0] that I don't understand
2022-12-10 01:41:01 +0100 <OscarZ> Hi.. I'm just an occasional Haskell user and I've always found Haskell type system cool and unique, even though I don't fully understand its power. I've recently got to use TypeScript in some projects and it seems really cool and versatile, however I've understood the type system of TypeScript is not that "rigorous" or "sound" as Haskell. Could someone who knows about these topics shed some light what kind of problems can you run into with TypeScript, but
2022-12-10 01:41:02 +0100 <OscarZ> you are safe with Haskell?
2022-12-10 01:41:11 +0100razetime(~quassel@49.207.203.213)
2022-12-10 01:41:13 +0100 <OscarZ> And also, what kind of things are more convenient with Haskell kind of type system vs. TypeScript
2022-12-10 01:41:14 +0100 <EvanR> [x,0] is just a list of two things
2022-12-10 01:42:02 +0100 <EvanR> that you can <- it is the kicker, it's translated to the >>= operator, which a method of the Monad class, like geekosaur was saying
2022-12-10 01:42:13 +0100 <EvanR> which is*
2022-12-10 01:42:31 +0100 <Andrew13> I've studied that part, it's binding it to term
2022-12-10 01:42:52 +0100 <EvanR> in this case, it's "binding twice" xD
2022-12-10 01:43:05 +0100 <EvanR> term is x, also it is 0 in another universe
2022-12-10 01:43:14 +0100 <hpc> typescript is interesting because it's starting from "typical" javascript code, and tries to figure out how to give that types
2022-12-10 01:43:36 +0100 <hpc> and that informs all of its design, and lets it go off in odd directions
2022-12-10 01:43:37 +0100 <Andrew13> and that gets this result..how?
2022-12-10 01:43:46 +0100 <EvanR> what's the result
2022-12-10 01:44:06 +0100 <Andrew13> all the possible sums permutations with the list provided
2022-12-10 01:44:30 +0100 <EvanR> yeah you split into multiple universes at each step, at the end all results from all universes combine
2022-12-10 01:44:55 +0100 <hpc> i don't know where i would even start on trying to compare it, since they're so philosophically different, i think i would have an easier time comparing haskell to python even
2022-12-10 01:44:56 +0100 <EvanR> it's possible some computations end in no results
2022-12-10 01:46:17 +0100 <Andrew13> the hint they provided for this question was that a [True,False] literal could also be useful combined with do-notation
2022-12-10 01:46:24 +0100 <Andrew13> though provided no context on how
2022-12-10 01:46:51 +0100 <EvanR> it lets you try both possibilities
2022-12-10 01:47:44 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-12-10 01:48:27 +0100 <OscarZ> hpc: Yes, I think we can agree that "typical" javascript code = jungle ... but still it seems to be quite powerful in giving order in that jungle. I'm not really an expert TypeScript programmer, but there seems to be some quite powerful constructs there and I've always felt a bit like "can this really work" but havent yet got into bad trouble..
2022-12-10 01:48:50 +0100 <geekosaur> Andrew13, again: it runs the rest of the computation with one and then with the other
2022-12-10 01:48:59 +0100 <geekosaur> and combines the results
2022-12-10 01:50:02 +0100 <Andrew13> ok, I'll study it a bit more, thanks
2022-12-10 01:50:14 +0100 <geekosaur> in this case it does so recursively because "the rest of the computation" starts with `sum <- allSums xs` (which itself splits into multiple computations)
2022-12-10 01:50:59 +0100 <geekosaur> so each value in the original list is run with 0 and then with the actual value, and both results are produced at the end. and recursively for the rest of the list
2022-12-10 01:51:31 +0100 <dsal> OscarZ: I've never got the appeal of typescript. It feels like painting over rotten wood.
2022-12-10 01:51:35 +0100 <OscarZ> hpc: Just looking for some insights on what are the differences between Haskell and TypeScript kind of type system (whats it even called) in real life
2022-12-10 01:51:55 +0100 <geekosaur> this does get a bit mind-bending; the list monad (sometimes called the nondeterminacy monad because of this behavior) is often difficult for people to understand, because of this "forking" behavior
2022-12-10 01:52:13 +0100 <dsal> There's Elm and PureScript and stuff like ReScript and even Haskell.
2022-12-10 01:52:25 +0100 <geekosaur> so let's start with [1,2,3]
2022-12-10 01:52:30 +0100 <Andrew13> ok I have an instructor-led class tomorrow, I'll try asking him to break it down
2022-12-10 01:52:43 +0100 <Andrew13> or if you can?
2022-12-10 01:52:43 +0100 <geekosaur> okay
2022-12-10 01:53:15 +0100 <geekosaur> I can but it's a bit involved. lemme see if I can write it up in a pastebin rather than spamming the channel especially while another discussion is also going on
2022-12-10 01:53:25 +0100 <Andrew13> ok thank you
2022-12-10 01:54:00 +0100 <EvanR> TypeScript managed to take javascript, add a type system, and still retained the "wtf" of javascript
2022-12-10 01:54:04 +0100 <OscarZ> dsal, I felt bad painting it haha.. but maybe I'm looking more like typical scenarious where you get in trouble with it..
2022-12-10 01:56:14 +0100 <dsal> OscarZ: There's a bit of a gap here. Part of it depends on what kinds of things you do with JavaScript. How many things can you make impossible?
2022-12-10 01:59:35 +0100moneyGuest7643
2022-12-10 01:59:35 +0100money_money
2022-12-10 01:59:54 +0100 <OscarZ> dsal, I think the usual things in JavaScript world are like describing what are the properties of objects and signatures of functions.. and you have some kind of type parameter thing going on as well.
2022-12-10 02:01:48 +0100 <dsal> I guess the problem with that is that you're pretty limited in how you can think about problems.
2022-12-10 02:02:51 +0100 <OscarZ> dsal, in what way, can you give some example?
2022-12-10 02:03:04 +0100wroathe(~wroathe@user/wroathe) (Quit: leaving)
2022-12-10 02:03:07 +0100 <mauke> > filterM (\_ -> [True]) ["a", "b", "c"]
2022-12-10 02:03:09 +0100 <lambdabot> [["a","b","c"]]
2022-12-10 02:03:28 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2022-12-10 02:03:28 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2022-12-10 02:03:28 +0100wroathe(~wroathe@user/wroathe)
2022-12-10 02:04:24 +0100 <dsal> OscarZ: I don't know much about TypeScript. I think that's the gap. heh
2022-12-10 02:04:49 +0100 <geekosaur> maybe I should just ask someone else to do this 🙂
2022-12-10 02:05:05 +0100 <geekosaur> I'm confusing myself as I go :upside_down_smile:
2022-12-10 02:05:19 +0100 <monochrom> This is why I would rather explain list comprehension instead. :)
2022-12-10 02:05:51 +0100 <dsal> @undo [ not t | t <- [False..]]
2022-12-10 02:05:51 +0100 <lambdabot> <unknown>.hs:1:24:Parse error: ]
2022-12-10 02:05:54 +0100 <dsal> @undo do [ not t | t <- [False..]]
2022-12-10 02:05:54 +0100 <lambdabot> <unknown>.hs:1:27:Parse error: ]
2022-12-10 02:05:55 +0100 <Andrew13> no worries if it's too much trouble
2022-12-10 02:06:08 +0100 <dsal> @undo do [ not t | t <- [False ..]]
2022-12-10 02:06:08 +0100 <lambdabot> concatMap (\ t -> [not t]) [False ..]
2022-12-10 02:06:11 +0100 <geekosaur> False.. runs into a parse issue
2022-12-10 02:06:16 +0100 <Andrew13> my understanding is list comprehension is just syntactical sugar for this list monad?
2022-12-10 02:06:19 +0100 <dsal> Yeah, I always forget that.
2022-12-10 02:06:28 +0100 <dsal> That undo isn't super helpful, though.
2022-12-10 02:06:31 +0100 <geekosaur> it can be
2022-12-10 02:06:41 +0100 <geekosaur> more often it desugars to map and filter
2022-12-10 02:06:46 +0100 <monochrom> A simple example like [x+y | x<-[a,b], y<-[d,e,f]] = [a+d, a+e, a+f, b+d, b+e, b+f] gives most students enough to extrapolate the general case.
2022-12-10 02:06:58 +0100 <geekosaur> with MonadComprehensions it's syntax sugar
2022-12-10 02:07:31 +0100 <mauke> > [x+y | x<-[a,b], y<-[d,e,f]]
2022-12-10 02:07:32 +0100 <lambdabot> [a + d,a + e,a + f,b + d,b + e,b + f]
2022-12-10 02:07:34 +0100 <monochrom> Equivalently I can just cite "python has list comprehension too" and usually that's the end of the story.
2022-12-10 02:07:37 +0100 <EvanR> type system philosophy 1, the master language can do anything. Apply types gradually to eliminate a few unwanted possibilities. 2, there is no master language. Apply types to do anything, ideally stuff you want
2022-12-10 02:07:54 +0100Erutuon_(~Erutuon@user/erutuon)
2022-12-10 02:07:58 +0100 <EvanR> subtractive synthesis, additive synthesis
2022-12-10 02:08:14 +0100 <monochrom> Whoever inflicted do-notation on absolute beginners is a criminal.
2022-12-10 02:08:29 +0100 <EvanR> a smooth criminal?
2022-12-10 02:09:51 +0100 <OscarZ> dsal, no probs... I have a feeling not many people who are fluent in Haskell like go "back" in TypeScript as it exists in the JS jungle.. but I'm sure some people might have some insight what this "unsound" type system might lead into
2022-12-10 02:10:24 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-12-10 02:10:55 +0100 <dsal> OscarZ: A fun one I've got at work is a type that parses and/or serializes fixed-width fields. There's a type parameterized by a number N such that a parser function that doesn't consume exactly N characters will fail to compile. Similar on the serialization. If the function is capable of producing anything other than exactly N characters, it will fail to compile.
2022-12-10 02:11:46 +0100 <EvanR> in the theory/practice of abstract data types, when you have a type T it comes with guarantees. The guarantees come from the type system ensuring you can only interact with the ADT in certain ways. I'm not sure type script has this
2022-12-10 02:12:14 +0100 <OscarZ> dsal, that's cool.. pretty sure not possible in TypeScript
2022-12-10 02:13:15 +0100 <EvanR> that is, you can always "break in" to the implementation of some object
2022-12-10 02:13:22 +0100 <dsal> Outside of what's possible, there's also the culture. I found that someone did implement `foldMap` in TS, but like… do people use it?
2022-12-10 02:13:38 +0100zant2(~zant@62.214.20.26) (Ping timeout: 268 seconds)
2022-12-10 02:14:48 +0100 <monochrom> EvanR: But even in Haskell, that is done by the module system limiting exports, rather than the type system. So this is only a critique on typescript following javascript in having no module system.
2022-12-10 02:14:59 +0100 <OscarZ> the problem might be that I don't really grasp the power of Haskell type system as I havent really worked with it, only played with it a bit :) but that is a good example dsal
2022-12-10 02:15:23 +0100 <dsal> I'm trying to see what people do in TypeScript. e.g. this thing: https://codewithstyle.info/advanced-functional-programming-in-typescript-maybe-monad/
2022-12-10 02:15:46 +0100 <dsal> Like, you *can* do it, but that looks like so much work I'd be surprised if it gets used much.
2022-12-10 02:15:51 +0100 <EvanR> yeah maybe 50 to 75% of the benefit of haskell is the perspective xD
2022-12-10 02:16:02 +0100 <EvanR> since the type system isn't fool proof
2022-12-10 02:16:31 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-12-10 02:18:02 +0100 <dminuoso> monochrom: JavaScript has modules.
2022-12-10 02:18:11 +0100 <dminuoso> Or well, ECMAScript does
2022-12-10 02:18:13 +0100 <dsal> > do { a <- readMaybe "3"; b <- readMaybe "7"; pure (a * b) } -- in Haskell, we have syntax that makes it easy to do that without lots of things that look like function calls sticking stuff together.
2022-12-10 02:18:14 +0100 <lambdabot> Just 21
2022-12-10 02:19:04 +0100 <monochrom> I don't teach do-notation to my students, but even >>= beats prefix notation.
2022-12-10 02:19:57 +0100 <monochrom> This strangely credits Haskell and SML etc allowing user-definable infix non-alphanumeric operators.
2022-12-10 02:20:36 +0100 <OscarZ> Good stuff... I can definitely understand the "you *can* do it" but its horror point...
2022-12-10 02:22:04 +0100 <dminuoso> Im quite jealous about agda mixfix operators.
2022-12-10 02:22:52 +0100 <dminuoso> Not that I want to know how the parser must be written to allow this, nor do I want the headache of making sense of code using it.. but it looks fun.
2022-12-10 02:23:50 +0100 <dminuoso> (But the implementation is probably somewhere akin to how infixr/infixl works, and executing fixup passes after initial parsing is done..)
2022-12-10 02:23:51 +0100 <monochrom> Non-abused mixfix operators are easy to make sense of. (Great tautology haha.)
2022-12-10 02:28:10 +0100 <OscarZ> This was quite interesting https://www.typescriptlang.org/docs/handbook/2/conditional-types.html
2022-12-10 02:29:24 +0100 <dsal> OscarZ: https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/
2022-12-10 02:30:03 +0100Lycurgus(~juan@user/Lycurgus)
2022-12-10 02:30:16 +0100 <EvanR> reading that as conditional type safety xD
2022-12-10 02:31:10 +0100 <OscarZ> Thanks I'll read that, seems interesting
2022-12-10 02:31:56 +0100 <dsal> OscarZ: It's a helpful thing in any language, though it's not as easy to enforce in many.
2022-12-10 02:38:06 +0100SyntaxAnomaly(~Haskell@184.151.230.80)
2022-12-10 02:38:24 +0100tomokojun_(~tomokojun@37.19.221.147)
2022-12-10 02:40:23 +0100califax(~califax@user/califx) (Ping timeout: 255 seconds)
2022-12-10 02:40:32 +0100tomokojun(~tomokojun@37.19.221.173) (Ping timeout: 256 seconds)
2022-12-10 02:40:39 +0100 <dsal> I'm not sure how much comes down to what people would actually do, though. Are people going to do a fold when it's a lot of work to write a lambda and you can't curry when you could just use a for loop instead?
2022-12-10 02:40:57 +0100king_gs(~Thunderbi@2806:103e:29:cdd2:b2dd:cddc:5884:d05c)
2022-12-10 02:41:11 +0100tomokojun_tomokojun
2022-12-10 02:42:00 +0100 <dsal> Like this example: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce -- that's just like, `foldr (+)` in haskell.
2022-12-10 02:43:50 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-10 02:44:00 +0100califax(~califax@user/califx)
2022-12-10 02:45:12 +0100SyntaxAnomaly(~Haskell@184.151.230.80) (Read error: Connection reset by peer)
2022-12-10 02:45:56 +0100Haskell(~Haskell@node-1w7jr9umyj0lsx4k07h370qrp.ipv6.telus.net)
2022-12-10 02:51:29 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-12-10 02:53:00 +0100dekh^(~caef@76.145.185.103) (Remote host closed the connection)
2022-12-10 02:55:20 +0100 <maerwald[m]> If you can't use curry, just use sugar
2022-12-10 02:56:23 +0100waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Quit: WeeChat 3.7.1)
2022-12-10 02:56:24 +0100gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2022-12-10 02:57:28 +0100Guest75(Guest75@2a01:7e01::f03c:92ff:fe5d:7b18) (Ping timeout: 260 seconds)
2022-12-10 03:02:26 +0100perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.7.1)
2022-12-10 03:02:29 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-12-10 03:03:33 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-12-10 03:04:18 +0100perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca)
2022-12-10 03:04:33 +0100 <OscarZ> Thanks dsal, EvanR & folks.. exactly the kind of insight I was looking for.. I need to chew a bit on that article, interesting links in there too and I'll get back to you if I can formulate some meaningful questions out of them :)
2022-12-10 03:08:20 +0100bilbo(~root@64.251.77.178) (Quit: Lost terminal)
2022-12-10 03:10:18 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds)
2022-12-10 03:12:22 +0100OscarZ(~oscarz@95.175.104.30) (Quit: Leaving)
2022-12-10 03:14:08 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-12-10 03:14:53 +0100masterbu1lder(~master@user/masterbuilder) (Quit: Lost terminal)
2022-12-10 03:17:39 +0100masterbuilder(~master@user/masterbuilder)
2022-12-10 03:17:56 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds)
2022-12-10 03:18:11 +0100Sauvin(~sauvin@user/Sauvin) (Ping timeout: 264 seconds)
2022-12-10 03:21:33 +0100Sauvin(~sauvin@user/Sauvin)
2022-12-10 03:21:41 +0100waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-12-10 03:23:02 +0100Haskell(~Haskell@node-1w7jr9umyj0lsx4k07h370qrp.ipv6.telus.net) (Ping timeout: 256 seconds)
2022-12-10 03:23:23 +0100Haskell(~Haskell@184.151.230.220)
2022-12-10 03:24:10 +0100beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 256 seconds)
2022-12-10 03:24:58 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-12-10 03:26:18 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-12-10 03:27:05 +0100son0p(~ff@2604:3d08:5b7f:5540::a58f) (Ping timeout: 246 seconds)
2022-12-10 03:32:06 +0100Haskell(~Haskell@184.151.230.220) (Ping timeout: 256 seconds)
2022-12-10 03:35:57 +0100Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt https://tinyurl.com/4m8d4kd5)
2022-12-10 03:39:21 +0100Erutuon_(~Erutuon@user/erutuon) (Ping timeout: 268 seconds)
2022-12-10 03:43:11 +0100 <EvanR> mauke, in data Parser a = Succeed a | Consume (Char -> Parser a) | Fail String, I'm having trouble implementing something like `many' without consuming too much input on the last success. You said there was no explicit backtracking. Can you not even do 1 lookahead?
2022-12-10 03:44:16 +0100 <EvanR> should there be a Peek (Char -> Parser a) added
2022-12-10 03:47:36 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2022-12-10 03:48:43 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2022-12-10 03:49:24 +0100ddellacosta(~ddellacos@143.244.47.100) (Quit: WeeChat 3.7.1)
2022-12-10 03:50:33 +0100lisbeths_(uid135845@id-135845.lymington.irccloud.com)
2022-12-10 03:50:54 +0100ddellacosta(~ddellacos@143.244.47.76)
2022-12-10 03:54:38 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2022-12-10 03:54:38 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds)
2022-12-10 03:55:32 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 255 seconds)
2022-12-10 03:56:26 +0100ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds)
2022-12-10 03:56:26 +0100stiell(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 255 seconds)
2022-12-10 03:56:58 +0100Techcable(~Techcable@user/Techcable) (Ping timeout: 260 seconds)
2022-12-10 04:04:40 +0100codaraxis(~codaraxis@user/codaraxis) (Ping timeout: 260 seconds)
2022-12-10 04:12:00 +0100nek0(~nek0@2a01:4f8:222:2b41::12) (Quit: The Lounge - https://thelounge.chat)
2022-12-10 04:12:47 +0100king_gs(~Thunderbi@2806:103e:29:cdd2:b2dd:cddc:5884:d05c) (Ping timeout: 264 seconds)
2022-12-10 04:14:49 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-10 04:17:46 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2022-12-10 04:18:43 +0100stiell(~stiell@gateway/tor-sasl/stiell)
2022-12-10 04:18:57 +0100waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 256 seconds)
2022-12-10 04:19:08 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds)
2022-12-10 04:20:06 +0100money(~money@user/polo) (Quit: money)
2022-12-10 04:21:55 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-12-10 04:22:36 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-12-10 04:23:31 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-12-10 04:24:29 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-12-10 04:24:34 +0100ec_(~ec@gateway/tor-sasl/ec)
2022-12-10 04:24:51 +0100nek0(~nek0@2a01:4f8:222:2b41::12)
2022-12-10 04:30:22 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-12-10 04:30:25 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-12-10 04:31:55 +0100Erutuon_(~Erutuon@user/erutuon)
2022-12-10 04:34:02 +0100money(~money@user/polo)
2022-12-10 04:37:01 +0100money(~money@user/polo) (Client Quit)
2022-12-10 04:37:23 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2022-12-10 04:38:15 +0100money(~money@user/polo)
2022-12-10 04:39:38 +0100stiell(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 255 seconds)
2022-12-10 04:40:17 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-12-10 04:42:00 +0100td_(~td@83.135.9.40) (Ping timeout: 260 seconds)
2022-12-10 04:43:06 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
2022-12-10 04:43:51 +0100td_(~td@83.135.9.5)
2022-12-10 04:44:30 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1)
2022-12-10 04:50:01 +0100codaraxis(~codaraxis@user/codaraxis)
2022-12-10 04:52:57 +0100money(~money@user/polo) (Ping timeout: 256 seconds)
2022-12-10 04:56:25 +0100stiell(~stiell@gateway/tor-sasl/stiell)
2022-12-10 05:13:17 +0100instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net)
2022-12-10 05:14:33 +0100waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
2022-12-10 05:15:45 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-10 05:24:12 +0100codaraxis__(~codaraxis@user/codaraxis)
2022-12-10 05:24:14 +0100waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 260 seconds)
2022-12-10 05:27:34 +0100codaraxis(~codaraxis@user/codaraxis) (Read error: Connection reset by peer)
2022-12-10 05:38:10 +0100 <davean> Does anyone here know off the top of their head if there is a package on hackage the generates unrolled loops for foldl' (or equiv) for small, known size, sequences?
2022-12-10 05:38:12 +0100son0p(~ff@2604:3d08:5b7f:5540:98a9:2169:15a1:4c7f)
2022-12-10 05:39:10 +0100 <dsal> I have movement in 297 snakes with my input.
2022-12-10 05:39:20 +0100 <dsal> Oops, wrong channel.
2022-12-10 05:42:07 +0100 <sm> intriguing! I would watch this movie
2022-12-10 05:42:17 +0100 <int-e> snakes on a plane?
2022-12-10 05:42:25 +0100 <EvanR> SNAAAAAAAAAAKE
2022-12-10 05:42:48 +0100 <int-e> sm: (pretty sure they already made that movie)
2022-12-10 05:44:19 +0100 <monochrom> https://www.imdb.com/title/tt0417148/?ref_=nv_sr_srsg_0 or https://en.wikipedia.org/wiki/Snakes_on_a_Plane
2022-12-10 05:46:23 +0100RedSwan(~jared@174-23-134-43.slkc.qwest.net) (Ping timeout: 268 seconds)
2022-12-10 05:49:19 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds)
2022-12-10 05:51:05 +0100 <EvanR> they made a sequel, but it should have been Planes on a Snake
2022-12-10 05:51:22 +0100 <dsal> Snacks on a Plain
2022-12-10 05:52:11 +0100 <monochrom> What is the sequel?
2022-12-10 05:52:26 +0100 <monochrom> Is it just something like "snakes on a plane 2"?
2022-12-10 05:52:37 +0100 <Rembane> Snakes in space!
2022-12-10 05:52:50 +0100 <dsal> Needs more aaaaas
2022-12-10 05:52:50 +0100 <monochrom> haha
2022-12-10 05:53:36 +0100 <monochrom> Oh, I know. In the good spirit of TypeInType, Snakes in Snakes.
2022-12-10 05:54:10 +0100 <Rembane> {-# LANGUAGE SNAKEINSNAAAAAAAAAAAAAAAAAKE #-}
2022-12-10 05:54:12 +0100tvandinther(~tvandinth@121.98.23.103)
2022-12-10 05:54:12 +0100 <int-e> It's not a worthy sequel if it doesn't have a space pirate princess
2022-12-10 05:54:32 +0100 <EvanR> apparently there was never a sequel?
2022-12-10 05:55:38 +0100 <EvanR> was Python on a Plane ever a webframework?
2022-12-10 05:55:49 +0100 <monochrom> Topology-inspired sequel: Snakes on a Torus.
2022-12-10 05:55:54 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-12-10 05:55:57 +0100 <tvandinther> Hey, I'm a little confused on how to compose functions for sorting. I want to sort a list based on a mapping in descending order using `sortOn` but I am not sure how to compose `f :: a -> b` and `Down` to sort `[a]`
2022-12-10 05:56:11 +0100 <dsal> :t sortOn
2022-12-10 05:56:12 +0100 <lambdabot> Ord b => (a -> b) -> [a] -> [a]
2022-12-10 05:56:20 +0100 <EvanR> :t Down
2022-12-10 05:56:21 +0100 <lambdabot> a -> Down a
2022-12-10 05:56:36 +0100 <int-e> monochrom: Time to refresh my memory on the spelling of "Ouroboros".
2022-12-10 05:56:56 +0100 <dsal> > sortOn Down "abcdef"
2022-12-10 05:56:58 +0100 <lambdabot> "fedcba"
2022-12-10 05:57:09 +0100 <dsal> tvandinther: Which part is confusing you?
2022-12-10 05:57:21 +0100 <int-e> > let ouroboros = cycle in ouroboros "ha"
2022-12-10 05:57:22 +0100waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-12-10 05:57:22 +0100 <lambdabot> "hahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahah...
2022-12-10 05:57:24 +0100 <tvandinther> oh man its obvious now
2022-12-10 05:57:32 +0100 <tvandinther> `sortOn Down . f`
2022-12-10 05:57:33 +0100 <Rembane> int-e: My favourite spelling is wrong but consistent: OOROOBOOROOS
2022-12-10 05:57:55 +0100 <monochrom> Do you mean sortOn (Down . f) ?
2022-12-10 05:58:04 +0100 <tvandinther> yes, I do
2022-12-10 05:58:05 +0100 <tvandinther> oops
2022-12-10 05:59:01 +0100 <monochrom> Is Ouroboros a Möbius strip? :)
2022-12-10 05:59:10 +0100 <monochrom> :8
2022-12-10 06:01:18 +0100Andrew13(~Andrew@37.19.220.202) (Quit: Client closed)
2022-12-10 06:10:55 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2022-12-10 06:14:16 +0100tvandinther(~tvandinth@121.98.23.103) (Quit: Client closed)
2022-12-10 06:17:55 +0100aeroplane(~user@user/aeroplane)
2022-12-10 06:19:26 +0100 <int-e> monochrom: I suspect that's up to the artist
2022-12-10 06:20:16 +0100 <int-e> > cycle "counting"
2022-12-10 06:20:18 +0100 <lambdabot> "countingcountingcountingcountingcountingcountingcountingcountingcountingcou...
2022-12-10 06:20:53 +0100Lears(~Leary]@user/Leary/x-0910699) (Remote host closed the connection)
2022-12-10 06:20:58 +0100waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 256 seconds)
2022-12-10 06:21:29 +0100waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-12-10 06:22:13 +0100[Leary](~Leary]@user/Leary/x-0910699)
2022-12-10 06:25:38 +0100king_gs(~Thunderbi@187.201.150.200)
2022-12-10 06:27:12 +0100waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 256 seconds)
2022-12-10 06:28:06 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2022-12-10 06:30:59 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-12-10 06:32:28 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-12-10 06:32:52 +0100 <aeroplane> Hello all, I have read that you use '$' sign in order to avoid writing parenthesis, but I cant figure out about why this works
2022-12-10 06:32:55 +0100 <aeroplane> λ> putStr $ "len " ++ show (length [1..5])
2022-12-10 06:33:07 +0100 <aeroplane> but this doesnt \n putStr $ "len " ++ show $ length [1..5]
2022-12-10 06:34:06 +0100 <int-e> aeroplane: $ has the lowest possible precedence, so this is parsed as (putStr $ "len " ++ show) $ (length [1..5])
2022-12-10 06:34:59 +0100 <dolio> It's also right-associative.
2022-12-10 06:35:10 +0100 <int-e> aaaaaargh
2022-12-10 06:35:32 +0100 <int-e> right. putStr $ (("len " ++ show) $ (length [1..5]))
2022-12-10 06:35:50 +0100johnw(~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Quit: ZNC - http://znc.in)
2022-12-10 06:35:58 +0100 <int-e> Sorry, that should not have happened.
2022-12-10 06:36:44 +0100 <aeroplane> Thanks, I think I need to study the basics
2022-12-10 06:36:57 +0100 <int-e> Anyway, the length [1..5] subexpression is not the argument of `show`.
2022-12-10 06:37:50 +0100instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 246 seconds)
2022-12-10 06:39:50 +0100 <monochrom> I write parentheses to avoid getting confused by $.
2022-12-10 06:40:28 +0100 <[Leary]> capitalism strikes again
2022-12-10 06:41:03 +0100 <monochrom> The Parenthism Manifesto :)
2022-12-10 06:41:54 +0100 <monochrom> Programming is the dialectic class struggle between implementers and users. Just like ( and ) opposing each other and yet of the same nature.
2022-12-10 06:42:36 +0100 <monochrom> OK that becomes simply Taoism pretty quickly. :)
2022-12-10 06:45:40 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-10 06:46:53 +0100 <monochrom> But I confess that sometimes I use $! to avoid nonstrictness. :)
2022-12-10 06:46:55 +0100 <int-e> monochrom: I use $ mostly for functions that are (almost) always at the beginning of expressions or statements and take a single argument. `pure`, `putStr`. Oh and for the second argument of `forM`.
2022-12-10 06:47:36 +0100 <monochrom> Sure. Basically when the whole expression has only one infix $ it's OK.
2022-12-10 06:48:06 +0100 <int-e> I also do f . g . h $ x ...basically when composing more than two functions, I think the parentheses are too heavy.
2022-12-10 06:48:21 +0100Haskell(~Haskell@node-1w7jr9umyj0lsx4k07h370qrp.ipv6.telus.net)
2022-12-10 06:48:28 +0100Haskell(~Haskell@node-1w7jr9umyj0lsx4k07h370qrp.ipv6.telus.net) (Remote host closed the connection)
2022-12-10 06:48:52 +0100 <monochrom> But by the time you have 2, 50% of the time it does the opposite of what you want, namely, 50% of the time the associativity works against you. And how many people actually remembers its associativity?
2022-12-10 06:49:03 +0100 <int-e> (Also, while I got the parsing wrong above (no excuse for that), I don't get it wrong when writing Haskell :P)
2022-12-10 06:49:23 +0100 <monochrom> Hence, I use parentheses to avoid getting confused by $.
2022-12-10 06:49:39 +0100 <int-e> I certainly don't go out of my way to use $ as much as possible.
2022-12-10 06:50:10 +0100int-eshrugs.
2022-12-10 06:50:34 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds)
2022-12-10 06:51:42 +0100 <monochrom> For the next level of controversy, consider BlockArguments vs $. >:)
2022-12-10 06:52:08 +0100 <DigitalKiwi> П> (☭)=($) ; infixr 0 ☭
2022-12-10 06:52:09 +0100 <DigitalKiwi> П> putStr ☭ "len " ++ show (length [1..5])
2022-12-10 06:52:09 +0100 <monochrom> for_ xs $ \x -> ... vs for_ xs \x -> ...
2022-12-10 06:52:11 +0100 <DigitalKiwi> len 5П>
2022-12-10 06:55:00 +0100king_gs(~Thunderbi@187.201.150.200) (Read error: Connection reset by peer)
2022-12-10 06:55:02 +0100king_gs1(~Thunderbi@2806:103e:29:cdd2:b2dd:cddc:5884:d05c)
2022-12-10 06:57:20 +0100king_gs1king_gs
2022-12-10 06:59:09 +0100waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-12-10 07:01:12 +0100ddellacosta(~ddellacos@143.244.47.76) (Ping timeout: 256 seconds)
2022-12-10 07:02:50 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2022-12-10 07:03:28 +0100Erutuon_(~Erutuon@user/erutuon) (Ping timeout: 256 seconds)
2022-12-10 07:05:54 +0100money(~money@user/polo)
2022-12-10 07:09:31 +0100waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 256 seconds)
2022-12-10 07:18:18 +0100Inst_(~Inst@c-98-208-218-119.hsd1.fl.comcast.net)
2022-12-10 07:22:24 +0100money(~money@user/polo) (Quit: money)
2022-12-10 07:31:32 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 255 seconds)
2022-12-10 07:31:59 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2022-12-10 07:31:59 +0100califax(~califax@user/califx) (Ping timeout: 255 seconds)
2022-12-10 07:32:26 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 255 seconds)
2022-12-10 07:32:53 +0100califax(~califax@user/califx)
2022-12-10 07:33:12 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2022-12-10 07:33:47 +0100stiell(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 255 seconds)
2022-12-10 07:33:47 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds)
2022-12-10 07:34:11 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-12-10 07:34:14 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2022-12-10 07:34:55 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-12-10 07:47:32 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-10 07:48:48 +0100stiell(~stiell@gateway/tor-sasl/stiell)
2022-12-10 07:51:32 +0100stiell(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2022-12-10 07:51:49 +0100foul_owl(~kerry@157.97.134.158) (Read error: Connection reset by peer)
2022-12-10 07:51:59 +0100stiell(~stiell@gateway/tor-sasl/stiell)
2022-12-10 08:11:49 +0100foul_owl(~kerry@174-21-75-230.tukw.qwest.net)
2022-12-10 08:14:44 +0100phma(phma@2001:5b0:212a:a8b8:8561:6792:7340:d9af) (Read error: Connection reset by peer)
2022-12-10 08:15:45 +0100phma(phma@2001:5b0:215a:c6f8:290c:9583:a7f8:18f1)
2022-12-10 08:20:55 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds)
2022-12-10 08:27:12 +0100money(~money@user/polo)
2022-12-10 08:32:28 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2022-12-10 08:32:52 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2022-12-10 08:35:29 +0100jargon(~jargon@174-22-192-24.phnx.qwest.net) (Ping timeout: 252 seconds)
2022-12-10 08:35:39 +0100money(~money@user/polo) (Ping timeout: 256 seconds)
2022-12-10 08:38:19 +0100jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
2022-12-10 08:38:21 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2022-12-10 08:46:56 +0100ec_(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2022-12-10 08:47:03 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-12-10 08:47:30 +0100ec_(~ec@gateway/tor-sasl/ec)
2022-12-10 08:48:03 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-12-10 08:49:21 +0100AlexZenon(~alzenon@178.34.151.8) (Quit: ;-)
2022-12-10 08:49:24 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-12-10 08:50:01 +0100Alex_test(~al_test@178.34.151.8) (Quit: ;-)
2022-12-10 08:50:11 +0100AlexNoo(~AlexNoo@178.34.151.8) (Quit: Leaving)
2022-12-10 08:53:42 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2022-12-10 08:55:02 +0100gmg(~user@user/gehmehgeh)
2022-12-10 08:59:46 +0100gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2022-12-10 09:00:32 +0100gmg(~user@user/gehmehgeh)
2022-12-10 09:08:42 +0100foul_owl(~kerry@174-21-75-230.tukw.qwest.net) (Ping timeout: 256 seconds)
2022-12-10 09:11:57 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-10 09:14:56 +0100bilegeek(~bilegeek@2600:1008:b081:6315:4a6c:8d52:e369:5a2e) (Quit: Leaving)
2022-12-10 09:16:47 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
2022-12-10 09:20:05 +0100acidjnk(~acidjnk@p200300d6e7137a605449a7b5e6225820.dip0.t-ipconnect.de)
2022-12-10 09:21:59 +0100jpds2(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-12-10 09:22:37 +0100jpds2(~jpds@gateway/tor-sasl/jpds)
2022-12-10 09:23:22 +0100foul_owl(~kerry@71.212.143.88)
2022-12-10 09:27:20 +0100tomokojun(~tomokojun@37.19.221.147) (Quit: じゃあね〜。)
2022-12-10 09:32:41 +0100bilegeek(~bilegeek@2600:1008:b081:6315:4a6c:8d52:e369:5a2e)
2022-12-10 09:38:34 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2022-12-10 09:46:59 +0100califax(~califax@user/califx) (Ping timeout: 255 seconds)
2022-12-10 09:47:26 +0100califax(~califax@user/califx)
2022-12-10 09:50:55 +0100 <carbolymer> why am I getting `variable not in scope: x` here: https://bpa.st/PT2Q ?
2022-12-10 09:51:56 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2022-12-10 09:53:25 +0100 <darkling> Because x isn't defined anywhere. You probably want _x, which is the accessor function for the _x element of Foo.
2022-12-10 09:54:51 +0100 <carbolymer> darkling: it's defined by `makeLenses`
2022-12-10 09:54:52 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-12-10 09:54:58 +0100 <darkling> (Unless I'm missing some magic that turns the _x definition into an x accessor)
2022-12-10 09:55:07 +0100 <carbolymer> oh evaluation order matters when using TH
2022-12-10 09:55:18 +0100 <carbolymer> I need to reder stuff here...
2022-12-10 09:55:25 +0100 <darkling> I just spotted the TemplateHaskell at the top, so that's well past my abilities now. :)
2022-12-10 09:55:30 +0100money(~money@user/polo)
2022-12-10 09:57:34 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-10 09:59:27 +0100Tuplanolla(~Tuplanoll@91-159-68-152.elisa-laajakaista.fi)
2022-12-10 10:02:13 +0100 <carbolymer> pointfree.io is gone?
2022-12-10 10:04:14 +0100 <carbolymer> oh there's lambdabot
2022-12-10 10:04:22 +0100 <carbolymer> @pl >>= . pure
2022-12-10 10:04:22 +0100 <lambdabot> (line 1, column 1):
2022-12-10 10:04:22 +0100 <lambdabot> unexpected ">"
2022-12-10 10:04:22 +0100 <lambdabot> expecting white space, "()", natural, identifier, lambda abstraction or expression
2022-12-10 10:04:38 +0100 <carbolymer> @pl >>= pure
2022-12-10 10:04:38 +0100 <lambdabot> (line 1, column 1):
2022-12-10 10:04:38 +0100 <lambdabot> unexpected ">"
2022-12-10 10:04:38 +0100 <lambdabot> expecting white space, "()", natural, identifier, lambda abstraction or expression
2022-12-10 10:11:20 +0100jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-12-10 10:16:49 +0100money(~money@user/polo) (Quit: money)
2022-12-10 10:19:35 +0100 <aeroplane> Is it possible for this simple code to be further minimized?
2022-12-10 10:19:38 +0100 <aeroplane> http://ix.io/4icF/haskell
2022-12-10 10:21:58 +0100 <aeroplane> It looks a lot like imperative code
2022-12-10 10:23:30 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 256 seconds)
2022-12-10 10:23:58 +0100 <davean> Today in Haskell, random segfaults.
2022-12-10 10:28:43 +0100nonzen_(~nonzen@user/nonzen) (Ping timeout: 248 seconds)
2022-12-10 10:28:47 +0100sajith(~sajith@user/sajith) (Ping timeout: 252 seconds)
2022-12-10 10:29:49 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2022-12-10 10:30:52 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds)
2022-12-10 10:31:08 +0100jakalx(~jakalx@base.jakalx.net)
2022-12-10 10:31:39 +0100Inst_(~Inst@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 260 seconds)
2022-12-10 10:32:28 +0100nonzen(~nonzen@user/nonzen)
2022-12-10 10:33:00 +0100sajith(~sajith@user/sajith)
2022-12-10 10:35:30 +0100 <int-e> :t getLine
2022-12-10 10:35:32 +0100 <lambdabot> IO String
2022-12-10 10:37:37 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-10 10:42:04 +0100 <aeroplane> int-e: I know that, I was just interested to know, that whether it can be reduced to a one liner and without using getLine or hGetLine
2022-12-10 10:43:59 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 264 seconds)
2022-12-10 10:44:14 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-12-10 10:47:13 +0100 <[Leary]> aeroplane: It can if you write and use, say, `untilM :: Monad m => m a -> (a -> m Bool) -> m [a]`.
2022-12-10 10:49:01 +0100gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-12-10 10:52:42 +0100Axma61595(~Axman6@user/axman6)
2022-12-10 10:54:27 +0100Axman6(~Axman6@user/axman6) (Ping timeout: 240 seconds)
2022-12-10 10:58:08 +0100potash_(~foghorn@94.225.47.8) (Excess Flood)
2022-12-10 11:00:17 +0100potash(~foghorn@user/foghorn)
2022-12-10 11:06:58 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-12-10 11:07:07 +0100elevenkb(~elevenkb@105.224.37.83)
2022-12-10 11:11:55 +0100kenran(~user@user/kenran)
2022-12-10 11:13:44 +0100kenran(~user@user/kenran) (Remote host closed the connection)
2022-12-10 11:16:12 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds)
2022-12-10 11:16:47 +0100Axma61595Axman6
2022-12-10 11:17:20 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2022-12-10 11:17:36 +0100 <carbolymer> aeroplane: sth like that: https://bpa.st/IDUQ ?
2022-12-10 11:22:09 +0100Guest3029(~Guest30@188.168.24.7)
2022-12-10 11:23:39 +0100elevenkb(~elevenkb@105.224.37.83) (Quit: Client closed)
2022-12-10 11:24:48 +0100money(~money@user/polo)
2022-12-10 11:25:23 +0100 <Guest3029> hi, why 'comp [(1, [2]), (2, [1])]' where
2022-12-10 11:25:24 +0100 <Guest3029> 'comp :: [(a, [a])] -> [[a]]
2022-12-10 11:25:24 +0100 <Guest3029> comp l@[(x, [y])] = map (\ (x, [y]) -> [x, y]) l'
2022-12-10 11:25:25 +0100 <Guest3029> get error Non-exhaustive patterns in function comp, but
2022-12-10 11:25:25 +0100 <Guest3029> map (\ (x, [y]) -> [x, y]) [(1, [2]), (2, [1])] is OK
2022-12-10 11:27:47 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 264 seconds)
2022-12-10 11:27:54 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2022-12-10 11:28:35 +0100bilegeek(~bilegeek@2600:1008:b081:6315:4a6c:8d52:e369:5a2e) (Quit: Leaving)
2022-12-10 11:32:09 +0100Guest3029(~Guest30@188.168.24.7) (Quit: Client closed)
2022-12-10 11:32:12 +0100elevenkb(~elevenkb@105.224.37.83)
2022-12-10 11:33:34 +0100Inst_(~Inst@c-98-208-218-119.hsd1.fl.comcast.net)
2022-12-10 11:34:58 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-12-10 11:37:56 +0100money(~money@user/polo) (Quit: money)
2022-12-10 11:40:00 +0100acidjnk(~acidjnk@p200300d6e7137a605449a7b5e6225820.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2022-12-10 11:40:25 +0100bontaq(~user@ool-45779fe5.dyn.optonline.net)
2022-12-10 11:50:18 +0100money(~money@user/polo)
2022-12-10 11:54:55 +0100acidjnk(~acidjnk@p200300d6e7137a605449a7b5e6225820.dip0.t-ipconnect.de)
2022-12-10 11:55:41 +0100money(~money@user/polo) (Read error: Connection reset by peer)
2022-12-10 12:03:18 +0100 <DigitalKiwi> lolwut
2022-12-10 12:03:20 +0100 <DigitalKiwi> https://hackage.haskell.org/packages/search?terms=exif
2022-12-10 12:03:43 +0100 <DigitalKiwi> https://hackage.haskell.org/package/exiftool
2022-12-10 12:03:50 +0100 <DigitalKiwi> how is that not on the search result page
2022-12-10 12:04:52 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 265 seconds)
2022-12-10 12:07:11 +0100king_gs(~Thunderbi@2806:103e:29:cdd2:b2dd:cddc:5884:d05c) (Ping timeout: 260 seconds)
2022-12-10 12:07:17 +0100 <DigitalKiwi> Hecate: lol https://flora.pm/search?q=exif 20 results! flora is now > hackage
2022-12-10 12:07:39 +0100 <maerwald> written in the 90s
2022-12-10 12:08:18 +0100 <maerwald> flora seems to over-match
2022-12-10 12:08:24 +0100 <DigitalKiwi> some awfully fuzzy matching going on here lol
2022-12-10 12:09:38 +0100 <DigitalKiwi> what's kind of funny/sad about the hackage one is i looked for exif libraries a few days ago and came to the conclusion there weren't any good ones :P
2022-12-10 12:10:11 +0100 <DigitalKiwi> the only one i wanted to find doesn't show up in search lol
2022-12-10 12:10:42 +0100 <DigitalKiwi> shows up on bing...
2022-12-10 12:15:15 +0100 <aeroplane> [Leary]: thanks
2022-12-10 12:15:48 +0100 <aeroplane> carbolymer: thanks, yeah somethin like that
2022-12-10 12:16:00 +0100pagnol(~user@92-64-37-85.biz.kpn.net)
2022-12-10 12:16:12 +0100 <pagnol> Is there a version of foldM that accumlates the steps?
2022-12-10 12:19:47 +0100money(~money@user/polo)
2022-12-10 12:23:53 +0100money(~money@user/polo) (Client Quit)
2022-12-10 12:26:09 +0100 <pagnol> ah, just saw that those are called scan
2022-12-10 12:26:32 +0100Guest6(~Guest6@86.63.50.105)
2022-12-10 12:26:55 +0100Guest6(~Guest6@86.63.50.105) (Client Quit)
2022-12-10 12:30:14 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:cc2a:ce80:f3c:358f) (Remote host closed the connection)
2022-12-10 12:34:33 +0100 <dminuoso> monochrom: (☭) is almost certainly *left* associative.
2022-12-10 12:34:42 +0100 <carbolymer> :D
2022-12-10 12:34:47 +0100king_gs(~Thunderbi@187.201.150.200)
2022-12-10 12:36:18 +0100 <pagnol> let's not talk about the right associative one
2022-12-10 12:37:51 +0100 <carbolymer> are both annihilation operators?
2022-12-10 12:38:16 +0100 <DigitalKiwi> $ is the right associative one no?
2022-12-10 12:39:10 +0100 <dminuoso> That's not the one we are talking about, DigitalKiwi.
2022-12-10 12:39:25 +0100 <dminuoso> Was just making a little political pun
2022-12-10 12:39:54 +0100 <pagnol> they're often used together though
2022-12-10 12:39:55 +0100 <Franciman> they were talking about the Littorian Fasces operator
2022-12-10 12:39:56 +0100 <carbolymer> but DigitalKiwi is right
2022-12-10 12:40:21 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Remote host closed the connection)
2022-12-10 12:40:40 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
2022-12-10 12:41:27 +0100 <DigitalKiwi> https://twitter.com/ArchKiwi/status/1589808069433004032
2022-12-10 12:41:29 +0100 <DigitalKiwi> hehe
2022-12-10 12:41:35 +0100ft(~ft@p508dbd59.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2022-12-10 12:42:06 +0100 <carbolymer> ah yes, mad Stephen
2022-12-10 12:42:35 +0100 <dminuoso> Not sure sure about that comparison
2022-12-10 12:43:20 +0100ft(~ft@p4fc2a257.dip0.t-ipconnect.de)
2022-12-10 12:43:39 +0100 <DigitalKiwi> almost every critique stephen has of crypto applies to capitalism just as well lol
2022-12-10 12:45:13 +0100kuribas(~user@ptr-17d51ensnhliua7uirq.18120a2.ip6.access.telenet.be)
2022-12-10 12:48:37 +0100 <pagnol> I'm looking for a variant of foldM that accumulates the steps and saw that the foldl package has a scanM which seems to do that, but somehow it requires use of StateT. Is there perhaps a more sraightforward way?
2022-12-10 12:49:21 +0100 <dminuoso> mapAccumL ?
2022-12-10 12:49:56 +0100 <dminuoso> Though amusingly that uses StateL internally too :p
2022-12-10 12:50:08 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2022-12-10 12:50:09 +0100 <dminuoso> But that's nothing you need to worry about
2022-12-10 12:50:10 +0100Techcable(~Techcable@user/Techcable)
2022-12-10 12:50:52 +0100 <pagnol> hmm I didn't know about mapAccumL, looks like what I'm looking for, thanks
2022-12-10 12:53:14 +0100 <davean> dminuoso: well, I mean any implimentation will because the core idea is a state one, it might just not say it.
2022-12-10 12:54:39 +0100 <dminuoso> davean: Sure, I just thought it was slightly amusing due to their comment about foldM requiring to use StateT.
2022-12-10 12:54:43 +0100king_gs(~Thunderbi@187.201.150.200) (Read error: Connection reset by peer)
2022-12-10 12:54:55 +0100 <pagnol> hm, I think mapAccumL is almost what I need. In my case the f returns an (m (s, b))
2022-12-10 12:55:33 +0100king_gs(~Thunderbi@2806:103e:29:cdd2:b2dd:cddc:5884:d05c)
2022-12-10 12:55:43 +0100 <pagnol> the m is an Either
2022-12-10 12:56:22 +0100 <dminuoso> Either handle the state passing manually or use StateT then
2022-12-10 12:57:11 +0100 <pagnol> ok
2022-12-10 12:58:30 +0100 <DigitalKiwi> get rid of the state you say
2022-12-10 12:59:11 +0100 <carbolymer> state bad
2022-12-10 13:01:13 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-10 13:02:23 +0100pagnol(~user@92-64-37-85.biz.kpn.net) (Ping timeout: 265 seconds)
2022-12-10 13:06:35 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2022-12-10 13:06:42 +0100king_gs(~Thunderbi@2806:103e:29:cdd2:b2dd:cddc:5884:d05c) (Ping timeout: 256 seconds)
2022-12-10 13:07:30 +0100Pickchea(~private@user/pickchea)
2022-12-10 13:12:31 +0100zant2(~zant@62.214.20.26)
2022-12-10 13:14:35 +0100 <DigitalKiwi> https://twitter.com/ArchKiwi/status/1494761627903840267
2022-12-10 13:19:59 +0100danza(~francesco@4.red-79-153-154.dynamicip.rima-tde.net) (Ping timeout: 246 seconds)
2022-12-10 13:22:17 +0100money(~money@user/polo)
2022-12-10 13:22:28 +0100foul_owl(~kerry@71.212.143.88) (Ping timeout: 252 seconds)
2022-12-10 13:23:47 +0100econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-12-10 13:27:20 +0100money(~money@user/polo) (Quit: money)
2022-12-10 13:30:09 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2022-12-10 13:30:43 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:cc2a:ce80:f3c:358f)
2022-12-10 13:33:19 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 260 seconds)
2022-12-10 13:35:24 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds)
2022-12-10 13:35:25 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:cc2a:ce80:f3c:358f) (Ping timeout: 256 seconds)
2022-12-10 13:38:04 +0100foul_owl(~kerry@193.29.61.77)
2022-12-10 13:39:59 +0100Guest75(Guest75@2a01:7e01::f03c:92ff:fe5d:7b18)
2022-12-10 13:40:34 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Remote host closed the connection)
2022-12-10 13:40:53 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
2022-12-10 13:42:38 +0100gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-12-10 13:54:02 +0100ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds)
2022-12-10 13:54:29 +0100jpds2(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 255 seconds)
2022-12-10 13:58:04 +0100jpds2(~jpds@gateway/tor-sasl/jpds)
2022-12-10 13:59:11 +0100ec_(~ec@gateway/tor-sasl/ec)
2022-12-10 14:01:06 +0100Pickchea(~private@user/pickchea) (Ping timeout: 256 seconds)
2022-12-10 14:02:14 +0100zant2(~zant@62.214.20.26) (Ping timeout: 260 seconds)
2022-12-10 14:15:58 +0100causal(~user@50.35.85.7)
2022-12-10 14:20:13 +0100 <jackdk> Your handle betrays you.
2022-12-10 14:27:30 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-12-10 14:31:46 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-10 14:38:16 +0100money(~money@user/polo)
2022-12-10 14:38:38 +0100kilolympus(~kilolympu@213.144.144.24)
2022-12-10 14:41:56 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Remote host closed the connection)
2022-12-10 14:42:15 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
2022-12-10 14:44:57 +0100tremon(~tremon@83-84-18-241.cable.dynamic.v4.ziggo.nl)
2022-12-10 14:53:02 +0100 <DigitalKiwi> but it's a really cool logo
2022-12-10 14:53:49 +0100 <DigitalKiwi> https://www.redbubble.com/i/sticker/Kiwi-on-Kiwi-Avatar-by-MostlyAbsurd/126038830.EJUG5 isn't as cool :(
2022-12-10 14:54:09 +0100danza(~francesco@128.red-79-152-194.dynamicip.rima-tde.net)
2022-12-10 14:56:19 +0100gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-12-10 14:58:12 +0100Erutuon_(~Erutuon@user/erutuon)
2022-12-10 15:05:43 +0100gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-12-10 15:06:24 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds)
2022-12-10 15:10:01 +0100hsw_(~hsw@112-104-142-182.adsl.dynamic.seed.net.tw)
2022-12-10 15:10:06 +0100jespada(~jespada@nmal-24-b2-v4wan-166357-cust1764.vm24.cable.virginm.net)
2022-12-10 15:11:23 +0100hsw(~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Ping timeout: 248 seconds)
2022-12-10 15:13:04 +0100acidjnk(~acidjnk@p200300d6e7137a605449a7b5e6225820.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2022-12-10 15:24:53 +0100money(~money@user/polo) (Quit: money)
2022-12-10 15:27:49 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-12-10 15:28:19 +0100lottaquestions(~nick@2607:fa49:503e:7100:fd99:63e8:8bc:5217) (Remote host closed the connection)
2022-12-10 15:28:46 +0100lottaquestions(~nick@2607:fa49:503e:7100:80c9:a594:75a5:27d3)
2022-12-10 15:32:54 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:44ff:72e2:5072:e2ac)
2022-12-10 15:37:39 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:44ff:72e2:5072:e2ac) (Ping timeout: 260 seconds)
2022-12-10 15:37:53 +0100Lycurgus(~juan@user/Lycurgus)
2022-12-10 15:39:06 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-12-10 15:41:35 +0100danza(~francesco@128.red-79-152-194.dynamicip.rima-tde.net) (Ping timeout: 264 seconds)
2022-12-10 15:44:11 +0100Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt https://tinyurl.com/4m8d4kd5)
2022-12-10 15:45:11 +0100califax(~califax@user/califx) (Ping timeout: 255 seconds)
2022-12-10 15:46:05 +0100jpds2(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 255 seconds)
2022-12-10 15:46:32 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2022-12-10 15:46:32 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 255 seconds)
2022-12-10 15:51:34 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-12-10 15:59:15 +0100money(~money@user/polo)
2022-12-10 15:59:54 +0100elevenkb(~elevenkb@105.224.37.83) (Quit: Client closed)
2022-12-10 16:02:01 +0100 <darkling> Is there a function or simple syntax for generating an (infinite) list of integers with a skip in them? Say, something like map (\x -> 2+3*x) [1..] only without having to build the equation...
2022-12-10 16:02:18 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-10 16:03:16 +0100 <int-e> > [5,8..]
2022-12-10 16:03:17 +0100 <lambdabot> [5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80...
2022-12-10 16:03:20 +0100acidjnk(~acidjnk@p200300d6e7137a06608dcb978e6b7ed4.dip0.t-ipconnect.de)
2022-12-10 16:03:40 +0100 <int-e> > iterate (+3) 5
2022-12-10 16:03:41 +0100 <lambdabot> [5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80...
2022-12-10 16:03:43 +0100 <darkling> Ah, I'd put a comma after the 8. Thanks.
2022-12-10 16:04:41 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2022-12-10 16:05:24 +0100califax(~califax@user/califx)
2022-12-10 16:07:35 +0100Guest75(Guest75@2a01:7e01::f03c:92ff:fe5d:7b18) (Quit: Client closed)
2022-12-10 16:10:01 +0100Azel_(~Azel@2a01:e0a:1f1:98e0:3223:2d3e:4f65:245e)
2022-12-10 16:12:57 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-12-10 16:14:34 +0100jpds2(~jpds@gateway/tor-sasl/jpds)
2022-12-10 16:15:22 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-12-10 16:18:57 +0100Guest4274(~Guest42@91.199.84.149)
2022-12-10 16:23:29 +0100Guest4274(~Guest42@91.199.84.149) ()
2022-12-10 16:26:24 +0100jakalx(~jakalx@base.jakalx.net) ()
2022-12-10 16:28:49 +0100money(~money@user/polo) (Ping timeout: 256 seconds)
2022-12-10 16:30:35 +0100Ybombinator(~Ybombinat@89.254.152.15)
2022-12-10 16:30:37 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-12-10 16:32:04 +0100jakalx(~jakalx@base.jakalx.net)
2022-12-10 16:32:15 +0100ddellacosta(~ddellacos@143.244.47.100)
2022-12-10 16:36:35 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds)
2022-12-10 16:43:32 +0100gmg(~user@user/gehmehgeh)
2022-12-10 16:46:09 +0100Ranhir(~Ranhir@157.97.53.139) (Ping timeout: 260 seconds)
2022-12-10 16:48:25 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-12-10 16:48:34 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2022-12-10 16:49:46 +0100Pickchea(~private@user/pickchea)
2022-12-10 16:50:59 +0100pagnol(~user@213-205-209-87.ftth.glasoperator.nl)
2022-12-10 16:51:28 +0100zant2(~zant@62.214.20.26)
2022-12-10 16:54:54 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds)
2022-12-10 16:56:18 +0100Ranhir(~Ranhir@157.97.53.139)
2022-12-10 16:56:41 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2022-12-10 16:56:44 +0100money(~money@user/polo)
2022-12-10 17:01:11 +0100danza(~francesco@4.red-79-153-154.dynamicip.rima-tde.net)
2022-12-10 17:02:46 +0100cheater(~Username@user/cheater) (Quit: Killed (KrON (Requested by panasync)))
2022-12-10 17:03:33 +0100cheater(~Username@user/cheater)
2022-12-10 17:07:32 +0100califax(~califax@user/califx) (Ping timeout: 255 seconds)
2022-12-10 17:08:26 +0100gmg(~user@user/gehmehgeh) (Ping timeout: 255 seconds)
2022-12-10 17:08:53 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 255 seconds)
2022-12-10 17:09:00 +0100califax(~califax@user/califx)
2022-12-10 17:09:18 +0100 <aeroplane> Can somebody help me in resolving error in http://ix.io/4ieB/haskell
2022-12-10 17:09:20 +0100ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds)
2022-12-10 17:09:22 +0100 <aeroplane> I just want to put "yes" when (f x) returns a Just value and "No" when it retursn Nothing
2022-12-10 17:09:40 +0100 <aeroplane> Thanks
2022-12-10 17:09:57 +0100ec_(~ec@gateway/tor-sasl/ec)
2022-12-10 17:10:52 +0100gmg(~user@user/gehmehgeh)
2022-12-10 17:11:13 +0100 <[Leary]> aeroplane: let y = case ...
2022-12-10 17:11:14 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2022-12-10 17:12:40 +0100Ybombinator(~Ybombinat@89.254.152.15) (Quit: Quit)
2022-12-10 17:12:51 +0100 <[Leary]> <- is monadic bind, but you're not doing IO in the case-of expression, so it's both unnecessary and a type error.
2022-12-10 17:15:21 +0100 <aeroplane> [Leary]: thanks, I understand now, you use "<-" when getting input from function like getLine..etc
2022-12-10 17:15:38 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 255 seconds)
2022-12-10 17:16:38 +0100 <aeroplane> but there is also one more error, at the very end in 'y'
2022-12-10 17:16:43 +0100 <dsal> aeroplane: that is one use case
2022-12-10 17:17:09 +0100 <aeroplane> the 'y' error is gone
2022-12-10 17:17:09 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2022-12-10 17:18:27 +0100 <aeroplane> dsal: sorry, I didnt got you
2022-12-10 17:19:11 +0100k8yun(~k8yun@user/k8yun)
2022-12-10 17:19:44 +0100 <dsal> <- isn't "getting input from functions" it's just a monadic bind.
2022-12-10 17:19:45 +0100 <dsal> `do` syntax does seem to confuse people.
2022-12-10 17:21:45 +0100 <dsal> @undo do { a <- [Just 5, Nothing]; pure $ maybe False (const True) a }
2022-12-10 17:21:45 +0100 <lambdabot> [Just 5, Nothing] >>= \ a -> pure $ maybe False (const True) a
2022-12-10 17:22:00 +0100 <dsal> > do { a <- [Just 5, Nothing]; pure $ maybe False (const True) a }
2022-12-10 17:22:01 +0100 <lambdabot> [True,False]
2022-12-10 17:22:17 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2022-12-10 17:23:38 +0100troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 246 seconds)
2022-12-10 17:26:39 +0100 <aeroplane> dsal: I not able to find anything related to "monadic bind" on the internet. From what I know, ">>=" is called bind and "<-" is used to take input from a file. This is what Ive learned and I am just a beginner :)
2022-12-10 17:27:59 +0100 <dsal> <- doesn't take input, it just gives some syntax sugar to >>=
2022-12-10 17:28:34 +0100 <dsal> See the @undo above. That desugared
2022-12-10 17:28:46 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Ping timeout: 268 seconds)
2022-12-10 17:29:29 +0100 <dsal> Some here argue that `do` syntax should come much later in learning. It causes a lot of confusion.
2022-12-10 17:29:32 +0100sadmax(~user@209.205.174.253)
2022-12-10 17:30:21 +0100 <dsal> @undo do { x <- a; f a }
2022-12-10 17:30:21 +0100 <lambdabot> a >>= \ x -> f a
2022-12-10 17:30:41 +0100 <dsal> @undo do { x <- a; f x }
2022-12-10 17:30:41 +0100 <lambdabot> a >>= \ x -> f x
2022-12-10 17:32:07 +0100money(~money@user/polo) (Quit: money)
2022-12-10 17:32:57 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-10 17:37:28 +0100 <aeroplane> dsal: thanks a lot, I understand now, its just syntactic sugar. But do looks a lot cleaner from beginners perspective
2022-12-10 17:38:23 +0100 <dsal> Looking cleaner isn't as important as being able to understand what you're looking at.
2022-12-10 17:38:57 +0100sadmax(~user@209.205.174.253) (Remote host closed the connection)
2022-12-10 17:39:02 +0100 <glguy> A better model might be not to avoid do but just to avoid trying to teach its generalization, let people get used to it with IO and then generalize later
2022-12-10 17:40:46 +0100 <dsal> That's probably fine. It's just going to be confusing when to use `let` and when to use `<-`.
2022-12-10 17:41:38 +0100 <dsal> If you're in `IO` I guess that's just "does this do something like `IO`?" But IO is larger than most people think.
2022-12-10 17:41:49 +0100 <aeroplane> > getChar>>=putChar
2022-12-10 17:41:51 +0100 <lambdabot> <IO ()>
2022-12-10 17:42:38 +0100 <glguy> any difference between let = and <- can just be explained in the context of IO without needing to worry about generalizations
2022-12-10 17:43:15 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-12-10 17:44:30 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-12-10 17:44:44 +0100 <dsal> Yeah. It just feels like lying. Though lying seems to be a rather critical element of teaching.
2022-12-10 17:47:26 +0100Francimanfancyman
2022-12-10 17:47:43 +0100fancymanFranciman
2022-12-10 17:49:42 +0100money(~money@user/polo)
2022-12-10 17:50:23 +0100byorgeytakes issue with that last statement
2022-12-10 17:56:51 +0100money(~money@user/polo) (Read error: Connection reset by peer)
2022-12-10 18:00:09 +0100Guest7643(money@user/polo) ()
2022-12-10 18:01:27 +0100money(sid532813@user/polo)
2022-12-10 18:01:51 +0100 <dsal> byorgey: Anyone who wants to know the whole truth about a topic dedicates their life to it. The rest of us just learn patterns that are statistically likely to match what we encounter.
2022-12-10 18:03:02 +0100money_(~money@user/polo)
2022-12-10 18:07:00 +0100 <monochrom> My observation of students: do-notation is hard for them to write correctly.
2022-12-10 18:07:23 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 264 seconds)
2022-12-10 18:07:44 +0100 <monochrom> Easy for them to read and guess, sure, but that's just speaking to imperative presumptions that no longer applies to Haskell, and hard-to-write-correctly shows it.
2022-12-10 18:08:22 +0100 <monochrom> To wit, just wait for them to ask why sometimes it's "let x = f y" and why sometimes "x <- f y" "what's the difference?"
2022-12-10 18:08:41 +0100 <monochrom> If they ask questions then it is not "easy".
2022-12-10 18:09:21 +0100Azel_(~Azel@2a01:e0a:1f1:98e0:3223:2d3e:4f65:245e) (Quit: Konversation terminated!)
2022-12-10 18:10:11 +0100money_(~money@user/polo) (Quit: money_)
2022-12-10 18:10:51 +0100 <monochrom> Upon recommendation from both TAs and students, I have stopped teaching do-notation at all. It's all purely >>= now. My students' questions are now on more important and deeper issues.
2022-12-10 18:12:11 +0100 <monochrom> And reflects that they know they have issues, rather than presume it's easy.
2022-12-10 18:12:20 +0100 <monochrom> "easy"
2022-12-10 18:12:29 +0100Xeroine(~Xeroine@user/xeroine) (Ping timeout: 260 seconds)
2022-12-10 18:13:27 +0100Axma25968(~Axman6@user/axman6)
2022-12-10 18:15:15 +0100Axman6(~Axman6@user/axman6) (Ping timeout: 240 seconds)
2022-12-10 18:15:26 +0100razetime(~quassel@49.207.203.213) (Remote host closed the connection)
2022-12-10 18:15:31 +0100Xeroine(~Xeroine@user/xeroine)
2022-12-10 18:17:40 +0100 <monochrom> Now, about lying. First let's examine: What does "truth" mean? >:)
2022-12-10 18:19:04 +0100money_(~money@user/polo)
2022-12-10 18:26:16 +0100 <monochrom> dminuoso: Haha that's brilliant, ☭ is left associative, so $ must be right associative!
2022-12-10 18:26:52 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1) (Ping timeout: 256 seconds)
2022-12-10 18:26:56 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-12-10 18:28:15 +0100money_(~money@user/polo) (Quit: money_)
2022-12-10 18:36:15 +0100instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net)
2022-12-10 18:37:59 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2022-12-10 18:37:59 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 255 seconds)
2022-12-10 18:37:59 +0100califax(~califax@user/califx) (Ping timeout: 255 seconds)
2022-12-10 18:38:28 +0100money_(~money@user/polo)
2022-12-10 18:38:55 +0100califax(~califax@user/califx)
2022-12-10 18:39:14 +0100chexum_(~quassel@gateway/tor-sasl/chexum)
2022-12-10 18:40:14 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 255 seconds)
2022-12-10 18:40:20 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2022-12-10 18:40:43 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-12-10 18:41:00 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1)
2022-12-10 18:43:37 +0100 <aeroplane> I am gonna ask a very lame question from what I've learned from previous comments , let's say we have a function for the time being
2022-12-10 18:43:40 +0100 <aeroplane> getTail x = Just $ tail x
2022-12-10 18:43:57 +0100codaraxis___(~codaraxis@user/codaraxis)
2022-12-10 18:43:57 +0100 <aeroplane> we can run it like this- getTail [1..5]
2022-12-10 18:44:23 +0100 <aeroplane> and this- getTail [1..5]>>=getTail
2022-12-10 18:44:42 +0100 <aeroplane> but not this- a <- getTail [1..5], why
2022-12-10 18:45:25 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-12-10 18:46:24 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-12-10 18:47:50 +0100codaraxis__(~codaraxis@user/codaraxis) (Ping timeout: 260 seconds)
2022-12-10 18:52:11 +0100Azel_(~Azel@2a01:e0a:1f1:98e0:556b:ff1f:9810:e191)
2022-12-10 18:52:20 +0100Azel_(~Azel@2a01:e0a:1f1:98e0:556b:ff1f:9810:e191) (Client Quit)
2022-12-10 18:52:43 +0100 <mauke> aeroplane: your question is incorrect
2022-12-10 18:53:06 +0100 <mauke> there exists at least one program in which 'a <- getTail [1..5]' is a valid line
2022-12-10 18:53:34 +0100Pickchea(~private@user/pickchea) (Quit: Leaving)
2022-12-10 18:56:10 +0100money_(~money@user/polo) (Quit: money_)
2022-12-10 19:03:27 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-10 19:03:38 +0100 <monochrom> You can have: do { a <- getTail [1..5]; getTail a }
2022-12-10 19:03:42 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1) (Ping timeout: 256 seconds)
2022-12-10 19:03:42 +0100zant2(~zant@62.214.20.26) (Ping timeout: 256 seconds)
2022-12-10 19:03:50 +0100 <monochrom> It is the same as getTail [1..5]>>=getTail
2022-12-10 19:05:45 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1)
2022-12-10 19:07:02 +0100 <monochrom> But yeah whether one single line of code is allowed or disallowed depends on the other 100 lines of code. You will not have any luck with that kind of simple isolation.
2022-12-10 19:07:16 +0100money_(~money@user/polo)
2022-12-10 19:08:03 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 256 seconds)
2022-12-10 19:09:39 +0100 <monochrom> Plus the statistical almost certainty that whenever a beginner singles out a line of code, it means that the real error is in the other 100 lines.
2022-12-10 19:10:34 +0100 <darkling> That last point often applies to the compiler, too. ;)
2022-12-10 19:11:08 +0100 <geekosaur> not so much if you annotate types appropriately
2022-12-10 19:11:18 +0100 <mauke> right. if you knew the exact location of the problem, you wouldn't need to ask for help with debugging
2022-12-10 19:11:36 +0100Scraeling(~Scraeling@user/scraeling)
2022-12-10 19:12:47 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-12-10 19:13:28 +0100 <monochrom> Sometimes C compilers and C++ compilers do that.
2022-12-10 19:13:44 +0100 <monochrom> And the LaTeX compiler does that even more.
2022-12-10 19:14:03 +0100 <geekosaur> C++ compilers are more likely to vomit up a 3-page error and you have to associate it with the 1 line you typed
2022-12-10 19:14:26 +0100 <geekosaur> since it expands template code in the error message
2022-12-10 19:14:26 +0100 <mauke> 3 pages? that's a bit optimistic
2022-12-10 19:14:30 +0100 <geekosaur> true
2022-12-10 19:14:31 +0100 <darkling> 3 pages? C++ compilers have got more laconic since I last used one. :)
2022-12-10 19:14:37 +0100 <monochrom> -_- XD
2022-12-10 19:14:49 +0100 <geekosaur> but there's also whose definition of "page" 🙂
2022-12-10 19:15:20 +0100 <geekosaur> 66 lines is about 3 screens
2022-12-10 19:15:29 +0100 <darkling> 4 KiB on x86, of course...
2022-12-10 19:16:25 +0100 <glguy> You guys are printing your c++ error outputs?
2022-12-10 19:16:57 +0100 <monochrom> Yeah, they make great wallpapers. >:)
2022-12-10 19:16:58 +0100 <geekosaur> darkling is apparently using a hex debugger
2022-12-10 19:17:07 +0100 <monochrom> haha
2022-12-10 19:17:28 +0100 <monochrom> Real programmers pipe C++ error outputs to od
2022-12-10 19:17:52 +0100 <geekosaur> real programmers flash the lights on the console
2022-12-10 19:17:52 +0100Jade[m](~jade1024m@2001:470:69fc:105::2:d68a)
2022-12-10 19:18:23 +0100 <monochrom> Is there a programming language called Real? Or should I make one?
2022-12-10 19:18:37 +0100 <money_> 3doit
2022-12-10 19:18:51 +0100 <monochrom> Then I get to say all sorts of crazy things about Real programming language has lambda, Real programmers write functions...
2022-12-10 19:19:07 +0100 <darkling> Make one anyway. Then if there's already one, you can have arguments about which is the real Real.
2022-12-10 19:19:16 +0100 <monochrom> haha
2022-12-10 19:19:24 +0100 <mauke> it's too bad that the C/C++ language specification has disappeared from the internet
2022-12-10 19:20:05 +0100 <geekosaur> even the one-version-behind one they used to allow? sad
2022-12-10 19:20:14 +0100money_(~money@user/polo) (Quit: money_)
2022-12-10 19:20:29 +0100 <mauke> it was just a bunch of drafts; it never got finalized
2022-12-10 19:20:54 +0100 <monochrom> Real committees never finalize. >:)
2022-12-10 19:21:30 +0100hueso(~root@user/hueso)
2022-12-10 19:21:34 +0100 <darkling> It's all just continuations.
2022-12-10 19:23:16 +0100 <mauke> I wrote what was probably the only attempt at an implementation of it, but I don't remember most of the details
2022-12-10 19:23:22 +0100money_(~money@user/polo)
2022-12-10 19:24:44 +0100 <mauke> IIRC it had built-in array slicing and concatenation, which I implemented using Data.Sequence
2022-12-10 19:25:08 +0100 <monochrom> You... wrote a C++ compiler in Haskell?!
2022-12-10 19:25:15 +0100 <mauke> no, a C/C++ interpreter
2022-12-10 19:25:24 +0100 <monochrom> Still, bravo
2022-12-10 19:25:35 +0100 <mauke> wasn't that hard
2022-12-10 19:25:40 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2022-12-10 19:25:50 +0100 <mauke> C/C++ is simpler than C
2022-12-10 19:26:11 +0100 <monochrom> My wish has come true. C is desugared to Haskell!
2022-12-10 19:26:20 +0100instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 260 seconds)
2022-12-10 19:26:28 +0100 <mauke> but it's not C :-(
2022-12-10 19:26:36 +0100 <Jade[m]> It was haskell all along
2022-12-10 19:27:17 +0100 <monochrom> Oh, is it that kind of math thing where C/C++ means "take C, quotient by C++ to get something drastically smaller"?
2022-12-10 19:27:47 +0100Sgeo(~Sgeo@user/sgeo)
2022-12-10 19:28:35 +0100 <mauke> no, it's literally a language called "C/C++"
2022-12-10 19:28:52 +0100 <monochrom> X|
2022-12-10 19:29:05 +0100 <mauke> mostly created so you can truthfully put it on your resume
2022-12-10 19:29:19 +0100 <dolio> @karma C/C
2022-12-10 19:29:19 +0100 <lambdabot> C/C has a karma of 52
2022-12-10 19:29:23 +0100 <mauke> for jobs that ask for experience with "C/C++"
2022-12-10 19:29:28 +0100 <monochrom> haha
2022-12-10 19:30:06 +0100 <monochrom> Would you also like me to create a language called J/Java/Javacript ? :)
2022-12-10 19:30:44 +0100 <mauke> I think there's less demand for that :-)
2022-12-10 19:31:00 +0100Scraeling_(~Scraeling@27.63.255.104)
2022-12-10 19:33:57 +0100Scraeling(~Scraeling@user/scraeling) (Ping timeout: 268 seconds)
2022-12-10 19:34:06 +0100Scraeling_Scraeling
2022-12-10 19:35:40 +0100jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-12-10 19:36:34 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds)
2022-12-10 19:36:41 +0100jakalx(~jakalx@base.jakalx.net)
2022-12-10 19:37:56 +0100 <EvanR> so C/C++ was a language and it had a specification, what
2022-12-10 19:37:59 +0100instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net)
2022-12-10 19:38:42 +0100 <monochrom> Hence the sadness when mauke can't find a URL to show you.
2022-12-10 19:39:02 +0100 <EvanR> I'm mainly a John/J/Jingleheimerscript programmer
2022-12-10 19:42:35 +0100instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 268 seconds)
2022-12-10 19:48:40 +0100 <mauke> http://www.cpax.org.uk/prg/portable/c/c++/ is where it used to live for a short while
2022-12-10 19:48:57 +0100jargon(~jargon@174-22-192-24.phnx.qwest.net)
2022-12-10 19:48:59 +0100 <mauke> ~15 years ago
2022-12-10 19:50:21 +0100 <dminuoso> Wayback Machine didnt crawl it at that time :(
2022-12-10 19:50:29 +0100 <EvanR> it's impossible to google
2022-12-10 19:50:40 +0100 <dminuoso> EvanR: I guess thats also part of the joke.
2022-12-10 19:52:53 +0100fizbin(~fizbin@user/fizbin)
2022-12-10 19:53:57 +0100 <EvanR> I did find a bjarne stroustrup quote that says "there is no language called C/C++", so I guess that's what happened
2022-12-10 19:54:26 +0100 <EvanR> god negatively asserted it
2022-12-10 19:54:36 +0100 <dminuoso> If I was to make a bad language, I would probably name it C+.
2022-12-10 19:54:48 +0100 <EvanR> yeah take the average
2022-12-10 19:54:57 +0100 <Jade[m]> C--
2022-12-10 19:55:02 +0100 <dminuoso> C-- already exists.
2022-12-10 19:55:07 +0100 <Jade[m]> that's a haskell IR right
2022-12-10 19:55:11 +0100 <dminuoso> Not quite
2022-12-10 19:55:15 +0100 <EvanR> there's multiple C--'s
2022-12-10 19:55:16 +0100 <dminuoso> We have cmm which is a derivative of it
2022-12-10 19:55:21 +0100 <darkling> Surely C++ evaluates to C, so if you want an improvement, you should use ++C
2022-12-10 19:55:53 +0100 <EvanR> C++ is better eventually
2022-12-10 19:56:11 +0100jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-12-10 19:56:47 +0100money_(~money@user/polo) (Ping timeout: 256 seconds)
2022-12-10 19:57:19 +0100 <mauke> the presence of C++ merely increases the value of C
2022-12-10 19:57:32 +0100 <dminuoso> But only after you assign it to a programmer.
2022-12-10 19:57:51 +0100 <dminuoso> Or no, after you use it.
2022-12-10 19:57:59 +0100 <dminuoso> There's a grain of truth to it.
2022-12-10 19:58:06 +0100 <fizbin> Modern C++ (i.e. C++20 and following) is truly a wonder to behold, if you learned C++ back in the bad old days when I first learned it.
2022-12-10 19:58:07 +0100 <dminuoso> Every time you use C++, your perceived value of C raises.
2022-12-10 19:58:13 +0100 <dminuoso> So it is true.
2022-12-10 19:58:32 +0100 <dminuoso> fizbin: Yes, it is a wonder to behold. Did you know one can conjure up non-constant constexpr?
2022-12-10 19:58:36 +0100money_(~money@user/polo)
2022-12-10 19:58:38 +0100 <dminuoso> In a standard conforming manner.
2022-12-10 19:58:53 +0100 <dminuoso> A language that can design such a thing is truly magnificient.
2022-12-10 20:00:27 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-12-10 20:03:35 +0100money_(~money@user/polo) (Ping timeout: 256 seconds)
2022-12-10 20:07:25 +0100glguy(~glguy@libera/staff-emeritus/glguy) (Read error: Connection reset by peer)
2022-12-10 20:09:13 +0100money_(~money@user/polo)
2022-12-10 20:09:38 +0100cole45(~cole@cpe-104-32-238-223.socal.res.rr.com)
2022-12-10 20:15:49 +0100kuribas(~user@ptr-17d51ensnhliua7uirq.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 27.1))
2022-12-10 20:16:15 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2022-12-10 20:16:24 +0100 <EvanR> does that mean you have e.g. a non constant 5
2022-12-10 20:16:39 +0100 <EvanR> a 5 whose value can change
2022-12-10 20:16:45 +0100glguy(~glguy@libera/staff-emeritus/glguy)
2022-12-10 20:17:35 +0100freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 246 seconds)
2022-12-10 20:18:58 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2022-12-10 20:22:57 +0100 <darkling> A friend once worked with a FORTRAN compiler that could be made to do that.
2022-12-10 20:23:39 +0100freeside(~mengwong@103.252.202.159)
2022-12-10 20:23:46 +0100 <darkling> Write a function that mutates its parameter, then pass a literal 1 as the parameter to the function call...
2022-12-10 20:25:23 +0100 <geekosaur[m]> Fortran is call by name so parameters are mutable. Combine with hardware that lacked immediate mode instructions
2022-12-10 20:25:56 +0100 <geekosaur[m]> (some IBM hardware IIRC)
2022-12-10 20:26:19 +0100AlexZenon(~alzenon@178.34.161.14)
2022-12-10 20:26:54 +0100AlexNoo(~AlexNoo@178.34.161.14)
2022-12-10 20:28:01 +0100 <darkling> I don't know which hardware or compiler she was using. This was back in the late '80s.
2022-12-10 20:28:08 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 256 seconds)
2022-12-10 20:28:19 +0100Alex_test(~al_test@178.34.161.14)
2022-12-10 20:29:08 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-12-10 20:31:47 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-10 20:33:54 +0100freeside(~mengwong@103.252.202.159)
2022-12-10 20:34:33 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:ba90:de94:fe74:d463)
2022-12-10 20:35:51 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-12-10 20:36:43 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 265 seconds)
2022-12-10 20:38:11 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 252 seconds)
2022-12-10 20:42:44 +0100perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.7.1)
2022-12-10 20:43:56 +0100wroathe(~wroathe@50.205.197.50)
2022-12-10 20:43:56 +0100wroathe(~wroathe@50.205.197.50) (Changing host)
2022-12-10 20:43:56 +0100wroathe(~wroathe@user/wroathe)
2022-12-10 20:45:30 +0100 <cole45> I'm trying to make a Calendar widget library for Brick and I'm running into an issue where I need to have a generic way to name subwidgets I create and also handle events for those names. I looked to preexisting widget libraries for inspiration and https://hackage.haskell.org/package/brick-filetree seems to force the name to be a String - I would
2022-12-10 20:45:31 +0100 <cole45> like to ideally be generic in the name. Brick's own FileBrowser widget (https://hackage.haskell.org/package/brick-1.5/docs/Brick-Widgets-FileBrowser.html#g:5) _is_ generic in the name, but it only ever uses a single name, which it takes at creation (see newFileBrowser). In the event handler it provides, it doesn't look at the name given.
2022-12-10 20:45:52 +0100codaraxis__(~codaraxis@user/codaraxis)
2022-12-10 20:46:02 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:ba90:de94:fe74:d463) (Quit: WeeChat 2.8)
2022-12-10 20:46:51 +0100 <cole45> My attempted solution to this is to make "constructors" for appEvent and appDraw that take in functions which go from a Name to a calendar-specific identifier (e.g. a Date) and back. I've tried to distill what I'm talking about (including the Brick context) to this paste https://paste.tomsmeding.com/V3xM7drs. Does this seem like a reasonable
2022-12-10 20:46:51 +0100 <cole45> solution?
2022-12-10 20:48:47 +0100perrierj1(~perrier-j@modemcable048.127-56-74.mc.videotron.ca)
2022-12-10 20:49:15 +0100money_(~money@user/polo) (Quit: money_)
2022-12-10 20:49:40 +0100codaraxis___(~codaraxis@user/codaraxis) (Ping timeout: 256 seconds)
2022-12-10 20:52:24 +0100freeside(~mengwong@103.252.202.159)
2022-12-10 20:55:25 +0100money_(~money@user/polo)
2022-12-10 20:55:56 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-12-10 20:56:27 +0100fizbin(~fizbin@user/fizbin) (Read error: Connection reset by peer)
2022-12-10 20:57:14 +0100money_(~money@user/polo) (Remote host closed the connection)
2022-12-10 20:58:01 +0100Scraeling(~Scraeling@27.63.255.104) (Quit: Scraeling)
2022-12-10 21:06:14 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2022-12-10 21:06:14 +0100califax(~califax@user/califx) (Remote host closed the connection)
2022-12-10 21:06:14 +0100gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2022-12-10 21:06:14 +0100chexum_(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2022-12-10 21:06:42 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2022-12-10 21:07:03 +0100gmg(~user@user/gehmehgeh)
2022-12-10 21:07:05 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2022-12-10 21:07:36 +0100califax(~califax@user/califx)
2022-12-10 21:07:58 +0100zant2(~zant@62.214.20.26)
2022-12-10 21:10:09 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2022-12-10 21:13:09 +0100money_(~money@user/polo)
2022-12-10 21:13:41 +0100wroathe(~wroathe@50.205.197.50)
2022-12-10 21:13:41 +0100wroathe(~wroathe@50.205.197.50) (Changing host)
2022-12-10 21:13:41 +0100wroathe(~wroathe@user/wroathe)
2022-12-10 21:14:50 +0100Topsi(~Topsi@dyndsl-091-096-147-161.ewe-ip-backbone.de)
2022-12-10 21:14:53 +0100alphabeta(~kilolympu@213.144.144.24)
2022-12-10 21:15:04 +0100kilolympus(~kilolympu@213.144.144.24) (Ping timeout: 260 seconds)
2022-12-10 21:16:14 +0100money__(~money@user/polo)
2022-12-10 21:17:16 +0100Guest97(~Guest97@205.251.233.105)
2022-12-10 21:19:31 +0100money_(~money@user/polo) (Ping timeout: 256 seconds)
2022-12-10 21:19:53 +0100codaraxis___(~codaraxis@user/codaraxis)
2022-12-10 21:21:14 +0100moneyGuest5800
2022-12-10 21:21:14 +0100money__money
2022-12-10 21:21:17 +0100pagnol(~user@213-205-209-87.ftth.glasoperator.nl) (Ping timeout: 246 seconds)
2022-12-10 21:23:49 +0100codaraxis__(~codaraxis@user/codaraxis) (Ping timeout: 260 seconds)
2022-12-10 21:29:05 +0100cole45(~cole@cpe-104-32-238-223.socal.res.rr.com) (Quit: Client closed)
2022-12-10 21:30:02 +0100dtman34(~dtman34@2601:447:d000:93c9:9211:a0f7:7474:e151) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in)
2022-12-10 21:30:08 +0100cole51(~cole@cpe-104-32-238-223.socal.res.rr.com)
2022-12-10 21:30:23 +0100dtman34(~dtman34@76.156.89.180)
2022-12-10 21:31:19 +0100fizbin(~fizbin@user/fizbin)
2022-12-10 21:32:06 +0100fizbin(~fizbin@user/fizbin) (Read error: Connection reset by peer)
2022-12-10 21:32:16 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-10 21:34:05 +0100cole51cole45
2022-12-10 21:35:07 +0100gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2022-12-10 21:36:11 +0100gmg(~user@user/gehmehgeh)
2022-12-10 21:36:12 +0100tomokojun(~tomokojun@143.244.47.82)
2022-12-10 21:37:03 +0100fizbin(~fizbin@user/fizbin)
2022-12-10 21:49:16 +0100tomokojun(~tomokojun@143.244.47.82) (Remote host closed the connection)
2022-12-10 21:49:16 +0100pavonia(~user@user/siracusa)
2022-12-10 21:49:44 +0100fizbin(~fizbin@user/fizbin) (Ping timeout: 256 seconds)
2022-12-10 21:50:13 +0100tomokojun(~tomokojun@87.249.134.18)
2022-12-10 21:51:02 +0100money(~money@user/polo) (Quit: money)
2022-12-10 21:51:20 +0100tomokojun(~tomokojun@87.249.134.18) (Client Quit)
2022-12-10 21:52:28 +0100perrierj1(~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.7.1)
2022-12-10 21:56:24 +0100gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2022-12-10 21:57:06 +0100gmg(~user@user/gehmehgeh)
2022-12-10 21:59:45 +0100califax(~califax@user/califx) (Remote host closed the connection)
2022-12-10 22:00:43 +0100fizbin(~fizbin@user/fizbin)
2022-12-10 22:00:53 +0100califax(~califax@user/califx)
2022-12-10 22:04:40 +0100k8yun(~k8yun@user/k8yun) (Quit: Leaving)
2022-12-10 22:06:24 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds)
2022-12-10 22:16:32 +0100michalz(~michalz@185.246.204.93)
2022-12-10 22:18:46 +0100money(~money@user/polo)
2022-12-10 22:21:04 +0100king_gs(~Thunderbi@187.201.150.200)
2022-12-10 22:21:59 +0100[exa](exa@user/exa/x-3587197) (Quit: reconneeeeeeeeect)
2022-12-10 22:23:01 +0100[exa](~exa@user/exa/x-3587197)
2022-12-10 22:23:40 +0100cole45(~cole@cpe-104-32-238-223.socal.res.rr.com) (Quit: Client closed)
2022-12-10 22:27:08 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 256 seconds)
2022-12-10 22:28:26 +0100Guest75(Guest75@2a01:7e01::f03c:92ff:fe5d:7b18)
2022-12-10 22:30:01 +0100srk(~sorki@user/srk) (Ping timeout: 252 seconds)
2022-12-10 22:39:01 +0100freeside(~mengwong@103.252.202.159)
2022-12-10 22:39:15 +0100kenran(~user@user/kenran)
2022-12-10 22:39:41 +0100kenran(~user@user/kenran) (Remote host closed the connection)
2022-12-10 22:42:37 +0100king_gs1(~Thunderbi@2806:103e:29:cdd2:b2dd:cddc:5884:d05c)
2022-12-10 22:42:40 +0100king_gs(~Thunderbi@187.201.150.200) (Read error: Connection reset by peer)
2022-12-10 22:42:41 +0100king_gs1king_gs
2022-12-10 22:43:34 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 256 seconds)
2022-12-10 22:46:23 +0100money(~money@user/polo) (Quit: money)
2022-12-10 22:47:34 +0100zeenk(~zeenk@2a02:2f04:a30d:4300::7fe)
2022-12-10 22:48:26 +0100gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-12-10 22:49:07 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-12-10 22:49:14 +0100king_gs(~Thunderbi@2806:103e:29:cdd2:b2dd:cddc:5884:d05c) (Ping timeout: 256 seconds)
2022-12-10 22:52:31 +0100perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca)
2022-12-10 22:54:57 +0100Guest97(~Guest97@205.251.233.105) (Quit: Client closed)
2022-12-10 22:57:11 +0100inversed(~inversed@bcdcac82.skybroadband.com) (Read error: Connection reset by peer)
2022-12-10 22:57:34 +0100perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.7.1)
2022-12-10 22:59:08 +0100srk(~sorki@user/srk)
2022-12-10 22:59:15 +0100money(~money@user/polo)
2022-12-10 23:00:45 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-12-10 23:01:31 +0100arahael(~arahael@193-119-109-208.tpgi.com.au) (Ping timeout: 256 seconds)
2022-12-10 23:02:49 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-10 23:03:47 +0100money(~money@user/polo) (Ping timeout: 256 seconds)
2022-12-10 23:04:08 +0100inversed(~inversed@bcdcac82.skybroadband.com)
2022-12-10 23:10:02 +0100freeside(~mengwong@103.252.202.159)
2022-12-10 23:11:08 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2022-12-10 23:11:53 +0100wootehfoot(~wootehfoo@user/wootehfoot)
2022-12-10 23:14:53 +0100freeside(~mengwong@103.252.202.159) (Ping timeout: 260 seconds)
2022-12-10 23:15:36 +0100 <EvanR> So I know about a paper called seven trees in one. But someone linked a paper about how "anything" you prove from type equations by pretending you're talking about complex numbers is still correct for types
2022-12-10 23:15:46 +0100 <EvanR> and now I can't find it in my bookmarks, any idea what it's called
2022-12-10 23:19:30 +0100money(~money@user/polo)
2022-12-10 23:19:41 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-12-10 23:23:30 +0100 <dolio> https://arxiv.org/abs/math/0212377
2022-12-10 23:24:00 +0100 <geekosaur> Oct 31 19:42:14 * ski . o O ( "Objects of Categories as Complex Numbers" by Marcelo Fiore,Tom Leinster in 2002-12-30 at <https://arxiv.org/abs/math/0212377> ; <https://golem.ph.utexas.edu/category/2009/07/searching_for_a_video_proof_of.html> ; "This Week's Finds in Mathematical Physics (Week 202)" by John Baez in 2004-02-21 at <https://math.ucr.edu/home/baez/week202.html> ; "Seven Trees in One" by Andreas Blass in 1995
2022-12-10 23:24:00 +0100 <geekosaur> Oct 31 19:42:20 * ski at <https://dept.math.lsa.umich.edu/~ablass/cat.html> )
2022-12-10 23:26:47 +0100 <EvanR> \o/
2022-12-10 23:27:46 +0100sagax(~sagax_nb@user/sagax) (Remote host closed the connection)
2022-12-10 23:28:41 +0100freeside(~mengwong@103.252.202.159)
2022-12-10 23:28:59 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 264 seconds)
2022-12-10 23:30:58 +0100money(~money@user/polo) (Read error: Connection reset by peer)
2022-12-10 23:31:34 +0100money(~money@user/polo)
2022-12-10 23:32:52 +0100zant2(~zant@62.214.20.26) (Ping timeout: 256 seconds)
2022-12-10 23:37:24 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds)
2022-12-10 23:37:24 +0100harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2022-12-10 23:38:58 +0100Sauvin(~sauvin@user/Sauvin) (Remote host closed the connection)
2022-12-10 23:39:27 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-12-10 23:41:37 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-12-10 23:43:51 +0100money(~money@user/polo) (Quit: money)
2022-12-10 23:44:01 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-12-10 23:44:51 +0100Sauvin(~sauvin@user/Sauvin)
2022-12-10 23:45:50 +0100perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca)
2022-12-10 23:45:53 +0100money(~money@user/polo)
2022-12-10 23:45:59 +0100zant2(~zant@62.214.20.26)
2022-12-10 23:48:12 +0100zeenk(~zeenk@2a02:2f04:a30d:4300::7fe) (Quit: Konversation terminated!)
2022-12-10 23:50:33 +0100perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Client Quit)
2022-12-10 23:50:49 +0100zant2(~zant@62.214.20.26) (Ping timeout: 260 seconds)
2022-12-10 23:54:54 +0100money(~money@user/polo) (Read error: Connection reset by peer)
2022-12-10 23:55:30 +0100money(~money@user/polo)
2022-12-10 23:56:27 +0100 <iqubic> Are arxiv papers paywalled?
2022-12-10 23:56:51 +0100 <monochrom> Have you tried?
2022-12-10 23:57:02 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 255 seconds)
2022-12-10 23:57:21 +0100 <iqubic> Not yet
2022-12-10 23:57:31 +0100 <EvanR> the answer to that will cost you $10
2022-12-10 23:57:53 +0100 <iqubic> Oh, there's just a download button on the right side
2022-12-10 23:57:56 +0100 <monochrom> :)
2022-12-10 23:59:43 +0100 <EvanR> I can't do like youtubers and call arxiv "archive.org", that's a different site entirely
2022-12-10 23:59:55 +0100 <EvanR> where you can watch all the old star treks