2024-02-21 00:01:05 +0100 | <fen_> | you get how this handling localness of instance gives rise to these considerations of strictness that motivate strengthening ? to !? |
2024-02-21 00:01:10 +0100 | <fen_> | and then you get the proposal |
2024-02-21 00:01:23 +0100 | <fen_> | and why i want to see these local scopes in action in an example |
2024-02-21 00:01:33 +0100 | <fen_> | does anyone actually want to help me write it? |
2024-02-21 00:02:56 +0100 | <fen_> | like, possibly, depending on if constraint continuations are the best way to do this, there could be a syntax for it also? |
2024-02-21 00:03:10 +0100 | <fen_> | i cant really understand it enough at that point |
2024-02-21 00:03:31 +0100 | <fen_> | im not used to constraint continuations, and cant even work with them enough to write the example |
2024-02-21 00:03:41 +0100 | <fen_> | i guess thats really what im needing help with |
2024-02-21 00:04:00 +0100 | <fen_> | other people here are much more experienced using continuations |
2024-02-21 00:04:45 +0100 | <fen_> | the stumbling block im having is that constraint continuations are the only way i know how to do this handling of local scope, and i dont know how to use them properly to write it |
2024-02-21 00:05:13 +0100 | <fen_> | maybe if someone that could understand what the constraint continuation was doing there, could propose an alternative that i could actually work with# |
2024-02-21 00:06:10 +0100 | <mauke> | I'm not convinced this actually means anything |
2024-02-21 00:06:19 +0100 | <fen_> | f g x = let !y = g x in let ?z = y in ... return the continuation... |
2024-02-21 00:06:37 +0100 | <fen_> | mauke: im not convinced your not generating averse commentary |
2024-02-21 00:06:45 +0100 | <mauke> | correct |
2024-02-21 00:06:59 +0100 | <fen_> | confirmed |
2024-02-21 00:07:06 +0100 | <mauke> | the alternative is silence |
2024-02-21 00:07:23 +0100 | <fen_> | how do you work with continuations normally, like how do you return one? |
2024-02-21 00:07:40 +0100 | <mauke> | what do you mean by continuations? |
2024-02-21 00:07:51 +0100 | <fen_> | (a->b)->b |
2024-02-21 00:07:56 +0100 | <fen_> | is a continuation which encodes a |
2024-02-21 00:08:30 +0100 | <fen_> | ou need an a to make a b so you must somehow have an a if you can make a b from a function making a from b |
2024-02-21 00:08:36 +0100 | <fen_> | b from a* |
2024-02-21 00:08:44 +0100 | <mauke> | that's the type of a function, which is a value, which is returned like any other value. ? |
2024-02-21 00:08:58 +0100 | <fen_> | i mean, how do you make that? |
2024-02-21 00:09:19 +0100 | <mauke> | are you asking how to write functions in haskell? |
2024-02-21 00:09:20 +0100 | <fen_> | f g x = let !y = g x in let ?z = y in \fz -> fz z |
2024-02-21 00:09:42 +0100 | <fen_> | % :t \g x = let !y = g x in let ?z = y in \fz -> fz z |
2024-02-21 00:09:42 +0100 | <yahb2> | <interactive>:1:6: error: parse error on input ‘=’ |
2024-02-21 00:09:51 +0100 | <mauke> | -> |
2024-02-21 00:09:52 +0100 | <fen_> | % :t \g x -> let !y = g x in let ?z = y in \fz -> fz z |
2024-02-21 00:09:52 +0100 | <yahb2> | <interactive>:1:29: error: parse error on input ‘?’ |
2024-02-21 00:10:06 +0100 | <fen_> | % :t \g x -> let !y = g x in let !z = y in \fz -> fz z |
2024-02-21 00:10:06 +0100 | <yahb2> | \g x -> let !y = g x in let !z = y in \fz -> fz z ; :: forall {p} {t1} {t2}. (p -> t1) -> p -> (t1 -> t2) -> t2 |
2024-02-21 00:10:26 +0100 | sudden | (~cat@user/sudden) (Ping timeout: 268 seconds) |
2024-02-21 00:10:41 +0100 | <fen_> | ((t1 -> t2) -> t2) is the returned constraint continuation |
2024-02-21 00:10:50 +0100 | <fen_> | how do you get it to turn on implicit params? |
2024-02-21 00:11:22 +0100 | <fen_> | % -XImplicitParams |
2024-02-21 00:11:22 +0100 | <yahb2> | <interactive>:223:2: error: ; • Data constructor not in scope: XImplicitParams ; • Perhaps you meant one of these: ; ‘ImplicitParams’ (imported from Language.Haskell.TH), ; ... |
2024-02-21 00:11:40 +0100 | <mauke> | % :set -XImplicitParams |
2024-02-21 00:11:40 +0100 | <yahb2> | <no output> |
2024-02-21 00:11:47 +0100 | <fen_> | % :t \g x = let !y = g x in let ?z = y in \fz -> fz z |
2024-02-21 00:11:47 +0100 | <yahb2> | <interactive>:1:6: error: parse error on input ‘=’ |
2024-02-21 00:11:52 +0100 | <fen_> | % :t \g x -> let !y = g x in let ?z = y in \fz -> fz z |
2024-02-21 00:11:53 +0100 | <yahb2> | <interactive>:1:49: error: Variable not in scope: z |
2024-02-21 00:12:12 +0100 | <fen_> | argh! |
2024-02-21 00:12:22 +0100 | <mauke> | % :t \g x -> let !y = g x in let ?z = y in \fz -> fz ?z |
2024-02-21 00:12:22 +0100 | <yahb2> | \g x -> let !y = g x in let ?z = y in \fz -> fz ?z ; :: forall {p} {t1} {t2}. (p -> t1) -> p -> (t1 -> t2) -> t2 |
2024-02-21 00:12:44 +0100 | <fen_> | you cant even capture the let bound variable as a returned output |
2024-02-21 00:12:51 +0100 | <fen_> | since it cant appear at term level after reflection |
2024-02-21 00:13:26 +0100 | <fen_> | % :t \g x -> let !y = g x in let ?z = y in \(fz :: ?z -> a) -> fz |
2024-02-21 00:13:26 +0100 | <yahb2> | <interactive>:1:50: error: parse error on input ‘->’ |
2024-02-21 00:13:46 +0100 | <fen_> | % :t \g x -> let !y = g x in let ?z = y in \(fz :: ?z => a) -> fz |
2024-02-21 00:13:46 +0100 | <yahb2> | <interactive>:1:50: error: parse error on input ‘=>’ |
2024-02-21 00:13:47 +0100 | yoo | (~yo0O0o@104.28.194.105) (Ping timeout: 264 seconds) |
2024-02-21 00:13:55 +0100 | <fen_> | fucks sake |
2024-02-21 00:14:09 +0100 | <fen_> | that would have been it |
2024-02-21 00:15:57 +0100 | <mauke> | % :t \g x -> \fz -> fz ?z |
2024-02-21 00:15:57 +0100 | <yahb2> | \g x -> \fz -> fz ?z ; :: forall {t1} {p1} {p2} {t2}. ; (?z::t1) => ; p1 -> p2 -> (t1 -> t2) -> t2 |
2024-02-21 00:16:34 +0100 | <fen_> | % :t ((\g x -> let !y = g x in let ?z = y in fz -> fz) :: (a->b) -> a -> ((?z::b=>c)->c)) |
2024-02-21 00:16:34 +0100 | <yahb2> | <interactive>:1:76: error: parse error on input ‘=>’ |
2024-02-21 00:16:55 +0100 | <fen_> | hmm, that might just be yahb |
2024-02-21 00:17:35 +0100 | <geekosaur> | if yahb doesn't like it then ghci doesn't like it |
2024-02-21 00:17:55 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2024-02-21 00:22:00 +0100 | yoo | (~yo0O0o@104.28.194.105) |
2024-02-21 00:22:05 +0100 | <geekosaur> | pretty sure you need a "forall" (or the implicit "forall" at the start of a type) to introduce a constraint |
2024-02-21 00:22:31 +0100 | <fen_> | f g x = (let !y = g x in let ?z = y in \fz -> fz) :: (a->b) -> a ->((?z::b=>c)->c) |
2024-02-21 00:22:36 +0100 | <fen_> | does not work |
2024-02-21 00:22:57 +0100 | <mauke> | if you intend ?z to stay open in the result, why are you binding it? |
2024-02-21 00:23:11 +0100 | <fen_> | the place its used |
2024-02-21 00:23:16 +0100 | <fen_> | its not with it defined |
2024-02-21 00:23:22 +0100 | <mauke> | huh? |
2024-02-21 00:23:25 +0100 | <fen_> | its usable if it can be provided |
2024-02-21 00:23:44 +0100 | <fen_> | the user writing a function awaits its arguments creation and does say nothing about its existence |
2024-02-21 00:24:18 +0100 | <fen_> | z does get used in the eval of fz btw |
2024-02-21 00:24:28 +0100 | <fen_> | thats why im trying to add this type sig |
2024-02-21 00:24:42 +0100 | <fen_> | it doesnt like constraints at lambdas apparently |
2024-02-21 00:24:53 +0100 | <fen_> | which is just great since these continuations everywhere with constraints |
2024-02-21 00:25:38 +0100 | sudden | (~cat@user/sudden) |
2024-02-21 00:25:49 +0100 | <mauke> | none of that makes any sense to me |
2024-02-21 00:26:09 +0100 | <mauke> | % :t ?x |
2024-02-21 00:26:09 +0100 | <yahb2> | ?x :: forall {t}. (?x::t) => t |
2024-02-21 00:26:13 +0100 | mud | (~mud@user/kadoban) |
2024-02-21 00:26:20 +0100 | <mauke> | here ?x is open, so it appears as a constraint in the type signature |
2024-02-21 00:26:29 +0100 | <mauke> | % :t let ?x = 42 in ?x |
2024-02-21 00:26:29 +0100 | <yahb2> | let ?x = 42 in ?x :: forall {p}. Num p => p |
2024-02-21 00:26:42 +0100 | <fen_> | right, the place we use the variable has it open, like a function argument, thats what i was saying |
2024-02-21 00:26:52 +0100 | <mauke> | here ?x is bound internally, so it doesn't show up in the type |
2024-02-21 00:27:08 +0100 | <fen_> | we want to return a place where the bound implicit param can be used |
2024-02-21 00:27:24 +0100 | <fen_> | (?z::b=>c)->c |
2024-02-21 00:27:26 +0100 | <mauke> | in your code you bind ?z, but you also want it to appear in the type somehow? |
2024-02-21 00:27:34 +0100 | <fen_> | it has to |
2024-02-21 00:27:40 +0100 | <fen_> | its not an argument to fz |
2024-02-21 00:27:44 +0100 | <fen_> | its an implicit param |
2024-02-21 00:27:48 +0100 | <mauke> | ? |
2024-02-21 00:27:53 +0100 | <fen_> | the type of fz has to read; |
2024-02-21 00:28:07 +0100 | yoo | (~yo0O0o@104.28.194.105) (Ping timeout: 256 seconds) |
2024-02-21 00:28:08 +0100 | <fen_> | fz :: (?z::b=>c)->c |
2024-02-21 00:28:17 +0100 | <mauke> | that's not a type |
2024-02-21 00:28:30 +0100 | <fen_> | sure it is |
2024-02-21 00:28:42 +0100 | <mauke> | % :t undefined :: (?z::b=>c)->c |
2024-02-21 00:28:42 +0100 | <yahb2> | <interactive>:1:20: error: parse error on input ‘=>’ |
2024-02-21 00:28:54 +0100 | <fen_> | yeah i know yahb doesnt like it |
2024-02-21 00:29:01 +0100 | <mauke> | because it's a syntax error |
2024-02-21 00:29:08 +0100 | <fen_> | we wouldnt have gotten very far with constraint continuations if you couldnt write that |
2024-02-21 00:29:19 +0100 | <mauke> | what, syntax errors? |
2024-02-21 00:29:40 +0100 | <fen_> | honestly it worked we did huge amounts... theres pastes that went down with the old pastebin |
2024-02-21 00:30:03 +0100 | <mauke> | % :t undefined :: (?z :: b) => (b -> c) -> c |
2024-02-21 00:30:03 +0100 | <yahb2> | undefined :: (?z :: b) => (b -> c) -> c ; :: forall b c. (?z::b) => (b -> c) -> c |
2024-02-21 00:30:27 +0100 | <mauke> | % :t ($ ?z) |
2024-02-21 00:30:27 +0100 | <yahb2> | ($ ?z) :: forall {a} {b}. (?z::a) => (a -> b) -> b |
2024-02-21 00:30:40 +0100 | <fen_> | this is no good |
2024-02-21 00:30:46 +0100 | <fen_> | a is not a term level argument |
2024-02-21 00:31:20 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) |
2024-02-21 00:31:42 +0100 | <fen_> | % :t undefined :: (forall a b. Bool a => b) |
2024-02-21 00:31:42 +0100 | <yahb2> | <interactive>:1:27: error: ; • Expected kind ‘k0 -> Constraint’, but ‘Bool’ has kind ‘*’ ; • In an expression type signature: (forall a b. Bool a => b) ; In the expression: undefined ... |
2024-02-21 00:31:52 +0100 | <fen_> | % :t undefined :: (forall a b. Either a => b) |
2024-02-21 00:31:52 +0100 | <yahb2> | <interactive>:1:27: error: ; • Expecting one more argument to ‘Either a’ ; Expected a constraint, but ‘Either a’ has kind ‘* -> *’ ; • In an expression type signature: (forall a b. Ei... |
2024-02-21 00:32:06 +0100 | <fen_> | % :t undefined :: (forall a b. Ord a => b) |
2024-02-21 00:32:06 +0100 | <yahb2> | <interactive>:1:14: error: ; • Could not deduce (Ord a0) ; arising from a type ambiguity check for ; an expression type signature ; from the context: Ord a ; bound... |
2024-02-21 00:32:13 +0100 | liskin | (~liskin@xmonad/liskin) (Ping timeout: 264 seconds) |
2024-02-21 00:32:40 +0100 | <fen_> | % :t undefined :: forall a. Ord a => (forall b. Ord a => b) |
2024-02-21 00:32:40 +0100 | <yahb2> | <interactive>:1:14: error: ; • Could not deduce (Ord a0) ; arising from a type ambiguity check for ; an expression type signature ; from the context: Ord a ; bound... |
2024-02-21 00:32:52 +0100 | <fen_> | what a load of shit |
2024-02-21 00:34:00 +0100 | <fen_> | can we use dictionaries? |
2024-02-21 00:34:34 +0100 | <fen_> | https://kseo.github.io/posts/2017-02-06-reified-dictionaries.html |
2024-02-21 00:36:49 +0100 | <fen_> | % data D a b where D :: ?z::a => b -> D a b |
2024-02-21 00:36:49 +0100 | <yahb2> | <interactive>:265:29: error: parse error on input ‘=>’ |
2024-02-21 00:37:05 +0100 | <fen_> | % data D a b where D :: (?z::a) => b -> D a b |
2024-02-21 00:37:05 +0100 | <yahb2> | <no output> |
2024-02-21 00:38:17 +0100 | <fen_> | % :t \g x -> let !y = g x in let ?z = y in \(fz :: (?z::b) => a) -> fz |
2024-02-21 00:38:17 +0100 | <yahb2> | <interactive>:1:39: error: ; • Couldn't match expected type ‘p1’ ; with actual type ‘((?z::t) => a) -> a’ ; Cannot equate type variable ‘p1’ ; with a type involvin... |
2024-02-21 00:39:35 +0100 | <fen_> | % :t ((\g x -> let !y = g x in let ?z = y in fz -> fz) :: (a->b) -> a -> (((?z::b)=>c)->c)) |
2024-02-21 00:39:35 +0100 | <yahb2> | <interactive>:1:3: error: ; View pattern in expression context: ; \ g x -> let !y = ... in let ?z = y in fz -> fz |
2024-02-21 00:40:06 +0100 | <fen_> | i dont know what its complaining about now |
2024-02-21 00:40:34 +0100 | liskin | (~liskin@xmonad/liskin) |
2024-02-21 00:40:54 +0100 | <fen_> | % :t ((\g x -> let !y = g x in let ?z = y in D) |
2024-02-21 00:40:54 +0100 | <yahb2> | <interactive>:1:43: error: ; parse error (possibly incorrect indentation or mismatched brackets) |
2024-02-21 00:41:02 +0100 | <fen_> | % :t (\g x -> let !y = g x in let ?z = y in D) |
2024-02-21 00:41:02 +0100 | <yahb2> | (\g x -> let !y = g x in let ?z = y in D) ; :: forall {p} {a} {b}. (p -> a) -> p -> b -> D a b |
2024-02-21 00:41:25 +0100 | <fen_> | huh, it loses track of the implict parameter constrint because of the dictionary |
2024-02-21 00:41:30 +0100 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) (Read error: Connection reset by peer) |
2024-02-21 00:42:03 +0100 | <fen_> | but presumably that dictionary now contains the correctly strictly bound reflected data |
2024-02-21 00:42:17 +0100 | <fen_> | so it looks like this double let binding appears in smart constructors for now |
2024-02-21 00:42:29 +0100 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) |
2024-02-21 00:42:31 +0100 | <fen_> | of weird implicit dictionary datatype entries |
2024-02-21 00:42:36 +0100 | <fen_> | whew, this was a slog |
2024-02-21 00:42:42 +0100 | <fen_> | thanks for everyones patience |
2024-02-21 00:43:08 +0100 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
2024-02-21 00:43:27 +0100 | <fen_> | annoyingly though, this means there are many pottential different versions |
2024-02-21 00:43:38 +0100 | <fen_> | the scope itself would restrict that to one |
2024-02-21 00:44:11 +0100 | <fen_> | like, constructors are the worst place to put them! |
2024-02-21 00:44:21 +0100 | <fen_> | if you want everything constructed to use the same data |
2024-02-21 00:44:53 +0100 | <fen_> | so suggest making the constructor take a strict implicit dictionary |
2024-02-21 00:45:10 +0100 | <fen_> | that way this can be passed around to all the constructors |
2024-02-21 00:45:22 +0100 | <fen_> | unsuring the universal computed data is already evaluated |
2024-02-21 00:47:00 +0100 | <fen_> | ie rather than making the copnstructor implicity constrained |
2024-02-21 00:47:24 +0100 | <fen_> | you just have a datatype entry which is a strictly constructed implicit dictionary |
2024-02-21 00:47:29 +0100 | <fen_> | im proud of that |
2024-02-21 00:48:05 +0100 | <fen_> | thanks for the help yo, there is no way i could have imagined that on my own |
2024-02-21 00:48:18 +0100 | <fen_> | i swear. sorry i consist of a deluge |
2024-02-21 00:48:50 +0100 | <fen_> | anyway, bring on the !? extension |
2024-02-21 00:50:28 +0100 | yoo | (~yo0O0o@104.28.194.104) |
2024-02-21 00:53:07 +0100 | mmhat | (~mmh@p200300f1c70b44daee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.2.1) |
2024-02-21 01:01:49 +0100 | nuh^ | (~cd@c-98-242-74-66.hsd1.ga.comcast.net) |
2024-02-21 01:05:59 +0100 | rvalue | (~rvalue@user/rvalue) (Ping timeout: 264 seconds) |
2024-02-21 01:06:19 +0100 | Vq | (~vq@81-231-76-8-no600.tbcn.telia.com) (Ping timeout: 246 seconds) |
2024-02-21 01:06:45 +0100 | segfaultfizzbuzz | (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds) |
2024-02-21 01:08:14 +0100 | <fen_> | i have serious ethical concerns about a light touch approach and do feel its important to be able to say that |
2024-02-21 01:08:21 +0100 | Vq | (~vq@81-231-76-8-no600.tbcn.telia.com) |
2024-02-21 01:10:01 +0100 | <fen_> | also, no implicit params at classes does not preclude dictionary use, which allows even that instances can be strict |
2024-02-21 01:10:33 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-02-21 01:10:37 +0100 | yoo | (~yo0O0o@104.28.194.104) (Ping timeout: 264 seconds) |
2024-02-21 01:11:43 +0100 | <fen_> | i cant imagine that its a case where its appearence in an instance would somehow lead to reevlauation by somehow sidestepping the strict reflection, by multiple construction of the reflecting object by function dereferencing |
2024-02-21 01:12:29 +0100 | rvalue | (~rvalue@user/rvalue) |
2024-02-21 01:12:30 +0100 | <fen_> | comparing if the strict implicit dictionary appears in a datatype or in a class |
2024-02-21 01:12:58 +0100 | Vq | (~vq@81-231-76-8-no600.tbcn.telia.com) (Ping timeout: 246 seconds) |
2024-02-21 01:13:24 +0100 | <fen_> | i hope it works btw, because the actual naming in the dictionary of the value is hidden in the outer datatype |
2024-02-21 01:14:08 +0100 | Vq | (~vq@81-231-76-8-no600.tbcn.telia.com) |
2024-02-21 01:14:30 +0100 | <fen_> | otherwise it does seem useful to use the class mechanism to access a declaration of global availability |
2024-02-21 01:15:37 +0100 | <fen_> | though it confronts the fact that the instance usage could lead to recomputation |
2024-02-21 01:17:18 +0100 | <fen_> | i think i fail to be able to make strong theoretic guarantees with these dictionaries |
2024-02-21 01:17:53 +0100 | <fen_> | and not to implement uniqueness scoping as desired |
2024-02-21 01:19:01 +0100 | <fen_> | i cant map strictness at creation through to uniquness at all... |
2024-02-21 01:20:44 +0100 | <fen_> | even if it tries to hijack the global uniqueness of an instance, if this contains a dictionary that can be multiply constructed but still strict, which does nothing to prevent the multiple construction |
2024-02-21 01:20:58 +0100 | <fen_> | you want the strict reflection to be the only reflection |
2024-02-21 01:21:12 +0100 | segfaultfizzbuzz | (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) |
2024-02-21 01:22:38 +0100 | <fen_> | do you think if an instance referenced something that is a strictly reflected dictionary eg defined at top level, that this would be enough to make it unique and global and strict |
2024-02-21 01:22:45 +0100 | <fen_> | ? |
2024-02-21 01:23:55 +0100 | <fen_> | seems like the top level nature of the functions that must be available during the definition at the instance, constrains the dictionary reference also to be top level |
2024-02-21 01:24:08 +0100 | <fen_> | im not sure if the question remains as to its pottential reevaluation |
2024-02-21 01:25:29 +0100 | <fen_> | or if because it occurs within an instance that we can be sure it only gets constructed the correct way through the strict constructor only once |
2024-02-21 01:26:17 +0100 | <fen_> | i think there is no way of saying that it couldnt call it seveeral times, eg if it had a rangling second argument |
2024-02-21 01:26:27 +0100 | <fen_> | ranging* |
2024-02-21 01:27:20 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2024-02-21 01:27:21 +0100 | <fen_> | datatypes were no good because there can be many of them constructed, even if they reference a dictionary which in some other way could be made unique |
2024-02-21 01:28:18 +0100 | <fen_> | but classes seem no better, because the instances themselves seem to offer no guarantee against repeated construction of the supposedly unique strict reflection |
2024-02-21 01:29:23 +0100 | <fen_> | basically both classes and datatypes can range in several arguments and trigger reevaluation of the unique dictionary |
2024-02-21 01:30:22 +0100 | <monochrom> | OK I think we're done here. You have been offered a lot of options for moving your monologue to better places, and yet you still exhibit your entitlement attitude and re-instate it every time. |
2024-02-21 01:30:30 +0100 | ChanServ | +o monochrom |
2024-02-21 01:30:32 +0100 | monochrom | +b *!*@84.68.80.95 |
2024-02-21 01:30:32 +0100 | fen_ | monochrom (fen_) |
2024-02-21 01:31:19 +0100 | <monochrom> | (It helps that I'm on the second glass of wine.) |
2024-02-21 01:32:48 +0100 | monochrom | -o monochrom |
2024-02-21 01:33:07 +0100 | <yushyin> | +1 wine |
2024-02-21 01:38:26 +0100 | jargon | (~jargon@157.sub-174-205-162.myvzw.com) |
2024-02-21 01:57:23 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
2024-02-21 01:58:26 +0100 | euleritian | (~euleritia@dynamic-176-006-190-101.176.6.pool.telefonica.de) |
2024-02-21 02:03:35 +0100 | pointlessslippe1 | (~pointless@212.82.82.3) (Ping timeout: 264 seconds) |
2024-02-21 02:10:22 +0100 | <probie> | I'm still not actually sure what the problem fen_ was trying to solve was |
2024-02-21 02:10:42 +0100 | tabemann | (~tabemann@2600:1700:7990:24e0:67b0:8842:12fe:e228) (Remote host closed the connection) |
2024-02-21 02:11:01 +0100 | tabemann | (~tabemann@2600:1700:7990:24e0:a91b:78d:f890:8e7c) |
2024-02-21 02:11:20 +0100 | pointlessslippe1 | (~pointless@212.82.82.3) |
2024-02-21 02:12:56 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds) |
2024-02-21 02:16:55 +0100 | segfaultfizzbuzz | (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Ping timeout: 256 seconds) |
2024-02-21 02:18:02 +0100 | yoo | (~yo0O0o@104.28.194.104) |
2024-02-21 02:19:32 +0100 | segfaultfizzbuzz | (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) |
2024-02-21 02:20:27 +0100 | mud | (~mud@user/kadoban) (Quit: quit) |
2024-02-21 02:28:07 +0100 | kaskal- | (~kaskal@2001:4bb8:2d2:2a03:3b9f:beb4:402d:c396) |
2024-02-21 02:28:15 +0100 | kaskal | (~kaskal@2001:4bb8:2c3:39c1:ff3f:d58:4fd9:e10c) (Ping timeout: 268 seconds) |
2024-02-21 02:32:35 +0100 | <Axman6> | tomsmeding: is paste down at the moment? I can't load it |
2024-02-21 02:32:46 +0100 | <geekosaur> | I think they're in bed by now |
2024-02-21 02:33:06 +0100 | <geekosaur> | (shows away in my user list) |
2024-02-21 02:33:40 +0100 | <c_wraith> | it does seem to not be responding, so.. yeah, find a different pastebin for the moment |
2024-02-21 02:35:19 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) |
2024-02-21 02:35:39 +0100 | <Axman6> | resorted to sending files in chat, probably for the best iwth $work stuff =) |
2024-02-21 02:38:01 +0100 | dolio | (~dolio@130.44.134.54) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-02-21 02:39:43 +0100 | puke | Guest9273 |
2024-02-21 02:39:43 +0100 | pyooque | (~puke@user/puke) |
2024-02-21 02:39:43 +0100 | Guest9273 | (~puke@user/puke) (Killed (copper.libera.chat (Nickname regained by services))) |
2024-02-21 02:39:43 +0100 | pyooque | puke |
2024-02-21 02:40:01 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 264 seconds) |
2024-02-21 02:40:28 +0100 | yoo | (~yo0O0o@104.28.194.104) (Ping timeout: 246 seconds) |
2024-02-21 02:41:02 +0100 | puke | (~puke@user/puke) (Max SendQ exceeded) |
2024-02-21 02:41:06 +0100 | Square | (~Square@user/square) |
2024-02-21 02:41:30 +0100 | puke | (~puke@user/puke) |
2024-02-21 02:48:15 +0100 | dolio | (~dolio@130.44.134.54) |
2024-02-21 02:52:03 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds) |
2024-02-21 02:52:26 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2024-02-21 02:53:27 +0100 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) |
2024-02-21 02:59:58 +0100 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) |
2024-02-21 03:02:37 +0100 | pointlessslippe1 | (~pointless@212.82.82.3) (Ping timeout: 260 seconds) |
2024-02-21 03:04:28 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
2024-02-21 03:05:19 +0100 | <EvanR> | speaking of neural networks maybe fen was an AI trained on haskell stuff |
2024-02-21 03:05:38 +0100 | <geekosaur> | fen predates LLMs |
2024-02-21 03:05:54 +0100 | <geekosaur> | they got banned on freenode for this kind of behavior |
2024-02-21 03:06:22 +0100 | otto_s | (~user@p4ff27fbc.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
2024-02-21 03:07:25 +0100 | xff0x | (~xff0x@ai082039.d.east.v6connect.net) (Ping timeout: 268 seconds) |
2024-02-21 03:08:04 +0100 | yoo | (~yo0O0o@104.28.226.105) |
2024-02-21 03:08:15 +0100 | otto_s | (~user@p5b04434a.dip0.t-ipconnect.de) |
2024-02-21 03:28:41 +0100 | yoo | (~yo0O0o@104.28.226.105) (Ping timeout: 268 seconds) |
2024-02-21 03:29:08 +0100 | yoo | (~yo0O0o@104.28.226.104) |
2024-02-21 03:30:44 +0100 | <haskellbridge> | <irregularsphere> fen's kind of like me to be honest, sometimes i monologue like that |
2024-02-21 03:31:32 +0100 | <haskellbridge> | <irregularsphere> unfortunately irc can't delete messages so i can't keep my record clean here |
2024-02-21 03:32:31 +0100 | <geekosaur> | 'sokay, I just almost did the same thing in -offtopic 🙂 |
2024-02-21 03:33:32 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
2024-02-21 03:34:09 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) |
2024-02-21 03:51:05 +0100 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
2024-02-21 03:55:31 +0100 | krei-se | (~krei-se@p508747fd.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
2024-02-21 03:55:31 +0100 | synchromesh | (~synchrome@2407:7000:aa2d:4e00:9cf7:efcb:5efd:a99) (Read error: Connection reset by peer) |
2024-02-21 03:56:29 +0100 | synchromesh | (~synchrome@2407:7000:aa2d:4e00:9cf7:efcb:5efd:a99) |
2024-02-21 03:56:43 +0100 | krei-se | (~krei-se@p5085d2ec.dip0.t-ipconnect.de) |
2024-02-21 04:04:27 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) |
2024-02-21 04:08:21 +0100 | masterbuilder | (~quassel@user/masterbuilder) (Ping timeout: 272 seconds) |
2024-02-21 04:08:30 +0100 | masterbuilder | (~quassel@user/masterbuilder) |
2024-02-21 04:12:22 +0100 | bilegeek | (~bilegeek@2600:1008:b08d:b388:d7ce:bf13:369f:42d9) |
2024-02-21 04:20:51 +0100 | sroso | (~sroso@user/SrOso) |
2024-02-21 04:22:11 +0100 | td_ | (~td@i5387090B.versanet.de) (Ping timeout: 264 seconds) |
2024-02-21 04:23:39 +0100 | td_ | (~td@i53870902.versanet.de) |
2024-02-21 04:27:54 +0100 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 255 seconds) |
2024-02-21 04:39:43 +0100 | yoo | (~yo0O0o@104.28.226.104) (Ping timeout: 256 seconds) |
2024-02-21 04:40:20 +0100 | yoo | (~yo0O0o@104.28.226.108) |
2024-02-21 04:40:44 +0100 | mulk | (~mulk@pd95147b3.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2024-02-21 04:44:15 +0100 | hays | (rootvegeta@fsf/member/hays) |
2024-02-21 04:44:48 +0100 | yooo | (~yo0O0o@104.28.226.104) |
2024-02-21 04:45:02 +0100 | igemnace | (~ian@user/igemnace) |
2024-02-21 04:45:57 +0100 | yoo | (~yo0O0o@104.28.226.108) (Ping timeout: 256 seconds) |
2024-02-21 04:46:16 +0100 | mulk | (~mulk@p5b2dc008.dip0.t-ipconnect.de) |
2024-02-21 04:56:29 +0100 | segfaultfizzbuzz | (~segfaultf@23-93-189-95.fiber.dynamic.sonic.net) (Quit: segfaultfizzbuzz) |
2024-02-21 04:58:11 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 264 seconds) |
2024-02-21 04:58:45 +0100 | yooo | (~yo0O0o@104.28.226.104) (Changing host) |
2024-02-21 04:58:45 +0100 | yooo | (~yo0O0o@user/mobivme) |
2024-02-21 05:12:44 +0100 | euleritian | (~euleritia@dynamic-176-006-190-101.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-02-21 05:13:02 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-02-21 05:25:32 +0100 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2024-02-21 05:37:05 +0100 | aforemny_ | (~aforemny@2001:9e8:6cec:d900:9d72:673f:b1f3:dc04) (Ping timeout: 260 seconds) |
2024-02-21 05:37:17 +0100 | aforemny | (~aforemny@2001:9e8:6cd1:9700:269c:3e5b:c88d:39e2) |
2024-02-21 05:37:24 +0100 | nuh^ | (~cd@c-98-242-74-66.hsd1.ga.comcast.net) (Remote host closed the connection) |
2024-02-21 05:45:53 +0100 | thegeekinside | (~thegeekin@189.217.83.221) (Read error: Connection reset by peer) |
2024-02-21 05:46:11 +0100 | ski | (~ski@ext-1-033.eduroam.chalmers.se) (Ping timeout: 252 seconds) |
2024-02-21 05:46:46 +0100 | yooo | (~yo0O0o@user/mobivme) (Remote host closed the connection) |
2024-02-21 05:47:44 +0100 | jargon | (~jargon@157.sub-174-205-162.myvzw.com) (Remote host closed the connection) |
2024-02-21 05:50:03 +0100 | jargon | (~jargon@157.sub-174-205-162.myvzw.com) |
2024-02-21 05:57:15 +0100 | Luj | (~Luj@2a01:e0a:5f9:9681:f767:82a3:7de:1864) (Quit: Ping timeout (120 seconds)) |
2024-02-21 05:57:34 +0100 | Luj | (~Luj@2a01:e0a:5f9:9681:535f:4048:fd0:e283) |
2024-02-21 05:57:35 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-02-21 05:57:43 +0100 | euleritian | (~euleritia@dynamic-176-006-190-101.176.6.pool.telefonica.de) |
2024-02-21 05:58:05 +0100 | euleritian | (~euleritia@dynamic-176-006-190-101.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-02-21 05:58:23 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-02-21 06:26:00 +0100 | ell | (~ellie@user/ellie) (Quit: Leaving) |
2024-02-21 06:26:36 +0100 | julie_pilgrim | (~julie_pil@user/julie-pilgrim/x-1240752) |
2024-02-21 06:32:37 +0100 | ski | (~ski@ext-1-033.eduroam.chalmers.se) |
2024-02-21 06:32:49 +0100 | _3xistence | (~existence@176.254.244.83) (Ping timeout: 264 seconds) |
2024-02-21 06:32:52 +0100 | rosco | (~rosco@175.136.156.77) |
2024-02-21 06:34:50 +0100 | raym | (~ray@user/raym) |
2024-02-21 06:34:58 +0100 | jjhoo | (jahakala@user/jjhoo) |
2024-02-21 06:36:04 +0100 | rosco | (~rosco@175.136.156.77) (Read error: Connection reset by peer) |
2024-02-21 06:36:28 +0100 | oneeyedalien | (~oneeyedal@user/oneeyedalien) |
2024-02-21 06:36:31 +0100 | julie_pilgrim | (~julie_pil@user/julie-pilgrim/x-1240752) (Remote host closed the connection) |
2024-02-21 06:37:32 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
2024-02-21 06:39:58 +0100 | pavonia | (~user@user/siracusa) |
2024-02-21 06:56:55 +0100 | bilegeek | (~bilegeek@2600:1008:b08d:b388:d7ce:bf13:369f:42d9) (Quit: Leaving) |
2024-02-21 07:02:23 +0100 | tri | (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection) |
2024-02-21 07:04:39 +0100 | exolight | (~exolight@176.254.244.83) |
2024-02-21 07:05:58 +0100 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
2024-02-21 07:08:04 +0100 | michalz | (~michalz@185.246.207.197) |
2024-02-21 07:08:16 +0100 | michalz | (~michalz@185.246.207.197) (Client Quit) |
2024-02-21 07:11:06 +0100 | michalz | (~michalz@185.246.207.215) |
2024-02-21 07:11:26 +0100 | elbear | (~lucian@188.24.178.66) |
2024-02-21 07:17:42 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2024-02-21 07:23:27 +0100 | danza | (~francesco@151.43.184.190) |
2024-02-21 07:25:39 +0100 | bliminse | (~bliminse@user/bliminse) (Quit: leaving) |
2024-02-21 07:30:38 +0100 | thegeekinside | (~thegeekin@189.217.83.221) |
2024-02-21 07:32:39 +0100 | acidjnk | (~acidjnk@p200300d6e737e789f1d9672538a89ef2.dip0.t-ipconnect.de) |
2024-02-21 07:34:48 +0100 | bliminse | (~bliminse@user/bliminse) |
2024-02-21 07:36:54 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds) |
2024-02-21 07:46:15 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2024-02-21 07:50:56 +0100 | raym | (~ray@user/raym) (Quit: brb) |
2024-02-21 07:55:55 +0100 | thegeekinside | (~thegeekin@189.217.83.221) (Read error: Connection reset by peer) |
2024-02-21 07:56:27 +0100 | jtza8 | (~user@user/jtza8) |
2024-02-21 07:58:39 +0100 | csn | (~csn@115.96.217.73) |
2024-02-21 07:59:08 +0100 | <csn> | hi how do it include hakyll library on path.. i am running windows 11 |
2024-02-21 08:16:59 +0100 | Lycurgus | (~georg@user/Lycurgus) |
2024-02-21 08:18:03 +0100 | elbear | (~lucian@188.24.178.66) (Quit: leaving) |
2024-02-21 08:28:02 +0100 | Square3 | (~Square4@user/square) |
2024-02-21 08:30:33 +0100 | Square | (~Square@user/square) (Ping timeout: 272 seconds) |
2024-02-21 08:31:45 +0100 | <haskellbridge> | <sm> are you using stack ? |
2024-02-21 08:32:24 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds) |
2024-02-21 08:33:25 +0100 | euleritian | (~euleritia@dynamic-176-006-179-235.176.6.pool.telefonica.de) |
2024-02-21 08:34:52 +0100 | euleritian | (~euleritia@dynamic-176-006-179-235.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-02-21 08:35:09 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-02-21 08:38:18 +0100 | <haskellbridge> | <sm> I really, really wish I had not used spaces in account names |
2024-02-21 08:38:25 +0100 | <haskellbridge> | <sm> oops |
2024-02-21 08:45:18 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-02-21 08:47:01 +0100 | danza | (~francesco@151.43.184.190) (Quit: Leaving) |
2024-02-21 08:53:53 +0100 | <EvanR> | human civilization quantum leap 1, invent zero |
2024-02-21 08:54:02 +0100 | <EvanR> | quantum leap 2, remove space |
2024-02-21 08:54:08 +0100 | <EvanR> | and smart quotes |
2024-02-21 08:54:45 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
2024-02-21 08:55:24 +0100 | euleritian | (~euleritia@dynamic-176-006-179-235.176.6.pool.telefonica.de) |
2024-02-21 08:59:06 +0100 | oneeyedalien_ | (~oneeyedal@user/oneeyedalien) |
2024-02-21 08:59:34 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2024-02-21 09:00:05 +0100 | CiaoSen | (~Jura@2a05:5800:2c5:c300:e6b9:7aff:fe80:3d03) |
2024-02-21 09:01:47 +0100 | oneeyedalien | (~oneeyedal@user/oneeyedalien) (Ping timeout: 264 seconds) |
2024-02-21 09:03:56 +0100 | sroso | (~sroso@user/SrOso) (Read error: Connection reset by peer) |
2024-02-21 09:08:08 +0100 | sroso | (~sroso@user/SrOso) |
2024-02-21 09:08:35 +0100 | sroso | (~sroso@user/SrOso) (Max SendQ exceeded) |
2024-02-21 09:14:25 +0100 | sroso | (~sroso@user/SrOso) |
2024-02-21 09:14:42 +0100 | <[exa]> | is it somehow possible to have more than 1 "section" in the toplevel haddock module documentation? I'm trying to paste it together somehow from the examples, but failing so far |
2024-02-21 09:14:52 +0100 | sroso | (~sroso@user/SrOso) (Max SendQ exceeded) |
2024-02-21 09:14:56 +0100 | <[exa]> | (also I recall I saw it SOMEWHERE so I could copy, but no idea where it was) |
2024-02-21 09:17:56 +0100 | <dminuoso> | [exa]: What does "section" mean to you, exactly? |
2024-02-21 09:18:57 +0100 | fendor | (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) |
2024-02-21 09:20:40 +0100 | sroso | (~sroso@user/SrOso) |
2024-02-21 09:21:01 +0100 | <dminuoso> | [exa]: What you can do is use nested section headings to accomplish that effect. |
2024-02-21 09:21:07 +0100 | sroso | (~sroso@user/SrOso) (Max SendQ exceeded) |
2024-02-21 09:21:13 +0100 | <dminuoso> | Look at https://github.com/well-typed/optics/blob/master/optics/src/Optics.hs https://hackage.haskell.org/package/optics-0.4.2.1/docs/Optics.html |
2024-02-21 09:23:16 +0100 | <dminuoso> | Ah I guess you can also just use several sections like that, just put them into the export list at the beginning |
2024-02-21 09:23:48 +0100 | pointlessslippe1 | (~pointless@212.82.82.3) |
2024-02-21 09:26:55 +0100 | sroso | (~sroso@user/SrOso) |
2024-02-21 09:27:02 +0100 | yoo | (~yo0O0o@130.105.162.42) |
2024-02-21 09:27:35 +0100 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2024-02-21 09:28:56 +0100 | <[exa]> | oh yes that's it, thanks! I was trying to smash everything into one big docstring, obviously I need the $redirects |
2024-02-21 09:29:42 +0100 | <dmj`> | c_wraith: ping |
2024-02-21 09:34:00 +0100 | oneeyedalien_ | (~oneeyedal@user/oneeyedalien) (Quit: Leaving) |
2024-02-21 09:34:58 +0100 | csn_ | (~csn@115.96.217.73) |
2024-02-21 09:36:28 +0100 | kuribas | (~user@2a02:1808:8a:e91f:e184:8a20:1122:74ac) |
2024-02-21 09:37:52 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-02-21 09:38:24 +0100 | csn | (~csn@115.96.217.73) (Ping timeout: 255 seconds) |
2024-02-21 09:40:17 +0100 | <dmj`> | c_wraith: I think the static monomorphization approach removes the dictionary elaboration altogether |
2024-02-21 09:40:31 +0100 | dcoutts | (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 260 seconds) |
2024-02-21 09:42:07 +0100 | euleritian | (~euleritia@dynamic-176-006-179-235.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-02-21 09:42:32 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-02-21 09:47:02 +0100 | yoo | (~yo0O0o@130.105.162.42) (Changing host) |
2024-02-21 09:47:02 +0100 | yoo | (~yo0O0o@user/mobivme) |
2024-02-21 09:52:45 +0100 | danse-nr3 | (~danse@151.43.184.190) |
2024-02-21 09:53:49 +0100 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) |
2024-02-21 09:56:42 +0100 | kuribas | (~user@2a02:1808:8a:e91f:e184:8a20:1122:74ac) (Remote host closed the connection) |
2024-02-21 09:58:43 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
2024-02-21 09:58:44 +0100 | chele | (~chele@user/chele) |
2024-02-21 09:59:01 +0100 | euleritian | (~euleritia@dynamic-176-006-179-235.176.6.pool.telefonica.de) |
2024-02-21 10:01:15 +0100 | csn__ | (~csn@115.96.217.73) |
2024-02-21 10:02:25 +0100 | sroso | (~sroso@user/SrOso) (Read error: Connection reset by peer) |
2024-02-21 10:04:17 +0100 | csn_ | (~csn@115.96.217.73) (Ping timeout: 268 seconds) |
2024-02-21 10:06:42 +0100 | sroso | (~sroso@user/SrOso) |
2024-02-21 10:07:48 +0100 | tzh | (~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz) |
2024-02-21 10:09:11 +0100 | synchromesh | (~synchrome@2407:7000:aa2d:4e00:9cf7:efcb:5efd:a99) (Read error: Connection reset by peer) |
2024-02-21 10:09:38 +0100 | ft | (~ft@p508db2e6.dip0.t-ipconnect.de) (Quit: leaving) |
2024-02-21 10:10:03 +0100 | danse-nr3 | (~danse@151.43.184.190) (Read error: Connection reset by peer) |
2024-02-21 10:10:14 +0100 | synchromesh | (~synchrome@2407:7000:aa2d:4e00:9cf7:efcb:5efd:a99) |
2024-02-21 10:12:40 +0100 | danse-nr3 | (~danse@151.43.209.48) |
2024-02-21 10:12:51 +0100 | csn_ | (~csn@115.96.217.73) |
2024-02-21 10:16:18 +0100 | csn__ | (~csn@115.96.217.73) (Ping timeout: 268 seconds) |
2024-02-21 10:24:05 +0100 | econo_ | (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
2024-02-21 10:26:33 +0100 | yoo | (~yo0O0o@user/mobivme) (Ping timeout: 255 seconds) |
2024-02-21 10:27:17 +0100 | mmhat | (~mmh@p200300f1c70b44daee086bfffe095315.dip0.t-ipconnect.de) |
2024-02-21 10:34:42 +0100 | kuribas | (~user@2a02:1808:8a:e91f:a062:7ecd:d33:3185) |
2024-02-21 10:35:45 +0100 | euleritian | (~euleritia@dynamic-176-006-179-235.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-02-21 10:36:03 +0100 | euleritian | (~euleritia@77.22.252.56) |
2024-02-21 10:38:31 +0100 | csn__ | (~csn@115.96.217.73) |
2024-02-21 10:41:59 +0100 | csn_ | (~csn@115.96.217.73) (Ping timeout: 264 seconds) |
2024-02-21 10:46:58 +0100 | dcoutts | (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) |
2024-02-21 10:49:24 +0100 | <carbolymer> | is there any doc for -Wno-x-partial flag? |
2024-02-21 10:50:55 +0100 | <carbolymer> | ah it's just warning about partial functions in ghc 9.8 |
2024-02-21 10:50:59 +0100 | ell | (~ellie@user/ellie) |
2024-02-21 10:56:02 +0100 | yoo | (~yo0O0o@130.105.162.42) |
2024-02-21 11:02:00 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2024-02-21 11:06:48 +0100 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 256 seconds) |
2024-02-21 11:15:50 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2024-02-21 11:16:23 +0100 | csn_ | (~csn@115.96.217.73) |
2024-02-21 11:16:53 +0100 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-02-21 11:17:00 +0100 | gehmehgeh | gmg |
2024-02-21 11:18:53 +0100 | csn__ | (~csn@115.96.217.73) (Ping timeout: 240 seconds) |
2024-02-21 11:19:38 +0100 | oo_miguel | (~Thunderbi@78-11-181-16.static.ip.netia.com.pl) |
2024-02-21 11:20:36 +0100 | img | (~img@user/img) |
2024-02-21 11:21:37 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 246 seconds) |
2024-02-21 11:22:11 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer) |
2024-02-21 11:27:44 +0100 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) |
2024-02-21 11:28:20 +0100 | csn__ | (~csn@115.96.217.73) |
2024-02-21 11:28:41 +0100 | benkard | (~mulk@pd9514f6d.dip0.t-ipconnect.de) |
2024-02-21 11:29:13 +0100 | mulk | (~mulk@p5b2dc008.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2024-02-21 11:29:13 +0100 | benkard | mulk |
2024-02-21 11:31:04 +0100 | csn_ | (~csn@115.96.217.73) (Ping timeout: 246 seconds) |
2024-02-21 11:32:15 +0100 | ski | (~ski@ext-1-033.eduroam.chalmers.se) (Ping timeout: 255 seconds) |
2024-02-21 11:33:08 +0100 | ski | (~ski@ext-1-033.eduroam.chalmers.se) |
2024-02-21 11:45:45 +0100 | yoo | (~yo0O0o@130.105.162.42) (Ping timeout: 255 seconds) |
2024-02-21 11:49:47 +0100 | rosco | (~rosco@175.136.156.77) |
2024-02-21 11:50:22 +0100 | sroso | (~sroso@user/SrOso) (Quit: Leaving :)) |
2024-02-21 11:50:49 +0100 | xff0x | (~xff0x@ai082039.d.east.v6connect.net) |
2024-02-21 11:54:08 +0100 | csn_ | (~csn@115.96.217.73) |
2024-02-21 11:56:37 +0100 | csn__ | (~csn@115.96.217.73) (Ping timeout: 256 seconds) |
2024-02-21 11:59:58 +0100 | a51 | (a51@gateway/vpn/protonvpn/a51) |
2024-02-21 12:03:32 +0100 | ubert | (~Thunderbi@2a02:8109:ab8a:5a00:7702:da98:c9d3:8474) |
2024-02-21 12:06:46 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-02-21 12:09:25 +0100 | Eoco_ | (~ian@128.101.131.218) (Ping timeout: 264 seconds) |
2024-02-21 12:16:26 +0100 | Eoco | (~ian@128.101.131.218) |
2024-02-21 12:21:18 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 255 seconds) |
2024-02-21 12:27:30 +0100 | rosco | (~rosco@175.136.156.77) (Quit: Lost terminal) |
2024-02-21 12:30:58 +0100 | troydm | (~troydm@user/troydm) |
2024-02-21 12:41:41 +0100 | zetef | (~quassel@2a02:2f00:5208:300:c040:6289:5a5f:2d91) |
2024-02-21 12:49:14 +0100 | danse-nr3 | (~danse@151.43.209.48) (Ping timeout: 268 seconds) |
2024-02-21 12:50:20 +0100 | rosco | (~rosco@175.136.156.77) |
2024-02-21 12:52:55 +0100 | jargon | (~jargon@157.sub-174-205-162.myvzw.com) (Remote host closed the connection) |
2024-02-21 12:58:48 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-02-21 13:11:40 +0100 | CiaoSen | (~Jura@2a05:5800:2c5:c300:e6b9:7aff:fe80:3d03) (Ping timeout: 260 seconds) |
2024-02-21 13:12:47 +0100 | jespada | (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Quit: Textual IRC Client: www.textualapp.com) |
2024-02-21 13:15:16 +0100 | jespada | (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
2024-02-21 13:18:39 +0100 | zetef | (~quassel@2a02:2f00:5208:300:c040:6289:5a5f:2d91) (Read error: Connection reset by peer) |
2024-02-21 13:23:38 +0100 | ph88^ | (~ph88@2a02:8109:9e26:c800:5d6d:c5dc:fbc4:3d94) |
2024-02-21 13:48:47 +0100 | ph88 | (~ph88@91.64.63.48) (Ping timeout: 260 seconds) |
2024-02-21 13:52:57 +0100 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2024-02-21 13:55:32 +0100 | ph88 | (~ph88@2a02:8109:9e26:c800:8ede:73b0:bb5c:daa3) |
2024-02-21 13:58:50 +0100 | danse-nr3 | (~danse@151.43.238.22) |
2024-02-21 14:12:11 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-02-21 14:15:34 +0100 | CiaoSen | (~Jura@2a05:5800:2c5:c300:e6b9:7aff:fe80:3d03) |
2024-02-21 14:16:02 +0100 | euleritian | (~euleritia@77.22.252.56) (Ping timeout: 252 seconds) |
2024-02-21 14:18:44 +0100 | euleritian | (~euleritia@dynamic-176-006-177-235.176.6.pool.telefonica.de) |
2024-02-21 14:18:44 +0100 | synchromesh | (~synchrome@2407:7000:aa2d:4e00:9cf7:efcb:5efd:a99) (Read error: Connection reset by peer) |
2024-02-21 14:19:58 +0100 | synchromesh | (~synchrome@2407:7000:aa2d:4e00:9cf7:efcb:5efd:a99) |
2024-02-21 14:25:01 +0100 | TheCoffeMaker_ | (~TheCoffeM@186.137.141.113) |
2024-02-21 14:25:11 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (Ping timeout: 264 seconds) |
2024-02-21 14:26:55 +0100 | ph88^ | (~ph88@2a02:8109:9e26:c800:5d6d:c5dc:fbc4:3d94) (Ping timeout: 256 seconds) |
2024-02-21 14:29:57 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-02-21 14:30:32 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Ping timeout: 260 seconds) |
2024-02-21 14:31:56 +0100 | TheCoffeMaker_ | (~TheCoffeM@186.137.141.113) (Ping timeout: 260 seconds) |
2024-02-21 14:32:48 +0100 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2024-02-21 14:35:53 +0100 | dumptruckman | (~dumptruck@23-239-13-136.ip.linodeusercontent.com) (Quit: ZNC - https://znc.in) |
2024-02-21 14:38:26 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-02-21 14:43:06 +0100 | csn_ | (~csn@115.96.217.73) (Read error: Connection reset by peer) |
2024-02-21 14:44:31 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) |
2024-02-21 14:44:37 +0100 | Achylles | (~Achylles_@45.182.57.81) |
2024-02-21 14:46:18 +0100 | dumptruckman | (~dumptruck@69-164-220-160.ip.linodeusercontent.com) |
2024-02-21 14:57:13 +0100 | euleritian | (~euleritia@dynamic-176-006-177-235.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-02-21 15:00:02 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-02-21 15:03:05 +0100 | fendor | (~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c) (Quit: Leaving) |
2024-02-21 15:04:38 +0100 | rosco | (~rosco@175.136.156.77) (Quit: Lost terminal) |
2024-02-21 15:11:08 +0100 | jinsun_ | (~jinsun@user/jinsun) |
2024-02-21 15:11:08 +0100 | jinsun | Guest4095 |
2024-02-21 15:11:09 +0100 | Guest4095 | (~jinsun@user/jinsun) (Killed (iridium.libera.chat (Nickname regained by services))) |
2024-02-21 15:11:09 +0100 | jinsun_ | jinsun |
2024-02-21 15:13:14 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds) |
2024-02-21 15:13:39 +0100 | end | (~end@user/end/x-0094621) (Ping timeout: 255 seconds) |
2024-02-21 15:13:40 +0100 | Nikopol | (nikopol@user/astrorigin) (Quit: Bye!) |
2024-02-21 15:13:50 +0100 | Nikopol | (nikopol@user/astrorigin) |
2024-02-21 15:14:52 +0100 | mmhat | (~mmh@p200300f1c70b44daee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2024-02-21 15:15:14 +0100 | mmhat | (~mmh@p200300f1c70b449aee086bfffe095315.dip0.t-ipconnect.de) |
2024-02-21 15:17:30 +0100 | euleritian | (~euleritia@dynamic-176-006-177-235.176.6.pool.telefonica.de) |
2024-02-21 15:18:37 +0100 | end | (~end@user/end/x-0094621) |
2024-02-21 15:19:11 +0100 | yoo | (~yo0O0o@130.105.162.42) |
2024-02-21 15:22:55 +0100 | thegeekinside | (~thegeekin@189.217.83.221) |
2024-02-21 15:31:55 +0100 | jtza8 | (~user@user/jtza8) (Ping timeout: 260 seconds) |
2024-02-21 15:32:53 +0100 | kuribas` | (~user@2a02:1808:4:5142:d283:8f22:e8ed:88fa) |
2024-02-21 15:34:49 +0100 | kuribas | (~user@2a02:1808:8a:e91f:a062:7ecd:d33:3185) (Ping timeout: 255 seconds) |
2024-02-21 15:38:48 +0100 | danse-nr3 | (~danse@151.43.238.22) (Ping timeout: 256 seconds) |
2024-02-21 15:38:59 +0100 | yoo | (~yo0O0o@130.105.162.42) (Ping timeout: 264 seconds) |
2024-02-21 15:40:55 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2024-02-21 15:51:12 +0100 | yoo | (~yo0O0o@130.105.162.42) |
2024-02-21 15:54:19 +0100 | euleritian | (~euleritia@dynamic-176-006-177-235.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-02-21 15:54:37 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-02-21 16:05:36 +0100 | k3ut0i | (~keutoi@223.230.94.191) |
2024-02-21 16:09:22 +0100 | <k3ut0i> | I'm using IntMap to count frequency of elements in a list. foldl (\m x -> insertWith (const (1+)) x 1 m) empty |
2024-02-21 16:09:30 +0100 | <k3ut0i> | Is there any way to speed this up? |
2024-02-21 16:09:58 +0100 | yoo | (~yo0O0o@130.105.162.42) (Ping timeout: 256 seconds) |
2024-02-21 16:11:04 +0100 | <dminuoso> | k3ut0i: You likely want foldl' at minimum. |
2024-02-21 16:11:54 +0100 | <dminuoso> | To cause maximum confusion, we gave you `foldl` but forgot to tell you should probably not use it (most of the time). |
2024-02-21 16:12:43 +0100 | <kuribas`> | k3ut0i: by not using IntMap? |
2024-02-21 16:13:36 +0100 | <kuribas`> | maybe "map length . group . sort" |
2024-02-21 16:13:48 +0100 | <dminuoso> | kuribas`: Another thing you could do is have an `IntMap (STRef Int)` and just mutate references instead. |
2024-02-21 16:13:52 +0100 | <dminuoso> | Sorry, I meant k3ut0i. |
2024-02-21 16:13:58 +0100 | <kuribas`> | > map length . group . sort [5, 2, 6, 4] |
2024-02-21 16:13:59 +0100 | <lambdabot> | error: |
2024-02-21 16:13:59 +0100 | <lambdabot> | • Couldn't match expected type ‘a -> [a1]’ with actual type ‘[a0]’ |
2024-02-21 16:13:59 +0100 | <lambdabot> | • Possible cause: ‘sort’ is applied to too many arguments |
2024-02-21 16:14:18 +0100 | <kuribas`> | > map length $ group $ sort [5, 2, 6, 4, 5, 4, 4] |
2024-02-21 16:14:20 +0100 | <lambdabot> | [1,3,2,1] |
2024-02-21 16:15:14 +0100 | <int-e> | k3ut0i: if you use foldl' and Data.IntMap.Strict that should avoid any buildup of thunks. |
2024-02-21 16:15:16 +0100 | <kuribas`> | > map (\l -> (head l, length l)) $ group $ sort [5, 2, 6, 4, 5, 4, 4] |
2024-02-21 16:15:18 +0100 | <lambdabot> | [(2,1),(4,3),(5,2),(6,1)] |
2024-02-21 16:15:34 +0100 | <dminuoso> | But yeah, foldl is one of the biggest warts we have. |
2024-02-21 16:15:36 +0100 | cheater_ | (~Username@user/cheater) |
2024-02-21 16:17:01 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 246 seconds) |
2024-02-21 16:17:01 +0100 | cheater_ | cheater |
2024-02-21 16:17:03 +0100 | cheater | (~Username@user/cheater) (Read error: Connection reset by peer) |
2024-02-21 16:17:48 +0100 | cheater_ | (~Username@user/cheater) |
2024-02-21 16:17:48 +0100 | cheater_ | cheater |
2024-02-21 16:18:20 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 260 seconds) |
2024-02-21 16:18:25 +0100 | Tisoxin | (~Ikosit@user/ikosit) (Quit: The Lounge - https://thelounge.chat) |
2024-02-21 16:18:58 +0100 | <int-e> | I'd habitually go with M.fromListWith (+) [(x,1) | x <- xs] but foldl' version could be better. Hard to see because it's a matter of compiler optimization (fusion kicking in). |
2024-02-21 16:18:59 +0100 | Tisoxin | (~Ikosit@user/ikosit) |
2024-02-21 16:19:35 +0100 | mjs2600_ | (~mjs2600@c-174-169-225-239.hsd1.vt.comcast.net) |
2024-02-21 16:20:12 +0100 | mjs2600 | (~mjs2600@c-174-169-225-239.hsd1.vt.comcast.net) (Ping timeout: 260 seconds) |
2024-02-21 16:21:36 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2024-02-21 16:22:12 +0100 | <k3ut0i> | foldl' and IntMap.Strict still not fast enough, will IntMap (STRef Int) be faster? |
2024-02-21 16:23:03 +0100 | <dminuoso> | k3ut0i: Note that it would also be IntMap.Strit for STRef |
2024-02-21 16:23:17 +0100 | <dminuoso> | k3ut0i: What order of magnitude is that map going to be? |
2024-02-21 16:23:51 +0100 | <k3ut0i> | 200_000 elements, each < 10^9 |
2024-02-21 16:23:51 +0100 | <kuribas`> | dminuoso: "for list". |
2024-02-21 16:24:07 +0100 | <kuribas`> | because foldl could be sensible for other structures. |
2024-02-21 16:24:11 +0100 | <kuribas`> | Like a SnocList. |
2024-02-21 16:24:54 +0100 | <dminuoso> | kuribas`: Hold on, what do you mean by "each < 10^9"? |
2024-02-21 16:25:01 +0100 | <dminuoso> | Sorry k3ut0i again. |
2024-02-21 16:25:06 +0100 | <kuribas`> | k3ut0i: How fast is it? Do you compile or just ghci? |
2024-02-21 16:25:06 +0100 | <dminuoso> | Tab completion went wrong. |
2024-02-21 16:25:10 +0100 | <kuribas`> | no worries |
2024-02-21 16:25:25 +0100 | xtabentun | (uid491929@id-491929.tinside.irccloud.com) |
2024-02-21 16:25:47 +0100 | <kuribas`> | Also, due to lazyness, you may be also timing the generation of the numbers, not the actual counting. |
2024-02-21 16:25:49 +0100 | <int-e> | I don't think IntMap (STRef Int) will be faster unless you have *many* duplicates. |
2024-02-21 16:25:49 +0100 | <dminuoso> | k3ut0i: I would expect STRef to perform somewhat better because you will have less allocations in a tight loop going on. |
2024-02-21 16:27:05 +0100 | <k3ut0i> | compiling... I'm doing a competition. It's timing out only when most of the numbers are different. So default insertions rather than updates. |
2024-02-21 16:27:18 +0100 | <dminuoso> | k3ut0i: One optimization step that comes to mind is doing a sort of pre-sort step. |
2024-02-21 16:27:25 +0100 | <dminuoso> | Not necessarily full sort. |
2024-02-21 16:27:58 +0100 | <dminuoso> | k3ut0i: See https://hackage.haskell.org/package/containers-0.7/docs/Data-IntMap-Strict.html#v:insertWith performance notes |
2024-02-21 16:28:06 +0100 | <int-e> | If you involve ST, mutable data structures become a serious option... https://hackage.haskell.org/package/hashtables has a few ST based ones (what package do people use for hashtables?) |
2024-02-21 16:28:40 +0100 | <dminuoso> | unordered-containers is popular |
2024-02-21 16:28:50 +0100 | <int-e> | If you do a full pre-sort then I'd expect group . sort to be better. |
2024-02-21 16:29:15 +0100 | <int-e> | but unordered-containers is persistent |
2024-02-21 16:29:35 +0100 | erisco_ | (~erisco@d24-141-66-165.home.cgocable.net) |
2024-02-21 16:29:41 +0100 | erisco | (~erisco@d24-141-66-165.home.cgocable.net) (Ping timeout: 252 seconds) |
2024-02-21 16:29:45 +0100 | erisco_ | erisco |
2024-02-21 16:29:45 +0100 | <dminuoso> | Im starting to think that an IntMap is not going to give you good performance characteristics, because you are re-doing work on each insert. |
2024-02-21 16:32:51 +0100 | <int-e> | I'd seriously consider stuffing the numbers into an unboxed vector, sorting that, and then collect the groups (which may or may not exist in the vector package) |
2024-02-21 16:33:35 +0100 | <dminuoso> | Mmm yeah, thats not a bad idea. The biggest price point for this kind of algorithm in regular idiomatic haskell is going to be memory indirections |
2024-02-21 16:33:49 +0100 | <dminuoso> | With an unboxed vector you can leverage locality of cache some |
2024-02-21 16:38:15 +0100 | Square3 | (~Square4@user/square) (Ping timeout: 255 seconds) |
2024-02-21 16:39:11 +0100 | <dminuoso> | Honestly the more you approach this, the less haskelly this becomes. |
2024-02-21 16:39:26 +0100 | <k3ut0i> | dminuoso: by "each < 10^9" I meant each integer is bound by 10^9. If it was around 10^5, I would've used a mutable array. |
2024-02-21 16:39:36 +0100 | <dminuoso> | Once you're doing an unboxed vector, you might as well use a mutable inplace sort |
2024-02-21 16:39:57 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
2024-02-21 16:40:25 +0100 | <dminuoso> | And this eventually becomes a race for locality of reference and tight loops, your code will start looking more and more like C/Rust/whatever. |
2024-02-21 16:41:49 +0100 | euleritian | (~euleritia@dynamic-176-006-177-235.176.6.pool.telefonica.de) |
2024-02-21 16:45:27 +0100 | euleritian | (~euleritia@dynamic-176-006-177-235.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-02-21 16:46:42 +0100 | <dminuoso> | k3ut0i: So for maximum speed you could implement https://ieeexplore.ieee.org/document/8213187 using https://hackage.haskell.org/package/ghc-prim-0.11.0/docs/GHC-Prim.html#g:42 |
2024-02-21 16:47:17 +0100 | <dminuoso> | Then just do that SIMD powered quicksort on a ByteArray#, and then write a tight loop counting consecutive elements on that. |
2024-02-21 16:47:25 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-02-21 16:47:43 +0100 | <dminuoso> | (Needs LLVM available, of course) |
2024-02-21 16:56:23 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
2024-02-21 16:56:52 +0100 | <kuribas`> | k3ut0i: most of the leetcode style problems only require you to have the right complexity. |
2024-02-21 16:57:19 +0100 | <kuribas`> | k3ut0i: Maybe this problem could be done in O(n)? |
2024-02-21 16:58:12 +0100 | <kuribas`> | For example with dynamic programming? |
2024-02-21 16:58:15 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 260 seconds) |
2024-02-21 16:59:55 +0100 | notzmv | (~daniel@user/notzmv) (Ping timeout: 256 seconds) |
2024-02-21 17:00:58 +0100 | euleritian | (~euleritia@dynamic-176-006-177-235.176.6.pool.telefonica.de) |
2024-02-21 17:01:32 +0100 | <k3ut0i> | If h is the intmap, the answer is exactly: h 1 * h 2 + sum (map (\x -> x * (x - 1)/2) (elems h)) |
2024-02-21 17:02:54 +0100 | <kuribas`> | So you only need to know the two most frequent elements? |
2024-02-21 17:02:58 +0100 | <k3ut0i> | So only if we can create h in O(n) |
2024-02-21 17:03:12 +0100 | <kuribas`> | That can be done in O(n) |
2024-02-21 17:03:59 +0100 | <kuribas`> | ah no, you need all frequencies... |
2024-02-21 17:04:02 +0100 | <int-e> | that is... number of equal pairs when treating 1 and 2 as equal? |
2024-02-21 17:04:36 +0100 | <int-e> | (I'm trying to understand the h 1 * h 2 part) |
2024-02-21 17:04:45 +0100 | <k3ut0i> | (h 1) is the frequency of 1 |
2024-02-21 17:05:25 +0100 | <k3ut0i> | for all frequencies f, sum f*(f-1)/2. then sum (frequency of 1)*(frequency of 2) |
2024-02-21 17:07:03 +0100 | <int-e> | so you also count pairs of 1s and 2s in either order, so effectively you're treating 1 and 2 as equal. |
2024-02-21 17:08:07 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-02-21 17:10:22 +0100 | danse-nr3 | (~danse@151.47.247.148) |
2024-02-21 17:11:40 +0100 | <kuribas`> | Anyway, an unboxed vector would be an order of magnitude faster than an IntMap. |
2024-02-21 17:14:09 +0100 | <k3ut0i> | I cant use additional packages :( |
2024-02-21 17:14:25 +0100 | Ram-Z | (~Ram-Z@li1814-254.members.linode.com) (Ping timeout: 246 seconds) |
2024-02-21 17:14:32 +0100 | <kuribas`> | vector is not included? |
2024-02-21 17:14:58 +0100 | Ram-Z | (~Ram-Z@li1814-254.members.linode.com) |
2024-02-21 17:15:17 +0100 | phaazon | hadronized |
2024-02-21 17:15:18 +0100 | <k3ut0i> | I don't think so. haskell has been pretty good for CP, but I always get stuck when it comes to hashing things. |
2024-02-21 17:15:26 +0100 | <EvanR> | copy and paste all the code from vector into your code xD |
2024-02-21 17:15:32 +0100 | <EvanR> | look ma, no additional packages |
2024-02-21 17:16:16 +0100 | <kuribas`> | I mean, Vector is pretty standard haskell. Python comes with everything and the kitchen sink included, it's silly to not allow Vector. |
2024-02-21 17:16:43 +0100 | <EvanR> | is this challenge like, do numeric python without numpy |
2024-02-21 17:16:50 +0100 | <int-e> | kuribas`: how else do you make Haskell look bad ;-) |
2024-02-21 17:18:28 +0100 | <int-e> | k3ut0i: out of curiosity, what ghc version are they using? |
2024-02-21 17:18:36 +0100 | <int-e> | . o O ( 6.8.3 ) |
2024-02-21 17:18:52 +0100 | <k3ut0i> | 8.10.1 |
2024-02-21 17:19:30 +0100 | <int-e> | yeah, not super ancient but old enough to suggest that they don't care |
2024-02-21 17:19:30 +0100 | a51 | (a51@gateway/vpn/protonvpn/a51) (Quit: WeeChat 4.2.1) |
2024-02-21 17:20:29 +0100 | <EvanR> | if you have a sparse array of size 10^9 you could implement it using an anonymous mmap and rely on the OS to not actually allocated the vast gaps between entries |
2024-02-21 17:20:39 +0100 | <EvanR> | maybe |
2024-02-21 17:21:36 +0100 | <int-e> | I was wondering how the sparse array trick would perform here. But you'd have *two* arrays of size 10^9. |
2024-02-21 17:21:38 +0100 | <k3ut0i> | yeah, the number of entries is 2*10^5. |
2024-02-21 17:22:19 +0100 | <int-e> | So any hope of locality would be lost. |
2024-02-21 17:23:43 +0100 | gaze__ | (sid387101@helmsley.irccloud.com) (Ping timeout: 256 seconds) |
2024-02-21 17:24:57 +0100 | <kuribas`> | 200000 is not that much |
2024-02-21 17:26:17 +0100 | <kuribas`> | "maximum $ sort $ take 200000 $ cycle [3, 9, 3, 5, 1]" takes a fraction of a second, in GHCI, not even compiled. |
2024-02-21 17:27:12 +0100 | gaze__ | (sid387101@id-387101.helmsley.irccloud.com) |
2024-02-21 17:27:15 +0100 | <kuribas`> | The whole thing should run in a few milliseconds. |
2024-02-21 17:29:57 +0100 | euleritian | (~euleritia@dynamic-176-006-177-235.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-02-21 17:30:14 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-02-21 17:34:15 +0100 | tzh | (~tzh@c-73-164-206-160.hsd1.or.comcast.net) |
2024-02-21 17:35:48 +0100 | hololeap | (~quassel@user/hololeap) (Ping timeout: 260 seconds) |
2024-02-21 17:36:23 +0100 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
2024-02-21 17:36:29 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.1.1) |
2024-02-21 17:42:56 +0100 | <k3ut0i> | both IntMap and group . sort are working for smaller numbers. Keeping the number of elements at 200_000, when elements are at 10^3 and even 10^5 range, the time is < 1s. But at 10^9 range, I'm getting around 1.4secs. So I just need to shave off a little. |
2024-02-21 17:48:40 +0100 | ph88^ | (~ph88@2a02:8109:9e26:c800:ebb2:8a16:2d0a:f29) |
2024-02-21 17:49:36 +0100 | <ph88^> | i have a stack.yaml pointing to LTS 14.27 when i type stack path i see it pointing to the ghcup 9.6.4 compiler. How can i get it to switch to the right compiler version ? |
2024-02-21 17:50:05 +0100 | <haskellbridge> | <maerwald> do you have system-ghc enabled? |
2024-02-21 17:50:13 +0100 | igemnace | (~ian@user/igemnace) (Quit: WeeChat 4.2.1) |
2024-02-21 17:50:49 +0100 | <ph88^> | not sure, it's my first time using ghcup |
2024-02-21 17:51:26 +0100 | euphores | (~SASL_euph@user/euphores) |
2024-02-21 17:52:30 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 255 seconds) |
2024-02-21 17:55:22 +0100 | Achylles | (~Achylles_@45.182.57.81) (Remote host closed the connection) |
2024-02-21 17:55:26 +0100 | <ph88^> | @maerwald i set system-ghc false and install-ghc also false as per https://www.haskell.org/ghcup/guide/#stack-integration |
2024-02-21 17:55:26 +0100 | <lambdabot> | Unknown command, try @list |
2024-02-21 17:55:30 +0100 | <ph88^> | maerwald i set system-ghc false and install-ghc also false as per https://www.haskell.org/ghcup/guide/#stack-integration |
2024-02-21 17:57:54 +0100 | CiaoSen | (~Jura@2a05:5800:2c5:c300:e6b9:7aff:fe80:3d03) (Ping timeout: 255 seconds) |
2024-02-21 18:01:16 +0100 | a51 | (a51@gateway/vpn/protonvpn/a51) |
2024-02-21 18:04:15 +0100 | ubert | (~Thunderbi@2a02:8109:ab8a:5a00:7702:da98:c9d3:8474) (Remote host closed the connection) |
2024-02-21 18:05:35 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds) |
2024-02-21 18:07:20 +0100 | raym | (~ray@user/raym) |
2024-02-21 18:08:05 +0100 | <ph88^> | when i use the --compiler flag it works, but with stack.yaml it doesn't pick up the right compiler version :( |
2024-02-21 18:10:16 +0100 | <ph88^> | also using the wrong package set 22.11 instead of specified 14.27 ... seems that stack and stack.yaml is completely broken |
2024-02-21 18:12:18 +0100 | econo_ | (uid147250@id-147250.tinside.irccloud.com) |
2024-02-21 18:13:32 +0100 | a51 | (a51@gateway/vpn/protonvpn/a51) (Quit: WeeChat 4.2.1) |
2024-02-21 18:17:07 +0100 | machinedgod | (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 260 seconds) |
2024-02-21 18:17:42 +0100 | a51 | (a51@gateway/vpn/protonvpn/a51) |
2024-02-21 18:17:59 +0100 | dom0 | (~u0_a202@47.60.32.187) |
2024-02-21 18:18:27 +0100 | michalz | (~michalz@185.246.207.215) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-02-21 18:22:31 +0100 | billchenchina | (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) |
2024-02-21 18:22:40 +0100 | dom0 | (~u0_a202@47.60.32.187) (Quit: WeeChat 4.2.1) |
2024-02-21 18:26:12 +0100 | erisco | (~erisco@d24-141-66-165.home.cgocable.net) (Ping timeout: 260 seconds) |
2024-02-21 18:26:35 +0100 | erisco | (~erisco@d24-141-66-165.home.cgocable.net) |
2024-02-21 18:29:42 +0100 | kuribas` | (~user@2a02:1808:4:5142:d283:8f22:e8ed:88fa) (Remote host closed the connection) |
2024-02-21 18:31:01 +0100 | erisco | (~erisco@d24-141-66-165.home.cgocable.net) (Ping timeout: 256 seconds) |
2024-02-21 18:31:20 +0100 | chele | (~chele@user/chele) (Remote host closed the connection) |
2024-02-21 18:36:15 +0100 | erisco | (~erisco@d24-141-66-165.home.cgocable.net) |
2024-02-21 18:42:16 +0100 | <haskellbridge> | <sm> @where paste the full `stack path` output if you like ? |
2024-02-21 18:43:55 +0100 | a51 | (a51@gateway/vpn/protonvpn/a51) (Quit: WeeChat 4.2.1) |
2024-02-21 18:44:28 +0100 | <sm> | @where paste |
2024-02-21 18:44:29 +0100 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
2024-02-21 18:59:34 +0100 | mud | (~mud@user/kadoban) |
2024-02-21 19:03:46 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-02-21 19:04:58 +0100 | billchenchina | (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Quit: Leaving) |
2024-02-21 19:05:23 +0100 | vissa | (~vissa@37.214.75.124) |
2024-02-21 19:05:27 +0100 | Square | (~Square@user/square) |
2024-02-21 19:07:34 +0100 | <vissa> | yo |
2024-02-21 19:07:38 +0100 | <ph88^> | @sm, https://github.com/commercialhaskell/stack/issues/6490 |
2024-02-21 19:07:38 +0100 | <lambdabot> | Source not found. Whoa. |
2024-02-21 19:07:40 +0100 | <ph88^> | sm, https://github.com/commercialhaskell/stack/issues/6490 |
2024-02-21 19:07:44 +0100 | <ph88^> | yo vissa |
2024-02-21 19:07:56 +0100 | <vissa> | so um |
2024-02-21 19:07:58 +0100 | <vissa> | [Running] runghc "d:\Projects\Coding\Haskell\HelloWorld\hello.hs" |
2024-02-21 19:07:58 +0100 | <vissa> | Hello, Worldskell |
2024-02-21 19:07:59 +0100 | <vissa> | [Done] exited with code=0 in 5.942 seconds |
2024-02-21 19:08:19 +0100 | <vissa> | 6 seconds to interpret? did i install something wrong? lol |
2024-02-21 19:08:42 +0100 | <ph88^> | it's compiled right, try with ghci to interpret |
2024-02-21 19:08:56 +0100 | <ph88^> | also check compiler flags use -O0 for fasted compilation |
2024-02-21 19:09:04 +0100 | <ph88^> | fastest * |
2024-02-21 19:09:05 +0100 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
2024-02-21 19:09:11 +0100 | cheater_ | (~Username@user/cheater) |
2024-02-21 19:09:34 +0100 | danse-nr3 | (~danse@151.47.247.148) (Ping timeout: 246 seconds) |
2024-02-21 19:09:45 +0100 | michalz | (~michalz@185.246.207.221) |
2024-02-21 19:09:45 +0100 | <geekosaur> | runghc is interpreted |
2024-02-21 19:10:10 +0100 | <haskellbridge> | <Jade> doesn't runghc just invoke ghci under the hood |
2024-02-21 19:10:11 +0100 | <geekosaur> | and the intepreter is not at all optimized in any sense |
2024-02-21 19:10:18 +0100 | <geekosaur> | essentially yes |
2024-02-21 19:10:20 +0100 | notzmv | (~daniel@user/notzmv) |
2024-02-21 19:10:47 +0100 | euphores | (~SASL_euph@user/euphores) |
2024-02-21 19:13:25 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 268 seconds) |
2024-02-21 19:13:27 +0100 | cheater_ | cheater |
2024-02-21 19:14:51 +0100 | <vissa> | ah i see |
2024-02-21 19:15:11 +0100 | <vissa> | ghci> :script hello.hs |
2024-02-21 19:15:12 +0100 | <vissa> | ghci> main |
2024-02-21 19:15:12 +0100 | <vissa> | Hello, Worldskell |
2024-02-21 19:15:13 +0100 | <vissa> | ^ this was almost instantaneous |
2024-02-21 19:15:19 +0100 | michalz | (~michalz@185.246.207.221) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-02-21 19:15:43 +0100 | <mauke> | also, windows is just slow at spawning programs |
2024-02-21 19:15:45 +0100 | Square | (~Square@user/square) (Ping timeout: 255 seconds) |
2024-02-21 19:16:02 +0100 | <vissa> | gotchu |
2024-02-21 19:20:26 +0100 | vissa | (~vissa@37.214.75.124) (Quit: Connection closed) |
2024-02-21 19:26:17 +0100 | euphores | (~SASL_euph@user/euphores) (Read error: Connection reset by peer) |
2024-02-21 19:31:11 +0100 | rvalue | (~rvalue@user/rvalue) (Ping timeout: 264 seconds) |
2024-02-21 19:31:15 +0100 | <sm> | ph88^ it seems odd alright. Perhaps add some debug logging to ~/.stack/hooks/ghc-install.sh ? |
2024-02-21 19:31:36 +0100 | <ph88^> | sm, what kind of debug logging ? |
2024-02-21 19:32:01 +0100 | <sm> | printing some of those vars to see what it's doing |
2024-02-21 19:32:37 +0100 | <sm> | or set -eux, maybe |
2024-02-21 19:34:56 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2024-02-21 19:35:07 +0100 | hololeap | (~quassel@user/hololeap) |
2024-02-21 19:35:35 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2024-02-21 19:35:45 +0100 | euphores | (~SASL_euph@user/euphores) |
2024-02-21 19:36:17 +0100 | <sm> | aside: did you ever successfully build this with ghc 8.6.5 ? eg with cabal ? |
2024-02-21 19:36:34 +0100 | <ph88^> | sm, ghc_path: parameter not set |
2024-02-21 19:36:48 +0100 | <ph88^> | sm no this is the first time i will try to build it |
2024-02-21 19:37:16 +0100 | <sm> | for the second issue, some bug witih 8.6.5 is very possible |
2024-02-21 19:37:27 +0100 | alexherbo2 | (~alexherbo@2a02-8440-3340-eded-49c3-0dbb-2c98-8f25.rev.sfr.net) |
2024-02-21 19:37:28 +0100 | <sm> | you could try with cabal to see |
2024-02-21 19:37:40 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2024-02-21 19:37:47 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds) |
2024-02-21 19:38:08 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2024-02-21 19:38:39 +0100 | <ph88^> | sm that about ghc_path i put the echo in the wrong place so ignore that ^^ |
2024-02-21 19:38:58 +0100 | rvalue | (~rvalue@user/rvalue) |
2024-02-21 19:40:42 +0100 | <ph88^> | sm, with cabal it works it seems (although different source for tree-sitter package) |
2024-02-21 19:40:57 +0100 | dcoutts | (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 255 seconds) |
2024-02-21 19:42:47 +0100 | dcoutts | (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) |
2024-02-21 19:44:44 +0100 | <sm> | what's $HOOK_GHC_VERSION in ghc-install.sh ? |
2024-02-21 19:45:12 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-02-21 19:50:25 +0100 | cheater_ | (~Username@user/cheater) |
2024-02-21 19:52:15 +0100 | <ph88^> | sm, 8.6.5 |
2024-02-21 19:52:34 +0100 | <sm> | and this output ?: ghcup whereis --directory ghc 8.6.5 || ghcup run --ghc 8.6.5 --install |
2024-02-21 19:52:58 +0100 | <ph88^> | ghcup whereis --directory ghc 8.6.5 /home/flip111/.ghcup/ghc/8.6.5/bin |
2024-02-21 19:54:27 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 255 seconds) |
2024-02-21 19:54:31 +0100 | cheater_ | cheater |
2024-02-21 19:54:53 +0100 | <sm> | a mystery! maybe strace can show what other config/cache files it's looking at |
2024-02-21 19:57:20 +0100 | <sm> | or an older/newer stack version behaves differently |
2024-02-21 19:57:56 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2024-02-21 20:02:36 +0100 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
2024-02-21 20:05:00 +0100 | <ph88^> | sm i changed the formatting of the cabal file, recompiled and it went to the right compiler, then i put the cabal file back how it was and still the problem of wrong compiler version was resolved |
2024-02-21 20:06:06 +0100 | <sm> | huh.. do you have a package.yaml file ? |
2024-02-21 20:08:21 +0100 | julie_pilgrim | (~julie_pil@user/julie-pilgrim/x-1240752) |
2024-02-21 20:08:28 +0100 | <ph88^> | no only cabal file |
2024-02-21 20:09:10 +0100 | <sm> | weird.. well glad you got it worked around |
2024-02-21 20:10:09 +0100 | misterfish | (~misterfis@84.53.85.146) |
2024-02-21 20:18:05 +0100 | <ph88^> | it's still borked in another directory. I will compile stack itself with a few debug statements |
2024-02-21 20:20:16 +0100 | <sm> | The gods approve! You feel stronger! |
2024-02-21 20:20:47 +0100 | <sm> | latest stack version I guess |
2024-02-21 20:22:36 +0100 | euphores | (~SASL_euph@user/euphores) |
2024-02-21 20:24:56 +0100 | cheater_ | (~Username@user/cheater) |
2024-02-21 20:25:25 +0100 | alexherbo2 | (~alexherbo@2a02-8440-3340-eded-49c3-0dbb-2c98-8f25.rev.sfr.net) (Remote host closed the connection) |
2024-02-21 20:26:55 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-02-21 20:29:16 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 268 seconds) |
2024-02-21 20:29:22 +0100 | cheater_ | cheater |
2024-02-21 20:31:37 +0100 | misterfish | (~misterfis@84.53.85.146) (Ping timeout: 264 seconds) |
2024-02-21 20:33:13 +0100 | cheater_ | (~Username@user/cheater) |
2024-02-21 20:35:49 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 256 seconds) |
2024-02-21 20:35:59 +0100 | cheater_ | cheater |
2024-02-21 20:36:06 +0100 | TimWolla | (~timwolla@2a01:4f8:150:6153:beef::6667) (Quit: Bye) |
2024-02-21 20:40:47 +0100 | dcoutts | (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 256 seconds) |
2024-02-21 20:41:32 +0100 | TimWolla | (~timwolla@2a01:4f8:150:6153:beef::6667) |
2024-02-21 20:45:41 +0100 | zer0bitz | (~zer0bitz@user/zer0bitz) (Ping timeout: 240 seconds) |
2024-02-21 20:47:38 +0100 | apricot | (uid581388@id-581388.ilkley.irccloud.com) |
2024-02-21 20:48:47 +0100 | <apricot> | hello |
2024-02-21 20:48:54 +0100 | <geekosaur> | hi |
2024-02-21 20:49:22 +0100 | <apricot> | how is it going geekosaur? |
2024-02-21 20:49:24 +0100 | todi | (~todi@p4fd1a2f5.dip0.t-ipconnect.de) (Remote host closed the connection) |
2024-02-21 20:50:17 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds) |
2024-02-21 20:50:17 +0100 | <apricot> | i came here to ask how you guys would solve this problem #1 of project euler: "Find the sum of all the multiples of 3 or 5 below 1000 |
2024-02-21 20:50:35 +0100 | <apricot> | this is what i did but i am interested to see other approaches https://paste.rs/VhADH |
2024-02-21 20:51:36 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2024-02-21 20:52:24 +0100 | <mauke> | p x = x `rem` 3 == 0 || x `rem` 5 == 0 |
2024-02-21 20:53:29 +0100 | hgolden | (~hgolden@2603-8000-9d00-3ed1-2678-8497-aa5c-7fa9.res6.spectrum.com) (Remote host closed the connection) |
2024-02-21 20:53:32 +0100 | julie_pilgrim | (~julie_pil@user/julie-pilgrim/x-1240752) (Remote host closed the connection) |
2024-02-21 20:53:47 +0100 | <monochrom> | That's (sum of multiples of 3 below 1000) + (sum of multiples of 5 below 1000) - (sum of multiples of 15 below 1000) |
2024-02-21 20:54:11 +0100 | julie_pilgrim | (~julie_pil@user/julie-pilgrim/x-1240752) |
2024-02-21 20:54:21 +0100 | julie_pilgrim | (~julie_pil@user/julie-pilgrim/x-1240752) (Remote host closed the connection) |
2024-02-21 20:54:43 +0100 | <mauke> | ah, the slow approach |
2024-02-21 20:54:50 +0100 | <monochrom> | Multiples of 3 below 1000 are 0, 3, 9, ..., 999. I.e., 3*0, 3*1, ... ,3*333. |
2024-02-21 20:55:08 +0100 | <monochrom> | You know how to do "sum of 1 to 333". Just multiply that by 3. |
2024-02-21 20:55:15 +0100 | <monochrom> | Similarly of "5" and "15". |
2024-02-21 20:55:22 +0100 | <mauke> | > 3 * sum [1 .. 333] |
2024-02-21 20:55:24 +0100 | <lambdabot> | 166833 |
2024-02-21 20:55:46 +0100 | <int-e> | > let f d = (999 - 999 `mod` d)*(1 + 999 `div` d) in (f 3 + f 5 - f 15) `div` 2 |
2024-02-21 20:55:47 +0100 | <lambdabot> | 233168 |
2024-02-21 20:55:53 +0100 | hgolden | (~hgolden@2603-8000-9d00-3ed1-2678-8497-aa5c-7fa9.res6.spectrum.com) |
2024-02-21 20:56:35 +0100 | <monochrom> | ans = 3 * s 333 + 5 * s 199 - 15 * s 66 where s n = div (n*(n+1)) 2 |
2024-02-21 20:56:47 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) |
2024-02-21 20:57:31 +0100 | <monochrom> | This takes only O(1) time. |
2024-02-21 20:57:53 +0100 | <int-e> | meaningless big O notation, yay |
2024-02-21 20:57:58 +0100 | <c_wraith> | it only takes O(1) time anyway, since the bounds are fixed... |
2024-02-21 20:58:05 +0100 | <c_wraith> | there is no n to scale with! |
2024-02-21 20:58:13 +0100 | <monochrom> | Well yeah we need to up the game. |
2024-02-21 20:58:16 +0100 | <mauke> | the constants are better in apricot's solution |
2024-02-21 20:58:24 +0100 | <mauke> | because you don't have to use algebra first |
2024-02-21 20:58:28 +0100 | <monochrom> | Find the sum of all even primes below 10^100. |
2024-02-21 20:58:32 +0100 | a51 | (a51@gateway/vpn/protonvpn/a51) |
2024-02-21 20:58:48 +0100 | <c_wraith> | then your solution isn't O(1) either, because multiplication isn't |
2024-02-21 20:58:53 +0100 | <int-e> | monochrom: 0 :-P |
2024-02-21 20:58:57 +0100 | <mauke> | 2 |
2024-02-21 20:59:04 +0100 | <int-e> | -2 + 2 = 0 |
2024-02-21 20:59:16 +0100 | <mauke> | negaprimes? that's not legal |
2024-02-21 20:59:17 +0100 | <monochrom> | :( :) |
2024-02-21 20:59:36 +0100 | <apricot> | haha |
2024-02-21 20:59:40 +0100 | <mauke> | otherwise you can't uniquely factor anymore |
2024-02-21 20:59:52 +0100 | <int-e> | mauke: you still can, up to units |
2024-02-21 21:00:05 +0100 | <int-e> | which is how you do it in rings (cf. unique factoring domains) |
2024-02-21 21:00:12 +0100 | <monochrom> | Ring theory settles for what int-e said about units. |
2024-02-21 21:00:21 +0100 | <mauke> | > sum [n | n <- [1 .. 10^100], n == 2] |
2024-02-21 21:00:28 +0100 | <lambdabot> | mueval-core: Time limit exceeded |
2024-02-21 21:01:11 +0100 | <monochrom> | I just want to demonstrate concretely that Project Euler is where you hone number theory not programming. |
2024-02-21 21:02:06 +0100 | <mauke> | speak for yourself |
2024-02-21 21:02:17 +0100 | <mauke> | project euler is where I practice brute force solutions |
2024-02-21 21:02:28 +0100 | <apricot> | ah cool to know |
2024-02-21 21:02:34 +0100 | <apricot> | i just found out about it and about haskell too |
2024-02-21 21:02:57 +0100 | <monochrom> | In later questions, most brute force solutions will time out. |
2024-02-21 21:03:02 +0100 | <int-e> | mauke: but a lot of the problems require theory and brute force to be solved in reasonable time without massive parallelization |
2024-02-21 21:03:23 +0100 | <int-e> | this won't be evident in the first 100 or so |
2024-02-21 21:03:27 +0100 | <mauke> | >:) |
2024-02-21 21:03:54 +0100 | <monochrom> | I would prefer it if they started with s/1000/10^1000/ for example. |
2024-02-21 21:03:57 +0100 | <mauke> | it's a good opportunity to learn about persistent state and resumable computations |
2024-02-21 21:04:01 +0100 | k3ut0i | (~keutoi@223.230.94.191) (Ping timeout: 256 seconds) |
2024-02-21 21:04:08 +0100 | <monochrom> | ugh haha |
2024-02-21 21:04:19 +0100 | <int-e> | ...right |
2024-02-21 21:04:22 +0100 | <apricot> | well i think for me one is enough for today ;) goodnight guys |
2024-02-21 21:05:51 +0100 | <int-e> | mauke: maybe you could apply that expertise to find an MD5 collision that breaks Data.Typeable (the standard techniques don't apply because it's hashing highly constrained data, UTF-32 strings with identifier legal characters), so it would have to be a generic attack with ~2^64 hashes. |
2024-02-21 21:06:02 +0100 | <monochrom> | I seriously think on April 1st we should hack the PE website and post my even prime problem and watch the script kiddies of the world burn. |
2024-02-21 21:06:45 +0100 | <int-e> | monochrom: we already have bitcoin for that though |
2024-02-21 21:06:49 +0100 | <mauke> | 10^1000 is what I call Big Data |
2024-02-21 21:06:50 +0100 | <monochrom> | Because they would seriously try to find all primes below 10^100 and they would actually hope that "gcc -O10" would have a chance. |
2024-02-21 21:06:57 +0100 | <int-e> | monochrom: and LLMs |
2024-02-21 21:07:02 +0100 | <monochrom> | haha OK |
2024-02-21 21:08:36 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
2024-02-21 21:09:26 +0100 | misterfish | (~misterfis@84.53.85.146) |
2024-02-21 21:10:04 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds) |
2024-02-21 21:15:21 +0100 | cheater_ | (~Username@user/cheater) |
2024-02-21 21:16:37 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 256 seconds) |
2024-02-21 21:16:46 +0100 | cheater_ | cheater |
2024-02-21 21:24:10 +0100 | dcoutts | (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) |
2024-02-21 21:27:09 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2024-02-21 21:30:11 +0100 | mud | (~mud@user/kadoban) (Ping timeout: 272 seconds) |
2024-02-21 21:30:33 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-02-21 21:31:18 +0100 | euleritian | (~euleritia@77.22.252.56) |
2024-02-21 21:37:37 +0100 | misterfish | (~misterfis@84.53.85.146) (Ping timeout: 264 seconds) |
2024-02-21 21:40:57 +0100 | ft | (~ft@p508db2e6.dip0.t-ipconnect.de) |
2024-02-21 21:41:11 +0100 | Natch | (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Remote host closed the connection) |
2024-02-21 21:45:32 +0100 | mmhat | (~mmh@p200300f1c70b449aee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.2.1) |
2024-02-21 21:46:10 +0100 | Natch | (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) |
2024-02-21 21:58:44 +0100 | zer0bitz | (~zer0bitz@user/zer0bitz) |
2024-02-21 22:03:57 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer) |
2024-02-21 22:07:47 +0100 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection) |
2024-02-21 22:10:54 +0100 | cheater | (~Username@user/cheater) (Read error: Connection reset by peer) |
2024-02-21 22:11:26 +0100 | cheater | (~Username@user/cheater) |
2024-02-21 22:14:32 +0100 | xtabentun | (uid491929@id-491929.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
2024-02-21 22:18:26 +0100 | cheater_ | (~Username@user/cheater) |
2024-02-21 22:22:37 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 264 seconds) |
2024-02-21 22:22:42 +0100 | cheater_ | cheater |
2024-02-21 22:31:11 +0100 | euleritian | (~euleritia@77.22.252.56) (Read error: Connection reset by peer) |
2024-02-21 22:31:52 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-02-21 22:38:08 +0100 | synchromesh | (~synchrome@2407:7000:aa2d:4e00:9cf7:efcb:5efd:a99) (Read error: Connection reset by peer) |
2024-02-21 22:39:01 +0100 | synchromesh | (~synchrome@2407:7000:aa2d:4e00:9cf7:efcb:5efd:a99) |
2024-02-21 22:40:27 +0100 | lambdabot | (~lambdabot@haskell/bot/lambdabot) (Remote host closed the connection) |
2024-02-21 22:40:54 +0100 | lambdabot | (~lambdabot@silicon.int-e.eu) |
2024-02-21 22:40:54 +0100 | lambdabot | (~lambdabot@silicon.int-e.eu) (Changing host) |
2024-02-21 22:40:54 +0100 | lambdabot | (~lambdabot@haskell/bot/lambdabot) |
2024-02-21 22:40:54 +0100 | ChanServ | +v lambdabot |
2024-02-21 22:42:37 +0100 | int-e | (~noone@int-e.eu) (Remote host closed the connection) |
2024-02-21 22:43:26 +0100 | int-e | (~noone@int-e.eu) |
2024-02-21 22:44:20 +0100 | turlando | (~turlando@user/turlando) (Remote host closed the connection) |
2024-02-21 22:45:36 +0100 | turlando | (~turlando@user/turlando) |
2024-02-21 22:48:56 +0100 | michalz | (~michalz@185.246.207.222) |
2024-02-21 22:49:36 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) |
2024-02-21 22:52:49 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) |
2024-02-21 22:53:04 +0100 | jmorris | (uid604645@id-604645.hampstead.irccloud.com) |
2024-02-21 23:00:13 +0100 | peterbecich | (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 246 seconds) |
2024-02-21 23:06:50 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2024-02-21 23:07:33 +0100 | michalz | (~michalz@185.246.207.222) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-02-21 23:10:32 +0100 | hgolden | (~hgolden@2603-8000-9d00-3ed1-2678-8497-aa5c-7fa9.res6.spectrum.com) (Remote host closed the connection) |
2024-02-21 23:13:02 +0100 | hgolden | (~hgolden@2603-8000-9d00-3ed1-2678-8497-aa5c-7fa9.res6.spectrum.com) |
2024-02-21 23:14:27 +0100 | cheater_ | (~Username@user/cheater) |
2024-02-21 23:16:33 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2024-02-21 23:16:40 +0100 | apricot | (uid581388@id-581388.ilkley.irccloud.com) (Quit: Connection closed for inactivity) |
2024-02-21 23:18:51 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 268 seconds) |
2024-02-21 23:18:54 +0100 | cheater_ | cheater |
2024-02-21 23:27:15 +0100 | sroso | (~sroso@user/SrOso) |
2024-02-21 23:33:24 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2024-02-21 23:39:20 +0100 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
2024-02-21 23:42:02 +0100 | cheater_ | (~Username@user/cheater) |
2024-02-21 23:46:12 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 255 seconds) |
2024-02-21 23:46:12 +0100 | acidjnk | (~acidjnk@p200300d6e737e789f1d9672538a89ef2.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
2024-02-21 23:46:18 +0100 | cheater_ | cheater |
2024-02-21 23:47:29 +0100 | natechan | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 252 seconds) |
2024-02-21 23:59:49 +0100 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |