2024/01/12

2024-01-12 00:03:51 +0100xdminsy(~xdminsy@117.147.71.199)
2024-01-12 00:05:46 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-01-12 00:11:45 +0100thegeekinside(~thegeekin@189.217.90.224) (Read error: Connection reset by peer)
2024-01-12 00:13:37 +0100coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2024-01-12 00:24:13 +0100neuroevolutus(~neuroevol@2a02:6ea0:e001:1::e00f)
2024-01-12 00:33:25 +0100fansly(~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Ping timeout: 264 seconds)
2024-01-12 00:34:26 +0100fansly(~fansly@2404:c0:5c10::6601:9777)
2024-01-12 00:44:32 +0100Tuplanolla(~Tuplanoll@91-159-69-171.elisa-laajakaista.fi) (Quit: Leaving.)
2024-01-12 00:44:55 +0100pastly(~pastly@gateway/tor-sasl/pastly) (Remote host closed the connection)
2024-01-12 00:45:19 +0100pastly(~pastly@gateway/tor-sasl/pastly)
2024-01-12 00:47:37 +0100gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2024-01-12 00:56:06 +0100neuroevolutus(~neuroevol@2a02:6ea0:e001:1::e00f) (Quit: Client closed)
2024-01-12 00:58:23 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-01-12 01:02:07 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2024-01-12 01:04:30 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2024-01-12 01:05:40 +0100puke(~puke@user/puke)
2024-01-12 01:09:56 +0100fansly(~fansly@2404:c0:5c10::6601:9777) (Ping timeout: 245 seconds)
2024-01-12 01:10:12 +0100fansly(~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f)
2024-01-12 01:12:31 +0100[_](~itchyjunk@user/itchyjunk/x-7353470)
2024-01-12 01:16:19 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds)
2024-01-12 01:22:55 +0100stiell(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds)
2024-01-12 01:42:41 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 252 seconds)
2024-01-12 01:52:33 +0100flounders(~flounders@24.246.176.178) (Quit: WeeChat 4.1.1)
2024-01-12 01:56:29 +0100euleritian(~euleritia@77.22.252.56) (Ping timeout: 240 seconds)
2024-01-12 01:57:21 +0100euleritian(~euleritia@dynamic-046-114-154-050.46.114.pool.telefonica.de)
2024-01-12 01:58:31 +0100barak(~barak@2a0d:6fc2:68c1:2600:4270:3360:ac54:f834) (Read error: Connection reset by peer)
2024-01-12 02:00:45 +0100 <ph88> when i have a function like `forall a. Ord a => Text -> a` it doesn't compile because `a` can be many types. The resulting value then can only be passed to other functions that take `Ord a` but not give back `a`. Why did the designers of haskell choose not to make this possible? Does this feature have a name?
2024-01-12 02:02:15 +0100 <ncf> what feature?
2024-01-12 02:04:59 +0100 <ncf> i don't understand what you're saying at all
2024-01-12 02:06:26 +0100 <geekosaur> actually the resulting value can be passed to other things fine. but only the caller knows what type it is; you as author of the `Ord a => Text -> a` cannot, you only know that it has an `Ord` instance
2024-01-12 02:06:46 +0100 <geekosaur> but `Ord` doesn't give you enough to do anything useful
2024-01-12 02:07:19 +0100not_reserved(~not_reser@185.153.177.185) (Quit: Client closed)
2024-01-12 02:07:25 +0100 <ph88> https://play.haskell.org/saved/Ih0mrgpK
2024-01-12 02:07:50 +0100 <ph88> maybe something like this, not sure how to write it in code the best
2024-01-12 02:07:57 +0100 <haskellbridge> 06<s​m> nice
2024-01-12 02:08:14 +0100 <ncf> [2, "Text"] ???
2024-01-12 02:08:18 +0100 <geekosaur> that's not what you described (or if that was what you were trying to describe, you did it poorly)
2024-01-12 02:09:03 +0100 <haskellbridge> 06<s​m> good step towards making it concrete though
2024-01-12 02:09:08 +0100 <ph88> i think i described it poorly
2024-01-12 02:10:07 +0100 <ncf> are you trying to build a heterogeneous list of things that have an Ord instance?
2024-01-12 02:10:32 +0100 <geekosaur> in the case of a list, all elements must have the same type. that type can be `forall`ed with a newtype or possibly with `ImpredicativeTypes`, but because of runtime type erasure you can't rrecover the original type afterward; all you can know about it is the `Ord` constraint
2024-01-12 02:10:35 +0100 <ncf> i.e. [exists a. Ord a *> a], not forall a. Ord a => [a]
2024-01-12 02:11:53 +0100 <ncf> how would you even sort [2, "Text"] though? how do you compare 2 and "Text"?
2024-01-12 02:14:12 +0100 <EvanR> list can only contain elements of all the same type
2024-01-12 02:14:28 +0100 <EvanR> oops, duplicated
2024-01-12 02:15:14 +0100 <EvanR> you would even have a hard time in this case making a list of "sortables", because comparison takes two things of the same type
2024-01-12 02:15:33 +0100 <EvanR> (by which I mean, making a list of Ord instances)
2024-01-12 02:15:39 +0100 <ncf> i mean, you could emulate something like that in haskell with a newtype, or some sort of impredicative encoding like forall m. Monoid m => (forall a. Ord a => a -> m) -> m, but i doubt this has any usefulness
2024-01-12 02:15:40 +0100 <EvanR> (as a record of functions)
2024-01-12 02:16:13 +0100 <EvanR> is mapping to a monoid equivalent to using binary comparison functions?
2024-01-12 02:16:28 +0100 <jackdk> Or using something like DSum from dependent-sum and the GCompare class it works with. But heterogenerous lists are often more trouble than they're worth
2024-01-12 02:17:47 +0100 <ncf> EvanR: what?
2024-01-12 02:17:51 +0100 <EvanR> to emulate what dynamic language blub does, you can define a sum datatype Value and define Ord for it, then you can make a list of Value. But it's unidiomatic
2024-01-12 02:18:20 +0100 <EvanR> ncf, is doing what you're doing equivalent to Ord (which is based on a -> a -> Ordering, not a -> m)
2024-01-12 02:18:52 +0100 <ncf> i am suggesting an encoding of [exists a. Ord a *> a], not an encoding of Ord.
2024-01-12 02:19:04 +0100 <EvanR> oh
2024-01-12 02:19:17 +0100 <jackdk> What do you mean by *> in that snippet?
2024-01-12 02:19:41 +0100 <ncf> *> is to => what (,) is to (->) (blame ski for that notation)
2024-01-12 02:20:01 +0100 <EvanR> that notation makes complete sense, and is unfortately illegal xD
2024-01-12 02:23:36 +0100 <ph88> Maybe a bit clearer, but i'm still not sure how to best express it :/ https://play.haskell.org/saved/OT1EjJDF
2024-01-12 02:27:14 +0100 <ncf> wouldn't you get a [[String]] out of that?
2024-01-12 02:27:15 +0100 <ph88> this is better https://play.haskell.org/saved/uSEu9pzd
2024-01-12 02:27:17 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds)
2024-01-12 02:27:22 +0100Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2024-01-12 02:28:44 +0100Lord_of_Life_Lord_of_Life
2024-01-12 02:29:25 +0100 <ph88> i wanted to ask about the two type errors. My question was why the haskell implementers choose to not make this possible. `compare` accepts both Int and String for b, so i think theoretically it would be able to figure it out (if the language was designed differently)
2024-01-12 02:29:36 +0100skiglances around nervously
2024-01-12 02:30:32 +0100 <ncf> ph88: here's what i suggest https://play.haskell.org/saved/P4s0EW5a
2024-01-12 02:31:20 +0100 <ncf> instead of storing "fields", or "getters" on strings into unknown types, store comparison functions on strings directly
2024-01-12 02:31:51 +0100 <int-e> ph88: to use `myList`, the caller gets to pick a type `a`. The function has to return a list of elements with type String -> a, a being the type that the caller picked.
2024-01-12 02:32:30 +0100 <int-e> Which is why this won't even compile if you have only one of those list elements.
2024-01-12 02:33:58 +0100 <int-e> Now, there are existential types, data HasOrd where HasOrd :: Ord a => a -> HasOrd (I really prefer the GADT syntax for this), but even then you won't be able to compare two such values because they may encapsulate values of different types.
2024-01-12 02:35:37 +0100 <ph88> Theoretically the caller on line 20 can pick `Int` for `a` in this case
2024-01-12 02:35:54 +0100 <int-e> (To do such a comparison you'd need compare :: (Ord a, Ord b) => a -> b -> Ordering)
2024-01-12 02:35:58 +0100 <ph88> if it were (myList !! 1) it can pick `String` instead
2024-01-12 02:36:14 +0100 <int-e> ph88: if you pick Int for a, the \str -> "hello: " <> str elemnent will be invalid.
2024-01-12 02:36:42 +0100 <int-e> And if the caller picks () for a then none of the list elements are valid.
2024-01-12 02:36:47 +0100 <ph88> but we know myFunction does not use \str -> "hello: " <> str .. you can determine this statically
2024-01-12 02:37:03 +0100 <int-e> It really makes no sense. Haskell is statically typed; the types do not exist at runtime.
2024-01-12 02:37:46 +0100 <int-e> "we know" - no, type checking is working on open programs, not as a whole program analysis
2024-01-12 02:38:04 +0100 <ph88> if it were (myList !! (<random number 0 or 1>) then it would break ye
2024-01-12 02:38:05 +0100 <int-e> So there may be other code that uses myList as just a list of type [String -> ()]
2024-01-12 02:38:27 +0100hgolden(~hgolden@2603-8000-9d00-3ed1-a6e3-3ba3-0107-8cff.res6.spectrum.com) (Ping timeout: 260 seconds)
2024-01-12 02:38:34 +0100 <int-e> Because according to the type you claimed, that is a valid choice (just pick () for a)
2024-01-12 02:38:46 +0100 <ncf> here's the approach using existential types https://play.haskell.org/saved/Fs9okgN1
2024-01-12 02:39:22 +0100 <ph88> i know it doesn't work like this, i'm trying to find out what are the cons to allow this kind of code
2024-01-12 02:39:27 +0100 <ph88> ncf, cool i'll check it
2024-01-12 02:40:07 +0100 <int-e> ncf: Oh right, existentials are actually applicable in this case, my bad.
2024-01-12 02:40:14 +0100 <ph88> ncf, wow what's that ? it works now ..
2024-01-12 02:40:40 +0100 <ncf> int-e: yeah we're not trying to compare things-with-an-ord-instance, we're only using them to compare strings
2024-01-12 02:41:41 +0100 <ph88> ncf, i will be studying this solution, i never saw this before
2024-01-12 02:47:00 +0100 <ph88> ncf, can it work with sortWithBy ?
2024-01-12 02:47:56 +0100 <ncf> how do you mean?
2024-01-12 02:48:48 +0100 <int-e> :t GHC.Exts.sortWith
2024-01-12 02:48:49 +0100 <lambdabot> Ord b => (a -> b) -> [a] -> [a]
2024-01-12 02:48:49 +0100 <ph88> i mean the function i made here https://play.haskell.org/saved/uSEu9pzd
2024-01-12 02:49:03 +0100 <ncf> what about it
2024-01-12 02:49:53 +0100 <ph88> hmm not sure why you made a different implementation there, this function sort' which you wrote. Was it necessary to let it work with GADT ?
2024-01-12 02:49:59 +0100 <int-e> ph88: Where is `comp` supposed to come from?
2024-01-12 02:50:53 +0100 <ncf> well you do need to pattern match on the GADT to extract a function
2024-01-12 02:51:23 +0100 <int-e> ph88: You can use a different exitential type that bundles a comparison function rather than an Ord instance, data Foo where Foo :: (String -> a) -> (a -> a -> Ordering) -> Foo
2024-01-12 02:51:32 +0100 <int-e> And that'll work with sortWithBy
2024-01-12 02:52:10 +0100 <ncf> and then you're just one yoneda away from data Foo = Foo (String -> String -> Ordering) :)
2024-01-12 02:52:15 +0100 <ph88> int-e, you can pass in a function for comp, like `compare` function or your own comparison function
2024-01-12 02:52:55 +0100 <int-e> ncf: But then you can't do Schwartzian transform stuff.
2024-01-12 02:53:04 +0100 <ncf> true
2024-01-12 02:53:19 +0100 <int-e> (Which ph88 currently doesn't do, but I imagine that's the plan later on.)
2024-01-12 02:53:29 +0100 <ph88> how should i do Schwartzian transform ?
2024-01-12 02:53:41 +0100 <ncf> carefully
2024-01-12 02:53:47 +0100 <int-e> (If not, I would prefer String -> String -> Ordering myself)
2024-01-12 02:53:53 +0100 <c_wraith> ph88: I think you're missing a fundamental issue. What does it mean for a definition to have a type like (forall a. [a])? What does it mean for a type variable to exist there?
2024-01-12 02:54:21 +0100 <int-e> something something existential crisis
2024-01-12 02:55:13 +0100 <ph88> c_wraith, which paste are you looking at currently ?
2024-01-12 02:55:34 +0100 <c_wraith> ph88: none of them. I'm simplifying, because I think getting rid of a lot of unnecessary detail will help.
2024-01-12 02:55:46 +0100 <ncf> (by the way, my last Foo is called Comparison String and it has useful instances: https://hackage.haskell.org/package/base-4.19.0.0/docs/Data-Functor-Contravariant.html#t:Comparison)
2024-01-12 02:57:14 +0100 <c_wraith> ph88: though the question is inspired by the definition of myList in https://play.haskell.org/saved/uSEu9pzd . That definition can't work, and if you understood why, you'd know the answer to a lot of other questions.
2024-01-12 02:58:26 +0100 <ph88> i understood why it currently does not work with how haskell works from the beginning
2024-01-12 02:59:33 +0100 <ncf> but you suggested that haskell could accept that definition somehow, without really proposing an alternative interpretation of that type (unless i've missed it)
2024-01-12 03:00:45 +0100 <ncf> oh i think i did miss it. <ph88> Theoretically the caller on line 20 can pick `Int` for `a` in this case
2024-01-12 03:00:54 +0100 <ph88> perhaps if they were to change the language, i wanted to explore if it was theoretically possible. And you surprised me a lot with your paste where you showed it is practically possible with GADT syntax
2024-01-12 03:01:01 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 264 seconds)
2024-01-12 03:01:30 +0100 <ncf> the problem is not at the call site, it is at the definition site
2024-01-12 03:01:58 +0100 <ncf> definitions have to make sense locally given their type signature
2024-01-12 03:02:05 +0100 <ph88> when i go back to the paste https://play.haskell.org/saved/uSEu9pzd there seemed to be a problem on definition site and also on call site
2024-01-12 03:02:38 +0100 <ph88> or at least ghc reports two errors
2024-01-12 03:02:39 +0100 <yushyin> you don't need gadt syntax for existentials
2024-01-12 03:02:44 +0100 <ncf> the error at the call site can be ignored as long as the definition site doesn't make sense
2024-01-12 03:02:56 +0100 <ph88> got ya
2024-01-12 03:03:08 +0100 <ph88> i mean: ah ok i understand
2024-01-12 03:04:32 +0100 <ph88> does the sortWithBy function not use Schwartzian transform ?
2024-01-12 03:04:53 +0100aforemny_(~aforemny@i59F516DA.versanet.de) (Ping timeout: 240 seconds)
2024-01-12 03:05:21 +0100 <ncf> no
2024-01-12 03:05:48 +0100 <ncf> yushyin is right; here's a version that doesn't use GADTs (and generalises over String) https://play.haskell.org/saved/blM0hJiJ
2024-01-12 03:06:12 +0100 <ncf> (but i think GADT syntax is nicer)
2024-01-12 03:07:07 +0100 <ph88> how can i make an implementation of sortWithBy that does Schwartzian transform ?
2024-01-12 03:07:25 +0100 <ph88> ncf, i'll put your paste in my notebook
2024-01-12 03:07:55 +0100 <ncf> sortOn does Schwartzian transform: https://play.haskell.org/saved/hpMwA6mE
2024-01-12 03:11:24 +0100aforemny(~aforemny@i59F516FD.versanet.de)
2024-01-12 03:11:50 +0100 <ph88> ncf, is there something that has schwartzian transform that allows me to pass in my own compare function?
2024-01-12 03:14:42 +0100 <ncf> you could wrap the compared type in a newtype with its own Ord instance, or you could reimplement sortOn but change comparing fst to comp `on` fst , where comp is an additional argument
2024-01-12 03:17:01 +0100 <ph88> ncf, thank you
2024-01-12 03:19:02 +0100hgolden(~hgolden@2603-8000-9d00-3ed1-a6e3-3ba3-0107-8cff.res6.spectrum.com)
2024-01-12 03:19:29 +0100euleritian(~euleritia@dynamic-046-114-154-050.46.114.pool.telefonica.de) (Ping timeout: 252 seconds)
2024-01-12 03:19:52 +0100fansly(~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Quit: Quit)
2024-01-12 03:20:02 +0100fansly(~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f)
2024-01-12 03:21:54 +0100euleritian(~euleritia@dynamic-046-114-178-176.46.114.pool.telefonica.de)
2024-01-12 03:22:25 +0100AWizzArd(~code@gehrels.uberspace.de) (Changing host)
2024-01-12 03:22:25 +0100AWizzArd(~code@user/awizzard)
2024-01-12 03:26:50 +0100stiell(~stiell@gateway/tor-sasl/stiell)
2024-01-12 03:39:12 +0100aforemny_(~aforemny@2001:9e8:6cca:d100:b45a:3e0d:4824:990b)
2024-01-12 03:39:44 +0100aforemny(~aforemny@i59F516FD.versanet.de) (Ping timeout: 256 seconds)
2024-01-12 03:44:21 +0100Tisoxin(~Ikosit@user/ikosit) (Ping timeout: 268 seconds)
2024-01-12 03:49:27 +0100mmhat(~mmh@p200300f1c742823fee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.1.2)
2024-01-12 03:55:19 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds)
2024-01-12 03:56:05 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2024-01-12 03:59:40 +0100pavonia(~user@user/siracusa)
2024-01-12 04:01:50 +0100ystael(~ystael@user/ystael) (Ping timeout: 252 seconds)
2024-01-12 04:04:20 +0100fansly(~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Read error: Connection reset by peer)
2024-01-12 04:04:22 +0100rosco(~rosco@175.136.156.77)
2024-01-12 04:06:06 +0100fansly(~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f)
2024-01-12 04:11:44 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2024-01-12 04:11:52 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2024-01-12 04:14:32 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:acc5:3bfd:1c7c:868d) (Remote host closed the connection)
2024-01-12 04:14:48 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:acc5:3bfd:1c7c:868d)
2024-01-12 04:31:18 +0100pounce(~pounce@user/cute/pounce) (Ping timeout: 256 seconds)
2024-01-12 04:34:21 +0100fansly(~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Remote host closed the connection)
2024-01-12 04:36:11 +0100fansly(~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f)
2024-01-12 04:40:30 +0100puke(~puke@user/puke) (Remote host closed the connection)
2024-01-12 04:41:39 +0100puke(~puke@user/puke)
2024-01-12 04:44:39 +0100pounce(~pounce@user/cute/pounce)
2024-01-12 04:44:58 +0100td_(~td@i53870918.versanet.de) (Ping timeout: 264 seconds)
2024-01-12 04:46:34 +0100td_(~td@i5387092A.versanet.de)
2024-01-12 04:47:46 +0100puke(~puke@user/puke) (Remote host closed the connection)
2024-01-12 04:48:43 +0100puke(~puke@user/puke)
2024-01-12 04:54:03 +0100ph88(~ph88@2a02:8109:9e26:c800:bdfe:539f:caf9:1cba) (Ping timeout: 256 seconds)
2024-01-12 04:57:49 +0100euleritian(~euleritia@dynamic-046-114-178-176.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2024-01-12 04:58:07 +0100euleritian(~euleritia@77.22.252.56)
2024-01-12 05:13:37 +0100pounce(~pounce@user/cute/pounce) (Ping timeout: 264 seconds)
2024-01-12 05:15:05 +0100aforemny(~aforemny@2001:9e8:6cd5:4e00:6faf:7b3a:ff9f:152b)
2024-01-12 05:15:19 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving)
2024-01-12 05:15:25 +0100aforemny_(~aforemny@2001:9e8:6cca:d100:b45a:3e0d:4824:990b) (Ping timeout: 260 seconds)
2024-01-12 05:16:25 +0100bilegeek(~bilegeek@2600:1008:b008:c5b5:46b1:d2ea:c7b3:838c)
2024-01-12 05:17:19 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2024-01-12 05:17:56 +0100pounce(~pounce@user/cute/pounce)
2024-01-12 05:19:33 +0100 <EvanR> I see your schwartzian transform is as big as mine!
2024-01-12 05:25:13 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-01-12 05:42:05 +0100pounce(~pounce@user/cute/pounce) (Ping timeout: 240 seconds)
2024-01-12 05:44:40 +0100Square(~Square@user/square)
2024-01-12 05:55:01 +0100fansly(~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Ping timeout: 264 seconds)
2024-01-12 05:55:16 +0100fansly(~fansly@103.3.220.62)
2024-01-12 05:57:08 +0100igemnace(~ian@user/igemnace)
2024-01-12 06:04:05 +0100lambdap2371(~lambdap@static.167.190.119.168.clients.your-server.de) (Quit: lambdap2371)
2024-01-12 06:04:48 +0100lambdap2371(~lambdap@static.167.190.119.168.clients.your-server.de)
2024-01-12 06:05:08 +0100lambdap2371(~lambdap@static.167.190.119.168.clients.your-server.de) (Remote host closed the connection)
2024-01-12 06:05:24 +0100lambdap2371(~lambdap@static.167.190.119.168.clients.your-server.de)
2024-01-12 06:05:39 +0100lambdap2371(~lambdap@static.167.190.119.168.clients.your-server.de) (Read error: Connection reset by peer)
2024-01-12 06:06:27 +0100lambdap2371(~lambdap@static.167.190.119.168.clients.your-server.de)
2024-01-12 06:07:35 +0100lambdap2371(~lambdap@static.167.190.119.168.clients.your-server.de) (Remote host closed the connection)
2024-01-12 06:07:52 +0100lambdap2371(~lambdap@static.167.190.119.168.clients.your-server.de)
2024-01-12 06:08:15 +0100michalz(~michalz@185.246.207.205)
2024-01-12 06:21:03 +0100trev(~trev@user/trev)
2024-01-12 06:22:46 +0100causal(~eric@50.35.85.7)
2024-01-12 06:28:40 +0100justache(~justache@user/justache) (Quit: ZNC 1.8.2 - https://znc.in)
2024-01-12 06:32:21 +0100justache(~justache@user/justache)
2024-01-12 06:35:00 +0100michalz(~michalz@185.246.207.205) (Quit: ZNC 1.8.2 - https://znc.in)
2024-01-12 06:37:04 +0100ursa-major(~ursa-majo@37.19.210.26)
2024-01-12 06:37:50 +0100michalz(~michalz@185.246.207.217)
2024-01-12 06:39:25 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 264 seconds)
2024-01-12 06:43:49 +0100xff0x(~xff0x@2405:6580:b080:900:a4be:751a:2735:9c5f) (Ping timeout: 255 seconds)
2024-01-12 06:45:44 +0100xff0x(~xff0x@178.255.149.135)
2024-01-12 06:46:03 +0100igemnace(~ian@user/igemnace) (Quit: WeeChat 4.1.2)
2024-01-12 06:55:37 +0100xff0x(~xff0x@178.255.149.135) (Ping timeout: 276 seconds)
2024-01-12 06:55:37 +0100euleritian(~euleritia@77.22.252.56) (Ping timeout: 264 seconds)
2024-01-12 06:55:47 +0100justache(~justache@user/justache) (Quit: ZNC 1.8.2 - https://znc.in)
2024-01-12 06:56:14 +0100euleritian(~euleritia@dynamic-046-114-178-176.46.114.pool.telefonica.de)
2024-01-12 06:56:57 +0100xff0x(~xff0x@2405:6580:b080:900:791d:2159:1f07:cdf2)
2024-01-12 06:58:32 +0100justache(~justache@user/justache)
2024-01-12 06:59:06 +0100fansly(~fansly@103.3.220.62) (Ping timeout: 245 seconds)
2024-01-12 06:59:49 +0100fansly(~fansly@2404:c0:5c40::2304:f11f)
2024-01-12 07:02:13 +0100euleritian(~euleritia@dynamic-046-114-178-176.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2024-01-12 07:03:07 +0100euleritian(~euleritia@77.22.252.56)
2024-01-12 07:05:58 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2024-01-12 07:06:34 +0100bilegeek(~bilegeek@2600:1008:b008:c5b5:46b1:d2ea:c7b3:838c) (Quit: Leaving)
2024-01-12 07:08:48 +0100bilegeek(~bilegeek@2600:1008:b008:c5b5:46b1:d2ea:c7b3:838c)
2024-01-12 07:13:05 +0100pastly(~pastly@gateway/tor-sasl/pastly) (Remote host closed the connection)
2024-01-12 07:16:30 +0100bilegeek_(~bilegeek@2600:1008:b008:c5b5:46b1:d2ea:c7b3:838c)
2024-01-12 07:17:59 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2024-01-12 07:18:09 +0100fansly(~fansly@2404:c0:5c40::2304:f11f) (Ping timeout: 260 seconds)
2024-01-12 07:18:40 +0100fansly(~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f)
2024-01-12 07:20:01 +0100bilegeek(~bilegeek@2600:1008:b008:c5b5:46b1:d2ea:c7b3:838c) (Ping timeout: 260 seconds)
2024-01-12 07:20:42 +0100pastly(~pastly@gateway/tor-sasl/pastly)
2024-01-12 07:21:13 +0100[_](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2024-01-12 07:24:24 +0100harveypwca(~harveypwc@2601:246:c280:7940:585a:99af:3e4c:209b)
2024-01-12 07:28:59 +0100johnw(~johnw@69.62.242.138) (Quit: ZNC - http://znc.in)
2024-01-12 07:29:21 +0100euleritian(~euleritia@77.22.252.56) (Ping timeout: 260 seconds)
2024-01-12 07:29:48 +0100euleritian(~euleritia@dynamic-046-114-175-211.46.114.pool.telefonica.de)
2024-01-12 07:31:29 +0100johnw(~johnw@69.62.242.138)
2024-01-12 07:36:03 +0100kubrat(~204-NB-00@154.14.244.146)
2024-01-12 07:38:09 +0100CiaoSen(~Jura@2a05:5800:2c5:6200:ca4b:d6ff:fec1:99da)
2024-01-12 07:44:02 +0100kubrat(~204-NB-00@154.14.244.146) (Ping timeout: 252 seconds)
2024-01-12 07:48:32 +0100kubrat(~204-NB-00@154.14.244.146)
2024-01-12 07:52:32 +0100justache(~justache@user/justache) (Read error: Connection reset by peer)
2024-01-12 07:52:49 +0100EsoAlgo81(~EsoAlgo@129.146.136.145) (Ping timeout: 276 seconds)
2024-01-12 07:55:46 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2024-01-12 07:56:03 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2024-01-12 07:56:14 +0100justache(~justache@user/justache)
2024-01-12 07:57:48 +0100acidjnk(~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de)
2024-01-12 08:00:48 +0100justache(~justache@user/justache) (Remote host closed the connection)
2024-01-12 08:03:35 +0100justache(~justache@user/justache)
2024-01-12 08:12:34 +0100oo_miguel(~Thunderbi@78-11-179-96.static.ip.netia.com.pl)
2024-01-12 08:24:49 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2024-01-12 08:28:40 +0100xdminsy(~xdminsy@117.147.71.199) (Ping timeout: 255 seconds)
2024-01-12 08:29:43 +0100xdminsy(~xdminsy@117.147.71.199)
2024-01-12 08:34:17 +0100lisbeths_(uid135845@id-135845.lymington.irccloud.com)
2024-01-12 08:34:41 +0100fansly(~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Remote host closed the connection)
2024-01-12 08:40:11 +0100nschoe(~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea)
2024-01-12 08:40:17 +0100dragestil(~znc@user/dragestil) (Ping timeout: 260 seconds)
2024-01-12 08:40:19 +0100tstat_(~tstat@user/tstat)
2024-01-12 08:40:20 +0100dragestil_(~znc@user/dragestil)
2024-01-12 08:40:22 +0100sajith_(~sajith@user/sajith)
2024-01-12 08:40:33 +0100bilegeek_(~bilegeek@2600:1008:b008:c5b5:46b1:d2ea:c7b3:838c) (Quit: Leaving)
2024-01-12 08:40:51 +0100guygastineau(~guygastin@137.184.131.156)
2024-01-12 08:41:02 +0100energizer_(~energizer@user/energizer)
2024-01-12 08:41:09 +0100sajith(~sajith@user/sajith) (Ping timeout: 256 seconds)
2024-01-12 08:41:14 +0100tstat(~tstat@user/tstat) (Ping timeout: 260 seconds)
2024-01-12 08:41:17 +0100energizer(~energizer@user/energizer) (Ping timeout: 268 seconds)
2024-01-12 08:41:17 +0100davean(~davean@davean.sciesnet.net) (Ping timeout: 268 seconds)
2024-01-12 08:41:17 +0100RMSBach(~guygastin@137.184.131.156) (Ping timeout: 268 seconds)
2024-01-12 08:42:27 +0100dragestil_dragestil
2024-01-12 08:43:53 +0100fansly(~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f)
2024-01-12 08:46:37 +0100nschoe(~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea) (Ping timeout: 264 seconds)
2024-01-12 08:47:13 +0100krei-se(~krei-se@p508747fd.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2024-01-12 08:48:38 +0100krei-se(~krei-se@p508747fd.dip0.t-ipconnect.de)
2024-01-12 08:49:14 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-01-12 08:50:16 +0100ft(~ft@p4fc2a1d8.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2024-01-12 08:51:41 +0100vpan(~vpan@212.117.1.172)
2024-01-12 08:51:42 +0100FragByte(~christian@user/fragbyte) (Read error: Connection reset by peer)
2024-01-12 08:51:50 +0100FragByte_(~christian@user/fragbyte)
2024-01-12 08:52:14 +0100FragByte_FragByte
2024-01-12 08:52:17 +0100ft(~ft@p4fc2a1d8.dip0.t-ipconnect.de)
2024-01-12 08:54:47 +0100davean(~davean@davean.sciesnet.net)
2024-01-12 08:55:05 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-01-12 08:57:32 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-01-12 08:57:56 +0100mulk(~mulk@p5b2dc93f.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2024-01-12 08:58:02 +0100benkard(~mulk@p5b2dc93f.dip0.t-ipconnect.de)
2024-01-12 08:58:26 +0100benkardmulk
2024-01-12 08:58:56 +0100jjhoo_(~jahakala@user/jjhoo) (Remote host closed the connection)
2024-01-12 09:07:01 +0100euleritian(~euleritia@dynamic-046-114-175-211.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2024-01-12 09:07:19 +0100euleritian(~euleritia@77.22.252.56)
2024-01-12 09:08:27 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:acc5:3bfd:1c7c:868d) (Read error: Connection reset by peer)
2024-01-12 09:08:49 +0100FragByte(~christian@user/fragbyte) (Ping timeout: 264 seconds)
2024-01-12 09:09:37 +0100FragByte(~christian@user/fragbyte)
2024-01-12 09:09:44 +0100acidjnk(~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de) (Remote host closed the connection)
2024-01-12 09:10:03 +0100ridcully(~ridcully@p57b52ac5.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2024-01-12 09:10:09 +0100acidjnk(~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de)
2024-01-12 09:10:09 +0100igemnace(~ian@user/igemnace)
2024-01-12 09:10:09 +0100ft(~ft@p4fc2a1d8.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2024-01-12 09:10:37 +0100krei-se(~krei-se@p508747fd.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2024-01-12 09:11:48 +0100mulk(~mulk@p5b2dc93f.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2024-01-12 09:11:56 +0100ft(~ft@p4fc2a1d8.dip0.t-ipconnect.de)
2024-01-12 09:12:14 +0100acidjnk(~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de) (Remote host closed the connection)
2024-01-12 09:12:37 +0100acidjnk(~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de)
2024-01-12 09:13:24 +0100mulk(~mulk@p5b2dc93f.dip0.t-ipconnect.de)
2024-01-12 09:13:44 +0100acidjnk(~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de) (Remote host closed the connection)
2024-01-12 09:14:24 +0100acidjnk(~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de)
2024-01-12 09:15:14 +0100acidjnk(~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de) (Remote host closed the connection)
2024-01-12 09:15:36 +0100nschoe(~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea)
2024-01-12 09:15:59 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.1.1)
2024-01-12 09:16:05 +0100chele(~chele@user/chele)
2024-01-12 09:16:30 +0100acidjnk(~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de)
2024-01-12 09:16:44 +0100acidjnk(~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de) (Remote host closed the connection)
2024-01-12 09:16:57 +0100Lycurgus(~georg@user/Lycurgus)
2024-01-12 09:17:12 +0100ridcully(~ridcully@p57b52ac5.dip0.t-ipconnect.de)
2024-01-12 09:18:42 +0100gmg(~user@user/gehmehgeh)
2024-01-12 09:18:51 +0100harveypwca(~harveypwc@2601:246:c280:7940:585a:99af:3e4c:209b) (Quit: Leaving)
2024-01-12 09:19:04 +0100acidjnk(~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de)
2024-01-12 09:19:45 +0100gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2024-01-12 09:20:05 +0100FragByte(~christian@user/fragbyte) (Quit: Quit)
2024-01-12 09:20:21 +0100FragByte(~christian@user/fragbyte)
2024-01-12 09:20:29 +0100gmg(~user@user/gehmehgeh)
2024-01-12 09:21:17 +0100gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2024-01-12 09:22:03 +0100gmg(~user@user/gehmehgeh)
2024-01-12 09:22:13 +0100krei-se(~krei-se@p508747fd.dip0.t-ipconnect.de)
2024-01-12 09:24:06 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-01-12 09:26:51 +0100acidjnk_new(~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de)
2024-01-12 09:27:44 +0100acidjnk_new(~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de) (Remote host closed the connection)
2024-01-12 09:28:07 +0100acidjnk_new(~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de)
2024-01-12 09:28:29 +0100bilegeek(~bilegeek@2600:1008:b008:c5b5:46b1:d2ea:c7b3:838c)
2024-01-12 09:29:56 +0100acidjnk(~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2024-01-12 09:31:08 +0100bliminse(~bliminse@user/bliminse) (Quit: leaving)
2024-01-12 09:32:31 +0100fansly(~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Remote host closed the connection)
2024-01-12 09:35:31 +0100zeka_(~zeka@2600:1700:2121:180:6099:debe:d4d8:d92e) (Read error: Connection reset by peer)
2024-01-12 09:44:06 +0100 <cheater> https://en.wikipedia.org/wiki/Schwartzian_transform
2024-01-12 09:44:19 +0100 <cheater> how does $a->[1] get populated?
2024-01-12 09:44:57 +0100cfricke(~cfricke@user/cfricke)
2024-01-12 09:45:12 +0100fansly(~fansly@103.3.220.62)
2024-01-12 09:46:30 +0100 <dminuoso_> By map { [$_, length($_)] }
2024-01-12 09:47:00 +0100 <cheater> oh right
2024-01-12 09:47:05 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:acc5:3bfd:1c7c:868d)
2024-01-12 09:47:19 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 240 seconds)
2024-01-12 09:47:20 +0100 <cheater> but how does that "not create a temporary array"?
2024-01-12 09:47:36 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2024-01-12 09:47:40 +0100 <dminuoso_> cheater: Read carefully, the wikipedia is trying to pull a fast one.
2024-01-12 09:47:51 +0100 <cheater> i don't know what you're saying
2024-01-12 09:47:55 +0100 <cheater> later on they say: The same algorithm can be written procedurally to better illustrate how it works, but this requires using temporary arrays, and is not a Schwartzian transform. The following example pseudo-code implements the algorithm in this way:
2024-01-12 09:47:58 +0100 <cheater> ...
2024-01-12 09:47:59 +0100 <cheater> etc
2024-01-12 09:48:01 +0100 <dminuoso_> It's somewhat beyond me how this style deserves a name, let alone a wikipedia article.
2024-01-12 09:48:03 +0100 <int-e> > map fst . sortBy (comparing snd) . map (\x -> (x, length x)) $ words "to be or not to be, that is the question"
2024-01-12 09:48:04 +0100 <lambdabot> ["to","be","or","to","is","not","be,","the","that","question"]
2024-01-12 09:48:13 +0100 <dminuoso_> cheater: It says "does not use *named* temporary arrays.
2024-01-12 09:48:19 +0100 <dminuoso_> It's a completely silly distinction.
2024-01-12 09:48:32 +0100 <dminuoso_> It may have some relevance in a particular language implementation for a particular language.
2024-01-12 09:48:46 +0100 <cheater> the text i pasted does not say "named"
2024-01-12 09:48:59 +0100 <int-e> (it feels unnatural to me to put the sorting key second, btw)
2024-01-12 09:49:02 +0100 <dminuoso_> cheater: Yeah, the wikipedia article is poorly written.
2024-01-12 09:49:09 +0100 <dminuoso_> cheater: In the first mention it says "named"
2024-01-12 09:49:10 +0100 <cheater> while the code does used an array with a name, the text itself doesn't
2024-01-12 09:49:12 +0100 <int-e> (but that's what the Perl code does)
2024-01-12 09:49:16 +0100 <cheater> say it
2024-01-12 09:49:52 +0100 <cheater> i think maybe the people who coined schwartzian transform, and the people who later wrote this article, are confused and really want to say that the annotation is done in point-free style?
2024-01-12 09:50:02 +0100Square(~Square@user/square) (Ping timeout: 268 seconds)
2024-01-12 09:50:19 +0100 <dminuoso_> cheater: It's really just a silly way of trying to impress someone with either composing functions (and thereby avoiding naming intermediate results) or some weak hint at automatic streaming for a given language.
2024-01-12 09:50:26 +0100 <dminuoso_> cheater: Maybe yeah.
2024-01-12 09:50:40 +0100 <dminuoso_> The whole thing does not deserve an article.
2024-01-12 09:50:52 +0100 <dminuoso_> It's just a particular use case of memoization, thats all.
2024-01-12 09:51:23 +0100 <int-e> it's a pop culture article :-P
2024-01-12 09:51:32 +0100fendor(~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c)
2024-01-12 09:51:44 +0100bliminse(~bliminse@user/bliminse)
2024-01-12 09:52:33 +0100 <dminuoso_> Here's my shortened version of the article: Memoization is useful.
2024-01-12 09:52:44 +0100 <dminuoso_> Next article!
2024-01-12 09:52:57 +0100 <Lycurgus> an apparently excellent article
2024-01-12 09:53:06 +0100 <int-e> Naming things often happens by accident anyway... a lot of obvius things somehow have names attached. What do you make of Bayes Theorem? It's just a manipulation of the definition of conditional probabilities... why is it named? :-P
2024-01-12 09:53:25 +0100 <int-e> dminuoso_: too abstract
2024-01-12 09:53:39 +0100 <int-e> dminuoso_: will be deleted because Wikipedia doesn't support original research
2024-01-12 09:54:29 +0100 <dminuoso_> Okay, here's another attempt: If you do something twice, it's twice as much work as if you had done it once.
2024-01-12 09:54:48 +0100 <Lycurgus> hs circle jerks are ok off main space, on the talk pages
2024-01-12 09:55:08 +0100 <dminuoso_> But this lacks references, doesnt it.
2024-01-12 09:55:10 +0100 <dminuoso_> Huh.
2024-01-12 09:55:37 +0100kubrat(~204-NB-00@154.14.244.146) (Ping timeout: 264 seconds)
2024-01-12 09:56:38 +0100kubrat(~204-NB-00@154.14.244.146)
2024-01-12 10:06:25 +0100fansly(~fansly@103.3.220.62) (Ping timeout: 264 seconds)
2024-01-12 10:06:49 +0100fansly(~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f)
2024-01-12 10:08:24 +0100coot(~coot@89-69-206-216.dynamic.chello.pl)
2024-01-12 10:15:51 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2024-01-12 10:20:43 +0100shriekingnoise(~shrieking@186.137.175.87) (Ping timeout: 255 seconds)
2024-01-12 10:21:53 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-01-12 10:22:42 +0100econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2024-01-12 10:22:47 +0100michalz(~michalz@185.246.207.217) (Quit: ZNC 1.8.2 - https://znc.in)
2024-01-12 10:23:37 +0100nschoe(~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea) (Ping timeout: 276 seconds)
2024-01-12 10:31:22 +0100nschoe(~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea)
2024-01-12 10:37:42 +0100michalz(~michalz@185.246.207.205)
2024-01-12 10:48:52 +0100fansly(~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Ping timeout: 246 seconds)
2024-01-12 10:51:57 +0100danse-nr3(~danse@151.43.217.212)
2024-01-12 10:52:43 +0100rosco(~rosco@175.136.156.77) (Quit: Lost terminal)
2024-01-12 11:01:10 +0100cross(~cross@spitfire.i.gajendra.net) (Ping timeout: 256 seconds)
2024-01-12 11:01:54 +0100tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz)
2024-01-12 11:04:53 +0100AndreiDuma(~textual@95.76.23.32)
2024-01-12 11:06:53 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 240 seconds)
2024-01-12 11:10:30 +0100mmhat(~mmh@p200300f1c742823fee086bfffe095315.dip0.t-ipconnect.de)
2024-01-12 11:25:10 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2024-01-12 11:30:20 +0100famubu_(~julinuser@14.139.174.50) ()
2024-01-12 11:31:46 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 256 seconds)
2024-01-12 11:33:25 +0100kubrat(~204-NB-00@154.14.244.146) (Ping timeout: 264 seconds)
2024-01-12 11:36:19 +0100phma(~phma@host-67-44-208-126.hnremote.net) (Read error: Connection reset by peer)
2024-01-12 11:37:30 +0100phma(~phma@host-67-44-208-164.hnremote.net)
2024-01-12 11:38:53 +0100mechap(~mechap@user/mechap)
2024-01-12 11:42:14 +0100Vq(~vq@90-225-115-195-no122.tbcn.telia.com) (Ping timeout: 260 seconds)
2024-01-12 11:44:50 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-01-12 11:44:53 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-01-12 11:53:45 +0100Vq(~vq@90-225-115-195-no122.tbcn.telia.com)
2024-01-12 11:56:54 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com)
2024-01-12 11:57:04 +0100__monty__(~toonn@user/toonn)
2024-01-12 12:00:57 +0100Tisoxin(~Ikosit@user/ikosit)
2024-01-12 12:05:04 +0100kubrat(~204-NB-00@154.14.244.146)
2024-01-12 12:05:17 +0100meritamen(~meritamen@user/meritamen)
2024-01-12 12:11:59 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 260 seconds)
2024-01-12 12:13:52 +0100lisbeths_(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2024-01-12 12:16:59 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-01-12 12:19:11 +0100sroso(~sroso@user/SrOso) (Quit: Leaving :))
2024-01-12 12:20:59 +0100 <cheater> dminuoso_: how is that a use case of memoization?
2024-01-12 12:21:05 +0100bilegeek(~bilegeek@2600:1008:b008:c5b5:46b1:d2ea:c7b3:838c) (Quit: Leaving)
2024-01-12 12:21:25 +0100mechap(~mechap@user/mechap) (Ping timeout: 264 seconds)
2024-01-12 12:21:28 +0100 <cheater> i don't think it's memoization if you precompute all the results ahead of time in one batch
2024-01-12 12:21:29 +0100 <dminuoso_> cheater: So most implementations have to revisit elements multiple times (that is most sorts are not linear)
2024-01-12 12:21:48 +0100 <cheater> yes, they do. but in my experience memoization stores upon first access, not before accesses happen.
2024-01-12 12:21:53 +0100 <dminuoso_> cheater: The whole point is to think that, if you wanted to sort by length, re-taking the length of a string multiple times is wasted work.
2024-01-12 12:22:12 +0100 <dminuoso_> cheater: Oh that depends on the evaluation model, doesnt it.
2024-01-12 12:22:27 +0100 <dminuoso_> Since we are in #haskell there would certainly not be any difference.
2024-01-12 12:23:13 +0100 <cheater> laziness is not assumed in general when talking about compsci ideas, but i agree, in this case, laziness helps
2024-01-12 12:23:34 +0100 <dminuoso_> cheater: Oh this is *all* about evaluation strategy now.
2024-01-12 12:23:48 +0100 <dminuoso_> 12:21:48 cheater │ yes, they do. but in my experience memoization stores upon first access, not before accesses happen.
2024-01-12 12:24:04 +0100 <dminuoso_> Id say that is a mostly meaningless distinction
2024-01-12 12:24:27 +0100 <dminuoso_> Conceptually, this is about when you commit that memory holding the (say) length values.
2024-01-12 12:24:49 +0100 <cheater> it's a small distinction only in case of an algorithm that traverses the whole data structure and not a subset of it.
2024-01-12 12:25:07 +0100 <dminuoso_> cheater: The core isnt about pre-computing the lenght, its about not re-computing.
2024-01-12 12:25:20 +0100 <dminuoso_> Most languages dont have enough lazyness to do what we do in Haskell
2024-01-12 12:25:30 +0100 <dminuoso_> Or they might, and its hidden inside some streaming abstraction
2024-01-12 12:25:37 +0100 <tomsmeding> or you could build it yourself
2024-01-12 12:25:55 +0100 <tomsmeding> but the point of this special case of memoisation _is_ for cases where you'll need all the values anyway, right?
2024-01-12 12:26:06 +0100 <tomsmeding> so you can just as well optimise it and compute them in batch instead of on-demand
2024-01-12 12:26:48 +0100 <dminuoso_> For a sort, arent you forced to look at every element anyway?
2024-01-12 12:27:02 +0100 <tomsmeding> yes
2024-01-12 12:27:07 +0100 <tomsmeding> that's the point
2024-01-12 12:27:30 +0100 <tomsmeding> <cheater> it's a small distinction only in case of an algorithm that traverses the whole data structure and not a subset of it.
2024-01-12 12:27:33 +0100 <dminuoso_> Ultimately I dont even think there's a sensible performance difference. If anything, pre-computing all could be slightly faster due to locality of reference.
2024-01-12 12:27:35 +0100 <tomsmeding> we are in that case
2024-01-12 12:27:54 +0100 <tomsmeding> due to locality of reference and also due to less laziness administration overhead
2024-01-12 12:28:44 +0100 <dminuoso_> Is there weaker forms of sorting where you can operate on infinite lists and `take` some part of it?
2024-01-12 12:29:07 +0100 <tomsmeding> depends on what you mean with "weaker" I guess :p
2024-01-12 12:29:15 +0100 <dminuoso_> I mean something like `min` doesnt necessarily need to access element.
2024-01-12 12:29:23 +0100 <dminuoso_> If you have some additional knowledge about the data.
2024-01-12 12:29:24 +0100 <tomsmeding> for normal sorting you must allow for the possibility for the head element to occur arbitrarily late
2024-01-12 12:29:27 +0100 <tomsmeding> right
2024-01-12 12:30:39 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 260 seconds)
2024-01-12 12:30:43 +0100 <dminuoso_> It might seem like a silly question, but then again compsci students are regularly and falsely taught that linear-time sorting was not possible.
2024-01-12 12:31:03 +0100 <tomsmeding> true
2024-01-12 12:36:24 +0100 <danse-nr3> one month ago or so we were chatting about an old version of List.sort that played nice with take, so that take 0 . sort performs as min
2024-01-12 12:36:46 +0100 <int-e> lol
2024-01-12 12:36:51 +0100 <int-e> > take 0 undefined
2024-01-12 12:36:52 +0100 <lambdabot> []
2024-01-12 12:40:51 +0100euleritian(~euleritia@77.22.252.56) (Read error: Connection reset by peer)
2024-01-12 12:41:01 +0100 <int-e> I wouldn't call the linear time sorting thing false. Sure, it's really about comparisons in comparison-based sorting algorithms so you get exceptions like bucket sort or stuff like suffix arrays. But I feel that it's not a statement that will lead you awfully astray.
2024-01-12 12:41:29 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-12 12:41:36 +0100 <int-e> "inaccurate", maybe
2024-01-12 12:43:54 +0100igemnace(~ian@user/igemnace) (Remote host closed the connection)
2024-01-12 12:43:54 +0100 <int-e> see also https://en.wikipedia.org/wiki/Lie-to-children
2024-01-12 12:43:54 +0100 <tomsmeding> even in bucket sort there is _some_ kind of logarithmic-ish effect
2024-01-12 12:43:54 +0100 <tomsmeding> in the word length
2024-01-12 12:43:54 +0100 <tomsmeding> like, it's a constant, sure, but you do get a memory-time tradeoff
2024-01-12 12:43:54 +0100 <tomsmeding> you can split the word length up in any number of pieces you want, and you get different memory-time tradeoffs
2024-01-12 12:43:54 +0100 <int-e> right, the RAM model has a ton of practical issues :-)
2024-01-12 12:43:57 +0100 <tomsmeding> also that
2024-01-12 12:47:51 +0100kubrat(~204-NB-00@154.14.244.146) (Ping timeout: 245 seconds)
2024-01-12 12:53:19 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-01-12 13:01:11 +0100CiaoSen(~Jura@2a05:5800:2c5:6200:ca4b:d6ff:fec1:99da) (Ping timeout: 245 seconds)
2024-01-12 13:01:31 +0100dtman34(~dtman34@2601:447:d000:93c9:11cd:3dc8:3c6c:d94e) (Ping timeout: 268 seconds)
2024-01-12 13:03:32 +0100dtman34(~dtman34@c-76-156-89-180.hsd1.mn.comcast.net)
2024-01-12 13:03:41 +0100danse-nr3(~danse@151.43.217.212) (Read error: Connection reset by peer)
2024-01-12 13:08:37 +0100ph88(~ph88@2a02:8109:9e26:c800:5cfe:23d9:a7ed:ad2)
2024-01-12 13:10:37 +0100cfricke(~cfricke@user/cfricke) (Ping timeout: 264 seconds)
2024-01-12 13:11:47 +0100AndreiDuma(~textual@95.76.23.32) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2024-01-12 13:19:43 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 240 seconds)
2024-01-12 13:21:05 +0100sawilagar(~sawilagar@user/sawilagar)
2024-01-12 13:21:19 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2024-01-12 13:24:39 +0100AndreiDuma(~textual@95.76.23.32)
2024-01-12 13:25:10 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds)
2024-01-12 13:26:06 +0100euleritian(~euleritia@dynamic-046-114-169-099.46.114.pool.telefonica.de)
2024-01-12 13:26:38 +0100AndreiDuma(~textual@95.76.23.32) (Client Quit)
2024-01-12 13:28:13 +0100nschoe(~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea) (Ping timeout: 276 seconds)
2024-01-12 13:29:19 +0100fansly(~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f)
2024-01-12 13:33:25 +0100mikess(~mikess@user/mikess) (Ping timeout: 264 seconds)
2024-01-12 13:34:10 +0100fansly(~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Read error: Connection reset by peer)
2024-01-12 13:39:45 +0100danse-nr3(~danse@151.57.163.252)
2024-01-12 13:42:29 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2024-01-12 13:42:54 +0100kubrat(~204-NB-00@154.14.244.146)
2024-01-12 13:50:52 +0100AndreiDuma(~textual@95.76.23.32)
2024-01-12 13:51:04 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Quit: ZNC - https://znc.in)
2024-01-12 13:51:25 +0100euleritian(~euleritia@dynamic-046-114-169-099.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2024-01-12 13:51:43 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-12 13:51:51 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2024-01-12 13:56:43 +0100meritamen(~meritamen@user/meritamen) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2024-01-12 13:58:46 +0100nschoe(~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea)
2024-01-12 13:59:11 +0100phma(~phma@host-67-44-208-164.hnremote.net) (Read error: Connection reset by peer)
2024-01-12 13:59:53 +0100phma(phma@2001:5b0:215d:bf88:966b:4a18:e3bc:816e)
2024-01-12 14:00:52 +0100Zmzi(rscastilho@user/Zmzi)
2024-01-12 14:01:17 +0100pounce(~pounce@user/cute/pounce)
2024-01-12 14:05:13 +0100nschoe(~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea) (Ping timeout: 264 seconds)
2024-01-12 14:05:14 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-01-12 14:05:39 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-12 14:09:16 +0100pounce(~pounce@user/cute/pounce) (Remote host closed the connection)
2024-01-12 14:11:53 +0100pounce(~pounce@user/cute/pounce)
2024-01-12 14:18:59 +0100ph88(~ph88@2a02:8109:9e26:c800:5cfe:23d9:a7ed:ad2) (Remote host closed the connection)
2024-01-12 14:19:05 +0100Szilva(~Szilva@91-83-10-47.pool.digikabel.hu) (Ping timeout: 260 seconds)
2024-01-12 14:20:09 +0100 <haskellbridge> 14<m​auke> dminuoso_: there is a different sort-with-memoization algorithm that is not the Schwartzian transform, so there is still a distinction to be made
2024-01-12 14:20:47 +0100 <haskellbridge> 14<m​auke> (I mean the orcish maneuver)
2024-01-12 14:20:58 +0100meritamen(~meritamen@user/meritamen)
2024-01-12 14:21:16 +0100meritamen(~meritamen@user/meritamen) (Client Quit)
2024-01-12 14:21:20 +0100ph88(~ph88@2a02:8109:9e26:c800:ebe:cfcf:47b5:b54e)
2024-01-12 14:21:55 +0100tv(~tv@user/tv) (Ping timeout: 255 seconds)
2024-01-12 14:23:42 +0100nschoe(~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea)
2024-01-12 14:26:58 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2024-01-12 14:28:28 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2024-01-12 14:28:39 +0100nschoe(~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea) (Ping timeout: 256 seconds)
2024-01-12 14:34:56 +0100Zmzi(rscastilho@user/Zmzi) (Ping timeout: 245 seconds)
2024-01-12 14:35:11 +0100tv(~tv@user/tv)
2024-01-12 14:36:01 +0100Zmzi(rscastilho@189.61.140.215)
2024-01-12 14:36:45 +0100Zmzi(rscastilho@189.61.140.215) (Remote host closed the connection)
2024-01-12 14:38:25 +0100 <cheater> danse-nr3: why wouldn't take 0 . sort perform as min?
2024-01-12 14:39:15 +0100Zmzi(rscastilho@user/Zmzi)
2024-01-12 14:41:37 +0100 <danse-nr3> it does in that (OldList? Not sure) module, not in Data.List
2024-01-12 14:41:46 +0100nschoe(~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea)
2024-01-12 14:42:43 +0100eron(~eron@191.23.127.161)
2024-01-12 14:43:03 +0100 <danse-nr3> i guess that requires an algorithm that is not ideal in other sorting use cases
2024-01-12 14:49:04 +0100 <tomsmeding> cheater: 'take 1', for starters
2024-01-12 14:49:18 +0100 <cheater> yeah i know
2024-01-12 14:49:57 +0100 <tomsmeding> and it would always be observationally equivalent to minimum, but one might wonder about the complexity
2024-01-12 14:49:58 +0100 <cheater> danse-nr3: i don't get it. why wouldn't sort, sort a list, from smallest to biggest value?
2024-01-12 14:50:24 +0100 <tomsmeding> like, minimum is O(n), but if sort is mergesort, then take 1 . sort is likely to be O(n log n)
2024-01-12 14:50:29 +0100 <cheater> tomsmeding: ok, so are you guys saying it might abort some of the computation if you were only to take 1 element?
2024-01-12 14:50:40 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2024-01-12 14:50:42 +0100 <cheater> gotcha.
2024-01-12 14:50:56 +0100 <tomsmeding> there are sort algorithms that produce the first element in O(n) and gracefully degrade to O(n log n) as you require the whole list
2024-01-12 14:50:58 +0100Szilva(~Szilva@77-234-80-135.pool.digikabel.hu)
2024-01-12 14:51:04 +0100euleritian(~euleritia@dynamic-046-114-169-099.46.114.pool.telefonica.de)
2024-01-12 14:51:16 +0100 <tomsmeding> 'minimum' will still be more efficient than take 1 . sort
2024-01-12 14:51:40 +0100 <tomsmeding> in terms of constant-factors
2024-01-12 14:52:31 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2024-01-12 14:53:09 +0100 <int-e> tomsmeding: but if your merge sort is evaluated lazily it becomes a heap sort
2024-01-12 14:53:47 +0100mmhat(~mmh@p200300f1c742823fee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.1.2)
2024-01-12 14:54:43 +0100 <int-e> (You actually get a linear time `take 1 . sort` with Data.List.sort, and O(n + k log(n)) for `take k . sort`)
2024-01-12 14:56:15 +0100 <tomsmeding> sure, but then getting the head is still n log n, right?
2024-01-12 14:56:19 +0100fendor(~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) (Remote host closed the connection)
2024-01-12 14:56:21 +0100 <int-e> (Not the array-based heap sort... but there is a heap-like tree of nested merges being evaluated lazily)
2024-01-12 14:56:24 +0100 <int-e> tomsmeding: No, it isn't.
2024-01-12 14:57:54 +0100 <int-e> You have O(n) nested `merge` calls and each `merge` call produces its head in a single comparison, looking just at the head of its arguments.
2024-01-12 14:58:17 +0100 <int-e> So after O(n) steps you have the head of the outermost merge, which is the head of the nested list.
2024-01-12 14:58:28 +0100 <int-e> ... s/nested/sorted/
2024-01-12 14:58:40 +0100 <tomsmeding> the merge sort I know recursively subdivides the list in two, producing an O(log n)-depth tree of merges
2024-01-12 14:58:51 +0100 <int-e> Yes
2024-01-12 14:59:22 +0100 <tomsmeding> then you have that 1. you're looking at each element of the input list, however you shake it
2024-01-12 14:59:30 +0100 <int-e> But if you just want the head, you don't have to fully evaluate most of the merges... you only need the head of every intermediate result
2024-01-12 14:59:37 +0100 <tomsmeding> and 2. that you're going to have to walk to at least one leaf of that tree
2024-01-12 14:59:38 +0100 <int-e> Yes, that's O(n)
2024-01-12 14:59:41 +0100 <tomsmeding> oh
2024-01-12 14:59:42 +0100 <tomsmeding> right
2024-01-12 14:59:46 +0100 <tomsmeding> n + log n that is
2024-01-12 15:00:01 +0100 <tomsmeding> me brain not working
2024-01-12 15:00:38 +0100 <int-e> It's n-1 comparisons to get the head if you start with n singleton lists.
2024-01-12 15:00:51 +0100 <tomsmeding> yeah I get it now
2024-01-12 15:01:14 +0100 <int-e> (But Data.List.sort computes ascending and descending runs, so it's a bit more complicated. Still O(n) though.)
2024-01-12 15:14:39 +0100AndreiDuma(~textual@95.76.23.32) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2024-01-12 15:18:48 +0100shriekingnoise(~shrieking@186.137.175.87)
2024-01-12 15:20:50 +0100igemnace(~ian@user/igemnace)
2024-01-12 15:21:32 +0100thegeekinside(~thegeekin@189.217.90.224)
2024-01-12 15:27:16 +0100AndreiDuma(~textual@95.76.23.32)
2024-01-12 15:29:38 +0100kubrat(~204-NB-00@154.14.244.146) (Quit: leaving)
2024-01-12 15:39:30 +0100eggplant_(~Eggplanta@2600:1700:38c5:d800:601b:b49a:1e36:7b08)
2024-01-12 15:42:27 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:acc5:3bfd:1c7c:868d) (Ping timeout: 260 seconds)
2024-01-12 15:44:06 +0100eron(~eron@191.23.127.161) (Quit: Client closed)
2024-01-12 15:47:19 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 240 seconds)
2024-01-12 15:49:02 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2024-01-12 15:54:47 +0100ph88(~ph88@2a02:8109:9e26:c800:ebe:cfcf:47b5:b54e) (Ping timeout: 256 seconds)
2024-01-12 15:59:59 +0100rvalue(~rvalue@user/rvalue) (Quit: ZNC - https://znc.in)
2024-01-12 16:00:23 +0100rvalue(~rvalue@user/rvalue)
2024-01-12 16:03:32 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2024-01-12 16:03:33 +0100euleritian(~euleritia@dynamic-046-114-169-099.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2024-01-12 16:03:35 +0100ystael(~ystael@user/ystael)
2024-01-12 16:04:56 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-12 16:06:31 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2024-01-12 16:06:59 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2024-01-12 16:09:59 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-01-12 16:10:35 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2024-01-12 16:10:35 +0100euleritian(~euleritia@dynamic-046-114-169-099.46.114.pool.telefonica.de)
2024-01-12 16:10:59 +0100euleritian(~euleritia@dynamic-046-114-169-099.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2024-01-12 16:11:16 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-12 16:16:28 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 246 seconds)
2024-01-12 16:19:33 +0100not_reserved(~not_reser@185.153.177.191)
2024-01-12 16:19:44 +0100Sgeo(~Sgeo@user/sgeo)
2024-01-12 16:30:28 +0100inedia(~irc@2602:2da:0:80:5054:ff:fe3c:8d93) (Ping timeout: 246 seconds)
2024-01-12 16:30:48 +0100ft(~ft@p4fc2a1d8.dip0.t-ipconnect.de) (Quit: leaving)
2024-01-12 16:31:52 +0100not_reserved(~not_reser@185.153.177.191) (Ping timeout: 250 seconds)
2024-01-12 16:32:49 +0100danse-nr3(~danse@151.57.163.252) (Ping timeout: 264 seconds)
2024-01-12 16:40:51 +0100cross(~cross@spitfire.i.gajendra.net)
2024-01-12 16:43:56 +0100vpan(~vpan@212.117.1.172) (Quit: Leaving.)
2024-01-12 16:44:31 +0100TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 256 seconds)
2024-01-12 16:51:04 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2024-01-12 16:55:35 +0100ystael(~ystael@user/ystael) (Quit: Lost terminal)
2024-01-12 16:57:00 +0100Zmzi(rscastilho@user/Zmzi) (Remote host closed the connection)
2024-01-12 16:57:29 +0100fansly(~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f)
2024-01-12 16:58:05 +0100ystael(~ystael@user/ystael)
2024-01-12 16:58:47 +0100not_reserved(~not_reser@185.153.177.191)
2024-01-12 17:11:11 +0100fansly(~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Remote host closed the connection)
2024-01-12 17:12:50 +0100Sciencentistguy(~sciencent@hacksoc/ordinary-member) (Remote host closed the connection)
2024-01-12 17:12:59 +0100fansly(~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f)
2024-01-12 17:13:27 +0100coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2024-01-12 17:13:42 +0100coot(~coot@89-69-206-216.dynamic.chello.pl)
2024-01-12 17:16:23 +0100AndreiDuma(~textual@95.76.23.32) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2024-01-12 17:16:47 +0100danza(~danza@151.57.163.252)
2024-01-12 17:18:49 +0100ph88(~ph88@2a02:8109:9e26:c800:a702:f242:a4c5:2b6e)
2024-01-12 17:19:14 +0100ph88(~ph88@2a02:8109:9e26:c800:a702:f242:a4c5:2b6e) (Client Quit)
2024-01-12 17:22:51 +0100EsoAlgo811(~EsoAlgo@129.146.136.145)
2024-01-12 17:23:27 +0100ft(~ft@p4fc2a1d8.dip0.t-ipconnect.de)
2024-01-12 17:24:01 +0100inedia(~irc@2602:2da:0:80:5054:ff:fe3c:8d93)
2024-01-12 17:25:46 +0100haskellbridge(~haskellbr@069-135-003-034.biz.spectrum.com) (Remote host closed the connection)
2024-01-12 17:29:56 +0100haskellbridge(~haskellbr@069-135-003-034.biz.spectrum.com)
2024-01-12 17:29:56 +0100ChanServ+v haskellbridge
2024-01-12 17:32:53 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2024-01-12 17:33:31 +0100euleritian(~euleritia@dynamic-046-114-169-099.46.114.pool.telefonica.de)
2024-01-12 17:35:10 +0100eggplant_(~Eggplanta@2600:1700:38c5:d800:601b:b49a:1e36:7b08) (Remote host closed the connection)
2024-01-12 17:35:25 +0100euleritian(~euleritia@dynamic-046-114-169-099.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2024-01-12 17:35:26 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:601b:b49a:1e36:7b08)
2024-01-12 17:35:50 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-12 17:38:47 +0100econo_(uid147250@id-147250.tinside.irccloud.com)
2024-01-12 17:39:48 +0100danza(~danza@151.57.163.252) (Read error: Connection reset by peer)
2024-01-12 17:48:21 +0100coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2024-01-12 17:55:01 +0100danza(~danza@151.43.183.66)
2024-01-12 17:56:50 +0100coot(~coot@89-69-206-216.dynamic.chello.pl)
2024-01-12 17:57:35 +0100AndreiDuma(~textual@95.76.23.32)
2024-01-12 17:58:44 +0100AndreiDuma(~textual@95.76.23.32) (Client Quit)
2024-01-12 17:59:37 +0100AndreiDuma(~textual@95.76.23.32)
2024-01-12 17:59:49 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 260 seconds)
2024-01-12 18:00:27 +0100chele(~chele@user/chele) (Remote host closed the connection)
2024-01-12 18:00:44 +0100target_i(~target_i@217.175.14.39)
2024-01-12 18:04:28 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-01-12 18:04:35 +0100euleritian(~euleritia@dynamic-046-114-169-099.46.114.pool.telefonica.de)
2024-01-12 18:04:58 +0100euleritian(~euleritia@dynamic-046-114-169-099.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2024-01-12 18:05:16 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-12 18:16:06 +0100Katarushisu1(~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Ping timeout: 260 seconds)
2024-01-12 18:16:46 +0100not_reserved(~not_reser@185.153.177.191) (Quit: Client closed)
2024-01-12 18:17:13 +0100danza(~danza@151.43.183.66) (Ping timeout: 264 seconds)
2024-01-12 18:20:17 +0100rvalue(~rvalue@user/rvalue) (Ping timeout: 256 seconds)
2024-01-12 18:23:45 +0100Katarushisu1(~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
2024-01-12 18:29:58 +0100rvalue(~rvalue@user/rvalue)
2024-01-12 18:32:32 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-01-12 18:33:11 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-12 18:35:05 +0100sajith_sajith
2024-01-12 18:48:45 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2024-01-12 18:49:29 +0100euleritian(~euleritia@dynamic-046-114-169-099.46.114.pool.telefonica.de)
2024-01-12 18:50:50 +0100not_reserved(~not_reser@185.153.177.191)
2024-01-12 18:53:50 +0100igemnace(~ian@user/igemnace) (Remote host closed the connection)
2024-01-12 19:01:05 +0100AndreiDuma(~textual@95.76.23.32) (Ping timeout: 252 seconds)
2024-01-12 19:02:32 +0100qqq(~qqq@92.43.167.61) (Quit: Lost terminal)
2024-01-12 19:07:09 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-01-12 19:12:40 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2024-01-12 19:13:14 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2024-01-12 19:17:21 +0100tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net)
2024-01-12 19:18:10 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2024-01-12 19:18:33 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2024-01-12 19:20:36 +0100a51(a51@gateway/vpn/protonvpn/a51) (Quit: WeeChat 4.1.2)
2024-01-12 19:26:29 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-01-12 19:26:45 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2024-01-12 19:27:56 +0100qqq(~qqq@92.43.167.61)
2024-01-12 19:32:57 +0100Katarushisu1(~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
2024-01-12 19:32:57 +0100zmt01(~zmt00@user/zmt00)
2024-01-12 19:36:16 +0100swamp_(~zmt00@user/zmt00) (Ping timeout: 256 seconds)
2024-01-12 19:36:31 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2024-01-12 19:37:09 +0100Katarushisu1(~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
2024-01-12 19:40:12 +0100czy(~user@114.227.205.148) (Remote host closed the connection)
2024-01-12 19:40:51 +0100czy(~user@114.227.205.148)
2024-01-12 19:47:49 +0100nschoe(~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea) (Ping timeout: 276 seconds)
2024-01-12 19:49:39 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-01-12 19:52:22 +0100trev(~trev@user/trev) (Quit: trev)
2024-01-12 19:57:44 +0100__monty__(~toonn@user/toonn) (Ping timeout: 252 seconds)
2024-01-12 20:03:07 +0100__monty__(~toonn@user/toonn)
2024-01-12 20:06:53 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-01-12 20:17:13 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 264 seconds)
2024-01-12 20:20:42 +0100thegeekinside(~thegeekin@189.217.90.224) (Remote host closed the connection)
2024-01-12 20:28:07 +0100sawilagar(~sawilagar@user/sawilagar) (Ping timeout: 276 seconds)
2024-01-12 20:32:34 +0100average(uid473595@user/average)
2024-01-12 20:32:39 +0100 <average> https://www.youtube.com/shorts/Xh9BfxrXvEk
2024-01-12 20:32:46 +0100 <average> this is what happens when you Haskell
2024-01-12 20:33:56 +0100 <sm> lol yup that's me
2024-01-12 20:34:28 +0100 <average> sm: and many of the commentors feel the same way
2024-01-12 20:34:34 +0100 <average> coincidence? I think not!!
2024-01-12 20:35:51 +0100 <yushyin> ah yes the 'gatekeeping' argument by @at-2974
2024-01-12 20:36:46 +0100 <glguy> ooh, now do the version where someone tries to read the most literal description of a templated anything from C++'s standard library
2024-01-12 20:36:51 +0100 <glguy> technology is *hard*
2024-01-12 20:37:23 +0100 <sm> more haskell videos please. We should have waay more!
2024-01-12 20:38:38 +0100 <sm> did y'all see https://www.youtube.com/watch?v=VJyedDQJUHE ? it's great
2024-01-12 20:39:48 +0100 <mauke> I only watch https://www.youtube.com/watch?v=H0Ek86IH-3Y
2024-01-12 20:40:05 +0100 <sm> by the way what's with all the commenters scared by zillion haskell deps being installed .. are those users of arch / build-from-source distros ?
2024-01-12 20:40:21 +0100 <glguy> They're recovering npm users
2024-01-12 20:40:47 +0100 <glguy> or ... anything but C?
2024-01-12 20:40:49 +0100smwonders if there's a reliable tag / way to collect haskell-related youtubes
2024-01-12 20:42:32 +0100 <sm> https://www.youtube.com/watch?v=iSmkqocn0oQ is a nice one
2024-01-12 20:46:31 +0100 <sm> there's https://www.youtube.com/hashtag/haskell
2024-01-12 20:50:30 +0100 <cheater> "probably not"
2024-01-12 20:51:59 +0100 <sm> aha, gold! https://www.youtube.com/hashtag/haskell/shorts
2024-01-12 20:55:17 +0100nschoe(~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea)
2024-01-12 20:59:37 +0100 <sm> #haskell is not a reliable tag for youtube shorts (though the pow-wows are awesome). It seems fine for the longer videos (All tab)
2024-01-12 21:04:55 +0100mikess(~mikess@user/mikess)
2024-01-12 21:06:25 +0100puke(~puke@user/puke) (Ping timeout: 264 seconds)
2024-01-12 21:11:52 +0100nschoe(~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea) (Ping timeout: 255 seconds)
2024-01-12 21:16:31 +0100Tuplanolla(~Tuplanoll@91-159-69-171.elisa-laajakaista.fi)
2024-01-12 21:21:37 +0100nschoe(~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea)
2024-01-12 21:24:35 +0100a51(a51@gateway/vpn/protonvpn/a51)
2024-01-12 21:25:43 +0100euleritian(~euleritia@dynamic-046-114-169-099.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2024-01-12 21:26:02 +0100euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-01-12 21:28:31 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2024-01-12 21:46:24 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:601b:b49a:1e36:7b08) (Remote host closed the connection)
2024-01-12 21:48:27 +0100target_i(~target_i@217.175.14.39) (Quit: leaving)
2024-01-12 21:55:28 +0100danza(~danza@151.43.174.128)
2024-01-12 21:56:43 +0100inedia(~irc@2602:2da:0:80:5054:ff:fe3c:8d93) (Ping timeout: 260 seconds)
2024-01-12 22:00:56 +0100inedia(~irc@2602:2da:0:80:5054:ff:fe3c:8d93)
2024-01-12 22:08:18 +0100dsrt^(~cd@c-98-242-74-66.hsd1.ga.comcast.net)
2024-01-12 22:16:11 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2024-01-12 22:19:05 +0100shailangsa_(~shailangs@host109-152-9-157.range109-152.btcentralplus.com) (Remote host closed the connection)
2024-01-12 22:23:00 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2024-01-12 22:23:02 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:601b:b49a:1e36:7b08)
2024-01-12 22:26:01 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-01-12 22:29:49 +0100fansly(~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Ping timeout: 264 seconds)
2024-01-12 22:33:57 +0100energizer_energizer
2024-01-12 22:42:46 +0100bilegeek(~bilegeek@2600:1008:b00c:d1f1:52d2:9d22:3a6a:a22c)
2024-01-12 22:42:57 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2024-01-12 22:43:17 +0100machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-01-12 22:43:39 +0100nschoe(~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea) (Ping timeout: 268 seconds)
2024-01-12 22:44:56 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 245 seconds)
2024-01-12 22:51:12 +0100coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2024-01-12 22:53:12 +0100puke(~puke@user/puke)
2024-01-12 23:02:28 +0100michalz(~michalz@185.246.207.205) (Quit: ZNC 1.8.2 - https://znc.in)
2024-01-12 23:05:06 +0100fansly(~fansly@182.0.175.30)
2024-01-12 23:08:48 +0100fansly(~fansly@182.0.175.30) (Client Quit)
2024-01-12 23:09:05 +0100fansly(~fansly@182.0.145.78)
2024-01-12 23:09:16 +0100nschoe(~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea)
2024-01-12 23:11:32 +0100dolio(~dolio@130.44.134.54) (Quit: ZNC 1.8.2 - https://znc.in)
2024-01-12 23:12:19 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2024-01-12 23:13:16 +0100dolio(~dolio@130.44.134.54)
2024-01-12 23:16:27 +0100dolio(~dolio@130.44.134.54) (Client Quit)
2024-01-12 23:18:33 +0100_d0t(~{-d0t-}@user/-d0t-/x-7915216) (Ping timeout: 260 seconds)
2024-01-12 23:23:15 +0100[_](~itchyjunk@user/itchyjunk/x-7353470)
2024-01-12 23:26:49 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 264 seconds)
2024-01-12 23:27:05 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-01-12 23:28:28 +0100_d0t(~{-d0t-}@user/-d0t-/x-7915216)
2024-01-12 23:32:23 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-01-12 23:36:22 +0100random-jellyfish(~developer@user/random-jellyfish)
2024-01-12 23:39:08 +0100vi-phrlk
2024-01-12 23:39:16 +0100phrlkvi-
2024-01-12 23:40:34 +0100dolio(~dolio@130.44.134.54)
2024-01-12 23:40:55 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2024-01-12 23:49:12 +0100Kuttenbrunzer(~Kuttenbru@2a02:8108:8b80:1d48::8207)
2024-01-12 23:50:27 +0100Kuttenbrunzer(~Kuttenbru@2a02:8108:8b80:1d48::8207) (Client Quit)
2024-01-12 23:50:52 +0100danza(~danza@151.43.174.128) (Quit: Leaving)