2024-01-12 00:03:51 +0100 | xdminsy | (~xdminsy@117.147.71.199) |
2024-01-12 00:05:46 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-01-12 00:11:45 +0100 | thegeekinside | (~thegeekin@189.217.90.224) (Read error: Connection reset by peer) |
2024-01-12 00:13:37 +0100 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2024-01-12 00:24:13 +0100 | neuroevolutus | (~neuroevol@2a02:6ea0:e001:1::e00f) |
2024-01-12 00:33:25 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Ping timeout: 264 seconds) |
2024-01-12 00:34:26 +0100 | fansly | (~fansly@2404:c0:5c10::6601:9777) |
2024-01-12 00:44:32 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-171.elisa-laajakaista.fi) (Quit: Leaving.) |
2024-01-12 00:44:55 +0100 | pastly | (~pastly@gateway/tor-sasl/pastly) (Remote host closed the connection) |
2024-01-12 00:45:19 +0100 | pastly | (~pastly@gateway/tor-sasl/pastly) |
2024-01-12 00:47:37 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2024-01-12 00:56:06 +0100 | neuroevolutus | (~neuroevol@2a02:6ea0:e001:1::e00f) (Quit: Client closed) |
2024-01-12 00:58:23 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) |
2024-01-12 01:02:07 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
2024-01-12 01:04:30 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2024-01-12 01:05:40 +0100 | puke | (~puke@user/puke) |
2024-01-12 01:09:56 +0100 | fansly | (~fansly@2404:c0:5c10::6601:9777) (Ping timeout: 245 seconds) |
2024-01-12 01:10:12 +0100 | fansly | (~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 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds) |
2024-01-12 01:42:41 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 252 seconds) |
2024-01-12 01:52:33 +0100 | flounders | (~flounders@24.246.176.178) (Quit: WeeChat 4.1.1) |
2024-01-12 01:56:29 +0100 | euleritian | (~euleritia@77.22.252.56) (Ping timeout: 240 seconds) |
2024-01-12 01:57:21 +0100 | euleritian | (~euleritia@dynamic-046-114-154-050.46.114.pool.telefonica.de) |
2024-01-12 01:58:31 +0100 | barak | (~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 +0100 | not_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<sm> 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<sm> 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 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds) |
2024-01-12 02:27:22 +0100 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2024-01-12 02:28:44 +0100 | Lord_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 +0100 | ski | glances 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 +0100 | hgolden | (~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 +0100 | machinedgod | (~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 +0100 | aforemny_ | (~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 +0100 | aforemny | (~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 +0100 | hgolden | (~hgolden@2603-8000-9d00-3ed1-a6e3-3ba3-0107-8cff.res6.spectrum.com) |
2024-01-12 03:19:29 +0100 | euleritian | (~euleritia@dynamic-046-114-154-050.46.114.pool.telefonica.de) (Ping timeout: 252 seconds) |
2024-01-12 03:19:52 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Quit: Quit) |
2024-01-12 03:20:02 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) |
2024-01-12 03:21:54 +0100 | euleritian | (~euleritia@dynamic-046-114-178-176.46.114.pool.telefonica.de) |
2024-01-12 03:22:25 +0100 | AWizzArd | (~code@gehrels.uberspace.de) (Changing host) |
2024-01-12 03:22:25 +0100 | AWizzArd | (~code@user/awizzard) |
2024-01-12 03:26:50 +0100 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2024-01-12 03:39:12 +0100 | aforemny_ | (~aforemny@2001:9e8:6cca:d100:b45a:3e0d:4824:990b) |
2024-01-12 03:39:44 +0100 | aforemny | (~aforemny@i59F516FD.versanet.de) (Ping timeout: 256 seconds) |
2024-01-12 03:44:21 +0100 | Tisoxin | (~Ikosit@user/ikosit) (Ping timeout: 268 seconds) |
2024-01-12 03:49:27 +0100 | mmhat | (~mmh@p200300f1c742823fee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.1.2) |
2024-01-12 03:55:19 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds) |
2024-01-12 03:56:05 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2024-01-12 03:59:40 +0100 | pavonia | (~user@user/siracusa) |
2024-01-12 04:01:50 +0100 | ystael | (~ystael@user/ystael) (Ping timeout: 252 seconds) |
2024-01-12 04:04:20 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Read error: Connection reset by peer) |
2024-01-12 04:04:22 +0100 | rosco | (~rosco@175.136.156.77) |
2024-01-12 04:06:06 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) |
2024-01-12 04:11:44 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
2024-01-12 04:11:52 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2024-01-12 04:14:32 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:acc5:3bfd:1c7c:868d) (Remote host closed the connection) |
2024-01-12 04:14:48 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:acc5:3bfd:1c7c:868d) |
2024-01-12 04:31:18 +0100 | pounce | (~pounce@user/cute/pounce) (Ping timeout: 256 seconds) |
2024-01-12 04:34:21 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Remote host closed the connection) |
2024-01-12 04:36:11 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) |
2024-01-12 04:40:30 +0100 | puke | (~puke@user/puke) (Remote host closed the connection) |
2024-01-12 04:41:39 +0100 | puke | (~puke@user/puke) |
2024-01-12 04:44:39 +0100 | pounce | (~pounce@user/cute/pounce) |
2024-01-12 04:44:58 +0100 | td_ | (~td@i53870918.versanet.de) (Ping timeout: 264 seconds) |
2024-01-12 04:46:34 +0100 | td_ | (~td@i5387092A.versanet.de) |
2024-01-12 04:47:46 +0100 | puke | (~puke@user/puke) (Remote host closed the connection) |
2024-01-12 04:48:43 +0100 | puke | (~puke@user/puke) |
2024-01-12 04:54:03 +0100 | ph88 | (~ph88@2a02:8109:9e26:c800:bdfe:539f:caf9:1cba) (Ping timeout: 256 seconds) |
2024-01-12 04:57:49 +0100 | euleritian | (~euleritia@dynamic-046-114-178-176.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-01-12 04:58:07 +0100 | euleritian | (~euleritia@77.22.252.56) |
2024-01-12 05:13:37 +0100 | pounce | (~pounce@user/cute/pounce) (Ping timeout: 264 seconds) |
2024-01-12 05:15:05 +0100 | aforemny | (~aforemny@2001:9e8:6cd5:4e00:6faf:7b3a:ff9f:152b) |
2024-01-12 05:15:19 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving) |
2024-01-12 05:15:25 +0100 | aforemny_ | (~aforemny@2001:9e8:6cca:d100:b45a:3e0d:4824:990b) (Ping timeout: 260 seconds) |
2024-01-12 05:16:25 +0100 | bilegeek | (~bilegeek@2600:1008:b008:c5b5:46b1:d2ea:c7b3:838c) |
2024-01-12 05:17:19 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
2024-01-12 05:17:56 +0100 | pounce | (~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 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) |
2024-01-12 05:42:05 +0100 | pounce | (~pounce@user/cute/pounce) (Ping timeout: 240 seconds) |
2024-01-12 05:44:40 +0100 | Square | (~Square@user/square) |
2024-01-12 05:55:01 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Ping timeout: 264 seconds) |
2024-01-12 05:55:16 +0100 | fansly | (~fansly@103.3.220.62) |
2024-01-12 05:57:08 +0100 | igemnace | (~ian@user/igemnace) |
2024-01-12 06:04:05 +0100 | lambdap2371 | (~lambdap@static.167.190.119.168.clients.your-server.de) (Quit: lambdap2371) |
2024-01-12 06:04:48 +0100 | lambdap2371 | (~lambdap@static.167.190.119.168.clients.your-server.de) |
2024-01-12 06:05:08 +0100 | lambdap2371 | (~lambdap@static.167.190.119.168.clients.your-server.de) (Remote host closed the connection) |
2024-01-12 06:05:24 +0100 | lambdap2371 | (~lambdap@static.167.190.119.168.clients.your-server.de) |
2024-01-12 06:05:39 +0100 | lambdap2371 | (~lambdap@static.167.190.119.168.clients.your-server.de) (Read error: Connection reset by peer) |
2024-01-12 06:06:27 +0100 | lambdap2371 | (~lambdap@static.167.190.119.168.clients.your-server.de) |
2024-01-12 06:07:35 +0100 | lambdap2371 | (~lambdap@static.167.190.119.168.clients.your-server.de) (Remote host closed the connection) |
2024-01-12 06:07:52 +0100 | lambdap2371 | (~lambdap@static.167.190.119.168.clients.your-server.de) |
2024-01-12 06:08:15 +0100 | michalz | (~michalz@185.246.207.205) |
2024-01-12 06:21:03 +0100 | trev | (~trev@user/trev) |
2024-01-12 06:22:46 +0100 | causal | (~eric@50.35.85.7) |
2024-01-12 06:28:40 +0100 | justache | (~justache@user/justache) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-01-12 06:32:21 +0100 | justache | (~justache@user/justache) |
2024-01-12 06:35:00 +0100 | michalz | (~michalz@185.246.207.205) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-01-12 06:37:04 +0100 | ursa-major | (~ursa-majo@37.19.210.26) |
2024-01-12 06:37:50 +0100 | michalz | (~michalz@185.246.207.217) |
2024-01-12 06:39:25 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 264 seconds) |
2024-01-12 06:43:49 +0100 | xff0x | (~xff0x@2405:6580:b080:900:a4be:751a:2735:9c5f) (Ping timeout: 255 seconds) |
2024-01-12 06:45:44 +0100 | xff0x | (~xff0x@178.255.149.135) |
2024-01-12 06:46:03 +0100 | igemnace | (~ian@user/igemnace) (Quit: WeeChat 4.1.2) |
2024-01-12 06:55:37 +0100 | xff0x | (~xff0x@178.255.149.135) (Ping timeout: 276 seconds) |
2024-01-12 06:55:37 +0100 | euleritian | (~euleritia@77.22.252.56) (Ping timeout: 264 seconds) |
2024-01-12 06:55:47 +0100 | justache | (~justache@user/justache) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-01-12 06:56:14 +0100 | euleritian | (~euleritia@dynamic-046-114-178-176.46.114.pool.telefonica.de) |
2024-01-12 06:56:57 +0100 | xff0x | (~xff0x@2405:6580:b080:900:791d:2159:1f07:cdf2) |
2024-01-12 06:58:32 +0100 | justache | (~justache@user/justache) |
2024-01-12 06:59:06 +0100 | fansly | (~fansly@103.3.220.62) (Ping timeout: 245 seconds) |
2024-01-12 06:59:49 +0100 | fansly | (~fansly@2404:c0:5c40::2304:f11f) |
2024-01-12 07:02:13 +0100 | euleritian | (~euleritia@dynamic-046-114-178-176.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-01-12 07:03:07 +0100 | euleritian | (~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 +0100 | bilegeek | (~bilegeek@2600:1008:b008:c5b5:46b1:d2ea:c7b3:838c) (Quit: Leaving) |
2024-01-12 07:08:48 +0100 | bilegeek | (~bilegeek@2600:1008:b008:c5b5:46b1:d2ea:c7b3:838c) |
2024-01-12 07:13:05 +0100 | pastly | (~pastly@gateway/tor-sasl/pastly) (Remote host closed the connection) |
2024-01-12 07:16:30 +0100 | bilegeek_ | (~bilegeek@2600:1008:b008:c5b5:46b1:d2ea:c7b3:838c) |
2024-01-12 07:17:59 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2024-01-12 07:18:09 +0100 | fansly | (~fansly@2404:c0:5c40::2304:f11f) (Ping timeout: 260 seconds) |
2024-01-12 07:18:40 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) |
2024-01-12 07:20:01 +0100 | bilegeek | (~bilegeek@2600:1008:b008:c5b5:46b1:d2ea:c7b3:838c) (Ping timeout: 260 seconds) |
2024-01-12 07:20:42 +0100 | pastly | (~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 +0100 | harveypwca | (~harveypwc@2601:246:c280:7940:585a:99af:3e4c:209b) |
2024-01-12 07:28:59 +0100 | johnw | (~johnw@69.62.242.138) (Quit: ZNC - http://znc.in) |
2024-01-12 07:29:21 +0100 | euleritian | (~euleritia@77.22.252.56) (Ping timeout: 260 seconds) |
2024-01-12 07:29:48 +0100 | euleritian | (~euleritia@dynamic-046-114-175-211.46.114.pool.telefonica.de) |
2024-01-12 07:31:29 +0100 | johnw | (~johnw@69.62.242.138) |
2024-01-12 07:36:03 +0100 | kubrat | (~204-NB-00@154.14.244.146) |
2024-01-12 07:38:09 +0100 | CiaoSen | (~Jura@2a05:5800:2c5:6200:ca4b:d6ff:fec1:99da) |
2024-01-12 07:44:02 +0100 | kubrat | (~204-NB-00@154.14.244.146) (Ping timeout: 252 seconds) |
2024-01-12 07:48:32 +0100 | kubrat | (~204-NB-00@154.14.244.146) |
2024-01-12 07:52:32 +0100 | justache | (~justache@user/justache) (Read error: Connection reset by peer) |
2024-01-12 07:52:49 +0100 | EsoAlgo81 | (~EsoAlgo@129.146.136.145) (Ping timeout: 276 seconds) |
2024-01-12 07:55:46 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
2024-01-12 07:56:03 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2024-01-12 07:56:14 +0100 | justache | (~justache@user/justache) |
2024-01-12 07:57:48 +0100 | acidjnk | (~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de) |
2024-01-12 08:00:48 +0100 | justache | (~justache@user/justache) (Remote host closed the connection) |
2024-01-12 08:03:35 +0100 | justache | (~justache@user/justache) |
2024-01-12 08:12:34 +0100 | oo_miguel | (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) |
2024-01-12 08:24:49 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2024-01-12 08:28:40 +0100 | xdminsy | (~xdminsy@117.147.71.199) (Ping timeout: 255 seconds) |
2024-01-12 08:29:43 +0100 | xdminsy | (~xdminsy@117.147.71.199) |
2024-01-12 08:34:17 +0100 | lisbeths_ | (uid135845@id-135845.lymington.irccloud.com) |
2024-01-12 08:34:41 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Remote host closed the connection) |
2024-01-12 08:40:11 +0100 | nschoe | (~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea) |
2024-01-12 08:40:17 +0100 | dragestil | (~znc@user/dragestil) (Ping timeout: 260 seconds) |
2024-01-12 08:40:19 +0100 | tstat_ | (~tstat@user/tstat) |
2024-01-12 08:40:20 +0100 | dragestil_ | (~znc@user/dragestil) |
2024-01-12 08:40:22 +0100 | sajith_ | (~sajith@user/sajith) |
2024-01-12 08:40:33 +0100 | bilegeek_ | (~bilegeek@2600:1008:b008:c5b5:46b1:d2ea:c7b3:838c) (Quit: Leaving) |
2024-01-12 08:40:51 +0100 | guygastineau | (~guygastin@137.184.131.156) |
2024-01-12 08:41:02 +0100 | energizer_ | (~energizer@user/energizer) |
2024-01-12 08:41:09 +0100 | sajith | (~sajith@user/sajith) (Ping timeout: 256 seconds) |
2024-01-12 08:41:14 +0100 | tstat | (~tstat@user/tstat) (Ping timeout: 260 seconds) |
2024-01-12 08:41:17 +0100 | energizer | (~energizer@user/energizer) (Ping timeout: 268 seconds) |
2024-01-12 08:41:17 +0100 | davean | (~davean@davean.sciesnet.net) (Ping timeout: 268 seconds) |
2024-01-12 08:41:17 +0100 | RMSBach | (~guygastin@137.184.131.156) (Ping timeout: 268 seconds) |
2024-01-12 08:42:27 +0100 | dragestil_ | dragestil |
2024-01-12 08:43:53 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) |
2024-01-12 08:46:37 +0100 | nschoe | (~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea) (Ping timeout: 264 seconds) |
2024-01-12 08:47:13 +0100 | krei-se | (~krei-se@p508747fd.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2024-01-12 08:48:38 +0100 | krei-se | (~krei-se@p508747fd.dip0.t-ipconnect.de) |
2024-01-12 08:49:14 +0100 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) |
2024-01-12 08:50:16 +0100 | ft | (~ft@p4fc2a1d8.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2024-01-12 08:51:41 +0100 | vpan | (~vpan@212.117.1.172) |
2024-01-12 08:51:42 +0100 | FragByte | (~christian@user/fragbyte) (Read error: Connection reset by peer) |
2024-01-12 08:51:50 +0100 | FragByte_ | (~christian@user/fragbyte) |
2024-01-12 08:52:14 +0100 | FragByte_ | FragByte |
2024-01-12 08:52:17 +0100 | ft | (~ft@p4fc2a1d8.dip0.t-ipconnect.de) |
2024-01-12 08:54:47 +0100 | davean | (~davean@davean.sciesnet.net) |
2024-01-12 08:55:05 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-01-12 08:57:32 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-01-12 08:57:56 +0100 | mulk | (~mulk@p5b2dc93f.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
2024-01-12 08:58:02 +0100 | benkard | (~mulk@p5b2dc93f.dip0.t-ipconnect.de) |
2024-01-12 08:58:26 +0100 | benkard | mulk |
2024-01-12 08:58:56 +0100 | jjhoo_ | (~jahakala@user/jjhoo) (Remote host closed the connection) |
2024-01-12 09:07:01 +0100 | euleritian | (~euleritia@dynamic-046-114-175-211.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-01-12 09:07:19 +0100 | euleritian | (~euleritia@77.22.252.56) |
2024-01-12 09:08:27 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:acc5:3bfd:1c7c:868d) (Read error: Connection reset by peer) |
2024-01-12 09:08:49 +0100 | FragByte | (~christian@user/fragbyte) (Ping timeout: 264 seconds) |
2024-01-12 09:09:37 +0100 | FragByte | (~christian@user/fragbyte) |
2024-01-12 09:09:44 +0100 | acidjnk | (~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de) (Remote host closed the connection) |
2024-01-12 09:10:03 +0100 | ridcully | (~ridcully@p57b52ac5.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2024-01-12 09:10:09 +0100 | acidjnk | (~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de) |
2024-01-12 09:10:09 +0100 | igemnace | (~ian@user/igemnace) |
2024-01-12 09:10:09 +0100 | ft | (~ft@p4fc2a1d8.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2024-01-12 09:10:37 +0100 | krei-se | (~krei-se@p508747fd.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2024-01-12 09:11:48 +0100 | mulk | (~mulk@p5b2dc93f.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2024-01-12 09:11:56 +0100 | ft | (~ft@p4fc2a1d8.dip0.t-ipconnect.de) |
2024-01-12 09:12:14 +0100 | acidjnk | (~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de) (Remote host closed the connection) |
2024-01-12 09:12:37 +0100 | acidjnk | (~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de) |
2024-01-12 09:13:24 +0100 | mulk | (~mulk@p5b2dc93f.dip0.t-ipconnect.de) |
2024-01-12 09:13:44 +0100 | acidjnk | (~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de) (Remote host closed the connection) |
2024-01-12 09:14:24 +0100 | acidjnk | (~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de) |
2024-01-12 09:15:14 +0100 | acidjnk | (~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de) (Remote host closed the connection) |
2024-01-12 09:15:36 +0100 | nschoe | (~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea) |
2024-01-12 09:15:59 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.1.1) |
2024-01-12 09:16:05 +0100 | chele | (~chele@user/chele) |
2024-01-12 09:16:30 +0100 | acidjnk | (~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de) |
2024-01-12 09:16:44 +0100 | acidjnk | (~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de) (Remote host closed the connection) |
2024-01-12 09:16:57 +0100 | Lycurgus | (~georg@user/Lycurgus) |
2024-01-12 09:17:12 +0100 | ridcully | (~ridcully@p57b52ac5.dip0.t-ipconnect.de) |
2024-01-12 09:18:42 +0100 | gmg | (~user@user/gehmehgeh) |
2024-01-12 09:18:51 +0100 | harveypwca | (~harveypwc@2601:246:c280:7940:585a:99af:3e4c:209b) (Quit: Leaving) |
2024-01-12 09:19:04 +0100 | acidjnk | (~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de) |
2024-01-12 09:19:45 +0100 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2024-01-12 09:20:05 +0100 | FragByte | (~christian@user/fragbyte) (Quit: Quit) |
2024-01-12 09:20:21 +0100 | FragByte | (~christian@user/fragbyte) |
2024-01-12 09:20:29 +0100 | gmg | (~user@user/gehmehgeh) |
2024-01-12 09:21:17 +0100 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2024-01-12 09:22:03 +0100 | gmg | (~user@user/gehmehgeh) |
2024-01-12 09:22:13 +0100 | krei-se | (~krei-se@p508747fd.dip0.t-ipconnect.de) |
2024-01-12 09:24:06 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-01-12 09:26:51 +0100 | acidjnk_new | (~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de) |
2024-01-12 09:27:44 +0100 | acidjnk_new | (~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de) (Remote host closed the connection) |
2024-01-12 09:28:07 +0100 | acidjnk_new | (~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de) |
2024-01-12 09:28:29 +0100 | bilegeek | (~bilegeek@2600:1008:b008:c5b5:46b1:d2ea:c7b3:838c) |
2024-01-12 09:29:56 +0100 | acidjnk | (~acidjnk@p200300d6e72b93999cf477e55e9327dd.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2024-01-12 09:31:08 +0100 | bliminse | (~bliminse@user/bliminse) (Quit: leaving) |
2024-01-12 09:32:31 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Remote host closed the connection) |
2024-01-12 09:35:31 +0100 | zeka_ | (~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 +0100 | cfricke | (~cfricke@user/cfricke) |
2024-01-12 09:45:12 +0100 | fansly | (~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 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:acc5:3bfd:1c7c:868d) |
2024-01-12 09:47:19 +0100 | chexum | (~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 +0100 | chexum | (~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 +0100 | Square | (~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 +0100 | fendor | (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) |
2024-01-12 09:51:44 +0100 | bliminse | (~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 +0100 | kubrat | (~204-NB-00@154.14.244.146) (Ping timeout: 264 seconds) |
2024-01-12 09:56:38 +0100 | kubrat | (~204-NB-00@154.14.244.146) |
2024-01-12 10:06:25 +0100 | fansly | (~fansly@103.3.220.62) (Ping timeout: 264 seconds) |
2024-01-12 10:06:49 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) |
2024-01-12 10:08:24 +0100 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2024-01-12 10:15:51 +0100 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2024-01-12 10:20:43 +0100 | shriekingnoise | (~shrieking@186.137.175.87) (Ping timeout: 255 seconds) |
2024-01-12 10:21:53 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-01-12 10:22:42 +0100 | econo_ | (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
2024-01-12 10:22:47 +0100 | michalz | (~michalz@185.246.207.217) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-01-12 10:23:37 +0100 | nschoe | (~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea) (Ping timeout: 276 seconds) |
2024-01-12 10:31:22 +0100 | nschoe | (~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea) |
2024-01-12 10:37:42 +0100 | michalz | (~michalz@185.246.207.205) |
2024-01-12 10:48:52 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Ping timeout: 246 seconds) |
2024-01-12 10:51:57 +0100 | danse-nr3 | (~danse@151.43.217.212) |
2024-01-12 10:52:43 +0100 | rosco | (~rosco@175.136.156.77) (Quit: Lost terminal) |
2024-01-12 11:01:10 +0100 | cross | (~cross@spitfire.i.gajendra.net) (Ping timeout: 256 seconds) |
2024-01-12 11:01:54 +0100 | tzh | (~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz) |
2024-01-12 11:04:53 +0100 | AndreiDuma | (~textual@95.76.23.32) |
2024-01-12 11:06:53 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 240 seconds) |
2024-01-12 11:10:30 +0100 | mmhat | (~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 +0100 | famubu_ | (~julinuser@14.139.174.50) () |
2024-01-12 11:31:46 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 256 seconds) |
2024-01-12 11:33:25 +0100 | kubrat | (~204-NB-00@154.14.244.146) (Ping timeout: 264 seconds) |
2024-01-12 11:36:19 +0100 | phma | (~phma@host-67-44-208-126.hnremote.net) (Read error: Connection reset by peer) |
2024-01-12 11:37:30 +0100 | phma | (~phma@host-67-44-208-164.hnremote.net) |
2024-01-12 11:38:53 +0100 | mechap | (~mechap@user/mechap) |
2024-01-12 11:42:14 +0100 | Vq | (~vq@90-225-115-195-no122.tbcn.telia.com) (Ping timeout: 260 seconds) |
2024-01-12 11:44:50 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2024-01-12 11:44:53 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-01-12 11:53:45 +0100 | Vq | (~vq@90-225-115-195-no122.tbcn.telia.com) |
2024-01-12 11:56:54 +0100 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) |
2024-01-12 11:57:04 +0100 | __monty__ | (~toonn@user/toonn) |
2024-01-12 12:00:57 +0100 | Tisoxin | (~Ikosit@user/ikosit) |
2024-01-12 12:05:04 +0100 | kubrat | (~204-NB-00@154.14.244.146) |
2024-01-12 12:05:17 +0100 | meritamen | (~meritamen@user/meritamen) |
2024-01-12 12:11:59 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 260 seconds) |
2024-01-12 12:13:52 +0100 | lisbeths_ | (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2024-01-12 12:16:59 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-01-12 12:19:11 +0100 | sroso | (~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 +0100 | bilegeek | (~bilegeek@2600:1008:b008:c5b5:46b1:d2ea:c7b3:838c) (Quit: Leaving) |
2024-01-12 12:21:25 +0100 | mechap | (~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 +0100 | lortabac | (~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 +0100 | euleritian | (~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 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-01-12 12:41:36 +0100 | <int-e> | "inaccurate", maybe |
2024-01-12 12:43:54 +0100 | igemnace | (~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 +0100 | kubrat | (~204-NB-00@154.14.244.146) (Ping timeout: 245 seconds) |
2024-01-12 12:53:19 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-01-12 13:01:11 +0100 | CiaoSen | (~Jura@2a05:5800:2c5:6200:ca4b:d6ff:fec1:99da) (Ping timeout: 245 seconds) |
2024-01-12 13:01:31 +0100 | dtman34 | (~dtman34@2601:447:d000:93c9:11cd:3dc8:3c6c:d94e) (Ping timeout: 268 seconds) |
2024-01-12 13:03:32 +0100 | dtman34 | (~dtman34@c-76-156-89-180.hsd1.mn.comcast.net) |
2024-01-12 13:03:41 +0100 | danse-nr3 | (~danse@151.43.217.212) (Read error: Connection reset by peer) |
2024-01-12 13:08:37 +0100 | ph88 | (~ph88@2a02:8109:9e26:c800:5cfe:23d9:a7ed:ad2) |
2024-01-12 13:10:37 +0100 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 264 seconds) |
2024-01-12 13:11:47 +0100 | AndreiDuma | (~textual@95.76.23.32) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2024-01-12 13:19:43 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Ping timeout: 240 seconds) |
2024-01-12 13:21:05 +0100 | sawilagar | (~sawilagar@user/sawilagar) |
2024-01-12 13:21:19 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2024-01-12 13:24:39 +0100 | AndreiDuma | (~textual@95.76.23.32) |
2024-01-12 13:25:10 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds) |
2024-01-12 13:26:06 +0100 | euleritian | (~euleritia@dynamic-046-114-169-099.46.114.pool.telefonica.de) |
2024-01-12 13:26:38 +0100 | AndreiDuma | (~textual@95.76.23.32) (Client Quit) |
2024-01-12 13:28:13 +0100 | nschoe | (~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea) (Ping timeout: 276 seconds) |
2024-01-12 13:29:19 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) |
2024-01-12 13:33:25 +0100 | mikess | (~mikess@user/mikess) (Ping timeout: 264 seconds) |
2024-01-12 13:34:10 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Read error: Connection reset by peer) |
2024-01-12 13:39:45 +0100 | danse-nr3 | (~danse@151.57.163.252) |
2024-01-12 13:42:29 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2024-01-12 13:42:54 +0100 | kubrat | (~204-NB-00@154.14.244.146) |
2024-01-12 13:50:52 +0100 | AndreiDuma | (~textual@95.76.23.32) |
2024-01-12 13:51:04 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Quit: ZNC - https://znc.in) |
2024-01-12 13:51:25 +0100 | euleritian | (~euleritia@dynamic-046-114-169-099.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-01-12 13:51:43 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-01-12 13:51:51 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2024-01-12 13:56:43 +0100 | meritamen | (~meritamen@user/meritamen) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2024-01-12 13:58:46 +0100 | nschoe | (~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea) |
2024-01-12 13:59:11 +0100 | phma | (~phma@host-67-44-208-164.hnremote.net) (Read error: Connection reset by peer) |
2024-01-12 13:59:53 +0100 | phma | (phma@2001:5b0:215d:bf88:966b:4a18:e3bc:816e) |
2024-01-12 14:00:52 +0100 | Zmzi | (rscastilho@user/Zmzi) |
2024-01-12 14:01:17 +0100 | pounce | (~pounce@user/cute/pounce) |
2024-01-12 14:05:13 +0100 | nschoe | (~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea) (Ping timeout: 264 seconds) |
2024-01-12 14:05:14 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-01-12 14:05:39 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-01-12 14:09:16 +0100 | pounce | (~pounce@user/cute/pounce) (Remote host closed the connection) |
2024-01-12 14:11:53 +0100 | pounce | (~pounce@user/cute/pounce) |
2024-01-12 14:18:59 +0100 | ph88 | (~ph88@2a02:8109:9e26:c800:5cfe:23d9:a7ed:ad2) (Remote host closed the connection) |
2024-01-12 14:19:05 +0100 | Szilva | (~Szilva@91-83-10-47.pool.digikabel.hu) (Ping timeout: 260 seconds) |
2024-01-12 14:20:09 +0100 | <haskellbridge> | 14<mauke> 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<mauke> (I mean the orcish maneuver) |
2024-01-12 14:20:58 +0100 | meritamen | (~meritamen@user/meritamen) |
2024-01-12 14:21:16 +0100 | meritamen | (~meritamen@user/meritamen) (Client Quit) |
2024-01-12 14:21:20 +0100 | ph88 | (~ph88@2a02:8109:9e26:c800:ebe:cfcf:47b5:b54e) |
2024-01-12 14:21:55 +0100 | tv | (~tv@user/tv) (Ping timeout: 255 seconds) |
2024-01-12 14:23:42 +0100 | nschoe | (~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea) |
2024-01-12 14:26:58 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2024-01-12 14:28:28 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2024-01-12 14:28:39 +0100 | nschoe | (~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea) (Ping timeout: 256 seconds) |
2024-01-12 14:34:56 +0100 | Zmzi | (rscastilho@user/Zmzi) (Ping timeout: 245 seconds) |
2024-01-12 14:35:11 +0100 | tv | (~tv@user/tv) |
2024-01-12 14:36:01 +0100 | Zmzi | (rscastilho@189.61.140.215) |
2024-01-12 14:36:45 +0100 | Zmzi | (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 +0100 | Zmzi | (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 +0100 | nschoe | (~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea) |
2024-01-12 14:42:43 +0100 | eron | (~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 +0100 | euleritian | (~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 +0100 | Szilva | (~Szilva@77-234-80-135.pool.digikabel.hu) |
2024-01-12 14:51:04 +0100 | euleritian | (~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 +0100 | azimut | (~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 +0100 | mmhat | (~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 +0100 | fendor | (~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 +0100 | AndreiDuma | (~textual@95.76.23.32) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2024-01-12 15:18:48 +0100 | shriekingnoise | (~shrieking@186.137.175.87) |
2024-01-12 15:20:50 +0100 | igemnace | (~ian@user/igemnace) |
2024-01-12 15:21:32 +0100 | thegeekinside | (~thegeekin@189.217.90.224) |
2024-01-12 15:27:16 +0100 | AndreiDuma | (~textual@95.76.23.32) |
2024-01-12 15:29:38 +0100 | kubrat | (~204-NB-00@154.14.244.146) (Quit: leaving) |
2024-01-12 15:39:30 +0100 | eggplant_ | (~Eggplanta@2600:1700:38c5:d800:601b:b49a:1e36:7b08) |
2024-01-12 15:42:27 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:acc5:3bfd:1c7c:868d) (Ping timeout: 260 seconds) |
2024-01-12 15:44:06 +0100 | eron | (~eron@191.23.127.161) (Quit: Client closed) |
2024-01-12 15:47:19 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Ping timeout: 240 seconds) |
2024-01-12 15:49:02 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2024-01-12 15:54:47 +0100 | ph88 | (~ph88@2a02:8109:9e26:c800:ebe:cfcf:47b5:b54e) (Ping timeout: 256 seconds) |
2024-01-12 15:59:59 +0100 | rvalue | (~rvalue@user/rvalue) (Quit: ZNC - https://znc.in) |
2024-01-12 16:00:23 +0100 | rvalue | (~rvalue@user/rvalue) |
2024-01-12 16:03:32 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2024-01-12 16:03:33 +0100 | euleritian | (~euleritia@dynamic-046-114-169-099.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-01-12 16:03:35 +0100 | ystael | (~ystael@user/ystael) |
2024-01-12 16:04:56 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-01-12 16:06:31 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2024-01-12 16:06:59 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2024-01-12 16:09:59 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-01-12 16:10:35 +0100 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2024-01-12 16:10:35 +0100 | euleritian | (~euleritia@dynamic-046-114-169-099.46.114.pool.telefonica.de) |
2024-01-12 16:10:59 +0100 | euleritian | (~euleritia@dynamic-046-114-169-099.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-01-12 16:11:16 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-01-12 16:16:28 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 246 seconds) |
2024-01-12 16:19:33 +0100 | not_reserved | (~not_reser@185.153.177.191) |
2024-01-12 16:19:44 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2024-01-12 16:30:28 +0100 | inedia | (~irc@2602:2da:0:80:5054:ff:fe3c:8d93) (Ping timeout: 246 seconds) |
2024-01-12 16:30:48 +0100 | ft | (~ft@p4fc2a1d8.dip0.t-ipconnect.de) (Quit: leaving) |
2024-01-12 16:31:52 +0100 | not_reserved | (~not_reser@185.153.177.191) (Ping timeout: 250 seconds) |
2024-01-12 16:32:49 +0100 | danse-nr3 | (~danse@151.57.163.252) (Ping timeout: 264 seconds) |
2024-01-12 16:40:51 +0100 | cross | (~cross@spitfire.i.gajendra.net) |
2024-01-12 16:43:56 +0100 | vpan | (~vpan@212.117.1.172) (Quit: Leaving.) |
2024-01-12 16:44:31 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (Ping timeout: 256 seconds) |
2024-01-12 16:51:04 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
2024-01-12 16:55:35 +0100 | ystael | (~ystael@user/ystael) (Quit: Lost terminal) |
2024-01-12 16:57:00 +0100 | Zmzi | (rscastilho@user/Zmzi) (Remote host closed the connection) |
2024-01-12 16:57:29 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) |
2024-01-12 16:58:05 +0100 | ystael | (~ystael@user/ystael) |
2024-01-12 16:58:47 +0100 | not_reserved | (~not_reser@185.153.177.191) |
2024-01-12 17:11:11 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Remote host closed the connection) |
2024-01-12 17:12:50 +0100 | Sciencentistguy | (~sciencent@hacksoc/ordinary-member) (Remote host closed the connection) |
2024-01-12 17:12:59 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) |
2024-01-12 17:13:27 +0100 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2024-01-12 17:13:42 +0100 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2024-01-12 17:16:23 +0100 | AndreiDuma | (~textual@95.76.23.32) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2024-01-12 17:16:47 +0100 | danza | (~danza@151.57.163.252) |
2024-01-12 17:18:49 +0100 | ph88 | (~ph88@2a02:8109:9e26:c800:a702:f242:a4c5:2b6e) |
2024-01-12 17:19:14 +0100 | ph88 | (~ph88@2a02:8109:9e26:c800:a702:f242:a4c5:2b6e) (Client Quit) |
2024-01-12 17:22:51 +0100 | EsoAlgo811 | (~EsoAlgo@129.146.136.145) |
2024-01-12 17:23:27 +0100 | ft | (~ft@p4fc2a1d8.dip0.t-ipconnect.de) |
2024-01-12 17:24:01 +0100 | inedia | (~irc@2602:2da:0:80:5054:ff:fe3c:8d93) |
2024-01-12 17:25:46 +0100 | haskellbridge | (~haskellbr@069-135-003-034.biz.spectrum.com) (Remote host closed the connection) |
2024-01-12 17:29:56 +0100 | haskellbridge | (~haskellbr@069-135-003-034.biz.spectrum.com) |
2024-01-12 17:29:56 +0100 | ChanServ | +v haskellbridge |
2024-01-12 17:32:53 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds) |
2024-01-12 17:33:31 +0100 | euleritian | (~euleritia@dynamic-046-114-169-099.46.114.pool.telefonica.de) |
2024-01-12 17:35:10 +0100 | eggplant_ | (~Eggplanta@2600:1700:38c5:d800:601b:b49a:1e36:7b08) (Remote host closed the connection) |
2024-01-12 17:35:25 +0100 | euleritian | (~euleritia@dynamic-046-114-169-099.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-01-12 17:35:26 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:601b:b49a:1e36:7b08) |
2024-01-12 17:35:50 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-01-12 17:38:47 +0100 | econo_ | (uid147250@id-147250.tinside.irccloud.com) |
2024-01-12 17:39:48 +0100 | danza | (~danza@151.57.163.252) (Read error: Connection reset by peer) |
2024-01-12 17:48:21 +0100 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2024-01-12 17:55:01 +0100 | danza | (~danza@151.43.183.66) |
2024-01-12 17:56:50 +0100 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2024-01-12 17:57:35 +0100 | AndreiDuma | (~textual@95.76.23.32) |
2024-01-12 17:58:44 +0100 | AndreiDuma | (~textual@95.76.23.32) (Client Quit) |
2024-01-12 17:59:37 +0100 | AndreiDuma | (~textual@95.76.23.32) |
2024-01-12 17:59:49 +0100 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 260 seconds) |
2024-01-12 18:00:27 +0100 | chele | (~chele@user/chele) (Remote host closed the connection) |
2024-01-12 18:00:44 +0100 | target_i | (~target_i@217.175.14.39) |
2024-01-12 18:04:28 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-01-12 18:04:35 +0100 | euleritian | (~euleritia@dynamic-046-114-169-099.46.114.pool.telefonica.de) |
2024-01-12 18:04:58 +0100 | euleritian | (~euleritia@dynamic-046-114-169-099.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-01-12 18:05:16 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-01-12 18:16:06 +0100 | Katarushisu1 | (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Ping timeout: 260 seconds) |
2024-01-12 18:16:46 +0100 | not_reserved | (~not_reser@185.153.177.191) (Quit: Client closed) |
2024-01-12 18:17:13 +0100 | danza | (~danza@151.43.183.66) (Ping timeout: 264 seconds) |
2024-01-12 18:20:17 +0100 | rvalue | (~rvalue@user/rvalue) (Ping timeout: 256 seconds) |
2024-01-12 18:23:45 +0100 | Katarushisu1 | (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) |
2024-01-12 18:29:58 +0100 | rvalue | (~rvalue@user/rvalue) |
2024-01-12 18:32:32 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-01-12 18:33:11 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-01-12 18:35:05 +0100 | sajith_ | sajith |
2024-01-12 18:48:45 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
2024-01-12 18:49:29 +0100 | euleritian | (~euleritia@dynamic-046-114-169-099.46.114.pool.telefonica.de) |
2024-01-12 18:50:50 +0100 | not_reserved | (~not_reser@185.153.177.191) |
2024-01-12 18:53:50 +0100 | igemnace | (~ian@user/igemnace) (Remote host closed the connection) |
2024-01-12 19:01:05 +0100 | AndreiDuma | (~textual@95.76.23.32) (Ping timeout: 252 seconds) |
2024-01-12 19:02:32 +0100 | qqq | (~qqq@92.43.167.61) (Quit: Lost terminal) |
2024-01-12 19:07:09 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2024-01-12 19:12:40 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2024-01-12 19:13:14 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2024-01-12 19:17:21 +0100 | tzh | (~tzh@c-71-193-181-0.hsd1.or.comcast.net) |
2024-01-12 19:18:10 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2024-01-12 19:18:33 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2024-01-12 19:20:36 +0100 | a51 | (a51@gateway/vpn/protonvpn/a51) (Quit: WeeChat 4.1.2) |
2024-01-12 19:26:29 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-01-12 19:26:45 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2024-01-12 19:27:56 +0100 | qqq | (~qqq@92.43.167.61) |
2024-01-12 19:32:57 +0100 | Katarushisu1 | (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat) |
2024-01-12 19:32:57 +0100 | zmt01 | (~zmt00@user/zmt00) |
2024-01-12 19:36:16 +0100 | swamp_ | (~zmt00@user/zmt00) (Ping timeout: 256 seconds) |
2024-01-12 19:36:31 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2024-01-12 19:37:09 +0100 | Katarushisu1 | (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) |
2024-01-12 19:40:12 +0100 | czy | (~user@114.227.205.148) (Remote host closed the connection) |
2024-01-12 19:40:51 +0100 | czy | (~user@114.227.205.148) |
2024-01-12 19:47:49 +0100 | nschoe | (~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea) (Ping timeout: 276 seconds) |
2024-01-12 19:49:39 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-01-12 19:52:22 +0100 | trev | (~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 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) |
2024-01-12 20:17:13 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 264 seconds) |
2024-01-12 20:20:42 +0100 | thegeekinside | (~thegeekin@189.217.90.224) (Remote host closed the connection) |
2024-01-12 20:28:07 +0100 | sawilagar | (~sawilagar@user/sawilagar) (Ping timeout: 276 seconds) |
2024-01-12 20:32:34 +0100 | average | (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 +0100 | sm | wonders 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 +0100 | nschoe | (~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 +0100 | mikess | (~mikess@user/mikess) |
2024-01-12 21:06:25 +0100 | puke | (~puke@user/puke) (Ping timeout: 264 seconds) |
2024-01-12 21:11:52 +0100 | nschoe | (~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea) (Ping timeout: 255 seconds) |
2024-01-12 21:16:31 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-171.elisa-laajakaista.fi) |
2024-01-12 21:21:37 +0100 | nschoe | (~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea) |
2024-01-12 21:24:35 +0100 | a51 | (a51@gateway/vpn/protonvpn/a51) |
2024-01-12 21:25:43 +0100 | euleritian | (~euleritia@dynamic-046-114-169-099.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-01-12 21:26:02 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-01-12 21:28:31 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
2024-01-12 21:46:24 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:601b:b49a:1e36:7b08) (Remote host closed the connection) |
2024-01-12 21:48:27 +0100 | target_i | (~target_i@217.175.14.39) (Quit: leaving) |
2024-01-12 21:55:28 +0100 | danza | (~danza@151.43.174.128) |
2024-01-12 21:56:43 +0100 | inedia | (~irc@2602:2da:0:80:5054:ff:fe3c:8d93) (Ping timeout: 260 seconds) |
2024-01-12 22:00:56 +0100 | inedia | (~irc@2602:2da:0:80:5054:ff:fe3c:8d93) |
2024-01-12 22:08:18 +0100 | dsrt^ | (~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 +0100 | shailangsa_ | (~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 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:601b:b49a:1e36:7b08) |
2024-01-12 22:26:01 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) |
2024-01-12 22:29:49 +0100 | fansly | (~fansly@2001:448a:2010:476e:5d30:627d:73c3:a75f) (Ping timeout: 264 seconds) |
2024-01-12 22:33:57 +0100 | energizer_ | energizer |
2024-01-12 22:42:46 +0100 | bilegeek | (~bilegeek@2600:1008:b00c:d1f1:52d2:9d22:3a6a:a22c) |
2024-01-12 22:42:57 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2024-01-12 22:43:17 +0100 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) |
2024-01-12 22:43:39 +0100 | nschoe | (~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea) (Ping timeout: 268 seconds) |
2024-01-12 22:44:56 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 245 seconds) |
2024-01-12 22:51:12 +0100 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2024-01-12 22:53:12 +0100 | puke | (~puke@user/puke) |
2024-01-12 23:02:28 +0100 | michalz | (~michalz@185.246.207.205) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-01-12 23:05:06 +0100 | fansly | (~fansly@182.0.175.30) |
2024-01-12 23:08:48 +0100 | fansly | (~fansly@182.0.175.30) (Client Quit) |
2024-01-12 23:09:05 +0100 | fansly | (~fansly@182.0.145.78) |
2024-01-12 23:09:16 +0100 | nschoe | (~nschoe@2a01:e0a:8e:a190:bcb8:703f:d588:6cea) |
2024-01-12 23:11:32 +0100 | dolio | (~dolio@130.44.134.54) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-01-12 23:12:19 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2024-01-12 23:13:16 +0100 | dolio | (~dolio@130.44.134.54) |
2024-01-12 23:16:27 +0100 | dolio | (~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 +0100 | tromp | (~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 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-01-12 23:36:22 +0100 | random-jellyfish | (~developer@user/random-jellyfish) |
2024-01-12 23:39:08 +0100 | vi- | phrlk |
2024-01-12 23:39:16 +0100 | phrlk | vi- |
2024-01-12 23:40:34 +0100 | dolio | (~dolio@130.44.134.54) |
2024-01-12 23:40:55 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
2024-01-12 23:49:12 +0100 | Kuttenbrunzer | (~Kuttenbru@2a02:8108:8b80:1d48::8207) |
2024-01-12 23:50:27 +0100 | Kuttenbrunzer | (~Kuttenbru@2a02:8108:8b80:1d48::8207) (Client Quit) |
2024-01-12 23:50:52 +0100 | danza | (~danza@151.43.174.128) (Quit: Leaving) |