2022-08-14 00:06:18 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-08-14 00:07:50 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-14 00:13:25 +0200 | nate4 | (~nate@98.45.169.16) |
2022-08-14 00:16:38 +0200 | chomwitt | (~chomwitt@2a02:587:dc15:5e00:1855:2a35:cc0e:e682) (Ping timeout: 268 seconds) |
2022-08-14 00:18:16 +0200 | kannon | (~NK@c-73-158-0-130.hsd1.ca.comcast.net) |
2022-08-14 00:23:23 +0200 | <kannon> | https://paste.tomsmeding.com/lYOKTfBH hello I commented out the else statement in the remove function, and the error (only error?) was on my function 'f' . why would the error be found there if haskell didn't like the commenting of the else statement? |
2022-08-14 00:23:50 +0200 | <monochrom> | Ugh, "else" is mandatory, not optional. |
2022-08-14 00:24:55 +0200 | <kannon> | ok thanks but why would the error be on line 17? |
2022-08-14 00:25:17 +0200 | <kannon> | for a different function call? |
2022-08-14 00:25:26 +0200 | <hpc> | the location in the error message isn't where things went wrong |
2022-08-14 00:25:27 +0200 | <monochrom> | The computer sees "... then funcname param1 param2 parm3 param4 = forbid x y" this is not what you think. |
2022-08-14 00:25:30 +0200 | <hpc> | it's where the compiler was surprised |
2022-08-14 00:25:49 +0200 | <monochrom> | And yes your "f" now becomes param4 of your "remove". |
2022-08-14 00:25:58 +0200 | <Bulby[m]> | oh no my ocaml is seeping in |
2022-08-14 00:26:09 +0200 | <Bulby[m]> | let in let in let in |
2022-08-14 00:26:35 +0200 | <monochrom> | let-in is cool :) |
2022-08-14 00:26:50 +0200 | <Bulby[m]> | oh well, perhaps it means the compiler has less to optimize |
2022-08-14 00:26:58 +0200 | yvan-sraka | (~yvan-srak@105.67.135.250) (Remote host closed the connection) |
2022-08-14 00:27:00 +0200 | <monochrom> | ocaml is not seeping in until you write "letrec" :) |
2022-08-14 00:27:07 +0200 | <kannon> | the compiler sees 'f' as an additional parameter of the remove function? |
2022-08-14 00:27:18 +0200 | <Bulby[m]> | letrec is all lets, no? |
2022-08-14 00:27:36 +0200 | <hpc> | kannon: it doesn't know what to think of it, but everything up until then was valid haskell |
2022-08-14 00:27:40 +0200 | <hpc> | if not the haskell you intended |
2022-08-14 00:27:50 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2022-08-14 00:27:50 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2022-08-14 00:28:02 +0200 | <monochrom> | There was a time I wrote Haskell code and Java code interleavingly. One day I found myself writing "public class MyMonadClass where" in both Haskell and Java. |
2022-08-14 00:28:14 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2022-08-14 00:28:30 +0200 | <monochrom> | "unified electro-weak-haskell-java force" |
2022-08-14 00:28:38 +0200 | <Bulby[m]> | i hate how verbose java is compared to kotlin and scala |
2022-08-14 00:28:59 +0200 | <monochrom> | Oh hey you have the benefit of hindsight. |
2022-08-14 00:29:07 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-08-14 00:29:28 +0200 | <kannon> | hpc: so the omission of the else statement is valid? |
2022-08-14 00:29:34 +0200 | <monochrom> | Look at the bright side. You love how concise kotlin and scala are as successors of java. :) |
2022-08-14 00:29:59 +0200 | <Bulby[m]> | successors right |
2022-08-14 00:30:05 +0200 | <Bulby[m]> | if they were successors more people would use them 😢 |
2022-08-14 00:30:25 +0200 | <monochrom> | Right? One could say "I hate how verbose COBOL is compared to APL" but that's not how advancement works. :) |
2022-08-14 00:30:45 +0200 | <Bulby[m]> | public static final int |
2022-08-14 00:30:54 +0200 | <hpc> | kannon: to ghc, you haven't omitted the else |
2022-08-14 00:30:58 +0200 | <hpc> | you just haven't gotten to it yet |
2022-08-14 00:31:06 +0200 | <darkling> | I really must try out APL some day. |
2022-08-14 00:31:06 +0200 | <hpc> | but there's this equals sign that doesn't belong |
2022-08-14 00:31:25 +0200 | <Bulby[m]> | but then most people use java when targeting jvm |
2022-08-14 00:31:34 +0200 | <Bulby[m]> | so you have to either write in java or port your code to java |
2022-08-14 00:31:39 +0200 | <Bulby[m]> | porting is painful |
2022-08-14 00:31:43 +0200 | <Bulby[m]> | public static final int |
2022-08-14 00:31:46 +0200 | <Bulby[m]> | public static final int |
2022-08-14 00:32:00 +0200 | <monochrom> | UCOJEL = Unified COBOL-Java Enterprise Language = "MULTIPLY X BY Y GIVING PUBLIC STATIC FINAL INT Z" >:) |
2022-08-14 00:32:36 +0200 | <hpc> | it's not enterprise unless it's in excel |
2022-08-14 00:32:56 +0200 | <hpc> | =UCOJEL("MULTIPLY $A$1 BY $B$1 GIVING ...") |
2022-08-14 00:33:02 +0200 | <darkling> | It's not Enterprise unless you have five layers of constructor singletons between you and the object you want... |
2022-08-14 00:33:17 +0200 | <monochrom> | Haha hpc that's even better |
2022-08-14 00:33:50 +0200 | <darkling> | Although that said, I did once discover by design process why it looks like that. It made sense at the time, but it was still horrible to make. |
2022-08-14 00:33:54 +0200 | <Bulby[m]> | https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition |
2022-08-14 00:34:01 +0200 | <darkling> | :) |
2022-08-14 00:34:02 +0200 | <monochrom> | But perhaps we can add one more layer of SQL for finishing touch! |
2022-08-14 00:34:11 +0200 | <monochrom> | I guess s/of/for/ |
2022-08-14 00:34:12 +0200 | <darkling> | monochrom: Only one? Coward! |
2022-08-14 00:34:26 +0200 | <int-e> | darkling: and 3 XML files. Or maybe a merry mix of XML, JSON, and yaml these days. |
2022-08-14 00:35:05 +0200 | <darkling> | I once encountered a codebase that had Java files with XML embedded in them, and XLM files with Java embedded in them. |
2022-08-14 00:35:21 +0200 | <monochrom> | This is heading in the direction of "on the 12th day of christmas"... |
2022-08-14 00:35:22 +0200 | <darkling> | Oh, and lots of XSLT. |
2022-08-14 00:35:45 +0200 | <hpc> | 12 days of christmas? that's a lot of negative leap seconds |
2022-08-14 00:35:55 +0200 | <darkling> | After reading it for a day or two, I realised that they'd reimplemented flex and yacc in Java. XML, and XSLT... |
2022-08-14 00:36:20 +0200 | <darkling> | At that point, I tried to find the nearest waste paper basket to vomit in. |
2022-08-14 00:36:47 +0200 | <monochrom> | Sounds like the basket will have a space leak... |
2022-08-14 00:36:50 +0200 | <kannon> | that's very informative hpc. ghc hasn't seen the else statement yet. considering allowed indentation and the empty line on 16, isn't that a design flaw? |
2022-08-14 00:37:27 +0200 | <darkling> | The application was doing (highly constrained) NLP for synthetic organic chemistry papers, converting to a custom XML knowledge representation format. |
2022-08-14 00:37:59 +0200 | <kannon> | why wouldnt an empty line signify the end of a if/then/else ? |
2022-08-14 00:38:07 +0200 | <monochrom> | Well, at least the IUPAC names are highly mechanically NLP-able. :) |
2022-08-14 00:38:51 +0200 | <darkling> | Synthesis papers are *very* formulaic. |
2022-08-14 00:38:55 +0200 | <hpc> | empty lines are ignored so you can write longer definitions without it being a wall of text |
2022-08-14 00:39:18 +0200 | <hpc> | also, i was mistaken about the error being on the equals sign |
2022-08-14 00:39:33 +0200 | <darkling> | "To 10ml of X was aded 120 mg of Y, and heated under Z atmosphere to W °C..." |
2022-08-14 00:39:36 +0200 | <hpc> | it's saying it didn't expect the 'f', /because/ it expected indentation |
2022-08-14 00:39:47 +0200 | <monochrom> | Considering layout, I was likely mistaken too. |
2022-08-14 00:39:49 +0200 | <hpc> | (or else, at slightly lower indentation) |
2022-08-14 00:39:56 +0200 | <hpc> | so all working as intended |
2022-08-14 00:40:07 +0200 | <hpc> | and the surprise is right where it should be |
2022-08-14 00:40:11 +0200 | <monochrom> | But arguing parse error messages is futile. There is no way to win. |
2022-08-14 00:40:43 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds) |
2022-08-14 00:40:45 +0200 | <kannon> | ok else is required to finish if/then/else. thanks a lot hpc |
2022-08-14 00:40:51 +0200 | <qrpnxz> | can now sum 1 billion random 16-bit words from stdin in 8.8 seconds. 😃 |
2022-08-14 00:41:01 +0200 | <qrpnxz> | tests are going well |
2022-08-14 00:41:03 +0200 | <kannon> | and monochrom |
2022-08-14 00:43:01 +0200 | <qrpnxz> | (with 1.7MB of memory btw) |
2022-08-14 00:43:18 +0200 | <d34df00d> | How can ghc derive Eq for smth like `data Foo = Foo { foo :: forall a. Num a => a }`? |
2022-08-14 00:43:31 +0200 | <monochrom> | I think it can't. |
2022-08-14 00:43:33 +0200 | <d34df00d> | If I understand correctly, foo :: forall a. Num a => a is effectively a function from dictionaries of Num a to a. |
2022-08-14 00:43:39 +0200 | <d34df00d> | monochrom: it can with standalone deriving. |
2022-08-14 00:44:00 +0200 | Inst | (~Inst@2601:6c4:4080:3f80:38a1:ad8c:aa85:4bd8) |
2022-08-14 00:44:05 +0200 | <Inst> | hi, a question guys before I leave |
2022-08-14 00:44:17 +0200 | <Inst> | I've been irritating everyone with my blackjack solver that fucks up because I'm running a brute force minimax algorithm |
2022-08-14 00:44:23 +0200 | <Inst> | and it requires tremendous amounts of memory |
2022-08-14 00:44:31 +0200 | <Inst> | I've decided to wholly rewrite it in main.hs |
2022-08-14 00:44:34 +0200 | <Inst> | using Vectors instead |
2022-08-14 00:45:14 +0200 | <monochrom> | Then it would be interesing to see what it actually derives. |
2022-08-14 00:45:35 +0200 | <d34df00d> | monochrom: I just did -ddump-deriv, and it derives smth reasonable: |
2022-08-14 00:45:38 +0200 | <Inst> | in terms of memory, is it better to use a memoizing approach to initialize the vector using an accumulator |
2022-08-14 00:45:43 +0200 | <d34df00d> | instance GHC.Classes.Eq Ghci13.Foo where (GHC.Classes.==) (Ghci13.Foo a1_a45r) (Ghci13.Foo b1_a45s) = ((a1_a45r GHC.Classes.== b1_a45s)) |
2022-08-14 00:45:45 +0200 | <Inst> | or to use iterate? |
2022-08-14 00:45:57 +0200 | <monochrom> | In all likelihood it generates the lackbuster "instance Eq (forall a. Num a => a) => Eq Foo" so now it's tautologically useless. |
2022-08-14 00:46:12 +0200 | <d34df00d> | monochrom: it's not. Foo 10 == Foo 10 is True, and Foo 10 == Foo 20 is False. |
2022-08-14 00:46:52 +0200 | <d34df00d> | (also it doesn't even ask for -XQuantifiedConstraints, so the instance is probably simpler) |
2022-08-14 00:47:27 +0200 | <d34df00d> | (I also misparsed what you meant by "tautologically useless" at first, sorry) |
2022-08-14 00:47:37 +0200 | <monochrom> | Hrm. |
2022-08-14 00:48:01 +0200 | <monochrom> | Does the GHC User's Guide say something about this? |
2022-08-14 00:48:18 +0200 | <d34df00d> | I quickly skimmed it before asking and didn't find anything relevant. |
2022-08-14 00:49:34 +0200 | <d34df00d> | …because, of course, one cannot just write simple weekend fun web apps without GADTs and RankNTypes and what not. |
2022-08-14 00:53:11 +0200 | alp_ | (~alp@user/alp) |
2022-08-14 00:54:13 +0200 | alp_ | (~alp@user/alp) (Client Quit) |
2022-08-14 00:56:22 +0200 | shriekingnoise | (~shrieking@186.137.167.202) |
2022-08-14 00:58:38 +0200 | <kannon> | hpc if you're around later I have other questions about upvoted answer, where I found the forbid/remove programs, thanks: https://stackoverflow.com/questions/53217914/maybe-monad-and-a-list |
2022-08-14 01:01:47 +0200 | <kannon> | at one point the author of forbid/remove says the structure is the same, I'm assuming they mean ' noneOrNothing :: (a -> Bool) -> [a] -> Maybe [a] ' |
2022-08-14 01:04:00 +0200 | mikoto-chan | (~mikoto-ch@164.5.249.78) |
2022-08-14 01:06:38 +0200 | kannon | (~NK@c-73-158-0-130.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
2022-08-14 01:07:18 +0200 | <qrpnxz> | naive parsing and summing words one by one take 2 minutes. So my chunking method run in 7.3% the time, or 13.6 times faster! |
2022-08-14 01:09:09 +0200 | <qrpnxz> | well i should say naive, naive is with a list and that eats all memory and never finish. Streaming one by one take 2 minutes. unboxed chunked stream take 8.8 seconds |
2022-08-14 01:09:20 +0200 | <qrpnxz> | *should not |
2022-08-14 01:11:47 +0200 | forell | (~forell@user/forell) (Quit: ZNC - https://znc.in) |
2022-08-14 01:13:35 +0200 | forell | (~forell@user/forell) |
2022-08-14 01:14:26 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-12.elisa-laajakaista.fi) (Quit: Leaving.) |
2022-08-14 01:18:09 +0200 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 268 seconds) |
2022-08-14 01:21:33 +0200 | <qrpnxz> | if i need to swap endianness it's only 12 seconds vs 8 😱 |
2022-08-14 01:24:11 +0200 | <qrpnxz> | (and uses same memory (!)) |
2022-08-14 01:24:28 +0200 | Maxdamantus | (~Maxdamant@user/maxdamantus) (Ping timeout: 268 seconds) |
2022-08-14 01:28:18 +0200 | Unhammer | (~Unhammer@user/unhammer) (Ping timeout: 240 seconds) |
2022-08-14 01:29:35 +0200 | MajorBiscuit | (~MajorBisc@46-229-126.internethome.cytanet.com.cy) (Ping timeout: 255 seconds) |
2022-08-14 01:38:38 +0200 | <monochrom> | Hrm, if you use an ARM CPU, there is a flag you can toggle to switch endianness >:) |
2022-08-14 01:39:13 +0200 | <monochrom> | Dr. Strange in The Multiverse of Endian Madness :) |
2022-08-14 01:39:33 +0200 | <geekosaur> | mips had that too |
2022-08-14 01:39:37 +0200 | <darkling> | PPC allowed that too. |
2022-08-14 01:39:59 +0200 | <monochrom> | >_< |
2022-08-14 01:40:18 +0200 | gentauro | (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
2022-08-14 01:40:37 +0200 | <darkling> | It wasn't until I tried writing arbitrary-length arithmetic code for Z80 last year that I realised why little-endinan is so much better. |
2022-08-14 01:40:37 +0200 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) |
2022-08-14 01:40:53 +0200 | <monochrom> | :) |
2022-08-14 01:41:18 +0200 | <geekosaur> | Z80? haven't touched that since the early 80s |
2022-08-14 01:41:27 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-08-14 01:41:33 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit) |
2022-08-14 01:41:43 +0200 | <darkling> | I've got a SpecNext -- Z80N |
2022-08-14 01:42:19 +0200 | jgeerds | (~jgeerds@55d46bad.access.ecotel.net) (Ping timeout: 252 seconds) |
2022-08-14 01:42:39 +0200 | <darkling> | I've got a meta-assembler sitting on the shelf since last year with Z80N as the first working target. I should probably revisit that and get it to releasable form. |
2022-08-14 01:44:51 +0200 | <darkling> | Got a bunch of rewriting in the parser to make it useful for ARM3 first, though. :( |
2022-08-14 01:45:56 +0200 | gentauro | (~gentauro@user/gentauro) |
2022-08-14 01:46:28 +0200 | kitty4 | (~kitty@096-039-147-043.res.spectrum.com) |
2022-08-14 01:46:39 +0200 | <qrpnxz> | monochrom: bruh, i legit have a cracked `endianness` thing that does unsafePerformIO to figure it out, and the comment says "not expecting endianness to change at runtime, are we?". You've destroyed me 😭 |
2022-08-14 01:48:09 +0200 | <qrpnxz> | toggling that flag sounds hella unsafe. Can userspace even touch that? |
2022-08-14 01:48:33 +0200 | <darkling> | It's usually a very early boot-time thing. |
2022-08-14 01:48:42 +0200 | <qrpnxz> | makes sense lol |
2022-08-14 01:49:00 +0200 | <darkling> | Firmware option, I think. |
2022-08-14 01:50:28 +0200 | <darkling> | I don't know if it flips the instruction byte order. (On any of the mentioned architectures). |
2022-08-14 01:51:02 +0200 | <darkling> | AFAIK, most people just go for little-endian. BE is an oddity. |
2022-08-14 01:51:36 +0200 | <qrpnxz> | i believe powerpc was BE |
2022-08-14 01:51:46 +0200 | <geekosaur> | both-endian |
2022-08-14 01:51:50 +0200 | <qrpnxz> | lol |
2022-08-14 01:51:53 +0200 | <geekosaur> | with a cpu flag as mentioned |
2022-08-14 01:52:25 +0200 | <geekosaur> | I have no clue what they were thinking |
2022-08-14 01:52:56 +0200 | <darkling> | Yeah, I remember seeing ads for the first revision of the PPC platform (PREP?) from IBM. |
2022-08-14 01:53:01 +0200 | <qrpnxz> | so called network order is BE. No idea why. atm i'm working on a parser for a network protocol called packstream that also does BE |
2022-08-14 01:53:06 +0200 | <darkling> | Definiotely endian-switchable. |
2022-08-14 01:53:12 +0200 | <geekosaur> | because Sun was BE |
2022-08-14 01:53:20 +0200 | <geekosaur> | originally MC68020 then SPARC |
2022-08-14 01:54:46 +0200 | <geekosaur> | and many of the core TCP/IP protocols came out of Stanford (now look up what Sun originally stood for: Stanford University Networking) |
2022-08-14 01:55:22 +0200 | <darkling> | PDP-11(?) had some funky endianness going on -- the CPU had 18-bit memory locations, with 36-bit registers, but split characters into 9-bit values packed into the 18-bit memory locations, so you could have any combination of LE(byte)+LE(char), LE(byte)+BE(char), ... |
2022-08-14 01:56:05 +0200 | <geekosaur> | actually pdp11 was the sane one with bytes |
2022-08-14 01:56:05 +0200 | <darkling> | So there was a middle-endian possibility that led to the string "UNIX" being displayed as "NUXI". |
2022-08-14 01:56:17 +0200 | <geekosaur> | 18- and 36-bit stuff was on most of the other DEC models |
2022-08-14 01:56:18 +0200 | <darkling> | Maybe I'm thinking of PDP-8. |
2022-08-14 01:56:45 +0200 | <darkling> | It's been a while since I dug into the detail of the PDPs. |
2022-08-14 01:56:57 +0200 | <geekosaur> | but pdp11 did have that weird mixed-endian 32-bit thing, yes |
2022-08-14 01:59:56 +0200 | <geekosaur> | the 9-bit "byte" thing did affect other protocols; FTP still has TYPE L 8 to specify compatibility with those systems, although I think the last few were retired in 1995ish |
2022-08-14 02:00:48 +0200 | <darkling> | It was one of the design goals of my meta-assembler that it would support things like 9- or 18-bit bytes. |
2022-08-14 02:01:19 +0200 | <darkling> | I had plenty of other fish to fry in getting the Z80N stuff working first, but at least I know where it was trying to go. :) |
2022-08-14 02:04:19 +0200 | zeenk | (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!) |
2022-08-14 02:10:35 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2022-08-14 02:11:17 +0200 | liz | (~liz@host86-157-124-38.range86-157.btcentralplus.com) (Quit: Lost terminal) |
2022-08-14 02:12:00 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-08-14 02:12:20 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
2022-08-14 02:18:02 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::a1ec) |
2022-08-14 02:18:15 +0200 | Batzy_ | (~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2022-08-14 02:18:48 +0200 | Batzy | (~quassel@user/batzy) |
2022-08-14 02:20:53 +0200 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 255 seconds) |
2022-08-14 02:21:09 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-08-14 02:22:06 +0200 | Pickchea | (~private@user/pickchea) |
2022-08-14 02:22:07 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit) |
2022-08-14 02:24:33 +0200 | luffy | (~chenqisu1@183.217.201.23) |
2022-08-14 02:27:43 +0200 | Maxdamantus | (~Maxdamant@user/maxdamantus) |
2022-08-14 02:32:08 +0200 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
2022-08-14 02:33:32 +0200 | E23[m] | (~mkomlofsk@2001:470:69fc:105::2:4224) (Quit: User was banned) |
2022-08-14 02:36:50 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-08-14 02:37:44 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2022-08-14 02:38:08 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2022-08-14 02:38:19 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 268 seconds) |
2022-08-14 02:43:25 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-14 02:45:39 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) |
2022-08-14 02:50:10 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds) |
2022-08-14 02:51:22 +0200 | mikoto-chan | (~mikoto-ch@164.5.249.78) (Read error: Connection reset by peer) |
2022-08-14 03:02:12 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) |
2022-08-14 03:04:10 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2022-08-14 03:04:34 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2022-08-14 03:06:42 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds) |
2022-08-14 03:09:50 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2022-08-14 03:10:19 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2022-08-14 03:11:21 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-08-14 03:11:25 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds) |
2022-08-14 03:11:44 +0200 | ryantrinkle | (~ryan@2607:f00:3:14c0:7c6b:7160:d1ff:3f7) (Ping timeout: 255 seconds) |
2022-08-14 03:16:26 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2022-08-14 03:20:34 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) |
2022-08-14 03:23:21 +0200 | ryantrinkle | (~ryan@209.91.209.121) |
2022-08-14 03:24:47 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds) |
2022-08-14 03:43:35 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-08-14 03:43:35 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-08-14 03:43:36 +0200 | wroathe | (~wroathe@user/wroathe) |
2022-08-14 03:45:21 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2022-08-14 03:46:36 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-08-14 03:47:31 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-08-14 03:52:43 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-14 03:53:00 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) |
2022-08-14 03:53:54 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) |
2022-08-14 03:58:00 +0200 | nilradical | (~nilradica@user/naso) |
2022-08-14 03:58:22 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds) |
2022-08-14 04:07:02 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2022-08-14 04:07:19 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2022-08-14 04:09:13 +0200 | Jeanne-Kamikaze | (~Jeanne-Ka@142.147.89.253) |
2022-08-14 04:12:29 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2022-08-14 04:12:29 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2022-08-14 04:12:29 +0200 | finn_elija | FinnElija |
2022-08-14 04:21:33 +0200 | <Bulby[m]> | is vector what you use for random access containers |
2022-08-14 04:28:51 +0200 | td_ | (~td@muedsl-82-207-238-051.citykom.de) (Ping timeout: 268 seconds) |
2022-08-14 04:30:35 +0200 | td_ | (~td@94.134.91.250) |
2022-08-14 04:31:26 +0200 | <Bulby[m]> | mood |
2022-08-14 04:33:32 +0200 | kavvadias | (~kavvadias@2001:9e8:630d:e200:2032:f506:e11d:b38d) |
2022-08-14 04:34:15 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
2022-08-14 04:35:29 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
2022-08-14 04:36:52 +0200 | <kavvadias> | hello everyone im having some problems with trying to print a list of tuples on a terminal game im trying to do, is anyone able to help out a bit? |
2022-08-14 04:37:04 +0200 | <kavvadias> | where im struggling looks like that |
2022-08-14 04:37:41 +0200 | <kavvadias> | let aliens (a:as) = lift . lift $ setCursorPosition a >>= putChar '@' >>= aliens a |
2022-08-14 04:38:19 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2022-08-14 04:39:44 +0200 | <kavvadias> | also the github is here https://github.com/Astodialo/space_inv |
2022-08-14 04:45:50 +0200 | <ski> | what's the problem ? |
2022-08-14 04:46:24 +0200 | <kavvadias> | well im lost in types tbh |
2022-08-14 04:46:29 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) |
2022-08-14 04:46:41 +0200 | <ski> | type error(s) ? |
2022-08-14 04:46:47 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-08-14 04:46:54 +0200 | <kavvadias> | yes |
2022-08-14 04:47:00 +0200 | <ski> | specifically ? |
2022-08-14 04:47:55 +0200 | <ski> | (should `randomRIO (0, mCol)' be `randomRIO (0,mCol - 1)' ?) |
2022-08-14 04:49:12 +0200 | <kavvadias> | yes |
2022-08-14 04:49:16 +0200 | <kavvadias> | thanks |
2022-08-14 04:49:59 +0200 | <ski> | i'm still missing the type error messages |
2022-08-14 04:50:40 +0200 | <kavvadias> | Couldn't match expected type ‘IO () -> Int -> a’ |
2022-08-14 04:50:40 +0200 | <kavvadias> | with actual type ‘IO ()’ |
2022-08-14 04:51:04 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds) |
2022-08-14 04:51:42 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::a1ec) (Ping timeout: 264 seconds) |
2022-08-14 04:51:43 +0200 | <ski> | however, `aliens' does look incorrect. `lift . lift $ setCursorPosition a' probably would be better as `(lift . lift) (setCursorPosition a)' (because `foo $ blah >>= bleh' is read as `foo $ (blah >>= bleh)', rather than `(foo $ blah) >>= bleh') |
2022-08-14 04:52:15 +0200 | <ski> | also, `... >>= aliens a' presumably ought to be `... >>= aliens as' |
2022-08-14 04:52:37 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2022-08-14 04:52:46 +0200 | <ski> | also, `>>=' looks like you meant to say `>>' (or you could use `do'-notation) |
2022-08-14 04:53:00 +0200 | <c_wraith> | I'm getting the feeling the whole thing should be a mapM_ |
2022-08-14 04:53:11 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::a1ec) |
2022-08-14 04:53:15 +0200 | <ski> | (and there's no base case) |
2022-08-14 04:55:29 +0200 | <ski> | if you make a `newtype' for `ReaderT Config (StateT Game IO)', and derive `Functor',`Applicative',`Monad',`MonadReader Config',`MonadState Game',`MonadIO', you could use `liftIO' rather than `lift . lift'. and if you decide you need another layer, you don't need to change (again) the type signatures of `play' and `renderGame' |
2022-08-14 04:57:19 +0200 | <kavvadias> | would the base case return () ? |
2022-08-14 04:57:41 +0200 | <ski> | i don't know. depends on what you want `aliens' to do ? |
2022-08-14 04:58:31 +0200 | <ski> | (and in such a case, c_wraith's suggestion would be appropriate) |
2022-08-14 04:59:03 +0200 | <ski> | oh, you're also shadowing the earlier `aliens' by the function definition |
2022-08-14 04:59:35 +0200 | <ski> | is `N' only used initially ? |
2022-08-14 04:59:38 +0200 | <kavvadias> | have never used mapM |
2022-08-14 04:59:44 +0200 | <kavvadias> | ill read up on it |
2022-08-14 05:00:09 +0200 | <ski> | try something like `mapM_ print [2,3,5,7]' |
2022-08-14 05:00:31 +0200 | <energizer> | in python if mymod.py does `from collections import *` then the mymod.OrderedDict binding is created. is the same true in haskell? |
2022-08-14 05:00:51 +0200 | <ski> | or `forM_ [2,3,5,7] $ \n -> do print n' |
2022-08-14 05:01:48 +0200 | <ski> | `OrderedDict' being what, in the Haskell case ? |
2022-08-14 05:02:40 +0200 | <energizer> | ski: just some name in the collections module. |
2022-08-14 05:02:46 +0200 | <energizer> | i'm asking about scope rules |
2022-08-14 05:03:55 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2022-08-14 05:04:33 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-08-14 05:05:29 +0200 | <Bulby[m]> | writing haskell makes me miss langs that have braces lol |
2022-08-14 05:05:55 +0200 | <energizer> | like, is import the same as assigning here.name = there.name, or is there something else going on |
2022-08-14 05:06:50 +0200 | <c_wraith> | there's something else going on, in that importing the same name unqualified from multiple modules isn't an error unless you try to use that name. |
2022-08-14 05:07:21 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-08-14 05:07:23 +0200 | nilradical | (~nilradica@user/naso) (Remote host closed the connection) |
2022-08-14 05:07:32 +0200 | <ski> | energizer : if you do `import Collections' and `Collections' exports `OrderedDict', then `OrderedDict' is in scope inside `MyMod.hs', but is not exported from it. you could put `foo' in the export list of `MyMod', though |
2022-08-14 05:07:44 +0200 | <DigitalKiwi> | i thought you can use braces |
2022-08-14 05:07:48 +0200 | <ski> | Bulby[m] : you know you can use braces and semicolons in Haskell too, right ? |
2022-08-14 05:07:53 +0200 | <Bulby[m]> | you can technically |
2022-08-14 05:08:12 +0200 | nilradical | (~nilradica@user/naso) |
2022-08-14 05:08:16 +0200 | <DigitalKiwi> | iirc spj style uses them |
2022-08-14 05:09:19 +0200 | <Bulby[m]> | > Haskell can be written using braces and semi- |
2022-08-14 05:09:20 +0200 | <Bulby[m]> | colons, just like C. |
2022-08-14 05:09:20 +0200 | <Bulby[m]> | lol |
2022-08-14 05:09:21 +0200 | <lambdabot> | <hint>:1:46: error: |
2022-08-14 05:09:21 +0200 | <lambdabot> | parse error (possibly incorrect indentation or mismatched brackets) |
2022-08-14 05:09:24 +0200 | <energizer> | thanks c_wraith ski |
2022-08-14 05:09:27 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-08-14 05:09:27 +0200 | <Bulby[m]> | > However, no one does. |
2022-08-14 05:09:29 +0200 | <lambdabot> | <hint>:1:8: error: parse error on input ‘,’ |
2022-08-14 05:09:38 +0200 | <Bulby[m]> | oh |
2022-08-14 05:14:24 +0200 | sympt | (~sympt@user/sympt) |
2022-08-14 05:16:51 +0200 | nate4 | (~nate@98.45.169.16) |
2022-08-14 05:17:55 +0200 | <Bulby[m]> | it complains when I try to use a brace |
2022-08-14 05:17:56 +0200 | <Bulby[m]> | oh |
2022-08-14 05:17:56 +0200 | <Bulby[m]> | nvm |
2022-08-14 05:18:12 +0200 | _xor | (~xor@74.215.182.83) (Quit: WeeChat 3.0) |
2022-08-14 05:19:13 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-08-14 05:20:32 +0200 | etoast | (~exaltedto@user/exaltedtoast) (Quit: Tschüss) |
2022-08-14 05:21:17 +0200 | etoast | (~exaltedto@user/exaltedtoast) |
2022-08-14 05:22:43 +0200 | <kavvadias> | well hello again, tried to use mapM_ and came up with something like this |
2022-08-14 05:22:45 +0200 | <kavvadias> | lift . lift $ mapM_ setCursorPosition >>= putChar '@' aliens |
2022-08-14 05:23:08 +0200 | <kavvadias> | it still dont work |
2022-08-14 05:23:19 +0200 | <kavvadias> | Couldn't match expected type ‘Aliens -> a0 -> IO a1’ |
2022-08-14 05:23:20 +0200 | <kavvadias> | with actual type ‘IO ()’ |
2022-08-14 05:23:52 +0200 | <kavvadias> | would i have to lift mapM_ ? |
2022-08-14 05:25:32 +0200 | etoast | (~exaltedto@user/exaltedtoast) (Client Quit) |
2022-08-14 05:28:55 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 252 seconds) |
2022-08-14 05:35:03 +0200 | <ski> | kavvadias : you still should not use `$' like that |
2022-08-14 05:35:20 +0200 | <ski> | (in my mind, you shouldn't use `$' at all, mostly) |
2022-08-14 05:35:44 +0200 | <ski> | and you should pass two parameters to `mapM_' |
2022-08-14 05:36:03 +0200 | <ski> | (did you check its type signature ?) |
2022-08-14 05:37:02 +0200 | <kavvadias> | to be honest right now im kind of trying everything because my head is gone |
2022-08-14 05:37:08 +0200 | <kavvadias> | mapM_ setCursorPosition aliens |
2022-08-14 05:37:16 +0200 | <ski> | (you seem to be using `>>=' without no clear understanding what it's doing, or how it's meant to be called. perhaps you should stick with `do', for now ?) |
2022-08-14 05:37:50 +0200 | <ski> | forM_ aliens \alien -> do |
2022-08-14 05:37:56 +0200 | <ski> | setCursorPosition alien |
2022-08-14 05:38:05 +0200 | <ski> | liftIO (putChar '@') |
2022-08-14 05:38:42 +0200 | <ski> | well, you need `.. aliens $ \alien -> do ..', if you don't enable `BlockArguments' |
2022-08-14 05:41:42 +0200 | kimjetwav | (~user@2607:fea8:235e:b600:10e5:8f0a:fe7a:2725) (Quit: sigh, reboot time) |
2022-08-14 05:41:45 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds) |
2022-08-14 05:44:14 +0200 | <kavvadias> | instead of $ then use (), okay i was thinking that it was basically a substitute for it |
2022-08-14 05:44:30 +0200 | <Bulby[m]> | old versions of minecraft use unaligned bytereads |
2022-08-14 05:44:31 +0200 | <Bulby[m]> | why |
2022-08-14 05:45:48 +0200 | <kavvadias> | still getting a type error |
2022-08-14 05:45:49 +0200 | <kavvadias> | Couldn't match expected type ‘ReaderT Config (StateT Game IO) a0’ |
2022-08-14 05:45:49 +0200 | <kavvadias> | with actual type ‘Int -> IO ()’ |
2022-08-14 05:46:22 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) |
2022-08-14 05:47:59 +0200 | <ski> | kavvadias : for the most part, i'd be happy with `$' being purged (at least given `BlockArguments') |
2022-08-14 05:48:30 +0200 | <ski> | kavvadias : and you forgot to provide the current code which is being flagged for that error |
2022-08-14 05:48:53 +0200 | <kavvadias> | Couldn't match expected type ‘ReaderT Config (StateT Game IO) a0’ |
2022-08-14 05:48:53 +0200 | <kavvadias> | with actual type ‘Int -> IO ()’ |
2022-08-14 05:49:15 +0200 | <kavvadias> | oh wait, sorry |
2022-08-14 05:49:33 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2022-08-14 05:49:41 +0200 | <kavvadias> | Probable cause: ‘setCursorPosition’ is applied to too few arguments |
2022-08-14 05:49:42 +0200 | <kavvadias> | In a stmt of a 'do' block: setCursorPosition alien |
2022-08-14 05:49:42 +0200 | <kavvadias> | In the expression: |
2022-08-14 05:49:43 +0200 | <kavvadias> | do setCursorPosition alien |
2022-08-14 05:49:43 +0200 | <kavvadias> | liftIO (putChar '@') |
2022-08-14 05:49:44 +0200 | <kavvadias> | In the second argument of ‘($)’, namely |
2022-08-14 05:49:44 +0200 | <kavvadias> | ‘\ alien |
2022-08-14 05:49:45 +0200 | <kavvadias> | -> do setCursorPosition alien |
2022-08-14 05:49:46 +0200 | <kavvadias> | | |
2022-08-14 05:49:46 +0200 | <kavvadias> | 60 | setCursorPosition alien |
2022-08-14 05:50:22 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-08-14 05:51:02 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds) |
2022-08-14 05:51:59 +0200 | <ski> | well, what's the signature of `System.Console.ANSI.setCursorPosition' ? maybe it does want another argument ? |
2022-08-14 05:52:19 +0200 | <ski> | (oh, and it probably also needs to be `liftIO'ed) |
2022-08-14 05:54:27 +0200 | <kavvadias> | its Int -> Int -> IO () |
2022-08-14 05:54:52 +0200 | <ski> | there you go |
2022-08-14 05:55:07 +0200 | etoast | (~exaltedto@user/exaltedtoast) |
2022-08-14 05:55:41 +0200 | kitty4 | (~kitty@096-039-147-043.res.spectrum.com) (Ping timeout: 252 seconds) |
2022-08-14 05:55:42 +0200 | <kavvadias> | alien is a list of tuples tho |
2022-08-14 05:55:55 +0200 | <ski> | so use `\(row,col) -> do setCursorPosition row col; ...' (or maybe the other way around, depending on how `setCursorPosition' wants it) |
2022-08-14 05:55:58 +0200 | kitty4 | (~kitty@096-039-147-043.res.spectrum.com) |
2022-08-14 05:56:08 +0200 | <kavvadias> | oh ok |
2022-08-14 05:56:35 +0200 | <ski> | (and probably best to move the `liftIO' outside of the `forM_') |
2022-08-14 05:56:56 +0200 | etoast | (~exaltedto@user/exaltedtoast) (Client Quit) |
2022-08-14 05:59:36 +0200 | <kavvadias> | liftIO forM_ aliens \(row, col) -> do |
2022-08-14 05:59:37 +0200 | <kavvadias> | setCursorPosition row col |
2022-08-14 05:59:37 +0200 | <kavvadias> | putChar '@' |
2022-08-14 05:59:57 +0200 | <kavvadias> | Couldn't match expected type ‘IO |
2022-08-14 05:59:58 +0200 | <kavvadias> | (((Int, Int) -> IO ()) -> ReaderT Config (StateT Game IO) a1)’ |
2022-08-14 05:59:58 +0200 | <kavvadias> | with actual type ‘t0 a0 -> (a0 -> m0 b0) -> m0 ()’ |
2022-08-14 05:59:59 +0200 | <kavvadias> | • Probable cause: ‘forM_’ is applied to too few arguments |
2022-08-14 05:59:59 +0200 | <kavvadias> | In the first argument of ‘liftIO’, namely ‘forM_’ |
2022-08-14 06:00:00 +0200 | <kavvadias> | In the expression: liftIO forM_ aliens |
2022-08-14 06:00:00 +0200 | <kavvadias> | In a stmt of a 'do' block: |
2022-08-14 06:00:01 +0200 | <kavvadias> | liftIO forM_ aliens |
2022-08-14 06:00:01 +0200 | <kavvadias> | $ \ (row, col) |
2022-08-14 06:00:02 +0200 | <kavvadias> | -> do setCursorPosition row col |
2022-08-14 06:00:02 +0200 | <kavvadias> | putChar '@' |
2022-08-14 06:00:03 +0200 | <kavvadias> | | |
2022-08-14 06:00:03 +0200 | <kavvadias> | 60 | liftIO forM_ aliens $ \(row, col) -> do |
2022-08-14 06:00:04 +0200 | <kavvadias> | | ^^^^^ |
2022-08-14 06:00:21 +0200 | <kavvadias> | ive put BLockArguments btw |
2022-08-14 06:00:48 +0200 | etoast | (~exaltedto@user/exaltedtoast) |
2022-08-14 06:00:49 +0200 | <kavvadias> | oh i forgot the $ in there |
2022-08-14 06:01:02 +0200 | <kavvadias> | oh no i didnt |
2022-08-14 06:01:08 +0200 | <kavvadias> | :w |
2022-08-14 06:01:58 +0200 | etoast | (~exaltedto@user/exaltedtoast) (Client Quit) |
2022-08-14 06:02:57 +0200 | <ski> | (liftIO . forM_ aliens) \(row,col) -> do ... |
2022-08-14 06:03:04 +0200 | Typedfern | (~Typedfern@202.red-83-37-35.dynamicip.rima-tde.net) (Read error: Connection reset by peer) |
2022-08-14 06:03:04 +0200 | etoast | (~exaltedto@user/exaltedtoast) |
2022-08-14 06:03:09 +0200 | etoast | (~exaltedto@user/exaltedtoast) (Client Quit) |
2022-08-14 06:03:25 +0200 | etoast | (~exaltedto@user/exaltedtoast) |
2022-08-14 06:03:30 +0200 | <ski> | (or `liftIO (forM_ aliens \(row,col) -> do ...)') |
2022-08-14 06:05:34 +0200 | <DigitalKiwi> | you forgot to use a pastebin is what you did |
2022-08-14 06:06:29 +0200 | <kavvadias> | im forgetting how to function aswell so long im on this :) |
2022-08-14 06:06:34 +0200 | etoast | (~exaltedto@user/exaltedtoast) (Client Quit) |
2022-08-14 06:06:47 +0200 | <kavvadias> | but yeah, sorry about that |
2022-08-14 06:08:32 +0200 | Typedfern | (~Typedfern@202.red-83-37-35.dynamicip.rima-tde.net) |
2022-08-14 06:08:40 +0200 | etoast | (~exaltedto@user/exaltedtoast) |
2022-08-14 06:10:19 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2022-08-14 06:10:23 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
2022-08-14 06:10:49 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2022-08-14 06:10:59 +0200 | <Bulby[m]> | k, I have a list of tuples that hold an index for items to be placed and a list of those items |
2022-08-14 06:11:08 +0200 | <Bulby[m]> | is there a neat way of assembling the overall list |
2022-08-14 06:11:40 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::a1ec) (Ping timeout: 244 seconds) |
2022-08-14 06:11:54 +0200 | <Bulby[m]> | it's fairly large |
2022-08-14 06:12:13 +0200 | <kavvadias> | im still getting type errors https://pastebin.com/Z6JqBJDA |
2022-08-14 06:13:48 +0200 | nattiestnate | (~nate@180.243.14.16) (Quit: WeeChat 3.6) |
2022-08-14 06:16:42 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds) |
2022-08-14 06:16:52 +0200 | <ski> | kavvadias : insert `_getAliens' somewhere |
2022-08-14 06:17:19 +0200 | <ski> | Bulby[m] : that's rather vague |
2022-08-14 06:17:26 +0200 | <Bulby[m]> | true |
2022-08-14 06:17:59 +0200 | <Bulby[m]> | trying to connect up this https://github.com/jmc2obj/j-mc-2-obj/blob/master/src/org/jmc/Chunk.java#L307 without using mutable data |
2022-08-14 06:18:59 +0200 | <Bulby[m]> | i got to a `[(Int, [BlockData])]` |
2022-08-14 06:20:15 +0200 | <ski> | if you have say input `[(2,"abc"),(8,"de")]', what output are you looking for ? |
2022-08-14 06:20:30 +0200 | <ski> | (or maybe you'll be able to come up with a better example yourself) |
2022-08-14 06:21:08 +0200 | <Bulby[m]> | with some default value `"_"` `"__abc___de"` |
2022-08-14 06:21:29 +0200 | Jeanne-Kamikaze | (~Jeanne-Ka@142.147.89.253) (Quit: Leaving) |
2022-08-14 06:21:35 +0200 | luffy | (~chenqisu1@183.217.201.23) (Ping timeout: 268 seconds) |
2022-08-14 06:21:48 +0200 | <ski> | and in case of overlap ? |
2022-08-14 06:22:13 +0200 | <Bulby[m]> | i'm not sure the data will allow that, but if it does i guess the later one wins |
2022-08-14 06:22:24 +0200 | <kavvadias> | getting this type error https://pastebin.com/ggDW2i66 |
2022-08-14 06:22:34 +0200 | <ski> | and you have a fixed size you want ? |
2022-08-14 06:22:43 +0200 | <Bulby[m]> | 4096 |
2022-08-14 06:22:45 +0200 | <Bulby[m]> | yes |
2022-08-14 06:22:53 +0200 | <Bulby[m]> | for each segment |
2022-08-14 06:22:55 +0200 | <Bulby[m]> | not overall |
2022-08-14 06:23:26 +0200 | <ski> | kavvadias : no, don't replace `aliens' by `_getAliens'. *use* `_getAliens' to extract the `[Point]' from the `Aliens' |
2022-08-14 06:24:13 +0200 | <ski> | @type (//) -- might be useful, in case you use `Array's |
2022-08-14 06:24:15 +0200 | <lambdabot> | Ix i => Array i e -> [(i, e)] -> Array i e |
2022-08-14 06:24:16 +0200 | etoast | (~exaltedto@user/exaltedtoast) (Quit: Tschüss) |
2022-08-14 06:24:32 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-14 06:24:48 +0200 | etoast | (~exaltedto@user/exaltedtoast) |
2022-08-14 06:26:06 +0200 | <ski> | > elems (listArray (0,9) (replicate 10 '_') // zip [2 ..] "abc" // zip [8 ..] "de") |
2022-08-14 06:26:07 +0200 | <lambdabot> | "__abc___de" |
2022-08-14 06:26:40 +0200 | <Bulby[m]> | what |
2022-08-14 06:26:44 +0200 | <ski> | (well, better to just use `//' once) |
2022-08-14 06:26:46 +0200 | <Bulby[m]> | that's odd |
2022-08-14 06:27:24 +0200 | <Bulby[m]> | i feel like if this data has no defaults that implies that either 1. java is using nulls again or 2. the data is fully contiguous |
2022-08-14 06:27:27 +0200 | <Bulby[m]> | i hope it's the former |
2022-08-14 06:28:02 +0200 | ski | didn't look too closely at the Java |
2022-08-14 06:28:03 +0200 | <Bulby[m]> | no |
2022-08-14 06:28:05 +0200 | <Bulby[m]> | latter |
2022-08-14 06:28:12 +0200 | myme1 | (~myme@2a01:799:d5a:cd00:e0d6:bd5d:e9e6:2667) (Ping timeout: 244 seconds) |
2022-08-14 06:28:14 +0200 | <Bulby[m]> | but it's the former ☹️ |
2022-08-14 06:28:24 +0200 | <ski> | which is it ? |
2022-08-14 06:28:27 +0200 | etoast | (~exaltedto@user/exaltedtoast) (Client Quit) |
2022-08-14 06:28:34 +0200 | <Bulby[m]> | that java is using nulls |
2022-08-14 06:28:45 +0200 | <Bulby[m]> | i already made the thing storing it a list of maybe |
2022-08-14 06:28:55 +0200 | <Bulby[m]> | so I can transform this into a maybe list and zip from there |
2022-08-14 06:29:31 +0200 | myme1 | (~myme@2a01:799:d5a:cd00:24c9:1211:1023:461b) |
2022-08-14 06:29:37 +0200 | king_gs | (~Thunderbi@2806:103e:29:da7a:d5d4:589a:91e6:9b54) |
2022-08-14 06:30:10 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-08-14 06:30:10 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-08-14 06:30:10 +0200 | wroathe | (~wroathe@user/wroathe) |
2022-08-14 06:30:27 +0200 | etoast | (~exaltedto@user/exaltedtoast) |
2022-08-14 06:32:25 +0200 | <kavvadias> | ski sorry but i really dont get it right now, my brain is a compost |
2022-08-14 06:34:32 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
2022-08-14 06:34:48 +0200 | <ski> | kavvadias : currently, `aliens' is an `Aliens', not a `[Point]', so you can't pass it to `forM_'. either insert `_getAliens' in the definition of `aliens', or around the use of it |
2022-08-14 06:35:07 +0200 | lemonsnicks | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 268 seconds) |
2022-08-14 06:37:14 +0200 | etoast | (~exaltedto@user/exaltedtoast) (Quit: Tschüss) |
2022-08-14 06:37:34 +0200 | etoast | (~exaltedto@user/exaltedtoast) |
2022-08-14 06:39:24 +0200 | <kavvadias> | ski thank you so much for your help <3 |
2022-08-14 06:41:09 +0200 | etoast | (~exaltedto@user/exaltedtoast) (Client Quit) |
2022-08-14 06:48:04 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds) |
2022-08-14 06:48:11 +0200 | cynomys | (~cynomys@user/cynomys) |
2022-08-14 06:48:22 +0200 | cynomys | (~cynomys@user/cynomys) (Client Quit) |
2022-08-14 06:48:50 +0200 | lemonsnicks | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
2022-08-14 06:51:43 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2022-08-14 06:52:49 +0200 | Maxdamantus | (~Maxdamant@user/maxdamantus) (Quit: brb) |
2022-08-14 06:53:00 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
2022-08-14 06:57:55 +0200 | Maxdamantus | (~Maxdamant@user/maxdamantus) |
2022-08-14 07:00:04 +0200 | etoast | (~exaltedto@user/exaltedtoast) |
2022-08-14 07:00:54 +0200 | nate4 | (~nate@98.45.169.16) |
2022-08-14 07:04:08 +0200 | king_gs | (~Thunderbi@2806:103e:29:da7a:d5d4:589a:91e6:9b54) (Ping timeout: 268 seconds) |
2022-08-14 07:07:03 +0200 | <Bulby[m]> | https://github.com/jmc2obj/j-mc-2-obj/blob/master/src/org/jmc/Chunk.java#L399-L411 |
2022-08-14 07:07:04 +0200 | <Bulby[m]> | wtf |
2022-08-14 07:12:03 +0200 | kavvadias | (~kavvadias@2001:9e8:630d:e200:2032:f506:e11d:b38d) (Quit: Client closed) |
2022-08-14 07:13:21 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
2022-08-14 07:19:08 +0200 | tomgus1_ | (~tomgus1@bcdc7f39.skybroadband.com) |
2022-08-14 07:19:13 +0200 | tomgus1 | (~tomgus1@2a02:c7e:4229:d900:dea6:32ff:fe3d:d1a3) (Read error: Connection reset by peer) |
2022-08-14 07:19:34 +0200 | tomgus1_ | tomgus1 |
2022-08-14 07:28:39 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-08-14 07:32:04 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) |
2022-08-14 07:34:34 +0200 | mbuf | (~Shakthi@122.165.55.71) |
2022-08-14 07:35:00 +0200 | Pickchea | (~private@user/pickchea) |
2022-08-14 07:37:54 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-08-14 07:38:23 +0200 | hgolden | (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection) |
2022-08-14 07:41:07 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2022-08-14 07:41:10 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-14 07:41:43 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-08-14 07:42:11 +0200 | hgolden | (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) |
2022-08-14 07:55:35 +0200 | zebrag | (~chris@user/zebrag) (Remote host closed the connection) |
2022-08-14 07:58:06 +0200 | obabo | (~obabo@20014C4C1C5409000000000000001000.catv.pool.telekom.hu) (Quit: WeeChat 3.6) |
2022-08-14 07:58:35 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2022-08-14 07:59:00 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-08-14 07:59:09 +0200 | gmg | (~user@user/gehmehgeh) |
2022-08-14 08:06:04 +0200 | adanwan_ | (~adanwan@gateway/tor-sasl/adanwan) |
2022-08-14 08:07:28 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2022-08-14 08:07:37 +0200 | etoast | (~exaltedto@user/exaltedtoast) (Quit: Tschüss) |
2022-08-14 08:07:48 +0200 | etoast | (~exaltedto@user/exaltedtoast) |
2022-08-14 08:08:33 +0200 | acidjnk | (~acidjnk@p200300d6e7137a57bcb77a9a2e56f2aa.dip0.t-ipconnect.de) |
2022-08-14 08:09:01 +0200 | m1dnight | (~christoph@78-22-0-121.access.telenet.be) (Quit: WeeChat 3.6) |
2022-08-14 08:09:53 +0200 | etoast | (~exaltedto@user/exaltedtoast) (Client Quit) |
2022-08-14 08:10:03 +0200 | etoast | (~exaltedto@user/exaltedtoast) |
2022-08-14 08:10:43 +0200 | m1dnight | (~christoph@78-22-0-121.access.telenet.be) |
2022-08-14 08:11:32 +0200 | m1dnight | (~christoph@78-22-0-121.access.telenet.be) (Client Quit) |
2022-08-14 08:12:27 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds) |
2022-08-14 08:13:39 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2022-08-14 08:17:45 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2022-08-14 08:24:28 +0200 | coot | (~coot@213.134.176.158) |
2022-08-14 08:25:55 +0200 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
2022-08-14 08:26:35 +0200 | gaff | (~gaff@49.207.204.135) |
2022-08-14 08:26:40 +0200 | gaff | (~gaff@49.207.204.135) (Client Quit) |
2022-08-14 08:29:54 +0200 | adanwan_ | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2022-08-14 08:30:10 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2022-08-14 08:39:55 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-08-14 08:45:14 +0200 | chomwitt | (~chomwitt@2a02:587:dc15:5e00:4394:5e3a:258b:d8da) |
2022-08-14 08:45:38 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
2022-08-14 08:47:51 +0200 | nilradical | (~nilradica@user/naso) (Remote host closed the connection) |
2022-08-14 08:48:34 +0200 | king_gs | (~Thunderbi@2806:103e:29:da7a:8e16:45ff:feeb:cfcf) |
2022-08-14 08:48:46 +0200 | nilradical | (~nilradica@user/naso) |
2022-08-14 08:50:10 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-08-14 08:51:29 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2022-08-14 08:52:05 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2022-08-14 08:55:07 +0200 | kenran | (~kenran@200116b82b3c10003fa4637885f3f4a2.dip.versatel-1u1.de) |
2022-08-14 08:55:52 +0200 | kenran | (~kenran@200116b82b3c10003fa4637885f3f4a2.dip.versatel-1u1.de) (Client Quit) |
2022-08-14 08:59:13 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-14 09:00:09 +0200 | hgolden | (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Quit: Konversation terminated!) |
2022-08-14 09:00:54 +0200 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2022-08-14 09:01:53 +0200 | gmg | (~user@user/gehmehgeh) |
2022-08-14 09:02:18 +0200 | hgolden | (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) |
2022-08-14 09:04:47 +0200 | nilradical | (~nilradica@user/naso) () |
2022-08-14 09:06:03 +0200 | zeenk | (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) |
2022-08-14 09:07:19 +0200 | jargon | (~jargon@184.101.168.117) (Remote host closed the connection) |
2022-08-14 09:09:09 +0200 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2022-08-14 09:09:45 +0200 | vysn | (~vysn@user/vysn) |
2022-08-14 09:11:11 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-12.elisa-laajakaista.fi) |
2022-08-14 09:12:38 +0200 | gmg | (~user@user/gehmehgeh) |
2022-08-14 09:13:01 +0200 | king_gs | (~Thunderbi@2806:103e:29:da7a:8e16:45ff:feeb:cfcf) (Ping timeout: 268 seconds) |
2022-08-14 09:13:14 +0200 | coot | (~coot@213.134.176.158) (Quit: coot) |
2022-08-14 09:14:53 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Write error: Connection reset by peer) |
2022-08-14 09:14:53 +0200 | gmg | (~user@user/gehmehgeh) (Write error: Connection reset by peer) |
2022-08-14 09:15:35 +0200 | gmg | (~user@user/gehmehgeh) |
2022-08-14 09:15:57 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2022-08-14 09:18:08 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-08-14 09:19:28 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-08-14 09:19:55 +0200 | vglfr | (~vglfr@145.224.94.75) (Ping timeout: 252 seconds) |
2022-08-14 09:21:17 +0200 | vglfr | (~vglfr@145.224.94.75) |
2022-08-14 09:25:25 +0200 | vglfr | (~vglfr@145.224.94.75) (Ping timeout: 244 seconds) |
2022-08-14 09:26:19 +0200 | vglfr | (~vglfr@93.170.4.33) |
2022-08-14 09:30:54 +0200 | sander | (~sander@user/sander) (Ping timeout: 268 seconds) |
2022-08-14 09:31:52 +0200 | hgolden | (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Quit: Konversation terminated!) |
2022-08-14 09:34:53 +0200 | pagnol | (~me@213-205-209-87.ftth.glasoperator.nl) |
2022-08-14 09:34:57 +0200 | vglfr | (~vglfr@93.170.4.33) (Ping timeout: 252 seconds) |
2022-08-14 09:36:24 +0200 | vglfr | (~vglfr@93.170.4.33) |
2022-08-14 09:39:22 +0200 | sander | (~sander@user/sander) |
2022-08-14 09:45:25 +0200 | jargon | (~jargon@184.101.168.117) |
2022-08-14 09:46:18 +0200 | m1dnight | (~christoph@78-22-0-121.access.telenet.be) |
2022-08-14 09:46:54 +0200 | vglfr | (~vglfr@93.170.4.33) (Ping timeout: 268 seconds) |
2022-08-14 09:47:15 +0200 | vglfr | (~vglfr@93.170.4.33) |
2022-08-14 09:47:35 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-08-14 09:54:18 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
2022-08-14 09:57:52 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-08-14 09:58:17 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2022-08-14 09:58:18 +0200 | califax | (~califax@user/califx) (Read error: Connection reset by peer) |
2022-08-14 09:58:18 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2022-08-14 09:58:18 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Read error: Connection reset by peer) |
2022-08-14 09:58:51 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2022-08-14 09:58:52 +0200 | Vajb | (~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014) (Read error: Connection reset by peer) |
2022-08-14 09:58:54 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2022-08-14 09:58:57 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2022-08-14 09:59:35 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) |
2022-08-14 09:59:39 +0200 | califax | (~califax@user/califx) |
2022-08-14 10:01:44 +0200 | vglfr | (~vglfr@93.170.4.33) (Ping timeout: 268 seconds) |
2022-08-14 10:04:09 +0200 | vglfr | (~vglfr@93.170.4.33) |
2022-08-14 10:04:20 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) |
2022-08-14 10:07:20 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds) |
2022-08-14 10:07:32 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
2022-08-14 10:09:15 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2022-08-14 10:10:31 +0200 | vglfr | (~vglfr@93.170.4.33) (Ping timeout: 252 seconds) |
2022-08-14 10:11:55 +0200 | vglfr | (~vglfr@93.170.4.33) |
2022-08-14 10:16:23 +0200 | vglfr | (~vglfr@93.170.4.33) (Ping timeout: 252 seconds) |
2022-08-14 10:16:48 +0200 | vglfr | (~vglfr@93.170.4.33) |
2022-08-14 10:18:17 +0200 | coot | (~coot@213.134.176.158) |
2022-08-14 10:23:26 +0200 | califax | (~califax@user/califx) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-08-14 10:23:55 +0200 | califax | (~califax@user/califx) |
2022-08-14 10:27:32 +0200 | causal | (~user@50.35.83.177) |
2022-08-14 10:28:51 +0200 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 252 seconds) |
2022-08-14 10:28:59 +0200 | vglfr | (~vglfr@93.170.4.33) (Ping timeout: 268 seconds) |
2022-08-14 10:29:48 +0200 | vglfr | (~vglfr@93.170.4.33) |
2022-08-14 10:30:05 +0200 | sander | (~sander@user/sander) (Quit: So long! :)) |
2022-08-14 10:31:47 +0200 | zaquest | (~notzaques@5.130.79.72) (Ping timeout: 252 seconds) |
2022-08-14 10:34:29 +0200 | zaquest | (~notzaques@5.130.79.72) |
2022-08-14 10:37:20 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-14 10:37:35 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2022-08-14 10:39:19 +0200 | vglfr | (~vglfr@93.170.4.33) (Ping timeout: 268 seconds) |
2022-08-14 10:39:33 +0200 | vglfr | (~vglfr@93.170.4.33) |
2022-08-14 10:41:05 +0200 | nattiestnate | (~nate@180.243.14.16) |
2022-08-14 10:41:10 +0200 | sander | (~sander@user/sander) |
2022-08-14 10:43:18 +0200 | acidjnk | (~acidjnk@p200300d6e7137a57bcb77a9a2e56f2aa.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2022-08-14 10:44:15 +0200 | vglfr | (~vglfr@93.170.4.33) (Ping timeout: 268 seconds) |
2022-08-14 10:44:46 +0200 | vglfr | (~vglfr@145.224.94.75) |
2022-08-14 10:45:40 +0200 | kenran | (~kenran@200116b82b3c1000ed052833c39b3b7b.dip.versatel-1u1.de) |
2022-08-14 10:45:57 +0200 | kenran | (~kenran@200116b82b3c1000ed052833c39b3b7b.dip.versatel-1u1.de) (Client Quit) |
2022-08-14 10:46:21 +0200 | luffy | (~chenqisu1@183.217.201.23) |
2022-08-14 10:48:10 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-08-14 10:52:53 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds) |
2022-08-14 11:11:01 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-08-14 11:11:28 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 268 seconds) |
2022-08-14 11:12:42 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-08-14 11:13:48 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2022-08-14 11:23:13 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds) |
2022-08-14 11:27:52 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) (Ping timeout: 244 seconds) |
2022-08-14 11:30:26 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2022-08-14 11:38:17 +0200 | benin0 | (~benin@183.82.206.125) |
2022-08-14 11:40:04 +0200 | nate4 | (~nate@98.45.169.16) |
2022-08-14 11:41:49 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-08-14 11:44:45 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 252 seconds) |
2022-08-14 11:47:06 +0200 | ddellaco1 | (~ddellacos@89.45.90.27) |
2022-08-14 11:52:05 +0200 | ddellaco1 | (~ddellacos@89.45.90.27) (Ping timeout: 268 seconds) |
2022-08-14 11:53:26 +0200 | ddellaco1 | (~ddellacos@89.45.90.118) |
2022-08-14 11:54:06 +0200 | vysn | (~vysn@user/vysn) (Ping timeout: 264 seconds) |
2022-08-14 11:54:11 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-14 11:58:00 +0200 | yvan-sraka | (~yvan-srak@105.67.7.32) |
2022-08-14 11:59:05 +0200 | coot | (~coot@213.134.176.158) (Quit: coot) |
2022-08-14 11:59:34 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds) |
2022-08-14 12:01:22 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2022-08-14 12:02:33 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2022-08-14 12:03:24 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2022-08-14 12:06:46 +0200 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-08-14 12:07:44 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-08-14 12:09:46 +0200 | img | (~img@user/img) |
2022-08-14 12:10:18 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 264 seconds) |
2022-08-14 12:14:44 +0200 | perdent | (~perdent@124.188.233.11) |
2022-08-14 12:15:40 +0200 | nilradical | (~nilradica@user/naso) |
2022-08-14 12:17:49 +0200 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-08-14 12:20:34 +0200 | martin02 | (~silas@141.84.69.76) (Ping timeout: 244 seconds) |
2022-08-14 12:20:42 +0200 | img | (~img@user/img) |
2022-08-14 12:21:06 +0200 | Jonno_FTW | (~come@user/jonno-ftw/x-0835346) (Ping timeout: 268 seconds) |
2022-08-14 12:21:22 +0200 | MajorBiscuit | (~MajorBisc@46-229-126.internethome.cytanet.com.cy) |
2022-08-14 12:24:46 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-08-14 12:25:10 +0200 | Jonno_FTW | (~come@api.carswap.me) |
2022-08-14 12:25:10 +0200 | Jonno_FTW | (~come@api.carswap.me) (Changing host) |
2022-08-14 12:25:10 +0200 | Jonno_FTW | (~come@user/jonno-ftw/x-0835346) |
2022-08-14 12:26:15 +0200 | vglfr | (~vglfr@145.224.94.75) (Ping timeout: 244 seconds) |
2022-08-14 12:27:03 +0200 | Jonno_FTW | (~come@user/jonno-ftw/x-0835346) (Remote host closed the connection) |
2022-08-14 12:29:07 +0200 | Jonno_FTW | (~come@user/jonno-ftw/x-0835346) |
2022-08-14 12:30:58 +0200 | nattiestnate | (~nate@180.243.14.16) (Quit: WeeChat 3.6) |
2022-08-14 12:31:42 +0200 | ccntrq | (~Thunderbi@172.209.94.92.rev.sfr.net) |
2022-08-14 12:33:04 +0200 | nate4 | (~nate@98.45.169.16) |
2022-08-14 12:34:19 +0200 | martin02 | (~silas@141.84.69.76) |
2022-08-14 12:36:05 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-08-14 12:38:20 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
2022-08-14 12:43:16 +0200 | yvan-sraka | (~yvan-srak@105.67.7.32) (Remote host closed the connection) |
2022-08-14 12:53:59 +0200 | pt_owl | (~noone@p200300e277470aa2231dde224d8a36df.dip0.t-ipconnect.de) (Remote host closed the connection) |
2022-08-14 12:54:17 +0200 | pt_owl | (~noone@p200300e277470a30a3f9c068e1d96a44.dip0.t-ipconnect.de) |
2022-08-14 13:00:34 +0200 | coot | (~coot@213.134.176.158) |
2022-08-14 13:01:09 +0200 | MajorBiscuit | (~MajorBisc@46-229-126.internethome.cytanet.com.cy) (Ping timeout: 268 seconds) |
2022-08-14 13:01:51 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 268 seconds) |
2022-08-14 13:10:46 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2022-08-14 13:10:54 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 264 seconds) |
2022-08-14 13:17:12 +0200 | m1dnight | (~christoph@78-22-0-121.access.telenet.be) (Quit: WeeChat 3.6) |
2022-08-14 13:17:13 +0200 | Jonno_FTW | (~come@user/jonno-ftw/x-0835346) (Ping timeout: 268 seconds) |
2022-08-14 13:17:38 +0200 | Jonno_FTW | (~come@api.carswap.me) |
2022-08-14 13:17:38 +0200 | Jonno_FTW | (~come@api.carswap.me) (Changing host) |
2022-08-14 13:17:38 +0200 | Jonno_FTW | (~come@user/jonno-ftw/x-0835346) |
2022-08-14 13:17:41 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2022-08-14 13:26:42 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) |
2022-08-14 13:29:04 +0200 | m1dnight | (~christoph@78-22-0-121.access.telenet.be) |
2022-08-14 13:29:13 +0200 | m1dnight | (~christoph@78-22-0-121.access.telenet.be) (Client Quit) |
2022-08-14 13:30:10 +0200 | ccntrq | (~Thunderbi@172.209.94.92.rev.sfr.net) (Ping timeout: 268 seconds) |
2022-08-14 13:32:36 +0200 | nilradical | (~nilradica@user/naso) () |
2022-08-14 13:36:16 +0200 | <carbolymer> | can I distinguish on a type level between `a -> f b` and `a -> b -> f c` where `f` is a Functor? I feel that I don't because `(->) b` is a functor too... |
2022-08-14 13:36:30 +0200 | <carbolymer> | s/don't/can't/ |
2022-08-14 13:38:04 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-08-14 13:39:37 +0200 | <[exa]> | carbolymer: if you'd want to substitute into `a -> f b` so that you get `x -> y -> g z`, you'd need to substitute `g z` for `b` if you'd instantiate `f` as functor `(->) y`... which would probably require another functor constraint there |
2022-08-14 13:41:18 +0200 | <[exa]> | still I don't really think these two would unify very easily |
2022-08-14 13:42:28 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds) |
2022-08-14 13:44:31 +0200 | <ski> | @type let foo :: a -> f b; bar :: x -> y -> g z; (foo,bar) = undefined in [foo,bar] |
2022-08-14 13:44:32 +0200 | <lambdabot> | forall k a y (g :: k -> *) (z :: k). [a -> y -> g z] |
2022-08-14 13:45:14 +0200 | <ski> | carbolymer : you probably need to detail more how/where you're trying to distinguish |
2022-08-14 13:47:14 +0200 | <[exa]> | oh wow it even unifies nicer with the actual Functor constraints |
2022-08-14 13:47:31 +0200 | <ski> | hm ? |
2022-08-14 13:47:58 +0200 | <[exa]> | @type let foo :: Functor f => a -> f b; bar :: Functor g => x -> y -> g z; (foo,bar) = undefined in [foo,bar] |
2022-08-14 13:47:59 +0200 | <lambdabot> | Functor g => [a -> y -> g z] |
2022-08-14 13:48:35 +0200 | <ski> | (what does the `Functor' constraints have to do with it ?) |
2022-08-14 13:48:55 +0200 | <ski> | looks the same to me (except for some reason the `forall' was implicit now) |
2022-08-14 13:49:10 +0200 | <[exa]> | well not much, but it was in the original question and I somehow thought it would get in the way |
2022-08-14 13:49:27 +0200 | <[exa]> | cool. |
2022-08-14 13:52:05 +0200 | vglfr | (~vglfr@145.224.94.75) |
2022-08-14 13:54:40 +0200 | instantaphex | (~jb@c-73-171-252-84.hsd1.fl.comcast.net) |
2022-08-14 13:55:22 +0200 | m1dnight | (~christoph@78-22-0-121.access.telenet.be) |
2022-08-14 13:55:35 +0200 | <carbolymer> | [exa]: yeah so that's kind-of my point, that I think it's impossible (?) |
2022-08-14 13:55:36 +0200 | m1dnight | (~christoph@78-22-0-121.access.telenet.be) (Client Quit) |
2022-08-14 13:55:47 +0200 | <carbolymer> | ski: lemme produce minimal example of my problem |
2022-08-14 13:55:58 +0200 | vysn | (~vysn@user/vysn) |
2022-08-14 13:57:43 +0200 | m1dnight | (~christoph@78-22-0-121.access.telenet.be) |
2022-08-14 13:59:44 +0200 | instantaphex | (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 268 seconds) |
2022-08-14 14:00:50 +0200 | m1dnight | (~christoph@78-22-0-121.access.telenet.be) (Client Quit) |
2022-08-14 14:02:45 +0200 | yvan-sraka | (~yvan-srak@105.67.7.32) |
2022-08-14 14:03:42 +0200 | m1dnight | (~christoph@78-22-0-121.access.telenet.be) |
2022-08-14 14:05:53 +0200 | m1dnight | (~christoph@78-22-0-121.access.telenet.be) (Client Quit) |
2022-08-14 14:07:23 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
2022-08-14 14:11:38 +0200 | m1dnight | (~christoph@78-22-0-121.access.telenet.be) |
2022-08-14 14:12:19 +0200 | ccntrq | (~Thunderbi@172.209.94.92.rev.sfr.net) |
2022-08-14 14:12:43 +0200 | <carbolymer> | ok, here's an example of my problem: https://bpa.st/GSVA - so basically, `r -> a -> m b` seems to capture `r -> a -> b -> m c` too and everything breaks |
2022-08-14 14:12:48 +0200 | <carbolymer> | ski: ^ |
2022-08-14 14:13:27 +0200 | luffy | (~chenqisu1@183.217.201.23) (Ping timeout: 268 seconds) |
2022-08-14 14:13:36 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-08-14 14:14:15 +0200 | m1dnight | (~christoph@78-22-0-121.access.telenet.be) (Client Quit) |
2022-08-14 14:14:54 +0200 | Vajb | (~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014) |
2022-08-14 14:15:14 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-08-14 14:17:04 +0200 | m1dnight | (~christoph@78-22-0-121.access.telenet.be) |
2022-08-14 14:18:10 +0200 | m1dnight | (~christoph@78-22-0-121.access.telenet.be) (Client Quit) |
2022-08-14 14:19:55 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) |
2022-08-14 14:20:28 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-14 14:21:22 +0200 | <ski> | this looks confusing, to me |
2022-08-14 14:21:29 +0200 | acidjnk | (~acidjnk@p200300d6e7137a57bcb77a9a2e56f2aa.dip0.t-ipconnect.de) |
2022-08-14 14:21:53 +0200 | m1dnight | (~christoph@78-22-0-121.access.telenet.be) |
2022-08-14 14:22:27 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2022-08-14 14:22:27 +0200 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2022-08-14 14:23:03 +0200 | m1dnight | (~christoph@78-22-0-121.access.telenet.be) (Client Quit) |
2022-08-14 14:23:21 +0200 | <ski> | i wonder if there's a reason why you don't just have `RdType2 (r -> a) = r' and `RetType2 (r -> m a) = m a' (or even `RetType2 (r -> a) = a') |
2022-08-14 14:24:29 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds) |
2022-08-14 14:26:00 +0200 | <carbolymer> | yeah, that RdType2 should be enough, but RetType2 ~ m a won't capture all cases for variable number of arguments |
2022-08-14 14:26:09 +0200 | <carbolymer> | and I would like to have access to m in `m a` |
2022-08-14 14:26:13 +0200 | <carbolymer> | to be able to `join` in the end |
2022-08-14 14:28:29 +0200 | <carbolymer> | the problem is that: |
2022-08-14 14:28:29 +0200 | <carbolymer> | `asks f1 :: MonadReader SomeEnv m, Functor f => m (Int -> String -> f ())` |
2022-08-14 14:28:29 +0200 | <carbolymer> | and getting to f isn't easy |
2022-08-14 14:30:28 +0200 | Batzy | (~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2022-08-14 14:30:50 +0200 | Batzy | (~quassel@user/batzy) |
2022-08-14 14:31:00 +0200 | perdent | (~perdent@124.188.233.11) (Quit: Client closed) |
2022-08-14 14:31:19 +0200 | <jackdk> | is it `fmap . fmap . fmap`? |
2022-08-14 14:32:49 +0200 | luffy | (~chenqisu1@183.217.201.23) |
2022-08-14 14:38:44 +0200 | luffy | (~chenqisu1@183.217.201.23) (Ping timeout: 268 seconds) |
2022-08-14 14:39:33 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 244 seconds) |
2022-08-14 14:40:36 +0200 | kraftwerk28 | (~kraftwerk@178.62.210.83) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-08-14 14:44:07 +0200 | m1dnight | (~christoph@78-22-0-121.access.telenet.be) |
2022-08-14 14:49:45 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
2022-08-14 14:49:46 +0200 | kavvadias | (~kavvadias@2001:9e8:630d:e200:c5c8:e88c:6eff:1a7e) |
2022-08-14 14:50:29 +0200 | waldo | (~waldo@user/waldo) |
2022-08-14 14:51:04 +0200 | <kavvadias> | hello , ifm trying to use mapSecond function but i get variable not in scope error, do i have to import something? |
2022-08-14 14:51:29 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Remote host closed the connection) |
2022-08-14 14:52:12 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2022-08-14 14:52:55 +0200 | <[exa]> | kavvadias: you may search for libraries that would provide it with hoogle, but since it doesn't seem standard at all I'd suggest just copying the definition from somewhere |
2022-08-14 14:53:25 +0200 | <[exa]> | such as here: https://hackage.haskell.org/package/haskell-gi-base-0.26.1/docs/src/Data.GI.Base.Utils.html#mapSec… |
2022-08-14 14:54:40 +0200 | <kavvadias> | ok thank you |
2022-08-14 14:55:23 +0200 | <[exa]> | yw :] |
2022-08-14 14:56:23 +0200 | <carbolymer> | jackdk: yeah but no |
2022-08-14 14:56:40 +0200 | pzq-alex | (~pzq-alex@211-22-180-9.hinet-ip.hinet.net) |
2022-08-14 14:56:55 +0200 | Typedfern | (~Typedfern@202.red-83-37-35.dynamicip.rima-tde.net) (Remote host closed the connection) |
2022-08-14 14:57:55 +0200 | Typedfern | (~Typedfern@202.red-83-37-35.dynamicip.rima-tde.net) |
2022-08-14 14:59:42 +0200 | mmhat | (~mmh@p200300f1c732d6e8ee086bfffe095315.dip0.t-ipconnect.de) |
2022-08-14 15:01:37 +0200 | hippoid | (~idris@d53-64-120-188.nap.wideopenwest.com) |
2022-08-14 15:05:15 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-08-14 15:06:40 +0200 | perdent | (~perdent@124.188.233.11) |
2022-08-14 15:08:26 +0200 | orgonau | (~nikola@77-46-243-191.dynamic.isp.telekom.rs) |
2022-08-14 15:09:43 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
2022-08-14 15:13:54 +0200 | nilradical | (~nilradica@user/naso) |
2022-08-14 15:14:03 +0200 | <qrpnxz> | let's gooo https://hackage.haskell.org/package/base-4.17.0.0/changelog |
2022-08-14 15:14:06 +0200 | <qrpnxz> | i think this just came out |
2022-08-14 15:15:27 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-08-14 15:20:01 +0200 | hgolden | (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) |
2022-08-14 15:20:22 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 244 seconds) |
2022-08-14 15:27:20 +0200 | Milan | (~Milan@46.245.109.131) |
2022-08-14 15:27:45 +0200 | Milan | (~Milan@46.245.109.131) (Client Quit) |
2022-08-14 15:31:55 +0200 | coot | (~coot@213.134.176.158) (Quit: coot) |
2022-08-14 15:33:58 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-08-14 15:34:21 +0200 | <kavvadias> | hello, im trying to apply - 1 to the second of a list of tuples in inside a state monad and having some type errors |
2022-08-14 15:34:22 +0200 | <kavvadias> | https://pastebin.com/CS0MR3Py |
2022-08-14 15:34:47 +0200 | <kavvadias> | some help would be appreciated, because im losing it |
2022-08-14 15:36:25 +0200 | odnes | (~odnes@109-178-179-120.pat.ren.cosmote.net) |
2022-08-14 15:37:56 +0200 | <ski> | kavvadias> :t (.=) |
2022-08-14 15:38:03 +0200 | <ski> | `moveAl' is a `map' |
2022-08-14 15:38:04 +0200 | hippoid | (~idris@d53-64-120-188.nap.wideopenwest.com) (Quit: WeeChat 3.5) |
2022-08-14 15:38:23 +0200 | <ski> | did you mean `noaliens [] = return ()' ? |
2022-08-14 15:38:48 +0200 | <ski> | where is `aliens' coming from (and what's its type) ? |
2022-08-14 15:38:57 +0200 | odnes | (~odnes@109-178-179-120.pat.ren.cosmote.net) (Read error: Connection reset by peer) |
2022-08-14 15:39:36 +0200 | odnes | (~odnes@109-178-179-120.pat.ren.cosmote.net) |
2022-08-14 15:39:44 +0200 | <albet70> | is there any simple article to introduce how to write a DSL or a simple language? |
2022-08-14 15:39:55 +0200 | <ski> | you have an unreachable defining equation in `noaliens' .. i suspect the first defining equation should not be part of the definition of `noaliens' (`x' and `xs' are unused in it) |
2022-08-14 15:41:15 +0200 | <kavvadias> | https://github.com/Astodialo/space_inv/blob/main/app/Main.hs |
2022-08-14 15:41:32 +0200 | <kavvadias> | i wanted a map for the second item of the tupple basically |
2022-08-14 15:42:45 +0200 | <kavvadias> | newtype Aliens = Aliens { _getAliens :: [Point] } |
2022-08-14 15:42:56 +0200 | <ski> | @type (map . second) (subtract 1) :: [Point] -> [Point] |
2022-08-14 15:42:58 +0200 | <lambdabot> | [Point] -> [Point] |
2022-08-14 15:43:34 +0200 | <ski> | i know about `Aliens' .. i was asking about `aliens', in the definition of `moveAliens' |
2022-08-14 15:43:55 +0200 | Typedfern | (~Typedfern@202.red-83-37-35.dynamicip.rima-tde.net) (Remote host closed the connection) |
2022-08-14 15:44:09 +0200 | <kavvadias> | ahhh its a lense |
2022-08-14 15:44:20 +0200 | <ski> | ah, i just saw that myself, yes |
2022-08-14 15:44:49 +0200 | Typedfern | (~Typedfern@202.red-83-37-35.dynamicip.rima-tde.net) |
2022-08-14 15:46:47 +0200 | <ski> | it looks more to me like you'd like to do `aliens .= noaliens (game # aliens . getAliens)', or somesuch |
2022-08-14 15:47:07 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2022-08-14 15:47:19 +0200 | <ski> | hm, anyway, i don't think you want to use `do' in `noaliens' .. `:' seems more like what you wanted (?) |
2022-08-14 15:47:21 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2022-08-14 15:47:30 +0200 | <kavvadias> | how would i use @type (map . second) (subtract 1) :: [Point] -> [Point] btw thats kinf of new to me |
2022-08-14 15:47:35 +0200 | odnes_ | (~odnes@5-203-145-49.pat.nym.cosmote.net) |
2022-08-14 15:48:41 +0200 | <ski> | oh, actually, the `_getAliens' field is already a list of `Point's (not a list of list of `Point's .. so either traverse the list in `moveAl', or in `noaliens' .. but not both (since you have just one list level, not two) |
2022-08-14 15:48:59 +0200 | <ski> | ) |
2022-08-14 15:50:07 +0200 | juri_ | (~juri@84-19-175-179.pool.ovpn.com) (Ping timeout: 268 seconds) |
2022-08-14 15:50:36 +0200 | odnes__ | (~odnes@109-178-147-112.pat.ren.cosmote.net) |
2022-08-14 15:50:40 +0200 | <ski> | aliens .= Aliens (moveAl (game # aliens . getAliens)) -- try this (removing `naliens') ? |
2022-08-14 15:50:44 +0200 | pt_owl | (~noone@p200300e277470a30a3f9c068e1d96a44.dip0.t-ipconnect.de) (Quit: Leaving) |
2022-08-14 15:50:53 +0200 | juri_ | (~juri@84-19-175-179.pool.ovpn.com) |
2022-08-14 15:51:08 +0200 | <ski> | (also i just noticed i was misreading `naliens' as `noaliens' .. but it doesn't change what i said) |
2022-08-14 15:51:21 +0200 | odnes | (~odnes@109-178-179-120.pat.ren.cosmote.net) (Ping timeout: 268 seconds) |
2022-08-14 15:51:58 +0200 | <ski> | moveAl xys = map (\(x,y) -> (x,y - 1)) xys |
2022-08-14 15:52:06 +0200 | <ski> | moveAl = map (\(x,y) -> (x,y - 1)) -- shorter |
2022-08-14 15:52:15 +0200 | odnes__ | (~odnes@109-178-147-112.pat.ren.cosmote.net) (Remote host closed the connection) |
2022-08-14 15:52:35 +0200 | odnes__ | (~odnes@109-178-147-112.pat.ren.cosmote.net) |
2022-08-14 15:52:40 +0200 | <ski> | moveAl = map (second (subtract 1)) -- more abstracted (possibly less readable) |
2022-08-14 15:53:08 +0200 | <ski> | moveAl = (map . second) (subtract 1) -- slightly more abstracted |
2022-08-14 15:53:28 +0200 | <ski> | if you don't like the lambda, you could name it |
2022-08-14 15:53:43 +0200 | <kavvadias> | moveAliens :: (MonadState Game m) => m () |
2022-08-14 15:53:43 +0200 | <kavvadias> | moveAliens = do |
2022-08-14 15:53:44 +0200 | <kavvadias> | game <- get |
2022-08-14 15:53:44 +0200 | <kavvadias> | aliens .= Aliens (moveAl (game # aliens . getAliens)) |
2022-08-14 15:53:48 +0200 | <ski> | moveAl = map decrY |
2022-08-14 15:53:50 +0200 | <ski> | where |
2022-08-14 15:53:57 +0200 | <ski> | decrY (x,y) = (x,y - 1) |
2022-08-14 15:54:05 +0200 | odnes_ | (~odnes@5-203-145-49.pat.nym.cosmote.net) (Ping timeout: 252 seconds) |
2022-08-14 15:54:14 +0200 | <kavvadias> | i get an error on get now, couldnt match type Game |
2022-08-14 15:54:14 +0200 | <ski> | kavvadias : does it pass the type-checker ? |
2022-08-14 15:55:04 +0200 | <ski> | kavvadias : expecting which type ? |
2022-08-14 15:55:36 +0200 | odnes__ | (~odnes@109-178-147-112.pat.ren.cosmote.net) (Client Quit) |
2022-08-14 15:55:38 +0200 | <kavvadias> | https://pastebin.com/yD7P136H |
2022-08-14 15:56:25 +0200 | orgonau | (~nikola@77-46-243-191.dynamic.isp.telekom.rs) (Quit: leaving) |
2022-08-14 15:59:02 +0200 | son0p | (~ff@181.136.122.143) |
2022-08-14 16:01:25 +0200 | dcoutts_ | (~duncan@host86-153-135-25.range86-153.btcentralplus.com) (Ping timeout: 252 seconds) |
2022-08-14 16:01:52 +0200 | <kavvadias> | https://pastebin.com/CzMMwPpE this seems to work |
2022-08-14 16:01:59 +0200 | <kavvadias> | ski thanks for the help agtain |
2022-08-14 16:02:24 +0200 | <ski> | hm, i think i meant `^.' in place of `#' |
2022-08-14 16:04:10 +0200 | <ski> | but i think you ought to be able to say `aliens . getAliens .= moveAl naliens' (or `aliens . getAliens .= moveAl (game ^. aliens . getAliens)', if i recalled correctly) |
2022-08-14 16:05:36 +0200 | <ski> | or `aliens . getAliens %= moveAl' .. i think |
2022-08-14 16:06:11 +0200 | <ski> | kavvadias : try any of those ? |
2022-08-14 16:06:22 +0200 | <kavvadias> | give me a sec |
2022-08-14 16:07:10 +0200 | nilradical | (~nilradica@user/naso) (Remote host closed the connection) |
2022-08-14 16:07:14 +0200 | <ski> | (the middle one wouldn't need `naliens'. the last one wouldn't need `game' either) |
2022-08-14 16:07:56 +0200 | nilradical | (~nilradica@user/naso) |
2022-08-14 16:08:39 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2022-08-14 16:09:30 +0200 | <ski> | (`.=' is "set monadic state". `%=' is "update/modify monadic state" (with a function)) |
2022-08-14 16:09:47 +0200 | crazazy | (~user@2001:1c00:831:4700:3db9:a2e6:d73e:3903) |
2022-08-14 16:12:35 +0200 | <kavvadias> | aliens . getAliens %= moveAl |
2022-08-14 16:12:46 +0200 | <kavvadias> | that one runs and thats really cool |
2022-08-14 16:13:33 +0200 | <ski> | and the other two ? |
2022-08-14 16:13:33 +0200 | nilradical | (~nilradica@user/naso) (Ping timeout: 268 seconds) |
2022-08-14 16:16:33 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-08-14 16:19:13 +0200 | pzq-alex | (~pzq-alex@211-22-180-9.hinet-ip.hinet.net) (Quit: Client closed) |
2022-08-14 16:19:51 +0200 | <kavvadias> | i have to be in a class i can let you know in a couple hours |
2022-08-14 16:19:52 +0200 | kraftwerk28 | (~kraftwerk@178.62.210.83) |
2022-08-14 16:20:13 +0200 | ski | . o O ( class on a sunday ) |
2022-08-14 16:22:25 +0200 | <kavvadias> | yeah |
2022-08-14 16:22:39 +0200 | <kavvadias> | the middle one works aswell |
2022-08-14 16:22:49 +0200 | <ski> | good |
2022-08-14 16:23:26 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-08-14 16:24:18 +0200 | <kavvadias> | first one works aswell |
2022-08-14 16:25:08 +0200 | ski | . o O ( those were short hours ) |
2022-08-14 16:25:25 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2022-08-14 16:25:33 +0200 | <ski> | btw, there's also `gets', when you just want a part of the state |
2022-08-14 16:25:40 +0200 | <ski> | @type get |
2022-08-14 16:25:42 +0200 | <lambdabot> | MonadState s m => m s |
2022-08-14 16:25:42 +0200 | <ski> | @type gets |
2022-08-14 16:25:44 +0200 | <lambdabot> | MonadState s m => (s -> a) -> m a |
2022-08-14 16:26:12 +0200 | <ski> | (in your case, `naliens <- gets (_getAliens . _aliens)') |
2022-08-14 16:26:38 +0200 | <ski> | (and similarly there's `asks' for `ask') |
2022-08-14 16:27:32 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-08-14 16:28:35 +0200 | <qrpnxz> | upgrading GHC gave me a nice speed boost :) |
2022-08-14 16:29:59 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) |
2022-08-14 16:31:11 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-08-14 16:31:18 +0200 | <[exa]> | albet70: haskell eDSLs are kinda implied by knowing how to write your own monad, then it should be moreless clear. By "simple language" you mean "a small interpreter" or so? |
2022-08-14 16:34:15 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds) |
2022-08-14 16:34:37 +0200 | nate4 | (~nate@98.45.169.16) |
2022-08-14 16:35:31 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
2022-08-14 16:36:31 +0200 | <albet70> | [exa] , yes |
2022-08-14 16:36:58 +0200 | troydm | (~troydm@host-176-37-124-197.b025.la.net.ua) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) |
2022-08-14 16:36:59 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds) |
2022-08-14 16:37:19 +0200 | <[exa]> | albet70: there is "write yourself a scheme" somewhere on githubs, that's a pretty nice resource |
2022-08-14 16:37:22 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2022-08-14 16:37:26 +0200 | troydm | (~troydm@host-176-37-124-197.b025.la.net.ua) |
2022-08-14 16:37:33 +0200 | <albet70> | ok |
2022-08-14 16:37:50 +0200 | severen | (~severen@202.36.179.72) |
2022-08-14 16:38:17 +0200 | <[exa]> | o it has a second version here https://wespiser.com/writings/wyas/00_overview.html |
2022-08-14 16:38:40 +0200 | <[exa]> | not sure about quality&quantity overload, but at least it links to the first one |
2022-08-14 16:39:00 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-08-14 16:39:00 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-08-14 16:39:00 +0200 | wroathe | (~wroathe@user/wroathe) |
2022-08-14 16:39:10 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2022-08-14 16:40:06 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
2022-08-14 16:40:49 +0200 | <albet70> | what's the whole procedure? read, parse, tokenize, eval? |
2022-08-14 16:41:40 +0200 | off^ | (~off@206.85.120.17) (Remote host closed the connection) |
2022-08-14 16:42:06 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-08-14 16:42:50 +0200 | <[exa]> | 99% of the whole language implementation is 1] how to convert text into something interpretable (use a megaparsec tutorial) and 2] how to actually interpret it (in haskell you can get away with just StateT over IO in most cases, so a State tutorial will do) 3] resist the temptation and keep the language compact, to avoid a complexity explosion at some point that results in something that isn't finishable |
2022-08-14 16:44:36 +0200 | <[exa]> | re procedure, tokenization usually goes before parsing but you can quite successfully do both at once with parsecs |
2022-08-14 16:45:25 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-14 16:45:36 +0200 | <[exa]> | if you want a REPL, have a look at `haskeline` library, that one's magic |
2022-08-14 16:46:55 +0200 | <DigitalKiwi> | i enjoyed the wespiser.com one when i did it |
2022-08-14 16:47:30 +0200 | waldo | (~waldo@user/waldo) (Quit: quit) |
2022-08-14 16:47:53 +0200 | <severen> | Funny, I'm just lurking but that haskeline recommendation is quite helpful because I'm writing a lambda calculus interpreter atm |
2022-08-14 16:48:19 +0200 | <DigitalKiwi> | https://twitter.com/ArchKiwi/status/1259203512766017542 |
2022-08-14 16:48:28 +0200 | <severen> | My megaparsec parser is nearly finished so I'm about to start thinking about the REPL/evaluation |
2022-08-14 16:48:50 +0200 | <[exa]> | \o/ |
2022-08-14 16:49:50 +0200 | <[exa]> | `StateT TopLevelDefs (InputT IO)` and go :] |
2022-08-14 16:52:55 +0200 | <ski> | for Scheme you'd probably also need `ContT' in there .. at least if you're implementing `call-with-current-continuation' |
2022-08-14 16:53:53 +0200 | <albet70> | https://jsdw.me/posts/haskell-cont-monad/ |
2022-08-14 16:53:56 +0200 | <Lears> | Speaking of haskeline, did y'all know you can set 'editMode: Vi' in ~/.haskeline and get vi-style line editing in ghci? I really wish I'd discovered that fact about a decade earlier... |
2022-08-14 16:54:18 +0200 | <geekosaur> | a decade earlier it was unimplemented |
2022-08-14 16:54:28 +0200 | <albet70> | I saw this `goto' using fixed-point inside 'callCC' to implement a loop, which is not easy to understand |
2022-08-14 16:54:34 +0200 | <Lears> | That might explain why I couldn't find it. <.< |
2022-08-14 16:58:24 +0200 | <ski> | @hackage managed |
2022-08-14 16:58:24 +0200 | <lambdabot> | https://hackage.haskell.org/package/managed |
2022-08-14 16:58:33 +0200 | <ski> | albet70 : ^ might be interesting |
2022-08-14 16:59:01 +0200 | lisbeths | (uid135845@2a03:5180:f:2::2:12a5) |
2022-08-14 16:59:33 +0200 | causal | (~user@50.35.83.177) (Quit: WeeChat 3.6) |
2022-08-14 17:02:59 +0200 | gehmehgeh | gmgm |
2022-08-14 17:03:02 +0200 | gmgm | gmg |
2022-08-14 17:06:17 +0200 | pagnol | (~me@213-205-209-87.ftth.glasoperator.nl) (Ping timeout: 244 seconds) |
2022-08-14 17:07:16 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-08-14 17:12:45 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
2022-08-14 17:17:04 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
2022-08-14 17:21:28 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-08-14 17:25:41 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-08-14 17:25:43 +0200 | <kavvadias> | well im back with more type problems https://pastebin.com/Q0CeXND3 |
2022-08-14 17:26:03 +0200 | <kavvadias> | trying to get a new tupple and put it in a list of tupples |
2022-08-14 17:28:59 +0200 | <ski> | you need to use `gets' with `<-', not `let' |
2022-08-14 17:32:32 +0200 | Pickchea | (~private@user/pickchea) |
2022-08-14 17:33:43 +0200 | <kavvadias> | oh okay, still have the same type error |
2022-08-14 17:34:51 +0200 | <kavvadias> | https://pastebin.com/5HBJ7kZN |
2022-08-14 17:36:55 +0200 | <ski> | kavvadias> :t moveSh |
2022-08-14 17:37:21 +0200 | <kavvadias> | [Point] -> [Point] |
2022-08-14 17:37:44 +0200 | <qrpnxz> | a byte has only 256 possible values. I've tried two ways now of getting GHC to just reuse the same 256 objects, but no, it really wants to allocate a bunch of useless memory. Oh well. |
2022-08-14 17:38:21 +0200 | <ski> | kavvadias : use `++' in place of `:' ? |
2022-08-14 17:39:21 +0200 | <kavvadias> | oh wow, 30 minutes well spent for me |
2022-08-14 17:39:29 +0200 | <kavvadias> | thank you ski |
2022-08-14 17:40:24 +0200 | <ski> | ccraft <- use (craft . getCraft) |
2022-08-14 17:41:21 +0200 | <ski> | cshots <- use (shots . getShots) |
2022-08-14 17:41:29 +0200 | <ski> | shots . getShots .= moveSh [ccraft] ++ cshots |
2022-08-14 17:41:31 +0200 | <ski> | or |
2022-08-14 17:41:32 +0200 | <ski> | ccraft <- use (craft . getCraft) |
2022-08-14 17:41:49 +0200 | <ski> | shots . getShots %= (moveSh [ccraft] ++) |
2022-08-14 17:42:59 +0200 | Kaiepi | (~Kaiepi@142.68.249.28) (Ping timeout: 252 seconds) |
2022-08-14 17:44:05 +0200 | <ski> | (oh, and you're already not using `game') |
2022-08-14 17:45:22 +0200 | waldo | (~waldo@user/waldo) |
2022-08-14 17:45:27 +0200 | <kavvadias> | oh true |
2022-08-14 17:48:47 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
2022-08-14 17:52:01 +0200 | <pavonia> | Is there a package for huge integers with sparse bit occurences that implements Eq, Ord and Bits? |
2022-08-14 17:53:05 +0200 | <pavonia> | Huge as in billions of bits, but only a few dozens of bits are sets/unset |
2022-08-14 17:53:36 +0200 | Franciman | (~Franciman@mx1.fracta.dev) |
2022-08-14 17:54:19 +0200 | MoC | (~moc@user/moc) |
2022-08-14 17:54:51 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-14 17:55:47 +0200 | <geekosaur> | https://hackage.haskell.org/package/bitvec-1.1.3.0/docs/Data-Bit.html ? |
2022-08-14 17:56:29 +0200 | <geekosaur> | there are also some bit-set packages but I doubt those have Bits instances |
2022-08-14 17:56:58 +0200 | <pavonia> | This doesn't seem to support sparse bitsets |
2022-08-14 17:57:03 +0200 | <geekosaur> | I strongly suspect "sparse occurrences" and "Bits instance" don't go together |
2022-08-14 17:57:30 +0200 | MoC | (~moc@user/moc) (Client Quit) |
2022-08-14 17:57:41 +0200 | stef204 | (~stef204@user/stef204) |
2022-08-14 17:57:55 +0200 | MajorBiscuit | (~MajorBisc@46-229-126.internethome.cytanet.com.cy) |
2022-08-14 17:58:32 +0200 | <pavonia> | What operation could not be implemented efficiently for such sets? |
2022-08-14 17:58:57 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-08-14 17:58:58 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-08-14 17:58:58 +0200 | wroathe | (~wroathe@user/wroathe) |
2022-08-14 17:59:20 +0200 | <int-e> | one could start with data Bits = Pos IntSet | Neg IntSet |
2022-08-14 17:59:24 +0200 | <geekosaur> | complement |
2022-08-14 18:00:04 +0200 | <pavonia> | That would be O(1) by just setting an internal flag |
2022-08-14 18:01:02 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-08-14 18:01:08 +0200 | <pavonia> | Also we can assume only operations are performed that lead to sparse bitsets again |
2022-08-14 18:01:21 +0200 | <int-e> | Though if you actually want integers, big shifts will be problematic, since those produce long runs of zeros. So "sparse" would translate into "small number of alternations" rather than "small number of set bits, or small number of unset bits" |
2022-08-14 18:04:16 +0200 | <pavonia> | Hhm, why would that be problematic? Shifting should only map the set of set/unset bits to new indices |
2022-08-14 18:04:27 +0200 | <geekosaur> | right, int-e is seeing what I'm seeing. yes, you can make any given operation quick, but the more of that you do the more likely that intermediate results will have lots of set bits |
2022-08-14 18:04:58 +0200 | <geekosaur> | or worse, lots of alternations |
2022-08-14 18:06:42 +0200 | <pavonia> | I imaginge xor could be a bit tricky |
2022-08-14 18:06:49 +0200 | <pavonia> | *imagine |
2022-08-14 18:07:52 +0200 | <geekosaur> | as for shifts, consider you have a bigint with all bits set, then you shift it so now you have a large number of unset bits on one end |
2022-08-14 18:08:43 +0200 | <int-e> | > let f n x = (x `shiftL` n) .|. x in printf "%x" . f 32 . f 16 . f 8 . f 4 . f 2 $ 1 :: String |
2022-08-14 18:08:45 +0200 | <lambdabot> | "5555555555555555" |
2022-08-14 18:09:00 +0200 | zebrag | (~chris@user/zebrag) |
2022-08-14 18:09:22 +0200 | <int-e> | (you can get a lot of alternations in just a few operations if you want to) |
2022-08-14 18:10:21 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-08-14 18:11:42 +0200 | <pavonia> | But those are not sparse operations. I mean it would be okay if the operations become less efficient if you do operations that introduce a lot of flipped bits |
2022-08-14 18:12:00 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-14 18:16:57 +0200 | acidjnk | (~acidjnk@p200300d6e7137a57bcb77a9a2e56f2aa.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
2022-08-14 18:18:00 +0200 | stef204 | (~stef204@user/stef204) (Quit: WeeChat 3.6) |
2022-08-14 18:18:26 +0200 | coot | (~coot@213.134.176.158) |
2022-08-14 18:20:05 +0200 | jinsun__ | (~jinsun@user/jinsun) |
2022-08-14 18:20:05 +0200 | jinsun | (~jinsun@user/jinsun) (Killed (lithium.libera.chat (Nickname regained by services))) |
2022-08-14 18:20:05 +0200 | jinsun__ | jinsun |
2022-08-14 18:21:43 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 244 seconds) |
2022-08-14 18:21:46 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-08-14 18:22:28 +0200 | tharmas | (~nikola@77-46-243-191.dynamic.isp.telekom.rs) |
2022-08-14 18:26:17 +0200 | coot | (~coot@213.134.176.158) (Remote host closed the connection) |
2022-08-14 18:27:20 +0200 | waldo | (~waldo@user/waldo) (Quit: quit) |
2022-08-14 18:28:39 +0200 | <int-e> | Here's something that kind of comes close... https://hackage.haskell.org/package/diet-0.1.0.0/docs/Data-Diet-Set-Lifted.html |
2022-08-14 18:29:27 +0200 | <int-e> | ("interval tree" is a viable keyword here) |
2022-08-14 18:30:37 +0200 | <int-e> | And what I mean by "comes close" is that it has reasonably efficient difference, from which you can create all boolean operations. |
2022-08-14 18:31:10 +0200 | <qrpnxz> | Data.Text.Foreign.fromPtr oh yeah baby here we go |
2022-08-14 18:39:10 +0200 | Kaiepi | (~Kaiepi@142.68.249.28) |
2022-08-14 18:40:09 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-08-14 18:47:24 +0200 | <pavonia> | int-e: thanks |
2022-08-14 18:51:41 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Ping timeout: 244 seconds) |
2022-08-14 18:59:57 +0200 | mbuf | (~Shakthi@122.165.55.71) (Quit: Leaving) |
2022-08-14 19:01:21 +0200 | riverside | (~riverside@213.205.241.175) |
2022-08-14 19:02:21 +0200 | <riverside> | hey, was wondering if anyone had had any thoughts about this idea about language primatives for graphs - i was about to read into STG |
2022-08-14 19:03:43 +0200 | <riverside> | i think i can basically hack it by using a type level symbol annotation to a datatype so that it can record not only positional data, but something like a unique object identifier (eg, third position in the list called "this list") |
2022-08-14 19:04:08 +0200 | <riverside> | basically im saying i think the haskell type system is developed enough to support it *without* language primatives |
2022-08-14 19:04:55 +0200 | <riverside> | and that it gives identifies this "this" identifier as a possible candidate for a language primative |
2022-08-14 19:05:00 +0200 | <riverside> | over |
2022-08-14 19:07:18 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2022-08-14 19:08:45 +0200 | <riverside> | perhaps someone could comment wrt the "this object" concept from OOP (which im not familiar with at all) |
2022-08-14 19:08:50 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
2022-08-14 19:09:20 +0200 | Colere | (~colere@about/linux/staff/sauvin) (Ping timeout: 268 seconds) |
2022-08-14 19:09:41 +0200 | alexfmpe[m] | (~alexfmpem@2001:470:69fc:105::38ba) |
2022-08-14 19:10:01 +0200 | Colere | (~colere@about/linux/staff/sauvin) |
2022-08-14 19:10:05 +0200 | <riverside> | i can recall edkmett had done some quite elaborate work in doing OOP style programming in haskell, though maybe its not even the same idea |
2022-08-14 19:11:06 +0200 | <c_wraith> | there's nothing special about "this". |
2022-08-14 19:11:25 +0200 | Furor | (~colere@about/linux/staff/sauvin) |
2022-08-14 19:11:34 +0200 | <c_wraith> | If you've ever used python, it sort of forces you to admit it. |
2022-08-14 19:12:25 +0200 | <c_wraith> | In every other language, it's hiding the first parameter to the function call syntactically, then giving you access to it via a keyword. |
2022-08-14 19:12:26 +0200 | <riverside> | i have unfortunately used python, but not enough to know what you mean. maybe java |
2022-08-14 19:12:44 +0200 | <c_wraith> | In python, it doesn't hide the parameter - you need to list it explicitly |
2022-08-14 19:13:22 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2022-08-14 19:14:15 +0200 | <riverside> | do you think it would make much difference if we could say "this" datatype when defining a recursive datatype? |
2022-08-14 19:14:33 +0200 | <riverside> | without having to hack it by using a symbol annotation? |
2022-08-14 19:14:51 +0200 | Colere | (~colere@about/linux/staff/sauvin) (Ping timeout: 268 seconds) |
2022-08-14 19:14:58 +0200 | <c_wraith> | I'm not aware of any such problems in the first place |
2022-08-14 19:15:11 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
2022-08-14 19:15:25 +0200 | <riverside> | i guess i dont have enough experience of using OOP languages to understand what "this" is actually used for, and what it brings to those languages |
2022-08-14 19:16:07 +0200 | <geekosaur> | most of the time it's implicit. rarely you need to refer to the whole object instead of just a method or attribute, and then you need `this` |
2022-08-14 19:16:47 +0200 | <c_wraith> | and there's literally *nothing* of theoretical interest. It's just a hidden function parameter. |
2022-08-14 19:17:17 +0200 | <c_wraith> | like, that explains 100% of both semantics and implementation |
2022-08-14 19:17:30 +0200 | tomboy64 | (~tomboy64@user/tomboy64) (Ping timeout: 255 seconds) |
2022-08-14 19:18:38 +0200 | <riverside> | c_wraith. data ThisCyclicList (thisList :: symbol) (pos :: Nat) a where Empty :: ThisCyclicList thisList 0 a; Cons :: a -> ThisCyclicList thisList n a -> ThisCyclicList thisList (n+1) a; Cycle :: a -> ThisCyclicList thisList (i havent thought how this actually works) a -> ThisCyclicList thisList (etc.) a |
2022-08-14 19:19:04 +0200 | <severen> | woah |
2022-08-14 19:19:06 +0200 | <c_wraith> | I still don't understand what the problem is. |
2022-08-14 19:19:40 +0200 | <riverside> | so you cant just add on "another (not "this")" list... since the cycle is supposed to refer to the same object |
2022-08-14 19:20:18 +0200 | <geekosaur> | sure you can, you make it a parameter like in any other language |
2022-08-14 19:20:25 +0200 | <geekosaur> | this may be clearer using gadt syntax |
2022-08-14 19:20:59 +0200 | <geekosaur> | :t (:) |
2022-08-14 19:21:01 +0200 | <lambdabot> | a -> [a] -> [a] |
2022-08-14 19:21:07 +0200 | <geekosaur> | takes another list |
2022-08-14 19:22:10 +0200 | <riverside> | which is to be precluded |
2022-08-14 19:23:05 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-08-14 19:23:17 +0200 | <riverside> | i guess the point of having it as a primitive instead of using the symbol annotated version above, is that it saves the user having to think of unique names for all their values |
2022-08-14 19:23:26 +0200 | <riverside> | like some kind of hash |
2022-08-14 19:23:52 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-08-14 19:23:52 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-08-14 19:23:52 +0200 | wroathe | (~wroathe@user/wroathe) |
2022-08-14 19:23:56 +0200 | kavvadias | (~kavvadias@2001:9e8:630d:e200:c5c8:e88c:6eff:1a7e) (Quit: Client closed) |
2022-08-14 19:23:57 +0200 | <riverside> | "thats not a cycle, thats just any old list" |
2022-08-14 19:24:00 +0200 | <c_wraith> | you seem to be conflating types and values |
2022-08-14 19:24:07 +0200 | <riverside> | nope |
2022-08-14 19:24:11 +0200 | crazazy | (~user@2001:1c00:831:4700:3db9:a2e6:d73e:3903) (Ping timeout: 255 seconds) |
2022-08-14 19:24:13 +0200 | <[exa]> | yes. |
2022-08-14 19:24:48 +0200 | <riverside> | well you would provide it using @, but it is the construction of a value |
2022-08-14 19:26:23 +0200 | <geekosaur> | if I can get at it using @ then I can get at it without |
2022-08-14 19:26:26 +0200 | econo | (uid147250@user/econo) |
2022-08-14 19:26:37 +0200 | Furor | Colere |
2022-08-14 19:26:39 +0200 | <geekosaur> | just use a seoarate case toi do the rest |
2022-08-14 19:26:43 +0200 | <riverside> | a keyword like "object" instead of datatype, so that in the GADT syntax a "this" reference could be made, without the user having to provide an actual symobl, using @ during the construction of their list values |
2022-08-14 19:27:42 +0200 | <[exa]> | riverside: you can get pretty close using literally just CPP or a tiny bit of templatehaskell |
2022-08-14 19:27:59 +0200 | <riverside> | geekosuar: i guess you could use Proxy, but i prefer to use AllowAmbiguousTypes |
2022-08-14 19:28:24 +0200 | <geekosaur> | what? |
2022-08-14 19:28:30 +0200 | <riverside> | no. |
2022-08-14 19:28:38 +0200 | <riverside> | im to go i suppose |
2022-08-14 19:28:45 +0200 | <riverside> | adios |
2022-08-14 19:28:54 +0200 | <qrpnxz> | anyone every use `Monoid` for default values? It's like applicative pure but for values haha. |
2022-08-14 19:29:10 +0200 | <ski> | riverside : would `this' refer to a type, or to a value ? something else ? |
2022-08-14 19:29:23 +0200 | <geekosaur> | it's fairly common to require Monoid and use mempty in a case where you need a default value, yes |
2022-08-14 19:29:27 +0200 | <qrpnxz> | sometimes i need to pull a value out of no where, so i just stick a monoid constraint on there |
2022-08-14 19:29:35 +0200 | <qrpnxz> | a neat |
2022-08-14 19:29:44 +0200 | <geekosaur> | and much more principled than Data.Default |
2022-08-14 19:29:53 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-14 19:30:17 +0200 | [exa] | foresees `(<>) = error "sorry not that kind of monoid :')"` |
2022-08-14 19:30:38 +0200 | <ski> | there was some blag i recently saw which talked about using lists of monoid elements, versus a monoid element |
2022-08-14 19:30:41 +0200 | <qrpnxz> | using monoid remind me of Go a bit. In Go every type has a "zero" which is used like for example if i allocate a slice, it will be filled with the zero of that type. Monoids mempty is basically a types "zero" so i like using it for that kind of thing |
2022-08-14 19:31:23 +0200 | <ski> | iirc Cryptol has a polymorphic `zero', belonging to every type .. but it has no empty types |
2022-08-14 19:31:53 +0200 | <[exa]> | qrpnxz: in monoid the zero is meant relatively to the <>, a bit of abuse is okay but for production code please certainly go with Default |
2022-08-14 19:32:15 +0200 | <ski> | (for functions, it's the constantly zero function. for arrays (of a given size), it's the zero-filled array. &c.) |
2022-08-14 19:33:39 +0200 | <qrpnxz> | [exa]: an example use case to provide some context: I have a type that i want to parse that is a functor. Instead of defining an instance for (F ()) i wanna do Monoid m => (F m) that way it can be used more places instead having to replace the () with a maybe expensive (<$) |
2022-08-14 19:34:01 +0200 | <riverside> | ok, a joke. "used to work as of gofur, go for this, go for that, etc." |
2022-08-14 19:34:03 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-08-14 19:34:31 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-08-14 19:34:52 +0200 | <qrpnxz> | :) |
2022-08-14 19:36:40 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) |
2022-08-14 19:37:43 +0200 | <qrpnxz> | well i guess a Default type class makes more sense in that use case if i think about it a bit |
2022-08-14 19:40:38 +0200 | benin0 | (~benin@183.82.206.125) (Quit: The Lounge - https://thelounge.chat) |
2022-08-14 19:41:03 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 252 seconds) |
2022-08-14 19:41:17 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds) |
2022-08-14 19:42:04 +0200 | <qrpnxz> | geekosaur: what are your personal gripes with Default? |
2022-08-14 19:43:37 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
2022-08-14 19:46:14 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2022-08-14 19:48:27 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2022-08-14 19:55:37 +0200 | vysn | (~vysn@user/vysn) (Ping timeout: 268 seconds) |
2022-08-14 19:56:26 +0200 | <geekosaur> | qrpnxz, https://github.com/xmonad/xmonad/commit/383ffb772e4a |
2022-08-14 19:56:44 +0200 | <geekosaur> | you have no control over instances someone else picked behind your back |
2022-08-14 19:57:01 +0200 | <geekosaur> | I can't even override it without forcing an overlapping instance |
2022-08-14 19:58:56 +0200 | ianayl | (~ian@cpef81d0fadc403-cmf81d0fadc400.sdns.net.rogers.com) |
2022-08-14 20:02:31 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-14 20:03:55 +0200 | <qrpnxz> | i mean, what about a newtype? If i want a different monoid i have to newtype too |
2022-08-14 20:05:05 +0200 | <qrpnxz> | and it seems in the spirit of default to have a default Default instance as well |
2022-08-14 20:05:55 +0200 | <geekosaur> | sure, break 10 years' worth of configs because someone thought Default was a good idea |
2022-08-14 20:06:46 +0200 | <geekosaur> | (I still think we never should have permitted it into the codebase but the other 3 admins like it 😞 ) |
2022-08-14 20:07:55 +0200 | <Lears> | The problem is that `def` is too polymorphic, even though there's little use for that polymorphism beyond saving names. When someone puts it in the wrong place they generally won't get a type error, just weird runtime behaviour with no clear source. You can't solve this with newtypes. |
2022-08-14 20:09:08 +0200 | Midjak | (~Midjak@82.66.147.146) |
2022-08-14 20:09:11 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
2022-08-14 20:09:35 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) |
2022-08-14 20:09:43 +0200 | nate4 | (~nate@98.45.169.16) |
2022-08-14 20:09:55 +0200 | <qrpnxz> | wym too polymorphic? def should work for any type i want, so i don't see how it could be any less poly than it is |
2022-08-14 20:10:22 +0200 | Midjak | (~Midjak@82.66.147.146) (Remote host closed the connection) |
2022-08-14 20:11:09 +0200 | <Lears> | I mean what I already said; it turns type errors into runtime errors. |
2022-08-14 20:11:11 +0200 | <geekosaur> | but you can't stop it from also working for any type you *don't* want |
2022-08-14 20:11:11 +0200 | <ski> | i believe Lears is not talking about situations that you want, but situations that you don't want (but which happen anyway) |
2022-08-14 20:11:13 +0200 | <qrpnxz> | For my use case i put above, the alternative would be to have the type class have another special snowflake method that accepts a default value, which seems insane |
2022-08-14 20:11:19 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-08-14 20:11:21 +0200 | <geekosaur> | and producing garbage |
2022-08-14 20:11:56 +0200 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2022-08-14 20:11:59 +0200 | Midjak | (~Midjak@82.66.147.146) |
2022-08-14 20:13:27 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds) |
2022-08-14 20:13:27 +0200 | Lord_of_Life_ | Lord_of_Life |
2022-08-14 20:14:19 +0200 | <qrpnxz> | i feel like that's more a problem with how Default was used than default itself. How come `def` can get you garbage, but `pure` cannot? both are picking up a default state, so it seems like what you could say about one you could say about the other. |
2022-08-14 20:14:22 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-08-14 20:14:52 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds) |
2022-08-14 20:15:08 +0200 | <geekosaur> | but that's how Default is *supposed* to be used: as a bomb waiting to go off on you |
2022-08-14 20:15:21 +0200 | <geekosaur> | all those instances came from the standard Data.Default instances |
2022-08-14 20:15:46 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) |
2022-08-14 20:15:52 +0200 | <qrpnxz> | to me the purpose of a default is of course a sane default. A benign valid value. A bomb default value would be `undefined` |
2022-08-14 20:16:03 +0200 | <geekosaur> | and no, it is not viable that I am forced to newtype around Default producing garbage on me |
2022-08-14 20:16:16 +0200 | <geekosaur> | but it is not always a sane default |
2022-08-14 20:17:06 +0200 | <Lears> | pure is like mempty, they're principled because they actually *mean* something that's coherent across all instances. def is fundamentally ad hoc. |
2022-08-14 20:17:09 +0200 | <qrpnxz> | so then the issue seems to lie more with the instances then |
2022-08-14 20:17:32 +0200 | <ski> | @type pure |
2022-08-14 20:17:33 +0200 | <lambdabot> | Applicative f => a -> f a |
2022-08-14 20:17:58 +0200 | <ski> | `pure' is bound together with `(<*>)', and constrained by the neutral element laws |
2022-08-14 20:18:04 +0200 | <geekosaur> | and I do not get to opt out of a default that is not sane |
2022-08-14 20:18:09 +0200 | <geekosaur> | for my use |
2022-08-14 20:18:14 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2022-08-14 20:18:26 +0200 | <geekosaur> | which is the real problem: there is no way to constrain Default by use case |
2022-08-14 20:18:31 +0200 | <ski> | (and likewise for `empty' and `mappend'/`(<>)') |
2022-08-14 20:19:05 +0200 | <Lears> | qrpnxz: Re your actual problem, rather than "adding another special snowflake method", the version that takes a default value as an argument can be the sole method, then versions taking () or mempty or def can be written outside for convenience. |
2022-08-14 20:19:11 +0200 | <qrpnxz> | why not? Like if i need a default value to put in an array, the elements of the array are something in my problem domain, so the type is one of my problem domain. I can pick that type to be a thing with all the properties i want, including its default. |
2022-08-14 20:19:31 +0200 | <Lears> | To my eye, that's easily the most sane approach. |
2022-08-14 20:19:38 +0200 | <geekosaur> | sure, if you're happy to newtype all over the place because someone else picked a different default |
2022-08-14 20:20:13 +0200 | <ski> | (s/empty/mempty/) |
2022-08-14 20:20:26 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds) |
2022-08-14 20:20:55 +0200 | aku_ | aku |
2022-08-14 20:21:24 +0200 | <qrpnxz> | Lears: yeah that makes sense. But what to have for the canonical class instance? To me it makes sense to be the one with default constraint, and if you don't wanna mess with Default, then use the non class function that explicitly takes a value. |
2022-08-14 20:21:48 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-08-14 20:21:52 +0200 | gdown | (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net) |
2022-08-14 20:22:57 +0200 | <geekosaur> | but I did take a value. |
2022-08-14 20:23:12 +0200 | <qrpnxz> | geekosaur: if it were Monoid it be the same but a bit worse i think, because it could only be monoids and you still have to newtype to get a different mempty |
2022-08-14 20:23:18 +0200 | <geekosaur> | someone decided to use `def` and the type system did not stop them |
2022-08-14 20:23:51 +0200 | <geekosaur> | and I do not get to opt in only for `defaultConfig` and not for `CLong` |
2022-08-14 20:24:32 +0200 | bob | (~geranim0@modemcable062.79-202-24.mc.videotron.ca) (Ping timeout: 268 seconds) |
2022-08-14 20:24:34 +0200 | geranim0 | (~geranim0@modemcable062.79-202-24.mc.videotron.ca) (Ping timeout: 268 seconds) |
2022-08-14 20:25:00 +0200 | <geekosaur> | never mind, you clearly think it's fine because you didn't get screwed over by it, I did. |
2022-08-14 20:25:28 +0200 | <geekosaur> | and it's on the victim to deal when that happens |
2022-08-14 20:25:29 +0200 | zer0bitz | (~zer0bitz@2001:2003:f748:2000:7d51:3be7:af35:67eb) |
2022-08-14 20:25:29 +0200 | <qrpnxz> | I do appreciate your POV thanks. I def keep that in mind and not make users dependent on def |
2022-08-14 20:25:39 +0200 | <qrpnxz> | *definitely lol |
2022-08-14 20:26:23 +0200 | <geekosaur> | the point remains: `def` was not supposed to be used there. the type system did not prevent it because `def` has instances for practically everything |
2022-08-14 20:27:02 +0200 | <geekosaur> | so I have to hack around misuses of it one way or another, either by newtypes or by detecting its fail and substituting something sane (which is what I ended up doing) |
2022-08-14 20:27:09 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
2022-08-14 20:28:59 +0200 | aku | (~aku@163.172.137.34) (Remote host closed the connection) |
2022-08-14 20:29:33 +0200 | <geekosaur> | and I can't wrap every single type with a newtype to avoid `def` subverting the type system |
2022-08-14 20:31:06 +0200 | <geekosaur> | (worse, the default there is sane only there. What if I want a different key sequence to be the default somewhere else? Can't even use an overlapping type for that.) |
2022-08-14 20:31:36 +0200 | <qrpnxz> | Lears: reason being that the vast majority of instances will not need to accept a default value. It's a more special case to need a default value, so i rather get it from a constraint, and then have a side function that takes a default for that particular type. |
2022-08-14 20:32:25 +0200 | <qrpnxz> | geekosaur: you'd create a different type in that case. Different behaviour, different type. |
2022-08-14 20:32:39 +0200 | <geekosaur> | they are all key sequences. |
2022-08-14 20:32:42 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) |
2022-08-14 20:32:47 +0200 | <geekosaur> | they can't be different types |
2022-08-14 20:32:55 +0200 | <qrpnxz> | Though i think i see what you are getting at yeah. It's really the same type, just a different default for a different context. |
2022-08-14 20:33:04 +0200 | <geekosaur> | the user is not doing something completely different to type that sequence |
2022-08-14 20:33:08 +0200 | <qrpnxz> | in that case it makes more sense to accept a default than to use the constraints |
2022-08-14 20:33:36 +0200 | kenran | (~kenran@200116b82b3c100072f1c9de10c8d6d9.dip.versatel-1u1.de) |
2022-08-14 20:33:47 +0200 | <geekosaur> | and even if I somehow admit that, there's the fact that NoSymbol is only a viable default in some contexts; it's not even valid in others |
2022-08-14 20:34:47 +0200 | riverside | (~riverside@213.205.241.175) (Remote host closed the connection) |
2022-08-14 20:36:15 +0200 | <qrpnxz> | though in the situation you are describing, you are not even polymorphic on the type if i understand correctly, so really the function should just use the appropriate default, be it it happens to be `def` or another value, no? |
2022-08-14 20:36:53 +0200 | <geekosaur> | that's what it's doing. but I have no control over the default and it is wrong as is |
2022-08-14 20:36:59 +0200 | lisbeths | (uid135845@2a03:5180:f:2::2:12a5) (Quit: Connection closed for inactivity) |
2022-08-14 20:37:05 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds) |
2022-08-14 20:37:06 +0200 | <geekosaur> | it's producing `const (0,0)` |
2022-08-14 20:38:59 +0200 | <geekosaur> | it should be extracting the default modMask from the parameter and tupling it with `xK_b`, but I can't make it do that without an overlapping instance with the one that produces `const def` |
2022-08-14 20:39:38 +0200 | <geekosaur> | which also means changing the default for the mask and key, even if viable, wouldn't prevent this overlap |
2022-08-14 20:42:24 +0200 | aku | (~aku@163.172.137.34) |
2022-08-14 20:45:20 +0200 | <geekosaur> | we don't document that as accepting `def` but distrotube's been telling people to use it and the type system doesn't stop them because it found a set of instances that fit but produce garbage |
2022-08-14 20:45:48 +0200 | ccntrq | (~Thunderbi@172.209.94.92.rev.sfr.net) (Remote host closed the connection) |
2022-08-14 20:47:46 +0200 | <qrpnxz> | hmm yeah, instances for non-unit tuples seem harmful. the one for function instance also hard to justify. |
2022-08-14 20:50:18 +0200 | <Bulby[m]> | https://github.com/jmc2obj/j-mc-2-obj/blob/master/src/org/jmc/Chunk.java#L399-L411 nightmare code |
2022-08-14 20:50:24 +0200 | <Bulby[m]> | probably fairly trivial lol |
2022-08-14 20:51:00 +0200 | <qrpnxz> | is xmonad accepting many defaultable types from users? Why not just have it's own typeclass with better defaults? (heh) |
2022-08-14 20:51:03 +0200 | <qrpnxz> | geekosaur: |
2022-08-14 20:51:33 +0200 | aeka | (~aeka@user/hiruji) (Ping timeout: 244 seconds) |
2022-08-14 20:51:34 +0200 | aeka` | (~aeka@2606:6080:1002:8:3285:30e:de43:8809) |
2022-08-14 20:51:58 +0200 | aeka` | aeka |
2022-08-14 20:53:49 +0200 | <qrpnxz> | Bulby[m]: doesn't look particularly nightmare, though those linked lists make me raise an eyebrow |
2022-08-14 20:54:27 +0200 | <Bulby[m]> | oh |
2022-08-14 20:54:28 +0200 | <Bulby[m]> | wait |
2022-08-14 20:54:42 +0200 | <Bulby[m]> | is it like multiple generators in a comprehensiion |
2022-08-14 20:56:02 +0200 | <Bulby[m]> | yes |
2022-08-14 20:56:56 +0200 | <Bulby[m]> | it looks like how they iterate it should generate in order |
2022-08-14 20:56:57 +0200 | tomboy64 | (~tomboy64@user/tomboy64) |
2022-08-14 20:57:03 +0200 | <Bulby[m]> | wait |
2022-08-14 20:57:21 +0200 | <Bulby[m]> | will it? |
2022-08-14 20:57:25 +0200 | <geekosaur> | I would be okay with our having our own `def` which only applied to various `defaultx` things, although I'd have to convince our other maintainers that it's a good idea. Sadly they're the ones that dragged Data.Default into it |
2022-08-14 20:59:27 +0200 | <qrpnxz> | well, good luck :) |
2022-08-14 21:00:42 +0200 | <geekosaur> | and yes, there are contribs that use it (XMonad.Prompt and XMonad.Layout.Decoration come to mind — and that one has its own time bomb because XMonad.Layout.ImageButtonDecoration passed Decoration's `def` will render incorrectly) |
2022-08-14 21:01:13 +0200 | <Bulby[m]> | `(z/4)*4` |
2022-08-14 21:01:16 +0200 | <Bulby[m]> | i don't even |
2022-08-14 21:01:18 +0200 | <geekosaur> | defaults have a certain tendency to depend on context, and there's no way to make any form of Data.Default sensitive to context because that requires runtime awareness |
2022-08-14 21:04:43 +0200 | talismanick | (~talismani@2601:200:c100:3850::dd64) |
2022-08-14 21:07:09 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) |
2022-08-14 21:07:15 +0200 | <geekosaur> | Bulby[m], that makes a certain sense iff z is integral |
2022-08-14 21:07:33 +0200 | <Bulby[m]> | yeah it's an integral |
2022-08-14 21:07:42 +0200 | <geekosaur> | although I don't recall off the top of my head whether it'll use integer division in that case |
2022-08-14 21:07:55 +0200 | <geekosaur> | thereby dropping a remainder to give a multiple of 4 |
2022-08-14 21:11:42 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds) |
2022-08-14 21:12:36 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) |
2022-08-14 21:12:40 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) (Ping timeout: 268 seconds) |
2022-08-14 21:12:41 +0200 | zeenk | (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!) |
2022-08-14 21:14:03 +0200 | <Bulby[m]> | it truncates |
2022-08-14 21:14:11 +0200 | <Bulby[m]> | `biome = tagBiomes.data[x/4 + (z/4)*4 + (y/4)*4*4];` |
2022-08-14 21:14:26 +0200 | <geekosaur> | right, makes sense |
2022-08-14 21:15:09 +0200 | <geekosaur> | and you might think z-(4-z%4) but that's the same number of divisions as the other and one more subtractionb |
2022-08-14 21:15:14 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-08-14 21:15:54 +0200 | <geekosaur> | and possible considerations with respect to sign, although if used in an array context presumably that doesn't come up |
2022-08-14 21:17:08 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds) |
2022-08-14 21:17:54 +0200 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
2022-08-14 21:34:54 +0200 | pagnol | (~me@213-205-209-87.ftth.glasoperator.nl) |
2022-08-14 21:35:14 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2022-08-14 21:38:21 +0200 | Jeanne-Kamikaze | (~Jeanne-Ka@142.147.89.223) |
2022-08-14 21:39:23 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-08-14 21:41:04 +0200 | mastarija | (~mastarija@2a05:4f46:e03:6000:fe12:1d1c:1857:ccc4) |
2022-08-14 21:41:51 +0200 | <geekosaur> | oh, and if the compiler's worth its salt it turns that into (z & 0xfffffffc) which would make you wtf even more if written out |
2022-08-14 21:42:51 +0200 | <geekosaur> | or 0x7ffffffc if it's signed |
2022-08-14 21:42:53 +0200 | biberu | (~biberu@user/biberu) (Ping timeout: 268 seconds) |
2022-08-14 21:43:33 +0200 | <geekosaur> | no, I guess it'd still be f instead of 7 |
2022-08-14 21:46:38 +0200 | mmhat | (~mmh@p200300f1c732d6e8ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-08-14 21:47:01 +0200 | mmhat | (~mmh@p200300f1c732d6e8ee086bfffe095315.dip0.t-ipconnect.de) |
2022-08-14 21:52:15 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
2022-08-14 21:52:30 +0200 | <Bulby[m]> | invalid stored block lengths |
2022-08-14 21:52:32 +0200 | <Bulby[m]> | amazing |
2022-08-14 21:52:32 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-08-14 21:52:38 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-14 21:53:03 +0200 | kilolympus | (~kilolympu@90.206.106.191) |
2022-08-14 21:53:22 +0200 | adanwan_ | (~adanwan@gateway/tor-sasl/adanwan) |
2022-08-14 21:53:40 +0200 | <Bulby[m]> | wait I'm using raw compression |
2022-08-14 21:53:43 +0200 | <Bulby[m]> | why is it |
2022-08-14 21:53:50 +0200 | <Bulby[m]> | why is it in the normal module |
2022-08-14 21:54:02 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 268 seconds) |
2022-08-14 21:54:36 +0200 | pavonia | (~user@user/siracusa) |
2022-08-14 21:54:42 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-08-14 21:55:11 +0200 | califax | (~califax@user/califx) |
2022-08-14 21:55:47 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-08-14 21:59:45 +0200 | ddellacosta | (~ddellacos@89.45.90.144) |
2022-08-14 22:02:30 +0200 | Pickchea | (~private@user/pickchea) |
2022-08-14 22:02:35 +0200 | ddellaco1 | (~ddellacos@89.45.90.118) (Ping timeout: 268 seconds) |
2022-08-14 22:06:12 +0200 | <Bulby[m]> | the rfcs java docs and haskell docs link to are the same |
2022-08-14 22:07:11 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-08-14 22:07:40 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-14 22:12:56 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
2022-08-14 22:14:53 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-08-14 22:15:03 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Ping timeout: 252 seconds) |
2022-08-14 22:19:51 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
2022-08-14 22:20:08 +0200 | nate4 | (~nate@98.45.169.16) (Read error: Connection reset by peer) |
2022-08-14 22:20:26 +0200 | nate4 | (~nate@98.45.169.16) |
2022-08-14 22:24:25 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-14 22:26:43 +0200 | califax | (~califax@user/califx) (Ping timeout: 268 seconds) |
2022-08-14 22:27:13 +0200 | califax | (~califax@user/califx) |
2022-08-14 22:28:03 +0200 | acidjnk | (~acidjnk@p200300d6e7137a1040029d0042753765.dip0.t-ipconnect.de) |
2022-08-14 22:29:43 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 252 seconds) |
2022-08-14 22:29:51 +0200 | bjobjo | (~bjobjo@user/bjobjo) (Quit: leaving) |
2022-08-14 22:34:38 +0200 | kenran | (~kenran@200116b82b3c100072f1c9de10c8d6d9.dip.versatel-1u1.de) (Quit: WeeChat info:version) |
2022-08-14 22:37:57 +0200 | bjobjo | (~bjobjo@user/bjobjo) |
2022-08-14 22:42:44 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2022-08-14 22:44:42 +0200 | jgeerds | (~jgeerds@55d46bad.access.ecotel.net) |
2022-08-14 22:56:56 +0200 | nate4 | (~nate@98.45.169.16) |
2022-08-14 22:58:03 +0200 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
2022-08-14 22:58:19 +0200 | severen | (~severen@202.36.179.72) (Ping timeout: 252 seconds) |
2022-08-14 23:00:09 +0200 | yvan-sraka | (~yvan-srak@105.67.7.32) (Remote host closed the connection) |
2022-08-14 23:01:20 +0200 | MajorBiscuit | (~MajorBisc@46-229-126.internethome.cytanet.com.cy) (Quit: WeeChat 3.5) |
2022-08-14 23:01:47 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-08-14 23:01:47 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-08-14 23:01:47 +0200 | wroathe | (~wroathe@user/wroathe) |
2022-08-14 23:01:53 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2022-08-14 23:01:54 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 264 seconds) |
2022-08-14 23:03:02 +0200 | MajorBiscuit | (~MajorBisc@46-229-126.internethome.cytanet.com.cy) |
2022-08-14 23:04:56 +0200 | pagnol | (~me@213-205-209-87.ftth.glasoperator.nl) (Ping timeout: 268 seconds) |
2022-08-14 23:05:51 +0200 | justache | (~justache@user/justache) |
2022-08-14 23:07:16 +0200 | crazazy | (~user@2001:1c00:831:4700:3db9:a2e6:d73e:3903) |
2022-08-14 23:10:08 +0200 | ski | . o O ( "* autrijus stares at type Eval x = forall r. ContT r (ReaderT x IO) (ReaderT x IO x) and feels very lost","<shapr> Didn't you write that code?","<autrijus> yeah. and it works","<autrijus> I just don't know what it means." ) |
2022-08-14 23:11:09 +0200 | Midjak | (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
2022-08-14 23:12:56 +0200 | <geekosaur> | nice to know thta happened even to audrey… |
2022-08-14 23:13:51 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) |
2022-08-14 23:14:39 +0200 | geekosaur | can recognize the parts and how they fit together, but not what the result is supposed to do |
2022-08-14 23:15:16 +0200 | <hpc> | @unmtl ContT r (ReaderT x IO) (ReaderT x IO x) |
2022-08-14 23:15:16 +0200 | <lambdabot> | ((x -> IO x) -> x -> IO r) -> x -> IO r |
2022-08-14 23:15:36 +0200 | <monochrom> | Ah two levels of ReaderT IO? :) |
2022-08-14 23:15:44 +0200 | <geekosaur> | yeh |
2022-08-14 23:15:58 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
2022-08-14 23:16:36 +0200 | <monochrom> | Err no that's not the hard part. |
2022-08-14 23:16:54 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2022-08-14 23:17:12 +0200 | <geekosaur> | right, that's the easy part since Reader's simple |
2022-08-14 23:18:17 +0200 | kannon | (~NK@192-184-132-215.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds) |
2022-08-14 23:18:23 +0200 | <ski> | it looks maybe `fix'y, to me |
2022-08-14 23:18:29 +0200 | <monochrom> | No, not 2 levels of ReaderT. Instead, ContT r (ReaderT x IO) Codomain. Oh but today we feel like returning a procedure that's of a ReaderT-x-IO nature. |
2022-08-14 23:19:16 +0200 | <monochrom> | This is "just" M (N x) where M and N are monads. |
2022-08-14 23:19:18 +0200 | crazazy | (~user@2001:1c00:831:4700:3db9:a2e6:d73e:3903) (Ping timeout: 264 seconds) |
2022-08-14 23:19:27 +0200 | <ski> | @unmtl StateT x (ContT r IO) (ReaderT x IO x) |
2022-08-14 23:19:27 +0200 | <lambdabot> | x -> ((x -> IO x) -> x -> IO r) -> IO r |
2022-08-14 23:19:53 +0200 | <monochrom> | OK, that still counts as 2 levels, but not the transformer stack kind of 2 levels. |
2022-08-14 23:20:07 +0200 | <monochrom> | "Just" the functor composition kind. |
2022-08-14 23:20:16 +0200 | Mr-Ski | (~MrSki@134.101.170.4.dynamic-pppoe.dt.ipv4.wtnet.de) |
2022-08-14 23:20:36 +0200 | etoast | (~exaltedto@user/exaltedtoast) (Quit: Tschüss) |
2022-08-14 23:20:47 +0200 | etoast | (~exaltedto@user/exaltedtoast) |
2022-08-14 23:26:33 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-08-14 23:26:38 +0200 | <qrpnxz> | hmm, i can't interpret an `effectful` Effect into an arbitrary monad, but `freer-simple` can't unliftio. Trade-offs! |
2022-08-14 23:29:00 +0200 | yvan-sraka | (~yvan-srak@105.67.7.32) |
2022-08-14 23:30:16 +0200 | nate4 | (~nate@98.45.169.16) |
2022-08-14 23:30:57 +0200 | <qrpnxz> | which means i can interpret a freer effect into an effectful effect lol. Then I can either interpret directly in freer, or interpret into effectful and then interpret again there. |
2022-08-14 23:34:00 +0200 | ianayl | (~ian@cpef81d0fadc403-cmf81d0fadc400.sdns.net.rogers.com) (Ping timeout: 268 seconds) |
2022-08-14 23:34:23 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 255 seconds) |
2022-08-14 23:34:28 +0200 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
2022-08-14 23:35:46 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
2022-08-14 23:40:51 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-14 23:43:23 +0200 | zer0bitz | (~zer0bitz@2001:2003:f748:2000:7d51:3be7:af35:67eb) (Read error: Connection reset by peer) |
2022-08-14 23:44:38 +0200 | zeenk | (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) |
2022-08-14 23:49:15 +0200 | nate4 | (~nate@98.45.169.16) |
2022-08-14 23:49:53 +0200 | ddellacosta | (~ddellacos@89.45.90.144) (Ping timeout: 268 seconds) |
2022-08-14 23:51:18 +0200 | ddellacosta | (~ddellacos@static-198-54-129-54.cust.tzulo.com) |
2022-08-14 23:53:09 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2022-08-14 23:53:10 +0200 | Mr-Ski | (~MrSki@134.101.170.4.dynamic-pppoe.dt.ipv4.wtnet.de) (Quit: The Lounge - https://thelounge.chat) |
2022-08-14 23:57:34 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-08-14 23:59:10 +0200 | ddellacosta | (~ddellacos@static-198-54-129-54.cust.tzulo.com) (Ping timeout: 268 seconds) |