2022-07-18 00:01:31 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-07-18 00:03:24 +0200 | gdown | (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net) |
2022-07-18 00:03:49 +0200 | ChanServ | +o litharge |
2022-07-18 00:03:49 +0200 | litharge | -bo $a:pleo litharge |
2022-07-18 00:04:50 +0200 | aweinstock | (~aweinstoc@cpe-74-76-189-75.nycap.res.rr.com) (Ping timeout: 240 seconds) |
2022-07-18 00:06:52 +0200 | tdodrlt^ | (~tdodrlt@12.187.69.131) |
2022-07-18 00:06:52 +0200 | aweinstock | (~aweinstoc@cpe-74-76-189-75.nycap.res.rr.com) |
2022-07-18 00:07:56 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2022-07-18 00:16:56 +0200 | nate4 | (~nate@98.45.169.16) |
2022-07-18 00:17:10 +0200 | acidjnk_new3 | (~acidjnk@p200300d6e705864510d29662a0d17642.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-07-18 00:20:57 +0200 | hiredman | (~hiredman@frontier1.downey.family) (Remote host closed the connection) |
2022-07-18 00:22:13 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 272 seconds) |
2022-07-18 00:22:36 +0200 | merijn | (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) |
2022-07-18 00:24:20 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
2022-07-18 00:32:02 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 255 seconds) |
2022-07-18 00:32:06 +0200 | lys | (sid194105@user/lys) |
2022-07-18 00:34:05 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-18 00:36:23 +0200 | jmorris | (uid537181@id-537181.uxbridge.irccloud.com) |
2022-07-18 00:38:02 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 00:39:39 +0200 | phma | (~phma@host-67-44-208-65.hnremote.net) (Read error: Connection reset by peer) |
2022-07-18 00:40:35 +0200 | merijn | (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
2022-07-18 00:42:38 +0200 | phma | (~phma@2001:5b0:212a:f318:9888:9b59:ea41:c1c) |
2022-07-18 00:43:28 +0200 | hgolden | (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Ping timeout: 268 seconds) |
2022-07-18 00:43:53 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-97.elisa-laajakaista.fi) (Quit: Leaving.) |
2022-07-18 00:44:19 +0200 | Kaiepi | (~Kaiepi@156.34.47.253) |
2022-07-18 00:47:10 +0200 | zeenk | (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) |
2022-07-18 00:49:54 +0200 | YoungFrog | (~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) (Ping timeout: 272 seconds) |
2022-07-18 00:50:42 +0200 | hiredman | (~hiredman@frontier1.downey.family) |
2022-07-18 00:51:06 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 264 seconds) |
2022-07-18 00:51:42 +0200 | YoungFrog | (~youngfrog@2a02:a03f:c21b:f900:5132:e9ea:441f:a48f) |
2022-07-18 00:56:03 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2022-07-18 00:56:32 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) |
2022-07-18 00:57:41 +0200 | YoungFrog | (~youngfrog@2a02:a03f:c21b:f900:5132:e9ea:441f:a48f) (Ping timeout: 272 seconds) |
2022-07-18 00:59:18 +0200 | YoungFrog | (~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) |
2022-07-18 01:03:39 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 276 seconds) |
2022-07-18 01:04:50 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 240 seconds) |
2022-07-18 01:06:38 +0200 | YoungFrog | (~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) (Ping timeout: 244 seconds) |
2022-07-18 01:07:04 +0200 | zeenk | (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!) |
2022-07-18 01:08:48 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-18 01:09:11 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-07-18 01:09:32 +0200 | YoungFrog | (~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) |
2022-07-18 01:11:24 +0200 | merijn | (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) |
2022-07-18 01:14:24 +0200 | YoungFrog | (~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) (Ping timeout: 244 seconds) |
2022-07-18 01:15:40 +0200 | YoungFrog | (~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) |
2022-07-18 01:16:31 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2022-07-18 01:16:56 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2022-07-18 01:25:39 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:5546:a014:fe40:2124) (Remote host closed the connection) |
2022-07-18 01:28:50 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds) |
2022-07-18 01:36:02 +0200 | toluene | (~toluene@user/toulene) (Read error: Connection reset by peer) |
2022-07-18 01:36:54 +0200 | <yin> | maerwald: haskell lacks good structural typing? |
2022-07-18 01:38:33 +0200 | <maerwald> | yeah, see typescript or purescript |
2022-07-18 01:39:10 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds) |
2022-07-18 01:39:13 +0200 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2022-07-18 01:40:03 +0200 | merijn | (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 276 seconds) |
2022-07-18 01:40:18 +0200 | toluene | (~toluene@user/toulene) |
2022-07-18 01:40:27 +0200 | Lord_of_Life_ | Lord_of_Life |
2022-07-18 01:41:15 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-18 01:41:50 +0200 | dlock | (~dlock@213.205.241.187) |
2022-07-18 01:42:11 +0200 | <dlock> | is there a way to run a haskell code snippet in a haskell program? |
2022-07-18 01:42:57 +0200 | <dlock> | like with a Read and Show instance? |
2022-07-18 01:42:57 +0200 | <geekosaur> | strictly speaking, yes. if you expect ot to be able to access the running program, no |
2022-07-18 01:43:11 +0200 | <geekosaur> | (it would run in its own execution context) |
2022-07-18 01:43:15 +0200 | <dlock> | the program is rerun on different snippets |
2022-07-18 01:43:18 +0200 | <geekosaur> | *it to |
2022-07-18 01:43:34 +0200 | <geekosaur> | take a look at the hint library, or Mueval if you want sandboxing |
2022-07-18 01:43:35 +0200 | <c_wraith> | I mean, ghci exists. You can do anything ghci does. That doesn't mean it's *easy*... |
2022-07-18 01:43:49 +0200 | <dlock> | "i can do anything ghci does" |
2022-07-18 01:43:54 +0200 | <dlock> | this sounds promising |
2022-07-18 01:44:22 +0200 | <geekosaur> | working with the ghc api directly is also possible but is noticeably harder than using hint or mueval |
2022-07-18 01:45:08 +0200 | <dlock> | ah, used for lambdabot, perfect |
2022-07-18 01:45:33 +0200 | <dlock> | im not sure if hacking with the GHC tools is a good idea, id rather keep them to a minimal |
2022-07-18 01:46:02 +0200 | <dlock> | i doubt they would be good to work with unless on some really powerful footing, which might bloat them |
2022-07-18 01:46:11 +0200 | <dlock> | i guess these other packages provide user functionality |
2022-07-18 01:46:25 +0200 | <geekosaur> | they're friendlier wrappers for ghc-api |
2022-07-18 01:46:49 +0200 | <hpc> | > "mueval is how lambdabot " ++ "does this" |
2022-07-18 01:46:51 +0200 | <lambdabot> | "mueval is how lambdabot does this" |
2022-07-18 01:47:05 +0200 | <dlock> | so suppose i want not only to save some data inupts and outputs to a function, but also the function that was run to produce the outputs from the inputs |
2022-07-18 01:47:43 +0200 | <geekosaur> | you would only be able to save it in source form; there's no way to serialize or load bytecode |
2022-07-18 01:48:00 +0200 | <dlock> | id expect this to be something like "the Show instance is valid haskell |
2022-07-18 01:48:04 +0200 | <dlock> | " |
2022-07-18 01:48:11 +0200 | <geekosaur> | hypothetically you might be able to do the equivalent of -fobject-code, but that puts you squarely into direct ghc-api territory |
2022-07-18 01:48:30 +0200 | <dlock> | i dont want to have to save whole modules |
2022-07-18 01:48:47 +0200 | <dlock> | and i dont want the interface to incorperating to be done at the linking stage |
2022-07-18 01:49:14 +0200 | <dlock> | basically i just want the program to read the "function" the same way as it reads the "value" |
2022-07-18 01:49:37 +0200 | <c_wraith> | by contrast, hint gives you tools to pass values from your code into and out of evaluated code, but they're rather awkward |
2022-07-18 01:49:45 +0200 | <dlock> | basically because trying to output a module you use to where you want to save them to is difficult |
2022-07-18 01:50:31 +0200 | <dlock> | c_wraith: i cant picture this concept of passing functions through evaluated code? |
2022-07-18 01:50:48 +0200 | <dlock> | or values |
2022-07-18 01:51:13 +0200 | <dlock> | i wouldnt expect it could be evaluated before it recieves input |
2022-07-18 01:51:15 +0200 | <c_wraith> | well, I suppose that's not quite accurate. It's easy to evaluate things which produce functions that run on any value you want. |
2022-07-18 01:51:40 +0200 | <dlock> | ok like some partially evaluated expression stuck awaiting an input arg |
2022-07-18 01:51:52 +0200 | <dlock> | do we lazily consume inputs like that? |
2022-07-18 01:52:00 +0200 | <c_wraith> | I mean.. it's just.. functions. |
2022-07-18 01:52:08 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-18 01:52:10 +0200 | <dlock> | anyway, thats probably not how these libraries are going to have me write it |
2022-07-18 01:52:51 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
2022-07-18 01:52:54 +0200 | <dlock> | ok, so the function in question is eg. either a net or a matrix |
2022-07-18 01:53:13 +0200 | <dlock> | and we dont know, but we want to save matricies with matrix input output pairs, and nets with net input output pairs |
2022-07-18 01:53:23 +0200 | <dlock> | so the user never tries to apply the inputs to the wrong function |
2022-07-18 01:54:04 +0200 | <dlock> | its a version control thing. i cant just save the input output pairs and have the function be part of changing code |
2022-07-18 01:54:19 +0200 | <dlock> | ill never know which function they were for, so i need to save the functions |
2022-07-18 01:55:27 +0200 | <dlock> | imagine if it was the memory state for a markov trading model, and i train something that gives me good matrix and when i uplaod it it tries to parametrise a net with it... must provide actual model encoding along with state |
2022-07-18 01:56:01 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 01:56:14 +0200 | <dlock> | my task seems like its using hint or mueval to express matrix multiplication and net evaluation |
2022-07-18 01:56:18 +0200 | tdodrlt^ | (~tdodrlt@12.187.69.131) (Ping timeout: 240 seconds) |
2022-07-18 01:56:33 +0200 | <dlock> | and anything else i might want to use as a parametric model but havent yet thought of, which is important |
2022-07-18 01:57:26 +0200 | <dlock> | parametric models is a big thing, might be worth a package of its own seeing how this haskell infrastructure seems particularly well suited |
2022-07-18 01:58:19 +0200 | <dlock> | so can i do something like f = readFromFile "pathToFunction.notHs" |
2022-07-18 01:58:42 +0200 | <dlock> | and get like IO (?) |
2022-07-18 02:01:55 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-07-18 02:02:12 +0200 | <dlock> | yeah, reading the mueval docs isnt getting me very far |
2022-07-18 02:02:59 +0200 | <monochrom> | Perhaps "let users enter fairly arbitrary Haskell code and I'll run it" is too general for this. |
2022-07-18 02:03:22 +0200 | califax | (~califax@user/califx) |
2022-07-18 02:03:24 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::909a) |
2022-07-18 02:03:47 +0200 | <dlock> | its function on one arg of set type to the same type and an output of another type, the normal state function in mapAccumL |
2022-07-18 02:03:51 +0200 | <dlock> | :t mapAccumL |
2022-07-18 02:03:52 +0200 | <lambdabot> | Traversable t => (a -> b -> (a, c)) -> a -> t b -> (a, t c) |
2022-07-18 02:04:07 +0200 | <dlock> | its parametric also though |
2022-07-18 02:04:17 +0200 | chomwitt | (~chomwitt@2a02:587:dc00:5a00:c8e4:ebdd:c459:66df) (Ping timeout: 255 seconds) |
2022-07-18 02:04:25 +0200 | <dlock> | im fine with having to write in a restricted subset of haskell |
2022-07-18 02:04:28 +0200 | <dlock> | eg haskell98 |
2022-07-18 02:04:39 +0200 | <dlock> | though i can see plenty of things for enabling extensions |
2022-07-18 02:05:03 +0200 | <dlock> | id rather the format of the text file the user works with is less like a haskell module and more like just one function definition |
2022-07-18 02:05:14 +0200 | <dlock> | "enable all extensions and compile!" |
2022-07-18 02:05:27 +0200 | <dlock> | "it typechecks, dont wory!" |
2022-07-18 02:05:45 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-07-18 02:05:45 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-07-18 02:05:45 +0200 | wroathe | (~wroathe@user/wroathe) |
2022-07-18 02:05:51 +0200 | <dlock> | oh no, i probably actually want to typecheck it, and certainly ensures it matches up with the rest of the program |
2022-07-18 02:06:09 +0200 | gdown | (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net) (Remote host closed the connection) |
2022-07-18 02:06:20 +0200 | <dlock> | now im thinking it should look almost exactly like a haskell module! |
2022-07-18 02:06:33 +0200 | <dlock> | what about backpack? |
2022-07-18 02:06:39 +0200 | <dlock> | i can make signatures there right? |
2022-07-18 02:06:57 +0200 | <Axman6> | have you looked at hint? or the plugins package? |
2022-07-18 02:07:19 +0200 | <dlock> | i also tried reading hint, it seems to be encouraging me to design an interpreter or something? |
2022-07-18 02:07:27 +0200 | <dlock> | im pretty sure i want one out of the box |
2022-07-18 02:07:38 +0200 | <dlock> | i guess it insists i at least tell it about extensions |
2022-07-18 02:08:25 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
2022-07-18 02:09:32 +0200 | <dlock> | ok plugins gives me this; https://hackage.haskell.org/package/plugins-1.6.2.1/docs/System-Plugins-Parser.html#t:HsModule |
2022-07-18 02:09:37 +0200 | <Axman6> | https://hackage.haskell.org/package/plugins might be an alternative, but not for the "read text and make programs" case |
2022-07-18 02:09:51 +0200 | <Axman6> | or perhaps it does do that! |
2022-07-18 02:10:24 +0200 | <dlock> | and then underneath the imports and header stuff i give it a list of functions! https://hackage.haskell.org/package/haskell-src-1.0.4/docs/Language-Haskell-Syntax.html#t:HsDecl |
2022-07-18 02:10:55 +0200 | <dlock> | Axman6: after looking at the preceding two options i was going to go with backpack anyway so.. |
2022-07-18 02:11:02 +0200 | son0p | (~ff@181.136.122.143) (Ping timeout: 268 seconds) |
2022-07-18 02:11:41 +0200 | <Axman6> | does backpack give you what you want? I wouldn't've thought so |
2022-07-18 02:11:49 +0200 | <Axman6> | if it does, please write blog post about it ;) |
2022-07-18 02:11:55 +0200 | <dlock> | not sure which constructor i need for a function without a type signature of 2 args that are not patten matched |
2022-07-18 02:12:17 +0200 | <dlock> | sure, i mean, its at linking stage which i didnt want |
2022-07-18 02:12:25 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-07-18 02:12:27 +0200 | <dlock> | but i get to write a signature and define the module |
2022-07-18 02:12:35 +0200 | <dlock> | so its exactly according to that spec |
2022-07-18 02:12:49 +0200 | <dlock> | i guess i just want live backpack and i can compromise on the liveness |
2022-07-18 02:12:50 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds) |
2022-07-18 02:13:33 +0200 | <dlock> | is it this? https://hackage.haskell.org/package/haskell-src-1.0.4/docs/Language-Haskell-Syntax.html#t:HsMatch |
2022-07-18 02:14:02 +0200 | <dlock> | seems very strange to have to write functions like this |
2022-07-18 02:14:08 +0200 | gurkenglas | (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) (Ping timeout: 272 seconds) |
2022-07-18 02:14:09 +0200 | <dlock> | how do i just read one in and evaluate it!? |
2022-07-18 02:15:24 +0200 | <dlock> | basically, i expect the user to cd to some specified directory and edit their snippit, and then the thing that runs it stores it somewhere else incase ever the input output pair on that particular function need to be recalled |
2022-07-18 02:15:46 +0200 | <dlock> | basically allowing a stupid coder to just keep editing their function and having this thing safely store away all the versions |
2022-07-18 02:16:12 +0200 | <dlock> | and they go, "oh no, it was working really well a second ago" and they have that one saved so its ok |
2022-07-18 02:16:45 +0200 | <dlock> | and it means they never try to upload the inputs for one function into the wrong function because they are saved together |
2022-07-18 02:16:58 +0200 | <dlock> | as long as the thing thats running on the server, when this datatype is delivered |
2022-07-18 02:17:25 +0200 | <dlock> | can start running it, even if it has to be, well, not recompiled because theres no compiler on the server, but, er, relinked with nix copy closure |
2022-07-18 02:17:34 +0200 | <Axman6> | You're talking about a statically typed, compiled language, what you're looking to do feels very much like cutting against the grain IMO. It's never going to be easy |
2022-07-18 02:17:51 +0200 | <dlock> | theres a reason its a use case |
2022-07-18 02:18:07 +0200 | <dlock> | we have several good hotswapping things |
2022-07-18 02:18:19 +0200 | <dlock> | i just never actually *needed* the interpreter way before |
2022-07-18 02:18:42 +0200 | <dlock> | and now im quite sure that i want to write "readFunction" like i would "readFile" to get the inputs |
2022-07-18 02:18:52 +0200 | <dlock> | just for that particular line |
2022-07-18 02:19:45 +0200 | <dlock> | i have been *not* doing this for ages, and it results in saved nets that cant be used because the sourcecode they were generated with were not versioned propely |
2022-07-18 02:20:25 +0200 | <dlock> | got to have this standalone compartmentalisation of "saved data along with saved code" |
2022-07-18 02:20:39 +0200 | <dlock> | even if the output code isnt strictly "output" its just whatever the user wrote at the time |
2022-07-18 02:21:03 +0200 | <dlock> | the real problem is trying to mix nets and matricies |
2022-07-18 02:21:22 +0200 | <dlock> | i want to just store a square of numbers, but if i dont know how they are supposed to be evaluated |
2022-07-18 02:21:45 +0200 | <dlock> | i could have like data FType = Matrix | Net, or something, but then id want to extend it |
2022-07-18 02:21:52 +0200 | <dlock> | and so i couldnt save it as a header |
2022-07-18 02:22:03 +0200 | <dlock> | like, the show / read instance would keep changing |
2022-07-18 02:22:22 +0200 | <dlock> | or it would be just a square of numbers and the word Matrix, or something |
2022-07-18 02:22:37 +0200 | <dlock> | but i can envisage a situation where i invent something that cant just be described with one word |
2022-07-18 02:22:55 +0200 | <dlock> | "the kind of deep treelike net thing thats all different over here and stuff" |
2022-07-18 02:23:20 +0200 | <dlock> | so i need to save that... and it was written as a haskell program so... |
2022-07-18 02:23:46 +0200 | <dlock> | i dont mind making the user work in one module for this hotswapping, so backpack really i think might be how to go with this, im not sure |
2022-07-18 02:24:35 +0200 | <dlock> | maybe i could make a wrapper around cabal so when i use cabal run, it secretly handles the module saving as if it were coming from the program as it runs "saving" part of itself |
2022-07-18 02:25:08 +0200 | <dlock> | and obviously it has to retrive the correct module aswell |
2022-07-18 02:25:37 +0200 | <dlock> | "dear cabal, compile it with those really good parameters we had before on whatever that crazy net i was writing was" |
2022-07-18 02:26:03 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:5546:a014:fe40:2124) |
2022-07-18 02:26:30 +0200 | <dlock> | i guess i should learn how to use extra source dirs or something for this |
2022-07-18 02:26:54 +0200 | <dlock> | "where are your hotswapping modules stored" |
2022-07-18 02:28:10 +0200 | wroathe | (~wroathe@user/wroathe) (Quit: leaving) |
2022-07-18 02:28:24 +0200 | bilegeek | (~bilegeek@2600:1008:b05b:4a6c:db72:12cb:b085:4039) |
2022-07-18 02:30:20 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:5546:a014:fe40:2124) (Ping timeout: 244 seconds) |
2022-07-18 02:36:26 +0200 | merijn | (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) |
2022-07-18 02:42:02 +0200 | dextaa | (~DV@user/dextaa) (Read error: Connection reset by peer) |
2022-07-18 02:44:16 +0200 | dextaa | (~DV@user/dextaa) |
2022-07-18 02:45:02 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-07-18 02:45:06 +0200 | dextaa | (~DV@user/dextaa) (Read error: Connection reset by peer) |
2022-07-18 02:45:29 +0200 | califax | (~califax@user/califx) |
2022-07-18 02:47:21 +0200 | dextaa | (~DV@user/dextaa) |
2022-07-18 02:50:41 +0200 | dextaa | (~DV@user/dextaa) (Read error: Connection reset by peer) |
2022-07-18 02:50:51 +0200 | lemonsni- | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
2022-07-18 02:51:41 +0200 | lemonsnicks | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 272 seconds) |
2022-07-18 02:52:58 +0200 | dextaa | (~DV@user/dextaa) |
2022-07-18 02:55:08 +0200 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 255 seconds) |
2022-07-18 02:55:12 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-18 02:55:48 +0200 | dextaa | (~DV@user/dextaa) (Read error: Connection reset by peer) |
2022-07-18 02:58:01 +0200 | dextaa | (~DV@user/dextaa) |
2022-07-18 02:58:22 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-18 02:58:51 +0200 | dextaa | (~DV@user/dextaa) (Read error: Connection reset by peer) |
2022-07-18 03:01:08 +0200 | dextaa | (~DV@user/dextaa) |
2022-07-18 03:01:58 +0200 | dextaa | (~DV@user/dextaa) (Read error: Connection reset by peer) |
2022-07-18 03:04:35 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:5546:a014:fe40:2124) |
2022-07-18 03:04:40 +0200 | dextaa | (~DV@user/dextaa) |
2022-07-18 03:09:26 +0200 | dlock | (~dlock@213.205.241.187) (Remote host closed the connection) |
2022-07-18 03:09:43 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 03:09:45 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 276 seconds) |
2022-07-18 03:10:47 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2022-07-18 03:11:35 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-18 03:11:42 +0200 | merijn | (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 276 seconds) |
2022-07-18 03:16:55 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2022-07-18 03:21:27 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 272 seconds) |
2022-07-18 03:23:07 +0200 | Infinite | (~Infinite@2405:201:6014:10d3:5bda:954e:108a:364) |
2022-07-18 03:32:19 +0200 | mikoto-chan | (~mikoto-ch@85-76-65-195-nat.elisa-mobile.fi) |
2022-07-18 03:36:50 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-07-18 03:37:32 +0200 | califax | (~califax@user/califx) |
2022-07-18 03:49:00 +0200 | Infinite | (~Infinite@2405:201:6014:10d3:5bda:954e:108a:364) (Ping timeout: 252 seconds) |
2022-07-18 03:54:31 +0200 | frost | (~frost@user/frost) |
2022-07-18 03:56:10 +0200 | gleostocha | (~runic@c-73-15-32-211.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2022-07-18 03:56:50 +0200 | tdodrlt^ | (~tdodrlt@12.187.69.131) |
2022-07-18 03:58:24 +0200 | zaquest | (~notzaques@5.130.79.72) (Remote host closed the connection) |
2022-07-18 03:59:02 +0200 | pgass | (~pg@190.247.245.154) (Ping timeout: 255 seconds) |
2022-07-18 04:01:45 +0200 | vst1 | (~Thunderbi@w118010235.w118010.starhub.net.sg) |
2022-07-18 04:01:56 +0200 | nasosev | (~nasosev@193-116-244-197.tpgi.com.au) |
2022-07-18 04:02:49 +0200 | vst | (~Thunderbi@w118010235.w118010.starhub.net.sg) (Ping timeout: 244 seconds) |
2022-07-18 04:02:50 +0200 | vst1 | vst |
2022-07-18 04:03:00 +0200 | lemonsni- | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-07-18 04:04:53 +0200 | <nasosev> | is there someway to check why hlint is not working in vscode with my ghc 9.2.2 cabal project ? If i create a stack project with `stack new` it works correctly. The rest of the language server is working in the cabal project, jut not hlint |
2022-07-18 04:05:18 +0200 | <nasosev> | vs code settings are the same in both projects |
2022-07-18 04:05:57 +0200 | <Axman6> | Is there anything in the HLS output? |
2022-07-18 04:06:58 +0200 | merijn | (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) |
2022-07-18 04:07:02 +0200 | zaquest | (~notzaques@5.130.79.72) |
2022-07-18 04:07:27 +0200 | <nasosev> | Not sure where to check? I n the Output tab of vscode I select Haskell (projectname), and there is a bunch of stuff there but no mention of hlint |
2022-07-18 04:10:54 +0200 | yauhsien | (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) |
2022-07-18 04:11:00 +0200 | <Axman6> | hmm, not sure then. I think there's an IRC channel for HLS, possibly #haskell-language-server? |
2022-07-18 04:11:48 +0200 | <nasosev> | it did say "No 'hie.yaml' found. Try to discover the project type!" not sure if this is related |
2022-07-18 04:11:51 +0200 | <nasosev> | ok i'll try thanks |
2022-07-18 04:12:24 +0200 | <Axman6> | sounds possible, I haven't used a hie.yaml file before but it sounds like something I should |
2022-07-18 04:14:17 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
2022-07-18 04:14:31 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2022-07-18 04:18:29 +0200 | nate4 | (~nate@98.45.169.16) |
2022-07-18 04:18:50 +0200 | yauhsien | (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) (Ping timeout: 255 seconds) |
2022-07-18 04:20:25 +0200 | lemonsnicks | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
2022-07-18 04:23:20 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 255 seconds) |
2022-07-18 04:27:19 +0200 | tdodrlt^ | (~tdodrlt@12.187.69.131) (Ping timeout: 272 seconds) |
2022-07-18 04:27:24 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 04:28:11 +0200 | marcusxavier | (~marcusxav@2804:6660:ff12:ef70:c108:521a:bfa4:709f) |
2022-07-18 04:28:30 +0200 | <marcusxavier> | I just finished CIS 194 week 2 exercise |
2022-07-18 04:28:36 +0200 | <marcusxavier> | how can I improve my code |
2022-07-18 04:28:38 +0200 | <marcusxavier> | https://gist.github.com/MarcusXavierr/230bc0a7d56cebcc5d7181e7f7afb235 |
2022-07-18 04:29:12 +0200 | <Axman6> | Don;t use head or (!!) |
2022-07-18 04:30:09 +0200 | <Axman6> | createLog ("E":err:b:xs) = LogMessage (Error err) b xs |
2022-07-18 04:31:18 +0200 | <Axman6> | createLog ("E":timestamp:b:xs) = LogMessage (Error (test timestamp) b xs |
2022-07-18 04:31:30 +0200 | <Axman6> | missed the read in there, same with the second arg, whatever that is |
2022-07-18 04:31:45 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-18 04:31:55 +0200 | <Axman6> | if you ever find yourself using (!!), there's almost always a better option that won't throw an error when you mess up |
2022-07-18 04:32:38 +0200 | radhika | (uid560836@id-560836.helmsley.irccloud.com) |
2022-07-18 04:32:39 +0200 | <Axman6> | Seems weird that you would just throw away log messages with identical timestamps but I don't know what the requirements are |
2022-07-18 04:33:37 +0200 | <Axman6> | personally I would pass the original message into creatLog: createLog :: String -> LogMessage; createMsg msg = case words of ...; _ -> Unknown msg |
2022-07-18 04:33:43 +0200 | <dsal> | While you're not using stuff, also don't use `error` :) |
2022-07-18 04:33:53 +0200 | <Axman6> | yeah |
2022-07-18 04:35:12 +0200 | <Axman6> | whatWentWrong looks like it could be written using filter and map |
2022-07-18 04:37:19 +0200 | yauhsien | (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) |
2022-07-18 04:37:21 +0200 | <Axman6> | alternatively it could be quite clean if you used a list comprehension: whatWentWrong xs = [ msg | LogMessage Error intensity msg <- xs, intensity > 50 ] |
2022-07-18 04:38:43 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds) |
2022-07-18 04:39:18 +0200 | marcusxavier | (~marcusxav@2804:6660:ff12:ef70:c108:521a:bfa4:709f) (Ping timeout: 240 seconds) |
2022-07-18 04:39:31 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-18 04:40:16 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2022-07-18 04:40:16 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2022-07-18 04:40:16 +0200 | finn_elija | FinnElija |
2022-07-18 04:40:50 +0200 | marcusxavier | (~marcusxav@2804:6660:ff12:ef70:c108:521a:bfa4:709f) |
2022-07-18 04:41:10 +0200 | merijn | (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2022-07-18 04:47:18 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 04:47:19 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) |
2022-07-18 04:47:19 +0200 | <marcusxavier> | @Axman6 what does the function "test" do in "createLog ("E":timestamp:b:xs) = LogMessage (Error (test timestamp) b xs" |
2022-07-18 04:47:19 +0200 | <lambdabot> | Unknown command, try @list |
2022-07-18 04:47:54 +0200 | yauhsien | (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) (Ping timeout: 276 seconds) |
2022-07-18 04:49:09 +0200 | <Axman6> | uh, that was supposed to be read, no idea how I typed test |
2022-07-18 04:49:57 +0200 | <albet70> | I have a little confused about do block syntax, it has different behavior on different ghc https://paste.tomsmeding.com/7cMfjHqB |
2022-07-18 04:50:30 +0200 | <albet70> | why one do syntax need indent like python, but another doesn't |
2022-07-18 04:52:17 +0200 | <dsal> | There are some indentation rules. It'd be super hard to read the code if you didn't indent it correctly, so I guess it's nice it's also a syntax error. |
2022-07-18 04:53:22 +0200 | <albet70> | "dsal :There are some indentation rules. It'd be super hard to read the code if you didn't indent it correctly, so I guess it's nice it's also a syntax error.", but why there's no syntax error in another ghc? |
2022-07-18 04:53:56 +0200 | <albet70> | systax error is a compile feature or option? |
2022-07-18 04:54:31 +0200 | <albet70> | the interesting thing is they're both on debian |
2022-07-18 04:55:17 +0200 | <albet70> | one is in my remote debian vps, another is in local |
2022-07-18 04:55:39 +0200 | <dsal> | I don't quite understand what you're saying. Do you have an example of code you think should work that doesn't? |
2022-07-18 04:57:28 +0200 | <Axman6> | yeah that sounds like it's very unlikely to be true to me |
2022-07-18 04:58:59 +0200 | td_ | (~td@94.134.91.33) (Ping timeout: 272 seconds) |
2022-07-18 05:00:10 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-07-18 05:00:14 +0200 | td_ | (~td@94.134.91.5) |
2022-07-18 05:00:36 +0200 | marcusxavier | (~marcusxav@2804:6660:ff12:ef70:c108:521a:bfa4:709f) (Quit: WeeChat 3.6) |
2022-07-18 05:01:11 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) |
2022-07-18 05:01:33 +0200 | <albet70> | https://past.tomsmeing.com/OZos1jC7 |
2022-07-18 05:01:48 +0200 | tdodrlt^ | (~tdodrlt@12.187.69.131) |
2022-07-18 05:02:02 +0200 | <albet70> | https://past.tomsmeing.com/OZosljC7 |
2022-07-18 05:02:43 +0200 | toluene | (~toluene@user/toulene) (Read error: Connection reset by peer) |
2022-07-18 05:02:49 +0200 | <Axman6> | can you fix the URL please? |
2022-07-18 05:03:07 +0200 | toluene | (~toluene@user/toulene) |
2022-07-18 05:03:20 +0200 | lys | (sid194105@user/lys) (Quit: Gone) |
2022-07-18 05:03:51 +0200 | <albet70> | https://paste.tomsmeding.com/OZos1jC7 |
2022-07-18 05:04:28 +0200 | <albet70> | those do block syntax work fine in a ghc, but not work in another ghc |
2022-07-18 05:04:38 +0200 | benin0 | (~benin@183.82.24.82) (Ping timeout: 240 seconds) |
2022-07-18 05:04:43 +0200 | <Axman6> | that first example looks like it shouldn't work in any GHC ever, you have an empty do block followed by two clauses defining the function called get |
2022-07-18 05:05:17 +0200 | <albet70> | "Axman6 :that first example looks like it shouldn't work in any GHC ever, you have an empty do block followed by two clauses defining the function called get", but it did work |
2022-07-18 05:05:50 +0200 | <Axman6> | albet70: you don't need to quote our own words back to us, we can read them already and it makes it hard to find what you are actually saying |
2022-07-18 05:06:01 +0200 | <albet70> | ok |
2022-07-18 05:06:30 +0200 | <Axman6> | "it did work" can you share the whole file? I would be very surprised if it actually works |
2022-07-18 05:06:32 +0200 | nate4 | (~nate@98.45.169.16) |
2022-07-18 05:06:49 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2022-07-18 05:07:28 +0200 | <Axman6> | particularly since trying to run scotty fromt eh top level of a file makes no sense |
2022-07-18 05:07:37 +0200 | frost | (~frost@user/frost) (Quit: Client closed) |
2022-07-18 05:07:39 +0200 | <Axman6> | so you're definitely not share enough information for us to help |
2022-07-18 05:07:46 +0200 | <Axman6> | sharing* |
2022-07-18 05:08:02 +0200 | <albet70> | sorry, the code is on my remote vps, and I'm at work, I can't access it now |
2022-07-18 05:08:32 +0200 | bilegeek_ | (~bilegeek@139.sub-174-209-47.myvzw.com) |
2022-07-18 05:10:23 +0200 | wombat875 | (~wombat875@pool-141-155-7-175.nycmny.fios.verizon.net) (Ping timeout: 272 seconds) |
2022-07-18 05:11:02 +0200 | bilegeek | (~bilegeek@2600:1008:b05b:4a6c:db72:12cb:b085:4039) (Ping timeout: 244 seconds) |
2022-07-18 05:11:16 +0200 | <monochrom> | Alternatively you can create a brand new minimal self-contained reproducible example. |
2022-07-18 05:11:28 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-07-18 05:11:35 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 05:12:39 +0200 | <qrpnxz> | how do i reify GHC's builtin type level lists. Do I need a library? I can I roll my own real quick? |
2022-07-18 05:12:39 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Read error: Connection reset by peer) |
2022-07-18 05:13:05 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 05:17:52 +0200 | frost | (~frost@user/frost) |
2022-07-18 05:17:59 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 272 seconds) |
2022-07-18 05:18:26 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 272 seconds) |
2022-07-18 05:21:16 +0200 | <Axman6> | sounds like a job for the singletons package? |
2022-07-18 05:21:34 +0200 | <Axman6> | but I'm not sure how you guarantee all the elements in the type level list are the same type? |
2022-07-18 05:28:05 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 244 seconds) |
2022-07-18 05:29:19 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-07-18 05:29:55 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-18 05:30:06 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 05:30:25 +0200 | lys | (sid194105@id-194105.uxbridge.irccloud.com) |
2022-07-18 05:30:46 +0200 | lys | (sid194105@id-194105.uxbridge.irccloud.com) (Changing host) |
2022-07-18 05:30:46 +0200 | lys | (sid194105@user/lys) |
2022-07-18 05:31:45 +0200 | lys | (sid194105@user/lys) (Client Quit) |
2022-07-18 05:34:24 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-18 05:34:42 +0200 | <qrpnxz> | they are all the same kind :) |
2022-07-18 05:34:44 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) (Quit: zxx7529) |
2022-07-18 05:35:36 +0200 | <qrpnxz> | type of kind list of types becomes value of type list of values |
2022-07-18 05:36:06 +0200 | <qrpnxz> | in my use case i have a type level list of bools i want to inspect |
2022-07-18 05:36:55 +0200 | <qrpnxz> | i also have a number kind I look at with natVal, but idk what function to use for lists |
2022-07-18 05:37:32 +0200 | merijn | (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) |
2022-07-18 05:37:50 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds) |
2022-07-18 05:39:32 +0200 | <qrpnxz> | not sure how the singletons package would help me here |
2022-07-18 05:45:46 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) (Quit: Lost terminal) |
2022-07-18 05:46:12 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) |
2022-07-18 05:47:35 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) (Client Quit) |
2022-07-18 05:48:02 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) |
2022-07-18 05:49:58 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 05:53:03 +0200 | causal | (~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0e) |
2022-07-18 05:54:26 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-18 05:54:55 +0200 | mud | (~mud@user/kadoban) (Quit: quit) |
2022-07-18 06:00:59 +0200 | nate4 | (~nate@98.45.169.16) |
2022-07-18 06:01:16 +0200 | yauhsien | (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) |
2022-07-18 06:01:29 +0200 | hgolden | (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) |
2022-07-18 06:01:39 +0200 | <qrpnxz> | ok figured it out. You create a type class, and then create an instance for empty list and instance for inductive step where the head is true and for when the head is false. |
2022-07-18 06:01:41 +0200 | <qrpnxz> | lol |
2022-07-18 06:02:08 +0200 | hgolden | (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Client Quit) |
2022-07-18 06:02:23 +0200 | hgolden | (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) |
2022-07-18 06:07:10 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
2022-07-18 06:07:30 +0200 | yauhsien | (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
2022-07-18 06:09:06 +0200 | <qrpnxz> | this is so cracked lol, but i'm just amazed by the type safety |
2022-07-18 06:10:47 +0200 | winny | (~weechat@user/winny) (Remote host closed the connection) |
2022-07-18 06:11:07 +0200 | nasosev | (~nasosev@193-116-244-197.tpgi.com.au) (Remote host closed the connection) |
2022-07-18 06:11:34 +0200 | winny | (~weechat@user/winny) |
2022-07-18 06:11:50 +0200 | merijn | (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2022-07-18 06:14:21 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 06:15:46 +0200 | nasosev | (~nasosev@193-116-244-197.tpgi.com.au) |
2022-07-18 06:16:10 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 240 seconds) |
2022-07-18 06:16:27 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2022-07-18 06:17:10 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::909a) (Ping timeout: 240 seconds) |
2022-07-18 06:17:12 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-07-18 06:18:50 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-18 06:20:30 +0200 | nasosev | (~nasosev@193-116-244-197.tpgi.com.au) (Ping timeout: 264 seconds) |
2022-07-18 06:20:46 +0200 | nate4 | (~nate@98.45.169.16) |
2022-07-18 06:20:59 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2022-07-18 06:21:29 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-07-18 06:25:18 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 264 seconds) |
2022-07-18 06:28:54 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-18 06:32:08 +0200 | EvanR | (~EvanR@user/evanr) (Quit: Leaving) |
2022-07-18 06:32:50 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds) |
2022-07-18 06:33:35 +0200 | EvanR | (~EvanR@user/evanr) |
2022-07-18 06:38:45 +0200 | Infinite | (~Infinite@49.36.213.114) |
2022-07-18 06:41:16 +0200 | Infinite | (~Infinite@49.36.213.114) (Client Quit) |
2022-07-18 06:41:31 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 06:42:17 +0200 | radhika | (uid560836@id-560836.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2022-07-18 06:42:38 +0200 | dolio | (~dolio@130.44.130.54) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-07-18 06:44:26 +0200 | dolio | (~dolio@130.44.130.54) |
2022-07-18 06:46:05 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-18 06:46:28 +0200 | dolio | (~dolio@130.44.130.54) (Client Quit) |
2022-07-18 06:48:00 +0200 | dolio | (~dolio@130.44.130.54) |
2022-07-18 06:48:49 +0200 | redmp | (~redmp@mobile-166-177-249-226.mycingular.net) |
2022-07-18 06:51:51 +0200 | wolke | (~wolke@2001:871:25e:696f:d97e:f83:15b1:b4ec) |
2022-07-18 06:54:01 +0200 | nate4 | (~nate@98.45.169.16) |
2022-07-18 06:56:30 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-18 06:57:41 +0200 | yauhsien | (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) |
2022-07-18 06:59:19 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 272 seconds) |
2022-07-18 06:59:29 +0200 | redmp | (~redmp@mobile-166-177-249-226.mycingular.net) (Ping timeout: 255 seconds) |
2022-07-18 07:02:30 +0200 | yauhsien | (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
2022-07-18 07:03:19 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2022-07-18 07:03:45 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-07-18 07:04:45 +0200 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2022-07-18 07:08:06 +0200 | merijn | (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) |
2022-07-18 07:11:02 +0200 | lagash | (lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in) |
2022-07-18 07:11:10 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
2022-07-18 07:13:23 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-18 07:16:30 +0200 | mikoto-chan | (~mikoto-ch@85-76-65-195-nat.elisa-mobile.fi) (Ping timeout: 240 seconds) |
2022-07-18 07:18:22 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) |
2022-07-18 07:19:32 +0200 | Infinite | (~Infinite@2405:201:6014:10d3:bf50:81ac:ca92:ffdb) |
2022-07-18 07:20:45 +0200 | mbuf | (~Shakthi@122.165.55.71) |
2022-07-18 07:21:30 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
2022-07-18 07:23:42 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-18 07:27:14 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 07:28:07 +0200 | <Axman6> | (Asking in here because #ghc seems pretty quiet) Does GHC have an optimisation where it can optimise the evaluation of a case statement where most of the patterns go to the same value? https://paste.tomsmeding.com/NJ5wjf7X |
2022-07-18 07:28:10 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
2022-07-18 07:29:30 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2022-07-18 07:29:57 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-07-18 07:30:06 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-18 07:31:41 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-18 07:34:02 +0200 | cods | (~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 260 seconds) |
2022-07-18 07:34:16 +0200 | cods | (~fred@82-65-232-44.subs.proxad.net) |
2022-07-18 07:40:18 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds) |
2022-07-18 07:40:44 +0200 | Haskelytic | (~Haskelyti@118.179.211.17) |
2022-07-18 07:43:01 +0200 | merijn | (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
2022-07-18 07:45:07 +0200 | yauhsien | (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) |
2022-07-18 07:46:06 +0200 | gmg | (~user@user/gehmehgeh) |
2022-07-18 07:52:58 +0200 | yauhsien | (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) (Ping timeout: 272 seconds) |
2022-07-18 07:53:32 +0200 | <albet70> | I use hSeek to jump 100000, but hTell say it jump 200000, why? https://paste.tomsmeding.com/k4i6WlpZ |
2022-07-18 07:57:37 +0200 | <dsal> | albet70: do you know how seek works in general? |
2022-07-18 07:58:29 +0200 | <dsal> | You're not doing this in ghci are you? |
2022-07-18 07:58:48 +0200 | <albet70> | cabal run x.hs |
2022-07-18 07:59:49 +0200 | <albet70> | seek use a offset to read file? |
2022-07-18 08:00:35 +0200 | <dsal> | "seek" "use [a] offset" and "read file" are three completely different concepts. |
2022-07-18 08:00:44 +0200 | <albet70> | I used that yield within python to do this, but I'm not familiar with haskell |
2022-07-18 08:01:13 +0200 | <dsal> | I was referring to the way it works in your OS. |
2022-07-18 08:01:14 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 08:01:39 +0200 | <albet70> | then I don't know |
2022-07-18 08:02:36 +0200 | <dsal> | Well, take a look at the manpage: https://www.unix.com/man-page/linux/2/seek/ |
2022-07-18 08:03:10 +0200 | <dsal> | Perhaps also this: https://hackage.haskell.org/package/base-4.16.2.0/docs/System-IO.html#t:SeekMode |
2022-07-18 08:03:47 +0200 | califax | (~califax@user/califx) (Ping timeout: 268 seconds) |
2022-07-18 08:04:39 +0200 | <albet70> | I used hSeek handle RelativeSeek 100000, it's wrong? |
2022-07-18 08:04:48 +0200 | <dsal> | It's not wrong if that's what you meant. |
2022-07-18 08:04:53 +0200 | <dsal> | Is that what you meant? |
2022-07-18 08:04:54 +0200 | nate4 | (~nate@98.45.169.16) |
2022-07-18 08:05:35 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
2022-07-18 08:05:46 +0200 | <albet70> | hGet would remember that last position it read and will it read from there when call it again ? |
2022-07-18 08:06:34 +0200 | <dsal> | Your mental model might not be correct. |
2022-07-18 08:06:56 +0200 | <dsal> | hget doesn't remember anything. It just reads from the current file position and increases the offset by however much you read. |
2022-07-18 08:06:58 +0200 | <dsal> | Same as write. |
2022-07-18 08:07:30 +0200 | Infinite | (~Infinite@2405:201:6014:10d3:bf50:81ac:ca92:ffdb) (Ping timeout: 252 seconds) |
2022-07-18 08:07:49 +0200 | <albet70> | I thought hGet won't increase the offset, now I see where is wrong |
2022-07-18 08:09:38 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
2022-07-18 08:09:56 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-18 08:11:34 +0200 | califax | (~califax@user/califx) |
2022-07-18 08:12:34 +0200 | codaraxis___ | (~codaraxis@user/codaraxis) |
2022-07-18 08:14:30 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds) |
2022-07-18 08:14:52 +0200 | alternateved | (~user@staticline-31-183-144-54.toya.net.pl) |
2022-07-18 08:16:43 +0200 | codaraxis__ | (~codaraxis@user/codaraxis) (Ping timeout: 268 seconds) |
2022-07-18 08:19:04 +0200 | causal | (~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0e) (Quit: WeeChat 3.5) |
2022-07-18 08:19:12 +0200 | <tomsmeding> | monochrom: oxford has "a- (expressing causal effect) + muser ‘stare stupidly’" |
2022-07-18 08:19:49 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 08:26:05 +0200 | redmp | (~redmp@mobile-166-177-249-235.mycingular.net) |
2022-07-18 08:28:45 +0200 | johnw | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) |
2022-07-18 08:32:08 +0200 | acidjnk_new3 | (~acidjnk@p200300d6e705864121d6c2a2455d2da3.dip0.t-ipconnect.de) |
2022-07-18 08:32:48 +0200 | takuan | (~takuan@178.116.218.225) |
2022-07-18 08:37:33 +0200 | michalz | (~michalz@185.246.204.93) |
2022-07-18 08:38:37 +0200 | merijn | (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) |
2022-07-18 08:44:07 +0200 | kazaf | (~kazaf@84.252.147.230) |
2022-07-18 08:48:15 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
2022-07-18 08:49:43 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-18 08:54:52 +0200 | christiansen | (~christian@83-95-137-75-dynamic.dk.customer.tdc.net) |
2022-07-18 08:56:54 +0200 | mc47 | (~mc47@xmonad/TheMC47) |
2022-07-18 08:59:16 +0200 | coot | (~coot@213.134.190.95) |
2022-07-18 09:00:35 +0200 | cosimone | (~user@93-44-186-171.ip98.fastwebnet.it) |
2022-07-18 09:05:28 +0200 | thyriaen | (~thyriaen@80.188.94.74) |
2022-07-18 09:08:43 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2022-07-18 09:12:14 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 255 seconds) |
2022-07-18 09:13:18 +0200 | merijn | (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 264 seconds) |
2022-07-18 09:16:28 +0200 | ccntrq | (~Thunderbi@2a01:c22:8c98:4400:a76:c9d7:ca07:82a4) |
2022-07-18 09:20:42 +0200 | yauhsien | (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) |
2022-07-18 09:23:09 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-18 09:23:53 +0200 | merijn | (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) |
2022-07-18 09:30:34 +0200 | gurkenglas | (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) |
2022-07-18 09:30:36 +0200 | thyriaen | (~thyriaen@80.188.94.74) (Remote host closed the connection) |
2022-07-18 09:31:44 +0200 | zeenk | (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) |
2022-07-18 09:35:07 +0200 | MajorBiscuit | (~MajorBisc@wlan-145-94-167-213.wlan.tudelft.nl) |
2022-07-18 09:36:14 +0200 | benin0 | (~benin@183.82.176.5) |
2022-07-18 09:36:24 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 09:36:30 +0200 | yauhsien | (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) (Ping timeout: 276 seconds) |
2022-07-18 09:36:40 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-18 09:36:42 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-07-18 09:40:22 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-97.elisa-laajakaista.fi) |
2022-07-18 09:40:50 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds) |
2022-07-18 09:40:59 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
2022-07-18 09:41:44 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) (Remote host closed the connection) |
2022-07-18 09:42:47 +0200 | redmp | (~redmp@mobile-166-177-249-235.mycingular.net) (Ping timeout: 244 seconds) |
2022-07-18 09:44:47 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2022-07-18 09:44:52 +0200 | ccntrq1 | (~Thunderbi@2a01:c23:8894:e200:7659:e0b5:7bbc:ffcb) |
2022-07-18 09:45:18 +0200 | lagash | (lagash@lagash.shelltalk.net) |
2022-07-18 09:46:54 +0200 | ccntrq | (~Thunderbi@2a01:c22:8c98:4400:a76:c9d7:ca07:82a4) (Ping timeout: 276 seconds) |
2022-07-18 09:46:54 +0200 | ccntrq1 | ccntrq |
2022-07-18 09:52:13 +0200 | Midjak | (~Midjak@82.66.147.146) |
2022-07-18 09:52:31 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) |
2022-07-18 09:53:19 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 09:54:03 +0200 | fserucas | (~fserucas@36.70.114.89.rev.vodafone.pt) |
2022-07-18 09:57:08 +0200 | Infinite | (~Infinite@49.36.213.114) |
2022-07-18 09:57:46 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-18 09:59:05 +0200 | _ht | (~quassel@231-169-21-31.ftth.glasoperator.nl) |
2022-07-18 09:59:06 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds) |
2022-07-18 10:00:10 +0200 | tdodrlt^ | (~tdodrlt@12.187.69.131) (Ping timeout: 240 seconds) |
2022-07-18 10:00:52 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-18 10:04:08 +0200 | lys | (sid194105@id-194105.uxbridge.irccloud.com) |
2022-07-18 10:08:22 +0200 | ph88 | (~ph88@2a02:8109:9e00:71d0::347a) (Quit: Leaving) |
2022-07-18 10:08:58 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
2022-07-18 10:11:04 +0200 | acidjnk_new | (~acidjnk@p200300d6e7058641ad02090b6b4e37ed.dip0.t-ipconnect.de) |
2022-07-18 10:11:11 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-18 10:11:20 +0200 | lys | (sid194105@id-194105.uxbridge.irccloud.com) () |
2022-07-18 10:13:02 +0200 | acidjnk | (~acidjnk@p200300d6e7058641ad02090b6b4e37ed.dip0.t-ipconnect.de) |
2022-07-18 10:15:06 +0200 | acidjnk_new3 | (~acidjnk@p200300d6e705864121d6c2a2455d2da3.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2022-07-18 10:15:58 +0200 | acidjnk_new | (~acidjnk@p200300d6e7058641ad02090b6b4e37ed.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-07-18 10:16:42 +0200 | Infinite | (~Infinite@49.36.213.114) (Quit: Client closed) |
2022-07-18 10:17:14 +0200 | nasosev | (~nasosev@193-116-244-197.tpgi.com.au) |
2022-07-18 10:17:23 +0200 | acidjnk_new | (~acidjnk@p200300d6e7058641c8a7bb3f61556f24.dip0.t-ipconnect.de) |
2022-07-18 10:17:39 +0200 | kuribas | (~user@ptr-17d51eoir4u5diqgim8.18120a2.ip6.access.telenet.be) |
2022-07-18 10:18:04 +0200 | acidjnk_new3 | (~acidjnk@p200300d6e705864174c175faeeeeaa95.dip0.t-ipconnect.de) |
2022-07-18 10:19:47 +0200 | maroloccio | (~marolocci@37.100.36.239) |
2022-07-18 10:20:11 +0200 | chomwitt | (~chomwitt@2a02:587:dc00:5a00:576f:713d:f0b0:d7e1) |
2022-07-18 10:20:43 +0200 | acidjnk | (~acidjnk@p200300d6e7058641ad02090b6b4e37ed.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
2022-07-18 10:21:50 +0200 | acidjnk_new | (~acidjnk@p200300d6e7058641c8a7bb3f61556f24.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-07-18 10:22:00 +0200 | nasosev | (~nasosev@193-116-244-197.tpgi.com.au) (Ping timeout: 276 seconds) |
2022-07-18 10:24:39 +0200 | lys | (sid194105@id-194105.uxbridge.irccloud.com) |
2022-07-18 10:25:18 +0200 | lys | (sid194105@id-194105.uxbridge.irccloud.com) (Changing host) |
2022-07-18 10:25:18 +0200 | lys | (sid194105@user/lys) |
2022-07-18 10:29:54 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-18 10:30:30 +0200 | gurkenglas | (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
2022-07-18 10:30:37 +0200 | mmhat | (~mmh@p200300f1c70559c1ee086bfffe095315.dip0.t-ipconnect.de) |
2022-07-18 10:31:24 +0200 | fserucas_ | (~fserucas@39.64.114.89.rev.vodafone.pt) |
2022-07-18 10:31:54 +0200 | fserucas | (~fserucas@36.70.114.89.rev.vodafone.pt) (Ping timeout: 264 seconds) |
2022-07-18 10:33:56 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds) |
2022-07-18 10:37:24 +0200 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-07-18 10:37:35 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) |
2022-07-18 10:40:22 +0200 | Vajb | (~Vajb@n1zigc3rgo9mpde2w-1.v6.elisa-mobile.fi) (Read error: Connection reset by peer) |
2022-07-18 10:41:26 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) |
2022-07-18 10:44:18 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 10:46:36 +0200 | ccntrq | (~Thunderbi@2a01:c23:8894:e200:7659:e0b5:7bbc:ffcb) (Remote host closed the connection) |
2022-07-18 10:46:54 +0200 | ccntrq | (~Thunderbi@2a01:c23:8894:e200:11bf:b185:f4bf:b5ca) |
2022-07-18 10:48:24 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-18 10:48:49 +0200 | OscarZ | (~oscarz@85.194.207.119) (Quit: Leaving) |
2022-07-18 10:49:46 +0200 | chele | (~chele@user/chele) |
2022-07-18 10:53:07 +0200 | cfricke | (~cfricke@user/cfricke) |
2022-07-18 10:57:17 +0200 | dunj3 | (~dunj3@kingdread.de) |
2022-07-18 10:57:23 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) (Remote host closed the connection) |
2022-07-18 10:57:39 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) |
2022-07-18 10:57:45 +0200 | nasosev | (~nasosev@193-116-244-197.tpgi.com.au) |
2022-07-18 10:59:10 +0200 | nasosev | (~nasosev@193-116-244-197.tpgi.com.au) (Remote host closed the connection) |
2022-07-18 11:01:15 +0200 | nasosev | (~nasosev@193-116-244-197.tpgi.com.au) |
2022-07-18 11:04:00 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-07-18 11:04:21 +0200 | Vajb | (~Vajb@n1zigc3rgo9mpde2w-1.v6.elisa-mobile.fi) |
2022-07-18 11:05:31 +0200 | nate4 | (~nate@98.45.169.16) |
2022-07-18 11:06:51 +0200 | arahael1 | (~arahael@118.211.185.62) |
2022-07-18 11:07:04 +0200 | yauhsien | (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) |
2022-07-18 11:07:07 +0200 | nasosev | (~nasosev@193-116-244-197.tpgi.com.au) (Remote host closed the connection) |
2022-07-18 11:08:09 +0200 | arahael | (~arahael@14-200-134-141.tpgi.com.au) (Ping timeout: 276 seconds) |
2022-07-18 11:08:15 +0200 | arahael1 | arahael |
2022-07-18 11:08:37 +0200 | nasosev | (~nasosev@193-116-244-197.tpgi.com.au) |
2022-07-18 11:09:46 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:5546:a014:fe40:2124) (Remote host closed the connection) |
2022-07-18 11:10:34 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 272 seconds) |
2022-07-18 11:12:54 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.5) |
2022-07-18 11:13:58 +0200 | nasosev | (~nasosev@193-116-244-197.tpgi.com.au) (Remote host closed the connection) |
2022-07-18 11:14:07 +0200 | nasosev | (~nasosev@193-116-244-197.tpgi.com.au) |
2022-07-18 11:16:12 +0200 | nasosev | (~nasosev@193-116-244-197.tpgi.com.au) (Remote host closed the connection) |
2022-07-18 11:16:52 +0200 | nasosev | (~nasosev@193-116-244-197.tpgi.com.au) |
2022-07-18 11:17:16 +0200 | ccntrq | (~Thunderbi@2a01:c23:8894:e200:11bf:b185:f4bf:b5ca) (Remote host closed the connection) |
2022-07-18 11:17:34 +0200 | ccntrq | (~Thunderbi@2a01:c23:8894:e200:9ac6:8629:8c9:f59a) |
2022-07-18 11:18:08 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 11:19:45 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-18 11:20:42 +0200 | yauhsien | (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) (Ping timeout: 272 seconds) |
2022-07-18 11:21:43 +0200 | nasosev | (~nasosev@193-116-244-197.tpgi.com.au) (Ping timeout: 268 seconds) |
2022-07-18 11:22:38 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-18 11:23:18 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-07-18 11:24:05 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds) |
2022-07-18 11:27:50 +0200 | mmhat | (~mmh@p200300f1c70559c1ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-07-18 11:28:24 +0200 | nasosev | (~nasosev@193-116-244-197.tpgi.com.au) |
2022-07-18 11:36:29 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 11:37:54 +0200 | frost | (~frost@user/frost) (Quit: Client closed) |
2022-07-18 11:38:37 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 272 seconds) |
2022-07-18 11:41:24 +0200 | mmhat | (~mmh@p200300f1c7055987ee086bfffe095315.dip0.t-ipconnect.de) |
2022-07-18 11:42:19 +0200 | ccntrq1 | (~Thunderbi@2a01:c22:91a8:b500:5243:da60:7eae:237f) |
2022-07-18 11:42:36 +0200 | ccntrq | (~Thunderbi@2a01:c23:8894:e200:9ac6:8629:8c9:f59a) (Ping timeout: 276 seconds) |
2022-07-18 11:42:36 +0200 | ccntrq1 | ccntrq |
2022-07-18 11:42:45 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds) |
2022-07-18 11:44:46 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-18 11:45:50 +0200 | __monty__ | (~toonn@user/toonn) |
2022-07-18 11:51:45 +0200 | nasosev | (~nasosev@193-116-244-197.tpgi.com.au) (Remote host closed the connection) |
2022-07-18 11:52:06 +0200 | cfricke | (~cfricke@user/cfricke) |
2022-07-18 11:52:24 +0200 | nasosev | (~nasosev@193-116-244-197.tpgi.com.au) |
2022-07-18 11:52:37 +0200 | Pickchea | (~private@user/pickchea) |
2022-07-18 11:56:38 +0200 | nasosev | (~nasosev@193-116-244-197.tpgi.com.au) (Ping timeout: 240 seconds) |
2022-07-18 11:56:44 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2022-07-18 11:57:34 +0200 | thyriaen | (~thyriaen@dynamic-002-247-250-157.2.247.pool.telefonica.de) |
2022-07-18 12:05:50 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2022-07-18 12:10:47 +0200 | ccntrq1 | (~Thunderbi@2a01:c23:9446:7400:cebe:ce5d:ce60:32ab) |
2022-07-18 12:11:26 +0200 | bilegeek_ | (~bilegeek@139.sub-174-209-47.myvzw.com) (Quit: Leaving) |
2022-07-18 12:11:33 +0200 | ccntrq | (~Thunderbi@2a01:c22:91a8:b500:5243:da60:7eae:237f) (Ping timeout: 272 seconds) |
2022-07-18 12:11:33 +0200 | ccntrq1 | ccntrq |
2022-07-18 12:12:09 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-18 12:15:12 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 244 seconds) |
2022-07-18 12:16:10 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds) |
2022-07-18 12:23:30 +0200 | foul_owl | (~kerry@174-21-132-202.tukw.qwest.net) (Ping timeout: 240 seconds) |
2022-07-18 12:30:02 +0200 | cfricke | (~cfricke@user/cfricke) |
2022-07-18 12:32:22 +0200 | Infinite | (~Infinite@2405:201:6014:10d3:78db:d834:b894:3c89) |
2022-07-18 12:32:24 +0200 | vst | (~Thunderbi@w118010235.w118010.starhub.net.sg) (Remote host closed the connection) |
2022-07-18 12:33:07 +0200 | thyriaen | (~thyriaen@dynamic-002-247-250-157.2.247.pool.telefonica.de) (Quit: Leaving) |
2022-07-18 12:33:47 +0200 | nasosev | (~nasosev@193-116-244-197.tpgi.com.au) |
2022-07-18 12:36:11 +0200 | jmorris | (uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2022-07-18 12:37:22 +0200 | kazaf | (~kazaf@84.252.147.230) (Ping timeout: 252 seconds) |
2022-07-18 12:38:47 +0200 | nasosev | (~nasosev@193-116-244-197.tpgi.com.au) (Ping timeout: 272 seconds) |
2022-07-18 12:39:27 +0200 | foul_owl | (~kerry@23.82.194.107) |
2022-07-18 12:39:37 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-18 12:39:55 +0200 | dcoutts | (~duncan@host86-167-206-10.range86-167.btcentralplus.com) (Ping timeout: 260 seconds) |
2022-07-18 12:46:00 +0200 | mickey45 | (~mickey@115.96.77.44) |
2022-07-18 12:47:19 +0200 | mickey45 | (~mickey@115.96.77.44) (Client Quit) |
2022-07-18 12:49:14 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) |
2022-07-18 12:49:54 +0200 | kuribas | (~user@ptr-17d51eoir4u5diqgim8.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
2022-07-18 12:50:02 +0200 | yauhsien | (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) |
2022-07-18 12:52:37 +0200 | ccntrq | (~Thunderbi@2a01:c23:9446:7400:cebe:ce5d:ce60:32ab) (Remote host closed the connection) |
2022-07-18 12:53:26 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) (Ping timeout: 244 seconds) |
2022-07-18 12:53:31 +0200 | iteratee | (~kyle@162.218.222.107) (Read error: Connection reset by peer) |
2022-07-18 12:54:58 +0200 | ccntrq | (~Thunderbi@2a01:c23:9446:7400:edd1:3c97:f162:bcc2) |
2022-07-18 12:55:00 +0200 | frost | (~frost@user/frost) |
2022-07-18 12:58:38 +0200 | iteratee | (~kyle@162.218.222.107) |
2022-07-18 13:04:40 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-18 13:05:57 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2022-07-18 13:07:30 +0200 | raym | (~raym@user/raym) (Quit: kernel update, rebooting...) |
2022-07-18 13:08:30 +0200 | yauhsien | (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
2022-07-18 13:09:22 +0200 | raym | (~raym@user/raym) |
2022-07-18 13:09:34 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 13:09:38 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 272 seconds) |
2022-07-18 13:12:04 +0200 | merijn | (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Quit: Reconnecting) |
2022-07-18 13:12:11 +0200 | merijn | (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) |
2022-07-18 13:13:43 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-18 13:14:41 +0200 | nasosev | (~nasosev@193.116.244.197) |
2022-07-18 13:14:48 +0200 | nasosev | naso |
2022-07-18 13:17:42 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) (Remote host closed the connection) |
2022-07-18 13:17:54 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) |
2022-07-18 13:30:48 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 13:32:49 +0200 | toluene | (~toluene@user/toulene) (Quit: Ping timeout (120 seconds)) |
2022-07-18 13:34:21 +0200 | toluene | (~toluene@user/toulene) |
2022-07-18 13:35:42 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) (Ping timeout: 276 seconds) |
2022-07-18 13:35:56 +0200 | jmorris | (uid537181@id-537181.uxbridge.irccloud.com) |
2022-07-18 13:37:59 +0200 | Inst | (~Inst@2601:6c4:4080:3f80:d8ab:2e91:63f7:db6e) |
2022-07-18 13:38:02 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) |
2022-07-18 13:38:05 +0200 | <Inst> | does anyone use Inline-C? |
2022-07-18 13:38:08 +0200 | <Inst> | I want to use it to learn C |
2022-07-18 13:39:14 +0200 | <merijn> | That sounds like a distinctly bad idea |
2022-07-18 13:41:48 +0200 | <Inst> | but is it a hilarious one? |
2022-07-18 13:42:24 +0200 | <Inst> | mainly, I can't get visual studio to work |
2022-07-18 13:42:34 +0200 | coot | (~coot@213.134.190.95) (Quit: coot) |
2022-07-18 13:43:05 +0200 | <merijn> | Inst: inline-c pretty much relies on you having a decent understanding of both C and Haskell already |
2022-07-18 13:43:51 +0200 | <Inst> | namely template haskell / quasi-quoters |
2022-07-18 13:44:07 +0200 | <Inst> | VSC + HLS is pretty amazing @maerwald |
2022-07-18 13:44:23 +0200 | <maerwald> | Inst: is it? |
2022-07-18 13:44:24 +0200 | <Inst> | meanwhile I'm struggling to figure out how to get VS to work with C |
2022-07-18 13:44:51 +0200 | <Inst> | and eclipse apparently needs me to get mingw and install yet another linux emulator on this windows machine |
2022-07-18 13:48:41 +0200 | <Inst> | fine, it works, but it's really ugly not having a GHCI equivalent |
2022-07-18 13:49:26 +0200 | jespada | (~jespada@45.162.228.190) |
2022-07-18 13:49:41 +0200 | <merijn> | Inst: Just install Windows Linux Subsystem |
2022-07-18 13:49:53 +0200 | <merijn> | (wait was it Windows Subsytem for Linux?) |
2022-07-18 13:49:57 +0200 | <merijn> | anyway |
2022-07-18 13:50:02 +0200 | <merijn> | It's pretty great |
2022-07-18 13:51:23 +0200 | <Inst> | okies |
2022-07-18 13:51:41 +0200 | <Inst> | wsl --install -d Debian |
2022-07-18 13:51:49 +0200 | <Inst> | never used that before, was doing Arch when I was playing around with it |
2022-07-18 13:51:58 +0200 | <Inst> | *nix is terrible on laptops |
2022-07-18 13:52:50 +0200 | Lycurgus | (~juan@user/Lycurgus) |
2022-07-18 13:53:43 +0200 | <Lycurgus> | Inst did you just start programming? |
2022-07-18 13:54:21 +0200 | <Inst> | why? |
2022-07-18 13:54:25 +0200 | <Inst> | why do you ask? |
2022-07-18 13:54:43 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2022-07-18 13:54:43 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) (Read error: Connection reset by peer) |
2022-07-18 13:54:43 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-07-18 13:54:56 +0200 | <Lycurgus> | because of your comments about learning c and *nix not running on laptops |
2022-07-18 13:55:04 +0200 | <Inst> | *nix runs |
2022-07-18 13:55:08 +0200 | califax | (~califax@user/califx) |
2022-07-18 13:55:10 +0200 | <Inst> | I just remember *nix creates terrible battery life |
2022-07-18 13:55:12 +0200 | <Inst> | and then driver support |
2022-07-18 13:55:17 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2022-07-18 13:55:19 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) |
2022-07-18 13:55:51 +0200 | <Lycurgus> | well assume you mean unix generally, there's also a thing called nix/nixos though |
2022-07-18 13:56:02 +0200 | <Lycurgus> | it was more the C that caught my attention |
2022-07-18 13:56:05 +0200 | <Inst> | i know, Nix is apparently a distro for Haskell |
2022-07-18 13:56:17 +0200 | <Inst> | C, yes, technically, I just started within the last year or so |
2022-07-18 13:56:28 +0200 | <Inst> | and you do realize that new programmers, if they have a bad background, might not know C |
2022-07-18 13:56:29 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-18 13:56:30 +0200 | <Inst> | Py py py py py |
2022-07-18 13:56:37 +0200 | <Lycurgus> | ok thx for clarifying |
2022-07-18 13:56:43 +0200 | <Inst> | "what's a pointer?" |
2022-07-18 13:56:56 +0200 | <Lycurgus> | i learned C before you were born and mainly on the job at IBM |
2022-07-18 13:57:04 +0200 | <Inst> | 88? |
2022-07-18 13:57:39 +0200 | <Inst> | i mean if you learned it in the 90s, your previous statement isn't technically true |
2022-07-18 13:57:47 +0200 | <Lycurgus> | no before that |
2022-07-18 13:57:52 +0200 | <Inst> | I am crazy enough to try to do Haskell as a first language, though |
2022-07-18 13:58:17 +0200 | <merijn> | Inst: not that crazy, tbh |
2022-07-18 13:58:27 +0200 | <merijn> | Inst: First language my girlfriend learned too |
2022-07-18 13:58:44 +0200 | <naso> | Inst: this is a pretty cool resource https://exercism.org/tracks/haskell |
2022-07-18 13:58:47 +0200 | <jackdk> | I used to TA courses a haskell-first CS program |
2022-07-18 13:58:49 +0200 | <Inst> | i'm sitting in a certain discord somewhere, where my tagline is "i want to pick up girls to teach them haskell" |
2022-07-18 13:58:53 +0200 | <Lycurgus> | the thing is C, as opposed to c++ with which it's almost invariably paired today, is a) super simple and b) probably already largely known to you thru derivates |
2022-07-18 13:58:55 +0200 | <Inst> | it's a dating discord |
2022-07-18 13:59:20 +0200 | <jackdk> | (sorry, it's late, that was incoherent) I used to TA a haskell course that was the intro-to-programming course of a CS program |
2022-07-18 13:59:28 +0200 | <Inst> | iirc, ANU does that |
2022-07-18 13:59:34 +0200 | <merijn> | Lycurgus: What? C is far from simple |
2022-07-18 13:59:36 +0200 | <Inst> | Chicago has it either baseline or in honors |
2022-07-18 13:59:43 +0200 | <merijn> | Haskell2010 is far simpler than C, hands down |
2022-07-18 13:59:58 +0200 | <Inst> | Haskell2010 or Haskell98? |
2022-07-18 13:59:59 +0200 | <Lycurgus> | haskell as a first lang would generally be a bad idea but apparently it isn't your first |
2022-07-18 14:00:04 +0200 | <Inst> | I've done some reading on simple haskell |
2022-07-18 14:00:06 +0200 | <merijn> | Inst: both are |
2022-07-18 14:00:08 +0200 | <Lycurgus> | bad unless you are in a math program |
2022-07-18 14:00:13 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 268 seconds) |
2022-07-18 14:00:21 +0200 | <merijn> | Lycurgus: Why would it be a bad idea? |
2022-07-18 14:00:55 +0200 | <Lycurgus> | for the obvious reason merijn |
2022-07-18 14:00:57 +0200 | <Inst> | main drawbacks: I still don't know how to use threepenny-gui |
2022-07-18 14:01:00 +0200 | <Lycurgus> | back to C |
2022-07-18 14:01:00 +0200 | <merijn> | Empirical experience disagrees. People who learn ML-style functional languages as first language seem to have less of a hard time than people with prior experience |
2022-07-18 14:01:03 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 276 seconds) |
2022-07-18 14:01:05 +0200 | <merijn> | Lycurgus: What obvious reasons? |
2022-07-18 14:01:17 +0200 | <Inst> | I just set up a client-server architecture using Servant |
2022-07-18 14:01:28 +0200 | <merijn> | I TAed Ocaml for 6 years. People with no prior programming experience struggled far less than people with prior experience |
2022-07-18 14:01:28 +0200 | <Inst> | which is shit, because I don't have a server to test it on, although TBH I could just localhost |
2022-07-18 14:01:44 +0200 | <Lycurgus> | the main things to pick up are the feel for working close to the machine which isn't generally gotten in the langs prevalent these days |
2022-07-18 14:01:44 +0200 | <Inst> | here's one question I have, is my understanding of Haskell functional enough? |
2022-07-18 14:01:48 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2022-07-18 14:02:02 +0200 | <Inst> | because I'm so annoyed by the fact that it's often just do notation in IO under monad transformers ;_; |
2022-07-18 14:02:05 +0200 | <merijn> | Inst: Renting an personal server is cheap nowadays. Can have a good internet server for sub-5 dollar a month |
2022-07-18 14:02:15 +0200 | <Lycurgus> | when I started i started with machine lang (ibm and cdc assemblers) |
2022-07-18 14:02:23 +0200 | <Inst> | respect from me |
2022-07-18 14:02:44 +0200 | <Inst> | is this the real haskell? Just procedural programming with pure functions attached? |
2022-07-18 14:02:45 +0200 | <merijn> | Inst: Don't worry about using IO everywhere |
2022-07-18 14:03:01 +0200 | <merijn> | Inst: As the age old truism goes: Haskell is my favourite imperative language |
2022-07-18 14:03:10 +0200 | <Inst> | which is why Haskell is a fine first language |
2022-07-18 14:03:26 +0200 | <Inst> | also, I'm finally learning to understand the benefits of imperative programming |
2022-07-18 14:03:30 +0200 | <Inst> | I used to resist assignment whenever possible |
2022-07-18 14:03:34 +0200 | <Lycurgus> | pl/i, fortran, etc were the high level langs then and about a decade in I was a systems programmer in a burroughs shop using algol |
2022-07-18 14:03:41 +0200 | <Inst> | like, make all my code binds if necessary, fuck do notation |
2022-07-18 14:03:44 +0200 | <merijn> | Inst: As you get more experience you will rely less and less on IO, but I feel its a common beginner mistake to "avoid IO too hard" making them unproductive |
2022-07-18 14:03:51 +0200 | <Lycurgus> | which is basically where C came from |
2022-07-18 14:04:13 +0200 | <Inst> | the server program I just set up |
2022-07-18 14:04:26 +0200 | <Inst> | was basically modifying a global variable called a database ;_; |
2022-07-18 14:04:38 +0200 | <Lycurgus> | but if you are a bold soldier, go for it, learn C in the context of inline-c and th |
2022-07-18 14:04:40 +0200 | <Inst> | but assignment, tbh, makes code readable |
2022-07-18 14:04:52 +0200 | <merijn> | Inst: turns out that many/most web programming is simply "modify a database", that's inescapable |
2022-07-18 14:05:12 +0200 | <Inst> | i used to bash will kurt for not playing enough code golf |
2022-07-18 14:05:19 +0200 | <Inst> | but assignment is actually a form of commenting |
2022-07-18 14:05:25 +0200 | <Inst> | i ended up, instead of typing Nothing |
2022-07-18 14:05:41 +0200 | <Inst> | pattern Comment = Nothing |
2022-07-18 14:06:25 +0200 | coot | (~coot@213.134.190.95) |
2022-07-18 14:06:31 +0200 | <Inst> | i wonder if an argument can be made for Haskell as, not executable pseudocode as with py |
2022-07-18 14:06:34 +0200 | <Inst> | but definable pseudocode |
2022-07-18 14:06:48 +0200 | <Inst> | you write pseudocode, then you define your terms to make the program work |
2022-07-18 14:07:19 +0200 | <geekosaur[m]> | Someone came close to that |
2022-07-18 14:07:54 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2022-07-18 14:07:57 +0200 | <geekosaur[m]> | They thought a Haskell program was pseudocode |
2022-07-18 14:08:43 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
2022-07-18 14:08:46 +0200 | Lycurgus | looks up will kurt |
2022-07-18 14:09:03 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2022-07-18 14:09:30 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2022-07-18 14:10:06 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-18 14:10:36 +0200 | <Lycurgus> | i am reminded of the collected algorithms of the ACM |
2022-07-18 14:10:57 +0200 | <Lycurgus> | which were mostly in algol and read like psuedo code |
2022-07-18 14:11:42 +0200 | <Inst> | from what I've heard, this is actually a common design paradigm in Haskell |
2022-07-18 14:11:44 +0200 | <jackdk> | geekosaur[m]: Haskell vs. Ada vs. C++ vs. Awk vs. ... : https://moodle1.u-bordeaux.fr/pluginfile.php/653695/mod_resource/content/1/haskell-vs-ada.pdf |
2022-07-18 14:11:51 +0200 | <Inst> | write pseudocode, define pseudocode, and your code writes itself |
2022-07-18 14:12:11 +0200 | <Lycurgus> | anyway the c, the lang, is embedded in so many things today, you'll find you prolly already know it |
2022-07-18 14:12:37 +0200 | <Lycurgus> | for the most part |
2022-07-18 14:12:41 +0200 | <Inst> | referential transparency is amazing for this, although you still have issues with whether or not your types check |
2022-07-18 14:12:50 +0200 | <Inst> | and will have to stuff lift and pures into your pseudocode |
2022-07-18 14:13:01 +0200 | <Lycurgus> | ofc C doesn't have that |
2022-07-18 14:13:09 +0200 | <jackdk> | "It is significant that Mr. Domanski, Mr. Banowetz and Dr. Brosgol were all surprised and suspicious when we told them that Haskell prototype P1 is a complete tested executable program. [...] they had studied P1 under the assumption that it was a mixture of requirements specification and top level design. They were convinced it was incomplete because it did not address issues such as data structure design and execution order" (page 14) |
2022-07-18 14:13:38 +0200 | <geekosaur> | that one, yes |
2022-07-18 14:13:56 +0200 | <geekosaur> | was going to grep logs for it but it appears you already have it |
2022-07-18 14:14:38 +0200 | <geekosaur> | and it outperformed the others iirc |
2022-07-18 14:14:41 +0200 | <Inst> | haskell is a troll language @jackdk |
2022-07-18 14:14:58 +0200 | <jackdk> | false |
2022-07-18 14:15:08 +0200 | <Lycurgus> | anyway, yeah good hs reads like psuedocode, that of the circlejerk like strabismic gobbledygook |
2022-07-18 14:15:59 +0200 | <Inst> | jackdk: I mean that Haskell is fun to troll non-Haskellers with |
2022-07-18 14:16:16 +0200 | <Inst> | i personally regard Haskell as smart person' python or ivy-educated python |
2022-07-18 14:16:30 +0200 | <Lycurgus> | *pseudo |
2022-07-18 14:16:33 +0200 | <jackdk> | I prefer to entice non-Haskellers rather than troll them. |
2022-07-18 14:19:04 +0200 | <Inst> | you'll end up trolling them anyways, most haskell instructional material is bad |
2022-07-18 14:19:22 +0200 | <Inst> | holy shit, hudak is dead? |
2022-07-18 14:19:32 +0200 | Lycurgus | checks if lyah is still offline |
2022-07-18 14:20:13 +0200 | <Lycurgus> | nope it's back, prolly long time i imagine |
2022-07-18 14:20:23 +0200 | <Inst> | it's back up |
2022-07-18 14:21:16 +0200 | kuribas | (~user@silversquare.silversquare.eu) |
2022-07-18 14:22:00 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
2022-07-18 14:22:48 +0200 | <naso> | can anyone confirm if hlint works within vscode with ghc 9.2.2 ? |
2022-07-18 14:24:46 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-07-18 14:29:45 +0200 | lortabac | (~lortabac@37.101.134.31) |
2022-07-18 14:29:51 +0200 | king_gs | (~Thunderbi@187.201.95.222) |
2022-07-18 14:31:14 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
2022-07-18 14:31:26 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2022-07-18 14:31:41 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2022-07-18 14:38:26 +0200 | toluene | (~toluene@user/toulene) (Read error: Connection reset by peer) |
2022-07-18 14:39:10 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 240 seconds) |
2022-07-18 14:39:36 +0200 | toluene | (~toluene@user/toulene) |
2022-07-18 14:46:43 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-18 14:47:04 +0200 | jespada | (~jespada@45.162.228.190) (Ping timeout: 268 seconds) |
2022-07-18 14:47:46 +0200 | pgass | (~pg@190.247.245.154) |
2022-07-18 14:49:34 +0200 | Lycurgus | (~juan@user/Lycurgus) (Quit: Exeunt juan@acm.org) |
2022-07-18 14:49:47 +0200 | Infinite | (~Infinite@2405:201:6014:10d3:78db:d834:b894:3c89) (Quit: Client closed) |
2022-07-18 14:49:58 +0200 | Infinite | (~Infinite@2405:201:6014:10d3:e7dd:bdc9:c7e:b7c2) |
2022-07-18 14:50:20 +0200 | jespada | (~jespada@200.123.140.126) |
2022-07-18 14:50:59 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 14:51:10 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds) |
2022-07-18 14:53:10 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) (Ping timeout: 240 seconds) |
2022-07-18 14:58:47 +0200 | king_gs | (~Thunderbi@187.201.95.222) (Read error: Connection reset by peer) |
2022-07-18 14:59:01 +0200 | king_gs | (~Thunderbi@2806:103e:29:a1b3:fc5:768a:63a8:5b63) |
2022-07-18 15:06:59 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
2022-07-18 15:07:01 +0200 | nate4 | (~nate@98.45.169.16) |
2022-07-18 15:10:48 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-18 15:12:21 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
2022-07-18 15:14:13 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) |
2022-07-18 15:16:36 +0200 | Infinite | (~Infinite@2405:201:6014:10d3:e7dd:bdc9:c7e:b7c2) (Quit: Client closed) |
2022-07-18 15:18:30 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) (Ping timeout: 240 seconds) |
2022-07-18 15:20:12 +0200 | cfricke | (~cfricke@user/cfricke) |
2022-07-18 15:22:56 +0200 | yauhsien | (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) |
2022-07-18 15:30:26 +0200 | motherfsck | (~motherfsc@user/motherfsck) |
2022-07-18 15:36:08 +0200 | dcoutts | (~duncan@host86-167-206-10.range86-167.btcentralplus.com) |
2022-07-18 15:38:10 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-18 15:38:45 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-07-18 15:38:52 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 15:42:18 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds) |
2022-07-18 15:47:14 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2022-07-18 15:47:42 +0200 | jpds1 | (~jpds@gateway/tor-sasl/jpds) |
2022-07-18 15:49:10 +0200 | AkechiShiro | (~licht@user/akechishiro) |
2022-07-18 15:49:54 +0200 | yauhsien | (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) (Ping timeout: 264 seconds) |
2022-07-18 15:55:19 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-07-18 15:56:55 +0200 | <Inst> | naso, no clue |
2022-07-18 15:57:01 +0200 | <Inst> | i do get error highlighting, is that hlint? |
2022-07-18 15:57:50 +0200 | king_gs | (~Thunderbi@2806:103e:29:a1b3:fc5:768a:63a8:5b63) (Quit: king_gs) |
2022-07-18 15:59:37 +0200 | <naso> | hlint usually suggests refactorings, for example if you wrote `x = id 1` it would tell you to refactor to `x = 1` |
2022-07-18 16:02:34 +0200 | yuv4199 | (~yuv4199@user/yuv4199) (Quit: Client closed) |
2022-07-18 16:03:54 +0200 | shapr | (~user@2600:4040:2d31:7100:8def:886e:cd92:bc2d) |
2022-07-18 16:05:53 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) |
2022-07-18 16:07:55 +0200 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.5) |
2022-07-18 16:08:15 +0200 | <geekosaur> | hlint is infos, not warnings, from my experience |
2022-07-18 16:10:15 +0200 | <geekosaur> | but I'm using 8.10.7 still |
2022-07-18 16:11:46 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 16:13:05 +0200 | ccntrq1 | (~Thunderbi@dynamic-077-006-080-153.77.6.pool.telefonica.de) |
2022-07-18 16:13:28 +0200 | wolke | (~wolke@2001:871:25e:696f:d97e:f83:15b1:b4ec) (Quit: Client closed) |
2022-07-18 16:13:30 +0200 | ccntrq | (~Thunderbi@2a01:c23:9446:7400:edd1:3c97:f162:bcc2) (Ping timeout: 240 seconds) |
2022-07-18 16:13:30 +0200 | ccntrq1 | ccntrq |
2022-07-18 16:15:43 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2022-07-18 16:15:45 +0200 | jmorris | (uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2022-07-18 16:16:54 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 276 seconds) |
2022-07-18 16:18:10 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-18 16:18:10 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-18 16:18:26 +0200 | Pickchea | (~private@user/pickchea) |
2022-07-18 16:19:34 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 268 seconds) |
2022-07-18 16:20:04 +0200 | <qrpnxz> | Inst: "most haskell instructional material is bad" idk that i'd say bad. More just different. The whitepapers in this space are just awesome and unmatched too. Some good papers end up in ocaml or something and i just cry because it's so ugly lol |
2022-07-18 16:20:04 +0200 | Vajb | (~Vajb@n1zigc3rgo9mpde2w-1.v6.elisa-mobile.fi) (Read error: Connection reset by peer) |
2022-07-18 16:20:20 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) |
2022-07-18 16:20:21 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 16:20:23 +0200 | <Inst> | you're assuming that people are capable of reading the documentation |
2022-07-18 16:20:38 +0200 | <exarkun> | What is "bad" supposed to mean here? |
2022-07-18 16:20:53 +0200 | <Inst> | not helpful, i guess |
2022-07-18 16:21:15 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2022-07-18 16:21:23 +0200 | <Inst> | did you see a Pythonista's review of Haskell? |
2022-07-18 16:21:30 +0200 | <exarkun> | Not helpful to whom? |
2022-07-18 16:21:36 +0200 | <Inst> | "finished Haskellbook, don't feel like I'm ready to produce production-ready code" |
2022-07-18 16:21:37 +0200 | <qrpnxz> | there's a lot of good learning matterial for haskell, but it's not very centralized i suppose? |
2022-07-18 16:21:44 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-07-18 16:21:45 +0200 | <exarkun> | no, I don't know what that is. |
2022-07-18 16:21:58 +0200 | <qrpnxz> | Inst: what is "haskellbook" lol |
2022-07-18 16:22:00 +0200 | <geekosaur> | we've been working on making it more discoverable |
2022-07-18 16:22:03 +0200 | <Inst> | https://bytes.yingw787.com/posts/2020/01/30/a_review_of_haskell/ |
2022-07-18 16:22:11 +0200 | <geekosaur> | @where haskellbook |
2022-07-18 16:22:11 +0200 | <lambdabot> | http://haskellbook.com |
2022-07-18 16:22:13 +0200 | <exarkun> | Someone read a book and got to the end and thought they hadn't become an expert in the subject matter? |
2022-07-18 16:22:17 +0200 | <qrpnxz> | ah yeah, good book |
2022-07-18 16:22:24 +0200 | <exarkun> | And was surprised by this? |
2022-07-18 16:22:24 +0200 | <qrpnxz> | exarkun: no kidding lol |
2022-07-18 16:22:32 +0200 | <merijn> | geekosaur: it depends how closely your opinions correspond to Neil's ;) |
2022-07-18 16:22:37 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 16:22:48 +0200 | <qrpnxz> | Headline: Python programmer read one haskell book and not ready for production code base. |
2022-07-18 16:22:50 +0200 | <qrpnxz> | lmao |
2022-07-18 16:23:06 +0200 | <qrpnxz> | python docs are pretty good speaking of |
2022-07-18 16:23:22 +0200 | <geekosaur> | did they even try to do the exercises? just reading does little. (same for python, for that matter. or anything else in my experience) |
2022-07-18 16:23:30 +0200 | <exarkun> | largely because no matter what you do, you can't make a very good Python program |
2022-07-18 16:23:41 +0200 | <exarkun> | so the docs have an easy job preparing you for that :) |
2022-07-18 16:23:42 +0200 | gleostocha | (~runic@c-73-15-32-211.hsd1.ca.comcast.net) |
2022-07-18 16:23:46 +0200 | <qrpnxz> | haha |
2022-07-18 16:24:19 +0200 | <Inst> | "felt like brain was melting out" |
2022-07-18 16:24:41 +0200 | <merijn> | exarkun: I've been doing a bunch of python again recently. Which meant diving into the docs and getting tilted all over again by all the people complaining "Haskell's documentation is so bad!" |
2022-07-18 16:24:53 +0200 | <exarkun> | Inst: very selective quote there. How about "My appreciation of programming as an art and as a discipline increased by my learning Haskell" which comes immediately before that? |
2022-07-18 16:25:12 +0200 | <merijn> | exarkun: Man...I *wish* python's documentation was as good as the average Haskell docs I've worked with the past decade |
2022-07-18 16:25:18 +0200 | <geekosaur> | melting out in a bad way, or a good way? |
2022-07-18 16:25:22 +0200 | <exarkun> | merijn: Agree |
2022-07-18 16:25:46 +0200 | <Inst> | it's sort of weird, because once your brain melts out from learning Haskell, you don't really feel it anymore |
2022-07-18 16:25:52 +0200 | <qrpnxz> | i feel this guy on the whitespace thing tbh. Took me a while to get familiar, now it's basically second nature, and i see beginners here also struggle for example with how tightly certain ops bind |
2022-07-18 16:25:57 +0200 | <merijn> | Inst: Oh, you can easily enough |
2022-07-18 16:26:00 +0200 | <exarkun> | Of course "python docs" and "haskell docs" are not uniform things we can talk about very accurately in general |
2022-07-18 16:26:07 +0200 | <merijn> | Inst: You just try to "relearn" ContT |
2022-07-18 16:26:12 +0200 | <geekosaur> | (I found there wa sa lot of "damn, you can do that?!" involved) |
2022-07-18 16:26:23 +0200 | <merijn> | every time I look at/use ContT again my brain leaks out all over |
2022-07-18 16:26:26 +0200 | <Inst> | i sort of expect my brain to melt out every time I encounter a new language feature or implementation |
2022-07-18 16:26:38 +0200 | <Inst> | I'm used to it |
2022-07-18 16:26:43 +0200 | <exarkun> | But I'm totally serious about Python docs having an easier job. If some Python docs gloss over all of the hard parts and make you believe you have understood something, chances are you're going to be able to write your program without much trouble and it'll be a perfectly average, mostly-broken Python program. |
2022-07-18 16:26:46 +0200 | <dolio> | I have a similar feeling about a lot of ancillary stuff people complain about with respect to Haskell. |
2022-07-18 16:26:52 +0200 | <merijn> | exarkun: Yeah, but even stuff like the standard library is just 95% handwaves |
2022-07-18 16:26:59 +0200 | <exarkun> | If you try to take the same approach to Haskell, you'll be buried in compiler errors for a year. |
2022-07-18 16:27:12 +0200 | <exarkun> | is one of these better? That's a personal decision for each programmer to make, I guess. |
2022-07-18 16:27:12 +0200 | <Inst> | quotable |
2022-07-18 16:27:20 +0200 | <dolio> | Like, people complain about build tools, but every other build tool I've used in other languages isn't really any better. |
2022-07-18 16:27:23 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-18 16:27:31 +0200 | <exarkun> | I suspect a lot of people in #haskell decide one way and a lot of people in #python decide another :) |
2022-07-18 16:27:33 +0200 | <dolio> | Mostly worse. |
2022-07-18 16:27:37 +0200 | <Inst> | i love how Haskell is child-safe programming for child Terence Tao |
2022-07-18 16:27:43 +0200 | <merijn> | dolio: I would argue cabal is an order of magnitude better than what I've used in other languages |
2022-07-18 16:28:03 +0200 | <Inst> | TBH |
2022-07-18 16:28:05 +0200 | <geekosaur> | dolio, but those tolols let them get away with more bad practices. much like the languages they're meant for |
2022-07-18 16:28:14 +0200 | <geekosaur> | hm, "tolols" |
2022-07-18 16:28:17 +0200 | <merijn> | dolio: The only thing remotely as pleasant are my own hand-rolled (g)make buildsystems, but those took 2 months of engineering instead of "a 30s copy&paste file job" |
2022-07-18 16:28:18 +0200 | <qrpnxz> | dolio: Go's go command really good |
2022-07-18 16:28:19 +0200 | <Inst> | I was complaining about how bad VSC / GHCup / GHCI felt |
2022-07-18 16:28:33 +0200 | <Inst> | then I tried getting a C IDE working |
2022-07-18 16:28:40 +0200 | <Inst> | on Windows |
2022-07-18 16:28:59 +0200 | <qrpnxz> | "Windows" you already lost |
2022-07-18 16:29:29 +0200 | <exarkun> | Last month I had to debug a CPython bug on Windows |
2022-07-18 16:29:38 +0200 | <exarkun> | I spent 3 weeks just trying to get an environment where I could make a debug build of the interpreter |
2022-07-18 16:30:00 +0200 | <exarkun> | (granted, I am no Windows expert, but it's not like this was my first time ever trying to build software on Windows) |
2022-07-18 16:30:08 +0200 | <Inst> | btw, does Cabal have a working sandbox mode? |
2022-07-18 16:30:19 +0200 | <geekosaur> | cabal *is* a sandbox mode |
2022-07-18 16:30:25 +0200 | <Inst> | I'm annoyed that I'm just using --lib for all libraries and periodically reinstalling all my cabal ilbraries |
2022-07-18 16:30:52 +0200 | <geekosaur> | yeh, that's the backward compatibility "if it breaks you get to keep the pieces" mode |
2022-07-18 16:30:52 +0200 | <qrpnxz> | i just use my system package manager and use cabal for build only :) |
2022-07-18 16:31:10 +0200 | <geekosaur> | cabal 2.x has an explicit sandbox |
2022-07-18 16:31:26 +0200 | <Inst> | I'm on Cabal 3.6.2.0 |
2022-07-18 16:31:28 +0200 | <geekosaur> | 3.x you're supposed to let cabal sandbox stuff automatically, and avoid --lib |
2022-07-18 16:31:30 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds) |
2022-07-18 16:31:40 +0200 | <merijn> | Inst: NEver use --lib |
2022-07-18 16:31:56 +0200 | <Inst> | merijn: I have no compunction against reinstalling GHCup and Cabal periodically |
2022-07-18 16:32:01 +0200 | <merijn> | Inst: Just use a .cabal for all code you write and let it deal with dependencies |
2022-07-18 16:32:11 +0200 | <Inst> | one .cabal? |
2022-07-18 16:32:24 +0200 | <merijn> | one for each independent bit of code :p |
2022-07-18 16:32:29 +0200 | pgass | (~pg@190.247.245.154) (Ping timeout: 272 seconds) |
2022-07-18 16:32:40 +0200 | <Inst> | aka bullshit |
2022-07-18 16:32:48 +0200 | <merijn> | Inst: Why? |
2022-07-18 16:32:59 +0200 | <geekosaur> | --lib has its uses. xmonad is one of them since you really don't want your window manager forcing stuff into a particular cabal context |
2022-07-18 16:32:59 +0200 | <Inst> | okay, here's a student workflow |
2022-07-18 16:33:01 +0200 | <merijn> | Inst: If you just wanna fool around in the repl you can also get cabal to handle that |
2022-07-18 16:33:05 +0200 | <Inst> | one, scratch files for daily messing around |
2022-07-18 16:33:09 +0200 | <merijn> | Inst: "cabal repl -b mypackage" |
2022-07-18 16:33:16 +0200 | <geekosaur> | (that said, I use a buildscript and don't use --lib; it works fine) |
2022-07-18 16:33:20 +0200 | <Inst> | i don't want to set up a cabal file for each file |
2022-07-18 16:33:30 +0200 | <merijn> | Inst: You don't need one per file, though? |
2022-07-18 16:33:38 +0200 | <Inst> | that was what I was asking |
2022-07-18 16:33:42 +0200 | <merijn> | Inst: Cabal package can have arbitrarily many modules/executables |
2022-07-18 16:33:57 +0200 | <merijn> | Inst: "independent bit of code" here = package |
2022-07-18 16:34:00 +0200 | <Inst> | i.e, ability to set a global cabal file with implicit --lib on all libraries |
2022-07-18 16:34:05 +0200 | <qrpnxz> | i've used one cabal file for multiple libraries and executables. I'm guessing you can split that up and still have it all build together? |
2022-07-18 16:34:26 +0200 | <Inst> | my workflow is basically, i have different .hs files for every chapter's exercises from arbitrary books |
2022-07-18 16:34:37 +0200 | <Inst> | and scratch files for mucking around |
2022-07-18 16:34:40 +0200 | <merijn> | qrpnxz: As in "a bunch of libraries that are "independent" but also related? |
2022-07-18 16:34:49 +0200 | <geekosaur> | qrpnxz, with a cabal.project joining it all together into a project, yes |
2022-07-18 16:34:50 +0200 | <Inst> | there should be a managed cabal global environment, tbh |
2022-07-18 16:34:57 +0200 | <merijn> | Inst: We had that |
2022-07-18 16:34:57 +0200 | <Inst> | without a cabal.project hack |
2022-07-18 16:35:00 +0200 | <qrpnxz> | geekosaur: |
2022-07-18 16:35:01 +0200 | <merijn> | Inst: It sucked |
2022-07-18 16:35:11 +0200 | <Inst> | merijn: why? |
2022-07-18 16:35:20 +0200 | <Inst> | was that the notorious cabal hell? |
2022-07-18 16:35:22 +0200 | <merijn> | Inst: It broke non-stop and was super brittle and is why python, ruby, etc. all have "pipenv,pyenv,rubyenv" to sandbox shit |
2022-07-18 16:35:25 +0200 | <qrpnxz> | merijn: usually what happen is that i identify some functionality that i probably want to reuse somewhere else so i just make it a library |
2022-07-18 16:35:40 +0200 | <qrpnxz> | and when i have time i move it to a separate dir |
2022-07-18 16:35:48 +0200 | <merijn> | qrpnxz: So basically, you make a library (possibly unreleased on hackage) and wanna depend on that in your own code? |
2022-07-18 16:36:15 +0200 | <merijn> | Inst: A global environment needs to be consistent, which means over time as you accumulate more installed things it gets really constrained in what you can install |
2022-07-18 16:36:41 +0200 | <merijn> | Inst: The entire point of the current approach is that the environment is curated "per project" so that dependencies from different projects don't interfere |
2022-07-18 16:36:46 +0200 | <qrpnxz> | merijn: and i do, yeah. |
2022-07-18 16:36:55 +0200 | <merijn> | qrpnxz: Yeah, you want cabal.project then |
2022-07-18 16:36:57 +0200 | <Inst> | bleh, i should just learn stack |
2022-07-18 16:37:04 +0200 | <geekosaur> | it does the same thing |
2022-07-18 16:37:12 +0200 | <geekosaur> | it just hides it behind a resolver |
2022-07-18 16:37:28 +0200 | <naso> | Inst: whenever i want to muck around i just 'stack new blah' and everythings ready to go with HLS integration etc |
2022-07-18 16:37:29 +0200 | <merijn> | qrpnxz: See for example: https://github.com/merijn/broadcast-chan |
2022-07-18 16:37:33 +0200 | <qrpnxz> | cabal.project sound useful when the library is a distinct project from the other stuff. |
2022-07-18 16:37:54 +0200 | <Inst> | bleh, back to naval-gazing with inline-c |
2022-07-18 16:38:00 +0200 | <Inst> | but it seems ghci won't recompile the object file ;_; |
2022-07-18 16:38:08 +0200 | <merijn> | qrpnxz: cabal.project is for "I have multiple independent package that I want to develop in tandem (because they dependent on one another, for example)" |
2022-07-18 16:38:28 +0200 | <qrpnxz> | 👍 |
2022-07-18 16:38:54 +0200 | <merijn> | qrpnxz: Like in that example broadcast-chan-conduit depends on broadcast-chan, so while I'm working on a version of it for a new release, then it should work with my (unreleased) development version of broadcast-chan (which is obviously not on hackage yet) |
2022-07-18 16:39:34 +0200 | <merijn> | qrpnxz: So cabal.project lets you point your environment/cabal at unreleased packages (either locally or git repos, or even specific git commits in repos) and say "use that version instead of what's on hackage" |
2022-07-18 16:40:06 +0200 | <merijn> | Which works very well for "trying to split this piece of code off into it's own independent library/package" |
2022-07-18 16:40:09 +0200 | <qrpnxz> | huh |
2022-07-18 16:40:41 +0200 | <qrpnxz> | interesting lib btw, bookmarking |
2022-07-18 16:42:20 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) |
2022-07-18 16:45:49 +0200 | <turlando> | Has anybody ever used monad-parallel? I just need a replacement for replicateM so that a monadic action is repeated N times in parallel rather than sequentially. I swapped my usage of replicateM with the same function provided by the library but it doesn't seem to speed up the computation. I've also tried to wrap it in a forkExec with no luck |
2022-07-18 16:46:27 +0200 | PiDelport | (uid25146@id-25146.lymington.irccloud.com) |
2022-07-18 16:46:54 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) (Ping timeout: 264 seconds) |
2022-07-18 16:46:54 +0200 | <merijn> | turlando: How big is N? |
2022-07-18 16:47:04 +0200 | <merijn> | and is N bigger than number of elements? |
2022-07-18 16:47:23 +0200 | <merijn> | eh |
2022-07-18 16:47:29 +0200 | <merijn> | number of elements bigger than N, I mean |
2022-07-18 16:47:32 +0200 | <turlando> | merijn: it's definitely bigger than the amount of cores |
2022-07-18 16:48:01 +0200 | <merijn> | turlando: Yeah, so you want to rate limit the number of parallel executions to be smaller than the full repetition, right? |
2022-07-18 16:48:02 +0200 | <turlando> | Wait, what do you mean by number of elements? |
2022-07-18 16:48:17 +0200 | <merijn> | ah, I read some stuff that's not there |
2022-07-18 16:48:26 +0200 | <merijn> | Basically: You want less parallelism than elements, yes? |
2022-07-18 16:48:31 +0200 | <geekosaur> | also are you making sure they're actually evaluated? parallelizing making thunks that get forced later does ~nothing |
2022-07-18 16:48:42 +0200 | <merijn> | geekosaur: Well he said it was a monadic action |
2022-07-18 16:48:57 +0200 | <merijn> | turlando: async has mapConcurrently, but that runs *everything* in parallel |
2022-07-18 16:49:16 +0200 | <merijn> | turlando: The bad news is, rolling your own parallel IO for a collection is kinda of a pain |
2022-07-18 16:49:34 +0200 | <merijn> | turlando: The good news is, I got so sick of redoing it every time the library we were literally just talking about does it ;) |
2022-07-18 16:49:45 +0200 | <merijn> | turlando: Do you care about the ordering for the repeated actions? |
2022-07-18 16:50:16 +0200 | <merijn> | turlando: https://hackage.haskell.org/package/broadcast-chan-0.2.1.2/docs/BroadcastChan.html#v:parMapM_ |
2022-07-18 16:50:50 +0200 | <turlando> | I have this random experiment I'm running N times and collecting the results for each iteration (that's the result of the monadic action). Since they're totally indipendent (other than for the initial call to initStsGen), I'm trying to leverage the different cores I have at disposal to make it possibly faster, ideally by running M iterations per core where M = N / no. of cores |
2022-07-18 16:50:53 +0200 | coot | (~coot@213.134.190.95) (Quit: coot) |
2022-07-18 16:51:11 +0200 | turlando | is reading the backlog |
2022-07-18 16:51:18 +0200 | zeenk | (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!) |
2022-07-18 16:52:40 +0200 | MajorBiscuit | (~MajorBisc@wlan-145-94-167-213.wlan.tudelft.nl) (Ping timeout: 244 seconds) |
2022-07-18 16:55:02 +0200 | <turlando> | merijn: that looks great, maybe I need parFoldMap given that I need the final result? And the fold function might just be cons? |
2022-07-18 16:55:08 +0200 | <merijn> | turlando: Right, so the stuff I have in broadcast-chan should work. I don't guarantee any ordering on when results are finished, but if that doesn't mater it should be good |
2022-07-18 16:55:20 +0200 | <turlando> | Yeah, ordering is definitely not an issue in my case, fortunately |
2022-07-18 16:55:38 +0200 | <merijn> | turlando: I'd probably use, like a Set or Map as result |
2022-07-18 16:55:55 +0200 | <merijn> | but yeah, cons works too |
2022-07-18 16:56:13 +0200 | <merijn> | turlando: How long is each computation individually? (roughly) |
2022-07-18 16:56:42 +0200 | <merijn> | like, milliseconds, 10s of milliseconds, 100s of milliseconds, even longer? |
2022-07-18 16:56:48 +0200 | <turlando> | Each one is pretty fast, using the very scientifically precise /usr/bin/time it's around 0.02 seconds of wall clock time |
2022-07-18 16:57:21 +0200 | <merijn> | ok, so 10s of milliseconds...hmm |
2022-07-18 16:57:59 +0200 | <merijn> | You can give it a shot, but so far I haven't gottern around to tuning it for super small workloads, so no idea of overhead drowns out any speedup |
2022-07-18 16:58:32 +0200 | <merijn> | I'm mostly using it for IO bound stuff and stuff that has, like 100s of ms times, and there the overhead is insignificant |
2022-07-18 16:58:40 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-07-18 16:58:40 +0200 | <turlando> | I see |
2022-07-18 17:00:09 +0200 | <merijn> | oh, actually |
2022-07-18 17:00:09 +0200 | <turlando> | I have no clue on how threading works in RTS, but I guess in this case the optimal way would be keeping the thread alive and swapping the task rather than creating and killing every time |
2022-07-18 17:00:32 +0200 | <Inst> | btw, quick question about K&R |
2022-07-18 17:00:43 +0200 | <Inst> | "the for statement is a loop, a generalization of the while." |
2022-07-18 17:00:51 +0200 | <Inst> | As a Haskeller in training, this statement is wrong, right? |
2022-07-18 17:00:57 +0200 | mud | (~mud@user/kadoban) |
2022-07-18 17:00:57 +0200 | <qrpnxz> | for(;cond;) = while(cond) |
2022-07-18 17:01:01 +0200 | <geekosaur> | for C it is correct |
2022-07-18 17:01:05 +0200 | ccntrq1 | (~Thunderbi@2a01:c22:8848:d100:7142:5666:5518:c20a) |
2022-07-18 17:01:06 +0200 | <geekosaur> | what qrpnxz said |
2022-07-18 17:01:12 +0200 | <merijn> | turlando: Apparently my speed up test is in much smaller units than I thought, so 10s of milliseconds is probably fine. Worth a shot |
2022-07-18 17:01:15 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-18 17:01:28 +0200 | <turlando> | I will definitely do, thanks a lot merijn |
2022-07-18 17:01:30 +0200 | <Inst> | it pops out because I can't think of a for in an imperative language as a generalization of while |
2022-07-18 17:01:35 +0200 | <merijn> | turlando: That code basically forks of N RTS threads and keeps them around until done |
2022-07-18 17:01:39 +0200 | <Inst> | but rather while is a general case of for, whereas for is specific |
2022-07-18 17:01:51 +0200 | <merijn> | turlando: Note that GHC uses N:M parallelism (or greenthreading or whatever) |
2022-07-18 17:01:57 +0200 | <Inst> | hence why recursion is interchangeable with while, but for is not interchangeable with recursion |
2022-07-18 17:02:22 +0200 | <turlando> | merijn: pthread does the same IIRC so it should be good enough |
2022-07-18 17:02:29 +0200 | <merijn> | turlando: So a program will have M capabilities (i.e. OS threads executing Haskell code) and it will multiplex N (possibly bigger than M) haskell threads onto those M OS threads |
2022-07-18 17:02:32 +0200 | <qrpnxz> | any for can be made into a while and visa versa, which in turn can all be made into a recursive loop |
2022-07-18 17:02:54 +0200 | <Inst> | iirc there are cases, ackermann function springs to mind, which can't be depicted as a for loop |
2022-07-18 17:03:01 +0200 | <merijn> | turlando: So you gotta make sure you have more than 1 capability to actually have multiple Haskell threads computing in parallel |
2022-07-18 17:03:23 +0200 | <Inst> | https://en.wikipedia.org/wiki/Ackermann_function |
2022-07-18 17:03:31 +0200 | ccntrq | (~Thunderbi@dynamic-077-006-080-153.77.6.pool.telefonica.de) (Ping timeout: 272 seconds) |
2022-07-18 17:03:31 +0200 | ccntrq1 | ccntrq |
2022-07-18 17:03:32 +0200 | <qrpnxz> | acherman is an example of a function that is not primitive recursive |
2022-07-18 17:03:51 +0200 | <merijn> | turlando: Can do that either at compile time, at runtime (via "+RTS -N4" or whatever) or in code via: https://hackage.haskell.org/package/base-4.16.2.0/docs/Control-Concurrent.html#v:setNumCapabilities |
2022-07-18 17:03:52 +0200 | <Inst> | but it's depictable by recursion, iirc |
2022-07-18 17:04:02 +0200 | <merijn> | turlando: Also means you have to compile with -threaded for the threaded runtime |
2022-07-18 17:04:05 +0200 | <Inst> | hence for is strictly a subset of while |
2022-07-18 17:04:07 +0200 | <geekosaur> | general recursion, not primitive recursion |
2022-07-18 17:04:08 +0200 | <Inst> | and the statement in K&R is wrong |
2022-07-18 17:04:16 +0200 | gurkenglas | (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) |
2022-07-18 17:04:27 +0200 | <Inst> | for is a subset of while |
2022-07-18 17:04:29 +0200 | <geekosaur> | but the statement in K&R is correct for C's for loop, which is a while loop with some appendages |
2022-07-18 17:04:34 +0200 | <qrpnxz> | for /= primitive recursive, it just happen that primitive recursive can be expressed as for loop |
2022-07-18 17:04:37 +0200 | <Inst> | ah, i see |
2022-07-18 17:04:52 +0200 | <Inst> | the statement in K&R is that "for is a generalization of while" |
2022-07-18 17:04:53 +0200 | <turlando> | merijn: I was about to ask what did you mean by capabilities. So thread affinity is already set for me by RTS in that way, right? |
2022-07-18 17:05:14 +0200 | <qrpnxz> | K&R is talking about the for statement in C |
2022-07-18 17:05:14 +0200 | pgass | (~pg@190.247.245.154) |
2022-07-18 17:05:18 +0200 | <Inst> | I know |
2022-07-18 17:05:27 +0200 | <Inst> | how is adding stuff to while making it a generalization? |
2022-07-18 17:05:40 +0200 | <geekosaur> | because if you omit them you get while |
2022-07-18 17:05:54 +0200 | <Inst> | i'll drop this argument |
2022-07-18 17:05:54 +0200 | <qrpnxz> | while can't define vars and step condition, for can, therefore it's more general |
2022-07-18 17:06:01 +0200 | <Inst> | i still think I caught K&R being loose with terms |
2022-07-18 17:06:02 +0200 | <qrpnxz> | but for can do everything while does |
2022-07-18 17:06:03 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 272 seconds) |
2022-07-18 17:06:08 +0200 | <geekosaur> | and for (; cond 😉 is entirely legal C |
2022-07-18 17:06:20 +0200 | yauhsien | (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) |
2022-07-18 17:06:21 +0200 | <geekosaur> | bah, overly smart clients |
2022-07-18 17:06:22 +0200 | <merijn> | turlando: Haskell threads can (and do) migrate between capabilities, they use work stealing to balance |
2022-07-18 17:06:24 +0200 | <qrpnxz> | geekosaur: lmao |
2022-07-18 17:06:26 +0200 | <geekosaur> | and for ( ; cond ; ) is entirely legal C |
2022-07-18 17:06:43 +0200 | <merijn> | geekosaur: hell, for(;;) is legal C |
2022-07-18 17:06:47 +0200 | <geekosaur> | yep |
2022-07-18 17:07:01 +0200 | <Inst> | ah, so in C, a for loop isn't a standard for loop in other languages |
2022-07-18 17:07:10 +0200 | <Inst> | hence you can do non-primitive recursion with for in C? |
2022-07-18 17:07:20 +0200 | <geekosaur> | well, a number of other languages borrowed C's for loop |
2022-07-18 17:07:21 +0200 | <qrpnxz> | yes |
2022-07-18 17:07:45 +0200 | <merijn> | turlando: Basically: capability = pthread (plus some data structures for the runtime to manage threads) |
2022-07-18 17:08:02 +0200 | <kuribas> | a C loop isn't recursion. |
2022-07-18 17:08:16 +0200 | <merijn> | and thread generally refers to forkIO (aka haskell's lightweight threads) |
2022-07-18 17:08:18 +0200 | <kuribas> | it's just an imperative sequence of commands. |
2022-07-18 17:09:52 +0200 | <turlando> | merijn: I see, that's pretty neat RTS stuff I didn't know. It's actually my first time attepting at doing parallel (even though not concurrent) stuff in Haskell. Thanks a lot and for the library, it looks very nice and you always provide great help and suggestions here on IRC |
2022-07-18 17:11:13 +0200 | Morrow | (~Morrow@147.161.8.250) |
2022-07-18 17:11:51 +0200 | <merijn> | turlando: The GHC user guide has a ton of good stuff on the RTS, parallelism, etc. |
2022-07-18 17:15:01 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-07-18 17:15:26 +0200 | nate4 | (~nate@98.45.169.16) |
2022-07-18 17:16:13 +0200 | alternat` | (~user@staticline-31-183-144-54.toya.net.pl) |
2022-07-18 17:16:19 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) |
2022-07-18 17:18:00 +0200 | alternateved | (~user@staticline-31-183-144-54.toya.net.pl) (Ping timeout: 276 seconds) |
2022-07-18 17:19:38 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-07-18 17:21:12 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) |
2022-07-18 17:21:44 +0200 | son0p | (~ff@181.136.122.143) |
2022-07-18 17:22:44 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-07-18 17:22:50 +0200 | yauhsien | (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
2022-07-18 17:23:02 +0200 | <Inst> | kuribas: |
2022-07-18 17:23:05 +0200 | Vajb | (~Vajb@n1zigc3rgo9mpde2w-1.v6.elisa-mobile.fi) |
2022-07-18 17:23:23 +0200 | <Inst> | the point is that a while loop is equivalent to recursion, iirc, Haskell folds many recursive operations into a for loop |
2022-07-18 17:24:59 +0200 | <dolio> | It's not equivalent to recursion on its own. You need memory allocation to track a stack. |
2022-07-18 17:25:55 +0200 | alternat` | (~user@staticline-31-183-144-54.toya.net.pl) (ERC 5.4.1 (IRC client for GNU Emacs 29.0.50)) |
2022-07-18 17:25:59 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2022-07-18 17:26:35 +0200 | <qrpnxz> | equivalent in computational power |
2022-07-18 17:27:20 +0200 | <qrpnxz> | i don't have to use the call stack as my stack, i can just malloc one and use it in my while loop |
2022-07-18 17:27:41 +0200 | <dolio> | That's what I said. Without malloc, while is not equivalent to recursion. |
2022-07-18 17:28:00 +0200 | <qrpnxz> | if you don't allow haskell to allocate it's not gonna be useful either lol |
2022-07-18 17:28:24 +0200 | lortabac | (~lortabac@37.101.134.31) (Quit: WeeChat 2.8) |
2022-07-18 17:28:28 +0200 | chele | (~chele@user/chele) (Remote host closed the connection) |
2022-07-18 17:29:30 +0200 | frost | (~frost@user/frost) (Quit: Client closed) |
2022-07-18 17:30:42 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::909a) |
2022-07-18 17:30:50 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 240 seconds) |
2022-07-18 17:32:15 +0200 | <raehik> | I'm getting funky "unknown symbol"/"lookupSymbol failed in relocateSection" errors when trying to build an FFI project on Mac. I don't own a Mac, using GitHub Actions. would anyone be able to help decipher? https://paste.tomsmeding.com/Pys00dn5 |
2022-07-18 17:32:20 +0200 | <raehik> | full log https://github.com/raehik/bytepatch/runs/7392181132?check_suite_focus=true#step:9:750 |
2022-07-18 17:33:04 +0200 | <raehik> | getting "GHC runtime linker: fatal error: I found a duplicate definition for symbol" but it then gives me two files which have the same name (or maybe just prefix?) |
2022-07-18 17:33:09 +0200 | <kuribas> | Inst: no, they are very different. |
2022-07-18 17:33:28 +0200 | <kuribas> | Inst: recursion is about applying a function on a subpart. |
2022-07-18 17:34:07 +0200 | <kuribas> | Inst: a while loop means do the side-effect, until another side-effect returns false. |
2022-07-18 17:34:48 +0200 | <Inst> | they're convertible |
2022-07-18 17:35:21 +0200 | <kuribas> | not in general. |
2022-07-18 17:35:22 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) |
2022-07-18 17:35:29 +0200 | <kuribas> | for specific cases perhaps. |
2022-07-18 17:35:33 +0200 | <qrpnxz> | yes in general |
2022-07-18 17:35:33 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-18 17:36:13 +0200 | <kuribas> | I mean, recursion in haskell doesn't even allow side-effects. |
2022-07-18 17:36:48 +0200 | <kuribas> | well, except for a self-recursive IO monad... |
2022-07-18 17:37:21 +0200 | John_Ivan | (~John_Ivan@user/john-ivan/x-1515935) (Quit: Leaving) |
2022-07-18 17:37:36 +0200 | <qrpnxz> | that's a statement about haskell, not so much recursion itself, but yes if you wanna do IO, you gotta be in IO monad |
2022-07-18 17:40:22 +0200 | <raehik> | urgh looks like it |
2022-07-18 17:40:42 +0200 | <raehik> | *it's probably mac homebrew not installing development bits. whatever |
2022-07-18 17:41:21 +0200 | <kuribas> | from wikipedia: "In computer science, recursion is a method of solving a computational problem where the solution depends on solutions to smaller instances of the same problem" |
2022-07-18 17:41:32 +0200 | <kuribas> | a while loop has nothing to do with that. |
2022-07-18 17:41:48 +0200 | <kuribas> | because it has no concept of "smaller instance". |
2022-07-18 17:42:38 +0200 | <geekosaur> | raehik, that doesn't look like missing bits. it looks like either an archive with duplicate symbols/objects or a loader error to me. I would be suspicious of that keystone.a in general, it seems to have both duplicated and missing bits. (also it's C++) |
2022-07-18 17:42:59 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds) |
2022-07-18 17:44:07 +0200 | <raehik> | geekosaur: yeah it is suspicious. was confused because I have built the core FFI pkg on Mac already - turns out I built the required library from source instead of using homebrew |
2022-07-18 17:44:36 +0200 | <raehik> | have had similar issues before so I assumed |
2022-07-18 17:44:57 +0200 | <geekosaur> | so it might have two of them? but the paths loook the same |
2022-07-18 17:45:05 +0200 | <qrpnxz> | kuribas: i'm not saying writing something as a while loop is gonna look the same as writing something in a recursive function call style. They are different styles. But I can always rewrite one into the other |
2022-07-18 17:45:11 +0200 | dknite | (~dknite@49.37.45.188) (Read error: Connection reset by peer) |
2022-07-18 17:45:12 +0200 | Morrow | (~Morrow@147.161.8.250) (Read error: Connection reset by peer) |
2022-07-18 17:45:40 +0200 | dknite | (~dknite@110.224.0.191) |
2022-07-18 17:46:29 +0200 | <raehik> | it's not a popular package, may well have homebrew build issues |
2022-07-18 17:47:00 +0200 | <raehik> | those error msgs were opaque to me -- thanks for the help |
2022-07-18 17:48:18 +0200 | <[Leary]> | kuribas: The point is only about expressivity. You can implement stateful while loops using recursion. If you can also implement recursion using stateful while loops, then they're equivalent in strength. |
2022-07-18 17:48:22 +0200 | Morrow | (~Morrow@192.114.91.215) |
2022-07-18 17:56:05 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) (Remote host closed the connection) |
2022-07-18 17:57:50 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::909a) (Ping timeout: 255 seconds) |
2022-07-18 17:59:57 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-18 18:01:43 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::909a) |
2022-07-18 18:01:45 +0200 | Haskelytic | (~Haskelyti@118.179.211.17) (Quit: Client closed) |
2022-07-18 18:04:48 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2022-07-18 18:09:28 +0200 | dolio | (~dolio@130.44.130.54) (Read error: Connection reset by peer) |
2022-07-18 18:09:41 +0200 | dolio | (~dolio@130.44.130.54) |
2022-07-18 18:10:27 +0200 | dolio | (~dolio@130.44.130.54) (Client Quit) |
2022-07-18 18:10:46 +0200 | <naso> | how can i create a matrix with elements from a finite field, using hmatrix and the `Mod n x` type under the first heading here 'Elements': https://hackage.haskell.org/package/hmatrix-0.20.2/docs/Numeric-LinearAlgebra-Data.html#t:Z |
2022-07-18 18:14:33 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-07-18 18:15:24 +0200 | dknite | (~dknite@110.224.0.191) (Read error: Connection reset by peer) |
2022-07-18 18:16:22 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 18:16:27 +0200 | dolio | (~dolio@130.44.130.54) |
2022-07-18 18:16:36 +0200 | alecs | (~alecs@151.62.28.16) |
2022-07-18 18:17:04 +0200 | <naso> | • Couldn't match kind ‘*’ with ‘Natural’ |
2022-07-18 18:17:04 +0200 | <naso> | Expected kind ‘Nat’, but ‘Fixed 5’ has kind ‘*’ |
2022-07-18 18:17:04 +0200 | <naso> | • In the first argument of ‘Mod’, namely ‘(Fixed 5)’ |
2022-07-18 18:17:06 +0200 | <naso> | In the type ‘Mod (Fixed 5) Z’ |
2022-07-18 18:17:08 +0200 | <naso> | In the type declaration for ‘Ring’ |
2022-07-18 18:17:10 +0200 | <naso> | i have tried e.g. `type Ring = Mod (Fixed 5) Z` but get an error : |
2022-07-18 18:18:30 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
2022-07-18 18:19:11 +0200 | <naso> | (my last message should have been the first one) |
2022-07-18 18:19:58 +0200 | <geekosaur> | shouldn't it just be `5`, not `Fixed 5`? |
2022-07-18 18:20:25 +0200 | <geekosaur> | the definition of `Fixed` that I know creates a fixed-precision data type of kind `*` |
2022-07-18 18:20:54 +0200 | acidjnk_new | (~acidjnk@p200300d6e705864174c175faeeeeaa95.dip0.t-ipconnect.de) |
2022-07-18 18:20:57 +0200 | <naso> | thank you, that type checks ! i have not used the type level numbers before |
2022-07-18 18:21:47 +0200 | kuribas | (~user@silversquare.silversquare.eu) (Quit: ERC (IRC client for Emacs 26.3)) |
2022-07-18 18:22:30 +0200 | Morrow | (~Morrow@192.114.91.215) (Ping timeout: 240 seconds) |
2022-07-18 18:22:49 +0200 | phma | (~phma@2001:5b0:212a:f318:9888:9b59:ea41:c1c) (Read error: Connection reset by peer) |
2022-07-18 18:23:47 +0200 | phma | (~phma@2001:5b0:211f:d1f8:9471:1396:f73f:5401) |
2022-07-18 18:23:50 +0200 | acidjnk_new3 | (~acidjnk@p200300d6e705864174c175faeeeeaa95.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-07-18 18:24:07 +0200 | foul_owl | (~kerry@23.82.194.107) (Ping timeout: 244 seconds) |
2022-07-18 18:26:05 +0200 | dknite | (~dknite@49.37.45.188) |
2022-07-18 18:27:36 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-07-18 18:28:59 +0200 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
2022-07-18 18:29:48 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 244 seconds) |
2022-07-18 18:32:47 +0200 | califax | (~califax@user/califx) (Ping timeout: 268 seconds) |
2022-07-18 18:35:01 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-07-18 18:36:17 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 18:37:45 +0200 | califax | (~califax@user/califx) |
2022-07-18 18:39:44 +0200 | foul_owl | (~kerry@23.82.194.109) |
2022-07-18 18:40:59 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
2022-07-18 18:42:29 +0200 | <qrpnxz> | every try to implement something from a paper and it doesn't work? I feel betrayed, but likely i just made a mistake somewhere |
2022-07-18 18:42:50 +0200 | christiansen | (~christian@83-95-137-75-dynamic.dk.customer.tdc.net) (Ping timeout: 255 seconds) |
2022-07-18 18:43:29 +0200 | <merijn> | lol, all the time, they're often riddled with mistakes |
2022-07-18 18:43:49 +0200 | <merijn> | I'd be more surprised if it worked the first time, tbh |
2022-07-18 18:43:56 +0200 | <qrpnxz> | lol |
2022-07-18 18:44:50 +0200 | <Rembane> | qrpnxz: Are you having a personal replication crisis? |
2022-07-18 18:44:55 +0200 | alecs | (~alecs@151.62.28.16) (Quit: WeeChat 3.6) |
2022-07-18 18:46:25 +0200 | <qrpnxz> | taking a crack rn at translating lambda calc to SK combinators. GADTs have allowed me to translate some of the stuff pretty much directly from the semantic translation which blew my mind. I literally cannot construct an invalid lambda term it's amazing. |
2022-07-18 18:46:36 +0200 | <qrpnxz> | Rembane: idk what's that? |
2022-07-18 18:47:30 +0200 | <Rembane> | qrpnxz: The replication crisis is something that's taking place among papers on psychology, because the findings can't be replicated. |
2022-07-18 18:47:45 +0200 | <geekosaur> | the replication crisis is a recentish thing in scientific and medical circles where papers' results can't be replicated by others |
2022-07-18 18:47:59 +0200 | <geekosaur> | psychology's a big one, yes, but it's all over the place |
2022-07-18 18:48:19 +0200 | <qrpnxz> | ah yeah, for a sec i was thinking that like "bastards, it's not even real!", but i think in this case i really probably did just mess up somewhere |
2022-07-18 18:48:27 +0200 | <merijn> | Don't pretend computer science is any better :p |
2022-07-18 18:48:36 +0200 | <geekosaur> | the hard sciences are slightly less prone to it because te first thing everyone does is try to replicate… but it's in medicine too |
2022-07-18 18:48:51 +0200 | <merijn> | Because I have a major part of chapter dedicated to skewering CS for that :p |
2022-07-18 18:49:06 +0200 | <qrpnxz> | there's other problem too like there's a lot of notation that's never explained and i have no idea where to even learn it, so it takes me like a day to figure out what it's even saying |
2022-07-18 18:49:07 +0200 | <Rembane> | There are some newish papers where they are trying to prove the classical CS proofs using Agda or Coq or something and sometimes failing in interesting ways. :D |
2022-07-18 18:49:07 +0200 | <geekosaur> | now I'm reminded of monochrom's fable from yesterday (in offtopic) |
2022-07-18 18:49:53 +0200 | yauhsien | (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) |
2022-07-18 18:51:33 +0200 | <qrpnxz> | thankfully some of this special notation is pretty standard as in it's used in many papers. So more paper i read it gets easier |
2022-07-18 18:55:35 +0200 | alecs | (~alecs@151.62.28.16) |
2022-07-18 18:56:29 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) |
2022-07-18 18:58:10 +0200 | gleostocha | (~runic@c-73-15-32-211.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2022-07-18 18:59:05 +0200 | <qrpnxz> | some detail are missing from the paper i had to fill in, maybe that's where i mess up |
2022-07-18 18:59:36 +0200 | naso | (~nasosev@193.116.244.197) () |
2022-07-18 18:59:39 +0200 | <geekosaur> | now it's sounding like the haskell report re typechecking 😛 |
2022-07-18 18:59:55 +0200 | <qrpnxz> | lool |
2022-07-18 19:00:17 +0200 | finsternis | (~X@23.226.237.192) (Ping timeout: 244 seconds) |
2022-07-18 19:00:48 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) (Ping timeout: 244 seconds) |
2022-07-18 19:01:03 +0200 | <qrpnxz> | if i figure this out, in an alternate universe i'd make a PR for this paper 🙁 |
2022-07-18 19:01:12 +0200 | finsternis | (~X@23.226.237.192) |
2022-07-18 19:01:12 +0200 | <qrpnxz> | i meant 🙂 |
2022-07-18 19:01:48 +0200 | christiansen | (~christian@83-95-137-75-dynamic.dk.customer.tdc.net) |
2022-07-18 19:03:29 +0200 | dcoutts | (~duncan@host86-167-206-10.range86-167.btcentralplus.com) (Remote host closed the connection) |
2022-07-18 19:03:50 +0200 | dcoutts | (~duncan@host86-167-206-10.range86-167.btcentralplus.com) |
2022-07-18 19:03:58 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 19:04:29 +0200 | yauhsien | (~yauhsien@61-231-46-226.dynamic-ip.hinet.net) (Ping timeout: 272 seconds) |
2022-07-18 19:06:23 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
2022-07-18 19:07:42 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-18 19:08:32 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-18 19:09:23 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 255 seconds) |
2022-07-18 19:09:40 +0200 | ccntrq | (~Thunderbi@2a01:c22:8848:d100:7142:5666:5518:c20a) (Remote host closed the connection) |
2022-07-18 19:10:39 +0200 | econo | (uid147250@user/econo) |
2022-07-18 19:13:24 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-18 19:18:43 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) (Remote host closed the connection) |
2022-07-18 19:18:56 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) |
2022-07-18 19:20:18 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 240 seconds) |
2022-07-18 19:22:14 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 19:26:19 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2022-07-18 19:30:35 +0200 | andscape | (~andscape@ti0185a400-0748.bb.online.no) |
2022-07-18 19:31:11 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2022-07-18 19:33:15 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) |
2022-07-18 19:38:18 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-07-18 19:42:29 +0200 | dlock | (~dlock@213.205.241.187) |
2022-07-18 19:43:19 +0200 | <dlock> | is there a version of cabal init for cabal projects? |
2022-07-18 19:44:08 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) (Remote host closed the connection) |
2022-07-18 19:44:22 +0200 | <dlock> | and does anyone know of an example of mueval in use, im trying to find an online tutorial |
2022-07-18 19:44:25 +0200 | zebrag | (~chris@user/zebrag) |
2022-07-18 19:45:53 +0200 | <sclv> | dlock: cabal configure generates a cabal.project.local file |
2022-07-18 19:47:14 +0200 | <dlock> | ok ill try that, thanks |
2022-07-18 19:47:26 +0200 | <dlock> | for the mueval thing i finally found a thread; https://stackoverflow.com/questions/68641460/how-to-send-a-lambda-function-from-commandline-to-a-h… |
2022-07-18 19:48:13 +0200 | <dlock> | which links to this; https://stackoverflow.com/questions/16679089/how-can-i-parse-a-string-to-a-function-in-haskell |
2022-07-18 19:48:21 +0200 | <dlock> | actually providing an example! |
2022-07-18 19:49:50 +0200 | <geekosaur> | the lambdabot source should provide an example in the eval plugin |
2022-07-18 19:50:26 +0200 | <dlock> | the cabal.project.local just ends up containing; ignore-project: False |
2022-07-18 19:50:41 +0200 | <dlock> | whereas when i set up a cabal project im used to having to specify the path to the project |
2022-07-18 19:50:58 +0200 | <dlock> | well, to the directory of the .cabal file for the component of the project |
2022-07-18 19:51:27 +0200 | <dlock> | geekosaur: i tried to look at the lambdabot source but there was a lot of peripheral stuff for irc and various other platforms |
2022-07-18 19:51:29 +0200 | <geekosaur> | https://github.com/lambdabot/lambdabot/blob/master/lambdabot-haskell-plugins/src/Lambdabot/Plugin/… |
2022-07-18 19:52:31 +0200 | <dlock> | not quite sure what that is doing |
2022-07-18 19:54:04 +0200 | <dlock> | ok i see some stuff on linke 96 |
2022-07-18 19:54:18 +0200 | kritzefitz | (~kritzefit@debian/kritzefitz) (Ping timeout: 240 seconds) |
2022-07-18 19:55:28 +0200 | kritzefitz | (~kritzefit@debian/kritzefitz) |
2022-07-18 19:55:46 +0200 | <geekosaur> | https://github.com/lambdabot/lambdabot/blob/master/lambdabot-haskell-plugins/src/Lambdabot/Plugin/… is the heart of it. the rest maintains a file L.hs of predefined things, constructed from Pristine.hs in the state directory |
2022-07-18 19:55:49 +0200 | <dlock> | i guess id quite like to see an example which imports it and uses it, because i guess how its used by the rest of lambdabot is quite obtuse |
2022-07-18 19:57:03 +0200 | benin0 | (~benin@183.82.176.5) (Quit: The Lounge - https://thelounge.chat) |
2022-07-18 19:57:10 +0200 | <geekosaur> | and it invokes mueval as a binary, not a library |
2022-07-18 19:58:05 +0200 | <dlock> | hmm |
2022-07-18 19:58:11 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-07-18 19:58:26 +0200 | <dlock> | still, i mean, for incorperating it into my code i would import this module of lambdabot right? |
2022-07-18 19:59:20 +0200 | <geekosaur> | no, it's just an example of how to make use of mueval with a list of trusted imports and predefined things, running on a user-provided expression |
2022-07-18 19:59:32 +0200 | Morrow | (~Morrow@192.114.91.213) |
2022-07-18 19:59:51 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 276 seconds) |
2022-07-18 19:59:53 +0200 | <dlock> | ah ok i see it there on line 77 |
2022-07-18 20:02:30 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
2022-07-18 20:03:41 +0200 | <dlock> | is there an advantage over hint? |
2022-07-18 20:03:42 +0200 | <geekosaur> | the earlier linked thing uses hint, which is less sandboxed but gives you a relatively simple function API to use |
2022-07-18 20:03:48 +0200 | <merijn> | dlock: tbh, a "cabal.project" can be (and often is) as simple as merely 1 line "packages: <paths here>" |
2022-07-18 20:04:36 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2022-07-18 20:04:42 +0200 | <dlock> | i have each of my projects in their 1 project cabal project dir structure, with libraries seperated so i can merge projects easily |
2022-07-18 20:04:59 +0200 | <geekosaur> | mueval is a fairly tight sandbox, so you know users aren't e.g. using unsafePerformIO behind your back to modify the system or something |
2022-07-18 20:05:13 +0200 | <merijn> | dlock: Just wondering what you'd expect an "init" for cabal.project to do, exactly :) |
2022-07-18 20:05:13 +0200 | <dlock> | i guess it was a bit over hopeful thinking it might set it up in this kind of dir structure for me like cabal init kind of does |
2022-07-18 20:05:18 +0200 | <geekosaur> | if you're running untrusted input, mueval is to be preferred |
2022-07-18 20:05:26 +0200 | cosimone | (~user@93-44-186-171.ip98.fastwebnet.it) (Remote host closed the connection) |
2022-07-18 20:05:35 +0200 | <dlock> | geekosuar: nope, this is development code |
2022-07-18 20:05:55 +0200 | <dlock> | i mean, obviously it should compile... |
2022-07-18 20:06:28 +0200 | <merijn> | dlock: "each project in their 1 project cabal project dir structure" <- you mean like 1 directory per project and 1 package per project? |
2022-07-18 20:06:29 +0200 | <dlock> | but its not like opening it up to web users or something that might try and hack with it |
2022-07-18 20:06:38 +0200 | <geekosaur> | I'm not sure what dir structure you'd like, btw. projects are just groups of packages, how you group them is up to you and you use cabal.project to tell that to cabal |
2022-07-18 20:07:34 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-07-18 20:07:39 +0200 | <dlock> | i just have to go through my template changing the string "clean-project" to whatever i want it to be |
2022-07-18 20:07:46 +0200 | <dlock> | its just the dir struct |
2022-07-18 20:07:54 +0200 | <dlock> | ill try and find the zip i was using hang on |
2022-07-18 20:08:41 +0200 | <merijn> | dlock: I mean, my "directory structure" is literally just "the same as cabal init" or "N subdirectories which are just cabal packages" |
2022-07-18 20:08:52 +0200 | <merijn> | I don't really know what there is to automate |
2022-07-18 20:10:06 +0200 | <tomsmeding> | The mueval library on hackage looks incomplete; it can evaluate an expression and _print_ the result on stdout, but since runInterpreter is not exported, one can't use `interpreter` and catch the output in-process |
2022-07-18 20:10:13 +0200 | <dlock> | hmm, sure, i guess you could initialise n packages. basically i had the idea that eventually all the different libs should be merged, like all the different ways each project solves the same thing could eventually be replaced by a MyPrelude style setup |
2022-07-18 20:10:47 +0200 | <tomsmeding> | Just exporting runInterpreter could fix that |
2022-07-18 20:10:51 +0200 | <dlock> | tomsmeding: i need it to produce a type annotated list of outputs |
2022-07-18 20:11:00 +0200 | <merijn> | I don't think I understand that explanation enough to understand what you want it to do |
2022-07-18 20:11:04 +0200 | <geekosaur> | tomsmeding, look at how lambdabot uses it. it's a program that takes an expression and a set of trusted packages on the command line and prints the result to stdout |
2022-07-18 20:11:08 +0200 | acidjnk_new3 | (~acidjnk@p200300d6e7058641e86f8f8671f06cda.dip0.t-ipconnect.de) |
2022-07-18 20:11:08 +0200 | <tomsmeding> | List of outputs? A single expression has only a single output |
2022-07-18 20:11:15 +0200 | <geekosaur> | it's not really the same setup as hint |
2022-07-18 20:11:33 +0200 | <tomsmeding> | geekosaur: I saw, the mueval package on hackage indeed also produces an executable |
2022-07-18 20:11:35 +0200 | <dlock> | tomsmeding: i use the type signature to indicate otherwise! |
2022-07-18 20:11:45 +0200 | <dlock> | by saying it should output a type annotated list! |
2022-07-18 20:11:50 +0200 | <tomsmeding> | But that executable simply calls into the library directly, in classical haskell style |
2022-07-18 20:12:11 +0200 | <tomsmeding> | What is a "type annotated list"? List of strings? |
2022-07-18 20:12:17 +0200 | <dlock> | i mean, if i were using backpack, it would read strait into the output type in a pure setting |
2022-07-18 20:12:37 +0200 | <tomsmeding> | dlock: what is the ideal type of the function that mueval would give you |
2022-07-18 20:12:38 +0200 | <dlock> | no, its a list with type annotations in a list giving the type of the values stored |
2022-07-18 20:13:28 +0200 | <dlock> | :: String -> (List (xs :: [*]) -> List (ys :: [*])) |
2022-07-18 20:13:31 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-18 20:13:40 +0200 | <dlock> | obviously it could fail to compile to that type |
2022-07-18 20:13:43 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2022-07-18 20:13:47 +0200 | <tomsmeding> | Where List is a heterogeneous list? |
2022-07-18 20:13:53 +0200 | <dlock> | yes |
2022-07-18 20:14:15 +0200 | <dlock> | Cons :: x -> List xs -> List (x:xs) |
2022-07-18 20:14:48 +0200 | <dlock> | and i have a synonm for this as a MIMO function |
2022-07-18 20:14:51 +0200 | <tomsmeding> | The idea being that if the String represents an expression of type a -> b -> c, then xs ~ [a, b] and ys ~ [c] ? |
2022-07-18 20:14:55 +0200 | acidjnk_new | (~acidjnk@p200300d6e705864174c175faeeeeaa95.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2022-07-18 20:15:08 +0200 | <dlock> | different from (List xs -> x) (MISO) |
2022-07-18 20:15:22 +0200 | <tomsmeding> | I don't see how ys would be a list with more than 1 element |
2022-07-18 20:15:30 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
2022-07-18 20:15:35 +0200 | <dlock> | well eg with a list of MISO functions |
2022-07-18 20:15:53 +0200 | <dlock> | each given the same input, produces a vector of results (List here) |
2022-07-18 20:16:12 +0200 | <dlock> | [MISO] -> MIMO |
2022-07-18 20:16:14 +0200 | <tomsmeding> | Is this necessary? Could you also simulate what you want using a SISO function, that takes and returns e.g. a heterogeneous list? |
2022-07-18 20:16:40 +0200 | <dlock> | no, im piping everything through an architectural bottleneck, it needs to hold this vector |
2022-07-18 20:17:06 +0200 | <dlock> | things are going off in differrent directions depending on if they are in different parts of a pair of Lists at one point |
2022-07-18 20:17:06 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-07-18 20:17:14 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 20:17:23 +0200 | <dlock> | inputs passed in from the left and from above, outputs going down and to the right |
2022-07-18 20:17:41 +0200 | <dlock> | so basically there is "shape" among this grouping, and so a list is required |
2022-07-18 20:17:53 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-07-18 20:17:56 +0200 | <tomsmeding> | I don't see why mueval needs to know about the list |
2022-07-18 20:18:04 +0200 | <tomsmeding> | https://hackage.haskell.org/package/mueval have you read the readme here? |
2022-07-18 20:18:06 +0200 | <dlock> | :t mapAccumL |
2022-07-18 20:18:07 +0200 | qhong | (~qhong@rescomp-21-400677.stanford.edu) (Read error: Connection reset by peer) |
2022-07-18 20:18:07 +0200 | <lambdabot> | Traversable t => (a -> b -> (a, c)) -> a -> t b -> (a, t c) |
2022-07-18 20:18:13 +0200 | <dlock> | see how that "outputs a pair" |
2022-07-18 20:18:16 +0200 | qhong | (~qhong@rescomp-21-400677.stanford.edu) |
2022-07-18 20:18:22 +0200 | <dlock> | and basically has some curried input pair aswell |
2022-07-18 20:18:28 +0200 | <tomsmeding> | You could just compile that to a binary, and call that binary from your haskell program |
2022-07-18 20:18:30 +0200 | Cale | (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) |
2022-07-18 20:18:43 +0200 | <tomsmeding> | And use Show and Read to pass in the arguments and parse the outputs |
2022-07-18 20:18:53 +0200 | <dlock> | the problem is that trying to parse the string return from the binary |
2022-07-18 20:19:06 +0200 | <dlock> | id rather compile it into a function that i can actually use to return the type i require of it |
2022-07-18 20:19:10 +0200 | <tomsmeding> | You could require that all the types in the output list implement Read |
2022-07-18 20:19:45 +0200 | <dlock> | but then how do i enusre it compiles |
2022-07-18 20:19:50 +0200 | <dlock> | ill get a read no parse error then |
2022-07-18 20:20:00 +0200 | <tomsmeding> | You cannot compile haskell code at runtime while knowing statically that it will be type-safe |
2022-07-18 20:20:04 +0200 | gleostocha | (~runic@c-73-15-32-211.hsd1.ca.comcast.net) |
2022-07-18 20:20:13 +0200 | <dlock> | sure, it should be |
2022-07-18 20:20:15 +0200 | <tomsmeding> | Because ghc is not gadt-typed internally |
2022-07-18 20:20:33 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) (Quit: Lost terminal) |
2022-07-18 20:20:51 +0200 | <dlock> | i can interpret haskell code and ensure that the type matches that required |
2022-07-18 20:20:53 +0200 | <tomsmeding> | So even if you get out ghc itself and just-in-time compile the code, you're going to need to unsafeCoerce the output to the expected type |
2022-07-18 20:21:04 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) |
2022-07-18 20:21:08 +0200 | <tomsmeding> | Then you need to write a type-preserving haskell interpreter |
2022-07-18 20:21:12 +0200 | <tomsmeding> | It doesn't exist yet |
2022-07-18 20:21:15 +0200 | <dlock> | what!? |
2022-07-18 20:21:26 +0200 | <dlock> | i can read the AST |
2022-07-18 20:21:30 +0200 | <tomsmeding> | Haskell interpreters exist |
2022-07-18 20:21:35 +0200 | <tomsmeding> | AST -> Value |
2022-07-18 20:21:41 +0200 | <tomsmeding> | Not AST t -> t |
2022-07-18 20:21:45 +0200 | Morrow | (~Morrow@192.114.91.213) (Ping timeout: 272 seconds) |
2022-07-18 20:21:47 +0200 | <dlock> | hmm |
2022-07-18 20:21:51 +0200 | <dlock> | thats so weird though |
2022-07-18 20:21:54 +0200 | <dlock> | why!? |
2022-07-18 20:22:01 +0200 | <tomsmeding> | No, that's pragmatism |
2022-07-18 20:22:18 +0200 | <dlock> | i can compile a function, but not of a specific type |
2022-07-18 20:22:23 +0200 | <dlock> | because thats pragmatic!? |
2022-07-18 20:22:30 +0200 | <tomsmeding> | Writing a full compiler in a type-safe manner is a huge undertaking in addition to the challenges that writing a haskell compiler already presents |
2022-07-18 20:22:51 +0200 | <tomsmeding> | dlock: ghc is intended to be used as an executable that compiles a haskell file to a binary |
2022-07-18 20:22:56 +0200 | <dlock> | i thought it was supposed to expose inner workings of the GHC type checking process to the user |
2022-07-18 20:23:06 +0200 | <dlock> | i wouldnt expect it to massively limmit the compilers capabilities |
2022-07-18 20:23:13 +0200 | Morrow | (~Morrow@192.114.91.213) |
2022-07-18 20:23:14 +0200 | <tomsmeding> | Internal gadt types are completely useless to the user then |
2022-07-18 20:23:27 +0200 | <tomsmeding> | Only if you use ghc as a library could you potentially use the gadt-typedness |
2022-07-18 20:23:40 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
2022-07-18 20:23:44 +0200 | <dlock> | right, we just want to work on the internal representation, and your saying its not a nice haskell 98 AST datatype |
2022-07-18 20:23:45 +0200 | <tomsmeding> | Well you _can_ interact with the ghc type checker |
2022-07-18 20:23:54 +0200 | <tomsmeding> | But you'll get the types as _values_ in the AST |
2022-07-18 20:24:02 +0200 | <tomsmeding> | Not on the type level |
2022-07-18 20:24:23 +0200 | <dlock> | i need to check at least that the type output matches that its supposed to in the rest of the program |
2022-07-18 20:24:24 +0200 | <tomsmeding> | Like, data AST = Var Type String | Lambda Type String AST | ... |
2022-07-18 20:24:36 +0200 | <dlock> | i need the type signature of the output of the interpreter to be matchable |
2022-07-18 20:24:45 +0200 | <tomsmeding> | data Type = Int | Float | List Type | ... |
2022-07-18 20:24:51 +0200 | <tomsmeding> | Simplified, of course |
2022-07-18 20:24:54 +0200 | <dlock> | sure |
2022-07-18 20:24:58 +0200 | <tomsmeding> | Sure, you can do that |
2022-07-18 20:25:08 +0200 | <tomsmeding> | I thought you needed full gadt typing :p |
2022-07-18 20:25:09 +0200 | <dlock> | ok, and i need to interact with "ghc as a library" |
2022-07-18 20:25:26 +0200 | <tomsmeding> | Which is hard |
2022-07-18 20:25:42 +0200 | <tomsmeding> | It's certainly possible, e.g. HLS does it |
2022-07-18 20:25:46 +0200 | <dlock> | i mean, like the example with hint had a user defining a lambda expression using stdin |
2022-07-18 20:25:55 +0200 | <dlock> | and printing the result to stdout |
2022-07-18 20:26:13 +0200 | <tomsmeding> | I believe that hint only gives you the full front-to-back pipeline, from input haskell code to evaluated result |
2022-07-18 20:26:19 +0200 | <dlock> | id just want the same that bound the type into scope in the module, not using IO |
2022-07-18 20:26:35 +0200 | gleostocha | (~runic@c-73-15-32-211.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2022-07-18 20:26:42 +0200 | <dlock> | i understand hint cant do that |
2022-07-18 20:26:48 +0200 | <dlock> | nor mueval from the command line |
2022-07-18 20:27:06 +0200 | <dlock> | and i dont think the wrapper for reeproviding stripped types sounds good either |
2022-07-18 20:27:28 +0200 | <dlock> | so let me see if i can find this HLS thing, hang on |
2022-07-18 20:27:48 +0200 | <tomsmeding> | dlock: here you see what hint does https://hackage.haskell.org/package/hint-0.9.0.6/docs/src/Hint.Typecheck.html#typeOf |
2022-07-18 20:28:09 +0200 | <tomsmeding> | typeChecksWithDetails returns the type-checked type... as a String |
2022-07-18 20:28:21 +0200 | <tomsmeding> | But that String is produced using typeOf, defined above |
2022-07-18 20:28:24 +0200 | <dlock> | yeah, as a string |
2022-07-18 20:28:40 +0200 | <dlock> | ok so i can at least throw an error if it doesnt typecheck |
2022-07-18 20:28:41 +0200 | <tomsmeding> | That type_ variable is a GHC.Type |
2022-07-18 20:28:44 +0200 | <dlock> | but i cant actually use the type |
2022-07-18 20:29:00 +0200 | <dlock> | ok, so i can just *insist* the read instance wont fail |
2022-07-18 20:29:15 +0200 | <tomsmeding> | If you'd reimplement that typeOf function yourself, skipping the typeToString, you could inspect the GHC.Type |
2022-07-18 20:29:19 +0200 | <dlock> | im sure i could pass in the intended type it should match |
2022-07-18 20:30:09 +0200 | <dlock> | well, im sure the euqlity of GHC.Type and the corresponding show output should be equivalent for typechecking |
2022-07-18 20:30:10 +0200 | <geekosaur> | you couldn't anyway. it might return a type butit'd be in the context of that environment, it won't compare to a type in your program (which won't even exist unless you e.g. require Typeable dictionaries all over the place) |
2022-07-18 20:30:14 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-07-18 20:30:30 +0200 | <geekosaur> | fingerprints etc. will differ |
2022-07-18 20:30:37 +0200 | nightbreak[Away] | (~nightbrea@2600:1700:70d1:d800:38ac:cd9e:758c:fd93) (Ping timeout: 272 seconds) |
2022-07-18 20:30:50 +0200 | <dlock> | hmm, definately worse than my "backpack does it and its pure!" comparison |
2022-07-18 20:31:30 +0200 | <dlock> | actually though, typable constraints are basically the exact thing youd want for this though... |
2022-07-18 20:31:36 +0200 | nightbreak | (~nightbrea@2600:1700:70d1:d800:4c68:423:c75b:c148) |
2022-07-18 20:31:38 +0200 | <geekosaur> | backpack uses some poorly documented internals |
2022-07-18 20:31:51 +0200 | <dlock> | it breaks nix too so i dont think i can use it in deployment |
2022-07-18 20:32:05 +0200 | <dlock> | which id actually forgotten about and is a good save! |
2022-07-18 20:32:15 +0200 | <geekosaur> | there's already been a "document this or it gets removed next version" warning issued |
2022-07-18 20:32:21 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 276 seconds) |
2022-07-18 20:32:31 +0200 | <dlock> | doesnt seem maintained, and it should be because its a good feature |
2022-07-18 20:33:00 +0200 | <dlock> | and would need to be eg for the nix team to get it working, but i think we basically abandoned that because apparently nobody knew what backpack was doing |
2022-07-18 20:33:00 +0200 | <geekosaur> | it very badly needs docs |
2022-07-18 20:33:25 +0200 | <geekosaur> | and stack doesn't and apparently won't support it, which excludes something like half the haskell userbase |
2022-07-18 20:33:59 +0200 | <dlock> | spent ages getting the syntax for mixins working! |
2022-07-18 20:34:00 +0200 | Vajb | (~Vajb@n1zigc3rgo9mpde2w-1.v6.elisa-mobile.fi) (Read error: Connection reset by peer) |
2022-07-18 20:34:02 +0200 | <geekosaur> | the only documentation is ezyang's thesis, which sadly is rather less readable than most haskell papers |
2022-07-18 20:34:04 +0200 | <monochrom> | This is what happens to PhD theses. |
2022-07-18 20:34:13 +0200 | <dlock> | there was some rotate example i had |
2022-07-18 20:34:24 +0200 | <monochrom> | On the bright side, Dependent Haskell also started as a PhD thesis. There is still hope. >:) |
2022-07-18 20:34:27 +0200 | <dlock> | ages ago, ill dig it out, its basically what you can and cant do with backpack |
2022-07-18 20:34:46 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) |
2022-07-18 20:34:57 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-07-18 20:35:09 +0200 | <monochrom> | Actually ezyang's thesis has a chapter that's very readable examples, and I read just that. |
2022-07-18 20:35:31 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 20:35:46 +0200 | nehsou^ | (~nehsou@12.187.69.131) |
2022-07-18 20:36:20 +0200 | <dlock> | https://github.com/fog-hs/rotateRecombined/tree/master/rotateRecombined/rotate/rotate/src |
2022-07-18 20:36:53 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-07-18 20:36:59 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 20:37:01 +0200 | CAT_S | iamgarp |
2022-07-18 20:37:31 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-07-18 20:37:42 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) |
2022-07-18 20:37:56 +0200 | hasbae | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2022-07-18 20:38:04 +0200 | <dlock> | syntax for mixins like this; https://github.com/fog-hs/rotateRecombined/blob/master/rotateRecombined/rotateRecombined.cabal |
2022-07-18 20:39:40 +0200 | <hasbae> | Why doesn't the type Integer declare itself to be an instance of Semigroup? |
2022-07-18 20:39:42 +0200 | <dlock> | anyway, i cant use that, i have a solution which involves mueval cmd with string or GHC.Types to ensure i can Read the output safely |
2022-07-18 20:39:52 +0200 | <geekosaur> | hasbae, which Semigroup? |
2022-07-18 20:39:58 +0200 | <hasbae> | Is it beacuse + and * could be <>? |
2022-07-18 20:40:05 +0200 | <geekosaur> | there are two primary ones |
2022-07-18 20:40:06 +0200 | <geekosaur> | yes |
2022-07-18 20:40:09 +0200 | <dlock> | its a ring and we have Num instead for some reason |
2022-07-18 20:40:14 +0200 | <geekosaur> | so they're both on newtypes |
2022-07-18 20:40:15 +0200 | <monochrom> | Because there are like 4 competing semigroup candidates, and no one has a better claim than others. |
2022-07-18 20:40:24 +0200 | <dlock> | ** |
2022-07-18 20:40:25 +0200 | <monochrom> | Game Of Semigroup Throne |
2022-07-18 20:40:35 +0200 | kenran | (~kenran@200116b82b64080076695fb43fedb5f1.dip.versatel-1u1.de) |
2022-07-18 20:40:36 +0200 | kenran | (~kenran@200116b82b64080076695fb43fedb5f1.dip.versatel-1u1.de) (Client Quit) |
2022-07-18 20:40:44 +0200 | <dlock> | er ^ sry |
2022-07-18 20:40:51 +0200 | <hasbae> | what are the four competing candidates? |
2022-07-18 20:40:52 +0200 | <monochrom> | So instead, please use the Sum, Product, Min, and Max newtype wrappers. |
2022-07-18 20:40:55 +0200 | <dlock> | % :t (^) @Int |
2022-07-18 20:40:55 +0200 | <yahb2> | (^) @Int :: Integral b => Int -> b -> Int |
2022-07-18 20:41:03 +0200 | mbuf | (~Shakthi@122.165.55.71) (Quit: Leaving) |
2022-07-18 20:41:05 +0200 | <dlock> | % :t (^) @Int @Int |
2022-07-18 20:41:06 +0200 | <yahb2> | (^) @Int @Int :: Int -> Int -> Int |
2022-07-18 20:41:23 +0200 | alecs | (~alecs@151.62.28.16) (Quit: WeeChat 3.6) |
2022-07-18 20:41:38 +0200 | <dlock> | i think theres also an algebra so you can have expressions like (\x y -> x*2 +y^x) |
2022-07-18 20:41:49 +0200 | <dlock> | still a monoid right? |
2022-07-18 20:41:52 +0200 | <monochrom> | I might be able to argue for 4 more, if we also recall that Integers is also an instance of Bits or something... |
2022-07-18 20:41:53 +0200 | <geekosaur> | mm, I wouldn't have thought of Min and Max as primary candidates |
2022-07-18 20:42:03 +0200 | <geekosaur> | but I'm not a mathematician |
2022-07-18 20:42:19 +0200 | <dlock> | what like rightShift or something |
2022-07-18 20:42:41 +0200 | <hasbae> | these ideas of semigroup, monoid, rings, etc... are from abstract algebra? |
2022-07-18 20:42:47 +0200 | <monochrom> | yes |
2022-07-18 20:43:06 +0200 | <dlock> | i think they call it a vocabulary |
2022-07-18 20:43:23 +0200 | <hasbae> | anyone have a good link close to "Abstract Algebra for haskell programmers"? |
2022-07-18 20:43:25 +0200 | <dlock> | probably they need type signatures |
2022-07-18 20:43:39 +0200 | <monochrom> | No. Would be overrated. |
2022-07-18 20:43:55 +0200 | <dlock> | hmm, i think the programatic proffs are useful? |
2022-07-18 20:44:00 +0200 | <monochrom> | Haskell is not big about rings and beyond. |
2022-07-18 20:44:19 +0200 | <monochrom> | Monoids and semigroups are almost trivial to communicate and learn. |
2022-07-18 20:44:23 +0200 | <geekosaur> | more to the point it can't really describe them |
2022-07-18 20:44:31 +0200 | <geekosaur> | (rings and beyond that is) |
2022-07-18 20:44:42 +0200 | <dlock> | yeah, but like, constructing an algebra using a datatype is pretty much like, idiomatic |
2022-07-18 20:44:56 +0200 | <dlock> | the A in GADT |
2022-07-18 20:45:11 +0200 | <monochrom> | They're literally just one short web page. Here: http://www.cs.utoronto.ca/~trebla/CSCC24-2022-Summer/05-haskell-fold.html#semigroup-and-monoid |
2022-07-18 20:45:26 +0200 | <monochrom> | It would take just 1 minute on TikTok or Youtube Shorts. |
2022-07-18 20:45:30 +0200 | <dlock> | what do you mean it cant express them, the class system does it beautifully |
2022-07-18 20:45:32 +0200 | <hasbae> | ha |
2022-07-18 20:45:41 +0200 | <dlock> | extensible axiomatic constructions |
2022-07-18 20:45:42 +0200 | <geekosaur> | I'm sure someone's done an hour on them though |
2022-07-18 20:46:11 +0200 | <hasbae> | I haven't gotten around to GADTs yet. |
2022-07-18 20:46:41 +0200 | <monochrom> | Oh there is a huge market for spectator sport long drawn-out "explaining" every trivial concept, yeah. |
2022-07-18 20:46:42 +0200 | <dlock> | everyone always asks why we have Num instead of some Edkmett style Cat stuff, and i think basically it nenver got standardised and had frequent avenues towards bloat |
2022-07-18 20:47:10 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
2022-07-18 20:47:26 +0200 | <dlock> | hasbae: there is a kind of duality between datatypes and classes, where if you put all the class function types as datatype fields you basically "make an object that instantiates the class" |
2022-07-18 20:47:51 +0200 | <dlock> | it a tuatology though, but understanding it can be useful in deciding when you need a class and when you need a datatype |
2022-07-18 20:48:16 +0200 | <geekosaur[m]> | Num is about pragmatism not mathematical purity |
2022-07-18 20:48:26 +0200 | <dlock> | we even had reflection at one point for trying to make function arguments order agnostic and do constant time scope access and stuff |
2022-07-18 20:48:34 +0200 | <hasbae> | off the top of my head, i'd say you need a class when you have an interface for more than one datatype |
2022-07-18 20:48:55 +0200 | <dlock> | i was arguing it was more a case of extensibility |
2022-07-18 20:49:04 +0200 | codaraxis__ | (~codaraxis@user/codaraxis) |
2022-07-18 20:49:16 +0200 | <hasbae> | ok, that makes sense |
2022-07-18 20:49:19 +0200 | <dlock> | this is where all the lesnses stuff starts coming in since you try making compositional algebras for record accessors and stuff |
2022-07-18 20:50:10 +0200 | <dlock> | the rift between the two approaches we were advocating sperately for was that the lesnses way overlooked the existence of a canonical formalism |
2022-07-18 20:50:37 +0200 | <dlock> | it allowed the expression of it in an abstract formalism, but since the canonical approach is available i argued for this instead |
2022-07-18 20:51:02 +0200 | <dlock> | so i was just trying to do generics basically |
2022-07-18 20:51:26 +0200 | <monochrom> | I just argue for KISS. |
2022-07-18 20:51:28 +0200 | codaraxis___ | (~codaraxis@user/codaraxis) (Read error: Connection reset by peer) |
2022-07-18 20:51:33 +0200 | <dlock> | anyway, there ends up being 3 approaches, lenses are very well supported, everyone ignored my efforts, and generics are pretty much complete |
2022-07-18 20:51:49 +0200 | <hasbae> | and in your definition, the canonical approach is putting the function types in the datatype? |
2022-07-18 20:51:55 +0200 | <dlock> | but my canonical extensible datatype i was quite proud of |
2022-07-18 20:52:23 +0200 | codaraxis | (~codaraxis@user/codaraxis) |
2022-07-18 20:52:31 +0200 | <dlock> | hasbae: oh, re classes vs datatypes, no, using classes and reflection was a hack of epic proportions |
2022-07-18 20:52:38 +0200 | <dlock> | it was more for the constant time access |
2022-07-18 20:53:11 +0200 | <dlock> | so yes a datatype for the extensible thing is kind of less insane |
2022-07-18 20:53:27 +0200 | <dlock> | point is that because its canonical you dont need lesnses |
2022-07-18 20:53:31 +0200 | <dlock> | since records are not used |
2022-07-18 20:53:43 +0200 | <dlock> | it presents index algebras then as a kind of alternative to lenses |
2022-07-18 20:53:52 +0200 | <dlock> | this is what the "seti" stuff was, imo |
2022-07-18 20:54:30 +0200 | <dlock> | bascially, with name dereferencing using records you define a graph that can use index algebra formalism to preserve linearity of construction |
2022-07-18 20:54:38 +0200 | <hasbae> | when you guys keep mentioning algebra, is algebra in this context mean: set of elements, and set of functions over those elements? |
2022-07-18 20:54:43 +0200 | <dlock> | this basically uses the traversal instance of the thing to give an ordering to the elements |
2022-07-18 20:54:56 +0200 | <monochrom> | yes |
2022-07-18 20:55:01 +0200 | <dlock> | as well as structure specific directing information (how to navigate around a tree essentially) |
2022-07-18 20:55:19 +0200 | codaraxis__ | (~codaraxis@user/codaraxis) (Ping timeout: 272 seconds) |
2022-07-18 20:55:26 +0200 | <hasbae> | so index algebra = indices (like 0..100) and then functions on indicies? |
2022-07-18 20:55:28 +0200 | <monochrom> | actually I didn't bring up algebra, so meh |
2022-07-18 20:55:32 +0200 | <dlock> | so you get the zipper on the extensible thing as a suspended traversal as a for of "pointer" over it, all instead of a record graph |
2022-07-18 20:56:07 +0200 | <dlock> | interestingly, the zipper over the tree of () then serves as the index. like how an int is a zipper on the line of integers |
2022-07-18 20:56:29 +0200 | <dlock> | this is something to do with its comonadicity, which we get for free by our seti efforts |
2022-07-18 20:56:42 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-07-18 20:57:00 +0200 | <dlock> | index algebra is saaying like, if you tell me how to point somewhere, and then how to change that pointer to somewhere else |
2022-07-18 20:57:06 +0200 | <dlock> | then i have a morphism on the pointer |
2022-07-18 20:57:22 +0200 | <dlock> | and if monoidal then its algebraic iiuc |
2022-07-18 20:57:36 +0200 | <hasbae> | ah, cool! |
2022-07-18 20:57:40 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
2022-07-18 20:57:45 +0200 | <dlock> | instead of records to tell you where stuff is? |
2022-07-18 20:57:53 +0200 | <dlock> | makes sense cos the tree just has a standardised shape |
2022-07-18 20:58:14 +0200 | <dlock> | the central theorom is something like "everythings a tree" because free lists something something |
2022-07-18 20:58:14 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) |
2022-07-18 20:59:15 +0200 | <dlock> | its like "why use an algebraic approach to records when the algebra *is* that of graph pointer navigation" |
2022-07-18 20:59:23 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) (Remote host closed the connection) |
2022-07-18 20:59:27 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-18 20:59:32 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) |
2022-07-18 20:59:35 +0200 | <dlock> | i think it was considered "too theoretical" |
2022-07-18 21:00:03 +0200 | <dlock> | anyway, everyone seems to like lenses, since they like naming how to locate things in the datatype themselves |
2022-07-18 21:00:08 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-07-18 21:00:18 +0200 | <dlock> | instead of saying things like "3 down two along, down again until the leaf" |
2022-07-18 21:00:24 +0200 | Vajb | (~Vajb@n1zigc3rgo9mpde2w-1.v6.elisa-mobile.fi) |
2022-07-18 21:00:35 +0200 | <hasbae> | came for Semigroup, stayed to learn some index algebra. Thanks for the help! |
2022-07-18 21:00:46 +0200 | <dlock> | thanks for understanding! |
2022-07-18 21:01:30 +0200 | <dlock> | but really like, i have one traversable default, and he has an abstraction over the notion of traversability, or something insane |
2022-07-18 21:01:52 +0200 | <dlock> | i cant remember quite where biplate enters lenses, but its there |
2022-07-18 21:02:13 +0200 | coot | (~coot@213.134.190.95) |
2022-07-18 21:02:44 +0200 | <dlock> | basically what i wanted to do which his cant is use routines for foraging for data in the tree, like nearest neighbours on a square grid |
2022-07-18 21:02:59 +0200 | <dlock> | this is much more obviously where you want an algebra on the index instead of a string |
2022-07-18 21:03:24 +0200 | <dlock> | this leads to the "pointer comonad" which turns out to be really central |
2022-07-18 21:03:49 +0200 | <dlock> | replacing the values to pointers to those values that can be repositioned with the index algebra |
2022-07-18 21:03:49 +0200 | Cale | (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) (Read error: Connection reset by peer) |
2022-07-18 21:03:58 +0200 | <dlock> | then you can do like |
2022-07-18 21:04:01 +0200 | <dlock> | :t map extract |
2022-07-18 21:04:03 +0200 | <lambdabot> | error: Variable not in scope: extract :: a -> b |
2022-07-18 21:04:11 +0200 | <dlock> | % :t fmap extract |
2022-07-18 21:04:11 +0200 | <yahb2> | <interactive>:1:6: error: Variable not in scope: extract :: a -> b |
2022-07-18 21:04:14 +0200 | <dlock> | eh? |
2022-07-18 21:04:39 +0200 | <merijn> | Why would that be in scope? |
2022-07-18 21:04:47 +0200 | <dlock> | isnt that from comonad? |
2022-07-18 21:04:48 +0200 | <merijn> | % import Control.Comonad |
2022-07-18 21:04:48 +0200 | <yahb2> | <no location info>: error: ; Could not find module ‘Control.Comonad’ ; Perhaps you meant Control.Monad (from base-4.14.3.0) |
2022-07-18 21:04:51 +0200 | <geekosaur> | @let import Control.Comonad |
2022-07-18 21:04:52 +0200 | <lambdabot> | Defined. |
2022-07-18 21:04:56 +0200 | <dlock> | thanks |
2022-07-18 21:05:01 +0200 | <dlock> | Pointer (p :: * -> *) => p a -> a |
2022-07-18 21:05:06 +0200 | <merijn> | :t extract |
2022-07-18 21:05:06 +0200 | <dlock> | % :t fmap extract |
2022-07-18 21:05:07 +0200 | <yahb2> | <interactive>:1:6: error: Variable not in scope: extract :: a -> b |
2022-07-18 21:05:08 +0200 | <lambdabot> | Comonad w => w a -> a |
2022-07-18 21:05:28 +0200 | <dlock> | :t fmap extract |
2022-07-18 21:05:29 +0200 | <lambdabot> | (Comonad w, Functor f) => f (w b) -> f b |
2022-07-18 21:06:00 +0200 | <dlock> | > duplicate [1] |
2022-07-18 21:06:02 +0200 | <lambdabot> | error: |
2022-07-18 21:06:02 +0200 | <lambdabot> | • Could not deduce (Comonad []) arising from a use of ‘duplicate’ |
2022-07-18 21:06:02 +0200 | <lambdabot> | from the context: Num a |
2022-07-18 21:06:07 +0200 | <dlock> | ok nvm |
2022-07-18 21:06:20 +0200 | <dlock> | anyway, lists comonad instance should be default |
2022-07-18 21:06:23 +0200 | <dlock> | er, no nvm |
2022-07-18 21:06:30 +0200 | <dlock> | you only get a pointer default for the zipper |
2022-07-18 21:06:42 +0200 | <dlock> | i guess you could use the tails version |
2022-07-18 21:07:16 +0200 | <dlock> | > fmap extract $ tails [1,2,3] |
2022-07-18 21:07:18 +0200 | <lambdabot> | error: |
2022-07-18 21:07:18 +0200 | <lambdabot> | • Could not deduce (Comonad []) arising from a use of ‘extract’ |
2022-07-18 21:07:18 +0200 | <lambdabot> | from the context: Num b |
2022-07-18 21:07:36 +0200 | <dlock> | > fmap head $ tails [1,2,3] |
2022-07-18 21:07:38 +0200 | <lambdabot> | [1,2,3,*Exception: Prelude.head: empty list |
2022-07-18 21:08:08 +0200 | <dlock> | so where i used head there i could have also had access to the neighbours in the tail |
2022-07-18 21:08:17 +0200 | <dlock> | which is how to do "convolutions" |
2022-07-18 21:08:33 +0200 | <dlock> | which is what this neighbour access of pointer comonad duplication enables |
2022-07-18 21:09:24 +0200 | <dlock> | > fmap (\(x:y:_) -> (x+y) / 2) $ tails [1,2,3] |
2022-07-18 21:09:26 +0200 | <lambdabot> | [1.5,2.5,*Exception: <interactive>:3:7-27: Non-exhaustive patterns in lambda |
2022-07-18 21:10:04 +0200 | <dlock> | this is much more cool when you have the actual tree zipper as the pointer |
2022-07-18 21:10:17 +0200 | <dlock> | then you can get nd euclidean grid neighbours etc |
2022-07-18 21:11:11 +0200 | <dlock> | i really wanted to try and write up the project with someone, but i ended up running out of time |
2022-07-18 21:11:47 +0200 | NaturalNumber | (~monadam@137.229.82.64) |
2022-07-18 21:11:47 +0200 | <dlock> | probably people would be more enticed if i could do the paperwork to release research funding |
2022-07-18 21:12:08 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 21:12:36 +0200 | <dlock> | problem is with the "theres a phd in it for someone", is its just my phd that i never wrote up! |
2022-07-18 21:12:44 +0200 | <dlock> | its not like they would actually do the resaech |
2022-07-18 21:12:55 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2022-07-18 21:13:25 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2022-07-18 21:13:43 +0200 | <dlock> | but idk how edkmett gets like half the haskell comunity to consolodate his code deep within the compiler, and mine gets used in list compilers and pretty much nowhere else |
2022-07-18 21:14:01 +0200 | <dlock> | like, even haskell seems to have forgotten the theoretical foundations of turing machines and stuff |
2022-07-18 21:14:19 +0200 | <dlock> | "we listen to church, only church, none of his other colluges were doing anything like this" |
2022-07-18 21:14:58 +0200 | <dlock> | so list gets built around it, and haskell as an alternative to lisp like languages (like rust?) |
2022-07-18 21:15:28 +0200 | <dlock> | totally forgets all the seti stuff, as if, just having list concatination and lazy evaluation as central concepts will somehow forge its reverse engineering |
2022-07-18 21:15:53 +0200 | <dlock> | which obviously worked like a charm, but like, theres still nothing more than the clock implementation of it to actually use |
2022-07-18 21:16:17 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-18 21:16:38 +0200 | <dlock> | i have a real problem getting people to help, because some of them are boud by some weird form of conflict of interest |
2022-07-18 21:17:16 +0200 | <dlock> | "because we are supposed to encourage you to have good ideas, not insert ideas of our own" |
2022-07-18 21:17:27 +0200 | coot | (~coot@213.134.190.95) (Quit: coot) |
2022-07-18 21:17:51 +0200 | <dlock> | so when i actually need help writing up a project or getting it on hackage there are some people that it would be great if they could help but they seem to cant |
2022-07-18 21:18:42 +0200 | <dlock> | im not sure how ed managed to direct so much resources to lenses |
2022-07-18 21:18:45 +0200 | <dlock> | and im glad they work |
2022-07-18 21:18:58 +0200 | <merijn> | He didn't, he just build it first and people showed up :p |
2022-07-18 21:19:19 +0200 | <geekosaur> | he didn;t even build it first, he just built it better |
2022-07-18 21:19:20 +0200 | <dlock> | right, but i walked you all through this seti stuff over the course of like, half my life, and what? |
2022-07-18 21:19:23 +0200 | <geekosaur> | fclabels was first |
2022-07-18 21:19:28 +0200 | <monochrom> | At this point this is just becoming sour grape. |
2022-07-18 21:19:40 +0200 | <merijn> | geekosaur: Well, profunctor optics was a first |
2022-07-18 21:19:48 +0200 | <dlock> | im not right to be astonished by this? |
2022-07-18 21:20:01 +0200 | <merijn> | geekosaur: the earlier Van Laarhoven lenses were hardly as powerful or comparable |
2022-07-18 21:20:10 +0200 | <dlock> | i mean, sure lisp is groovy etc |
2022-07-18 21:20:22 +0200 | <dlock> | i dont mean to sound bummed out |
2022-07-18 21:20:28 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) (Remote host closed the connection) |
2022-07-18 21:20:34 +0200 | <dlock> | just my results get likke strewn |
2022-07-18 21:20:44 +0200 | <Bulby[m]> | wdym lisp is groovy, they are completely different langs |
2022-07-18 21:21:04 +0200 | <dlock> | and i think dismissing this significant indicator for a treasure hunt, well, might just be how i ended up sour about it |
2022-07-18 21:21:42 +0200 | <dlock> | Bulby: im not really sure of how lisp arose, but it has an interesting history with the development of lambda calculus and the stuff to do with list comprehensions |
2022-07-18 21:22:02 +0200 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:2da3:f583:8579:9c6f) |
2022-07-18 21:22:20 +0200 | <monochrom> | I also want to submit a rectification. |
2022-07-18 21:22:29 +0200 | <Bulby[m]> | that was a joke but it wasn't very funny 🥲 |
2022-07-18 21:22:30 +0200 | <monochrom> | s/walked you all through/monologued/ |
2022-07-18 21:22:54 +0200 | <dlock> | acknowledged |
2022-07-18 21:23:02 +0200 | <dlock> | im not sure if this is supposed to sound disparaging |
2022-07-18 21:23:06 +0200 | <int-e> | . o O ( The Rectifier, the upcoming TV series ) |
2022-07-18 21:23:17 +0200 | <dlock> | im aware of certain constraints |
2022-07-18 21:23:21 +0200 | <monochrom> | edk is engaging, you are not. edk is coherent, you are not. |
2022-07-18 21:23:36 +0200 | <dlock> | as above |
2022-07-18 21:23:50 +0200 | <merijn> | monochrom: You forgot "edk has been doing this for over 2 decades" |
2022-07-18 21:24:02 +0200 | <dlock> | he had a good supervising prof too |
2022-07-18 21:24:12 +0200 | <dlock> | but yeah, having a decade headstart |
2022-07-18 21:24:16 +0200 | <dlock> | ontop of mine... |
2022-07-18 21:24:24 +0200 | <monochrom> | Wait what? He doesn't have a Phd, never went to grad school, no? |
2022-07-18 21:24:35 +0200 | <dlock> | sorry, i get the ideas all backwards |
2022-07-18 21:24:56 +0200 | <dlock> | wait, really, but hes super smart, id presume he had like enough phds for everyone |
2022-07-18 21:25:15 +0200 | <monochrom> | There's where he's also wise, not just smart. |
2022-07-18 21:25:25 +0200 | <monochrom> | Don't bother with PhD. |
2022-07-18 21:25:42 +0200 | <dlock> | yeah, but, to entice, with the funding, and the survival etc |
2022-07-18 21:26:04 +0200 | <monochrom> | He has a real industrial job. |
2022-07-18 21:26:07 +0200 | <dlock> | i told my phd supervisor id get better assistance on welfare, he was like "good" |
2022-07-18 21:26:26 +0200 | <dlock> | the IP dispute put me in hospital |
2022-07-18 21:27:15 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds) |
2022-07-18 21:27:16 +0200 | <dlock> | so then i give away all this valuvle, or like, invalble stuff into the public arena, and its described as a nuisance |
2022-07-18 21:27:37 +0200 | <dlock> | given what i saw from the industry, i dont see it as in good faith |
2022-07-18 21:28:11 +0200 | <geekosaur> | this is not really the place for that kind of discussion |
2022-07-18 21:28:18 +0200 | <dlock> | sure |
2022-07-18 21:28:20 +0200 | <dlock> | appologies |
2022-07-18 21:28:27 +0200 | geekosaur | looks back for the last place actual haskell was mentioned… |
2022-07-18 21:28:37 +0200 | <maerwald[m]> | IP dispute? |
2022-07-18 21:28:40 +0200 | <dlock> | interestingly, it was thanks to that phd |
2022-07-18 21:28:59 +0200 | <dlock> | maerwald: a younger version of myself didnt understand you cant own the canonical algorithm |
2022-07-18 21:29:14 +0200 | <monochrom> | Ugh maerwald[m], please don't restart that... |
2022-07-18 21:29:29 +0200 | <maerwald[m]> | Oops |
2022-07-18 21:29:31 +0200 | <monochrom> | At this point the only way to win is not to play. |
2022-07-18 21:29:44 +0200 | <dlock> | yeah, thanks mate |
2022-07-18 21:30:03 +0200 | <monochrom> | Pretend you never saw that monologue. |
2022-07-18 21:30:13 +0200 | <dlock> | burn your moniter |
2022-07-18 21:30:31 +0200 | <maerwald[m]> | I only have one, yikes |
2022-07-18 21:30:41 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-18 21:31:24 +0200 | <dlock> | did anyone see the film with charlie sheen doing the search for extra-terrestrials? |
2022-07-18 21:31:40 +0200 | <geekosaur> | --> offtopic, I think |
2022-07-18 21:31:41 +0200 | <monochrom> | Are you done? |
2022-07-18 21:31:52 +0200 | <dlock> | yikes! ofc! |
2022-07-18 21:33:42 +0200 | <maerwald[m]> | Getting too invested in open source or academia isn't good for mental health |
2022-07-18 21:33:43 +0200 | <int-e> | Oh was there a mueval question... I don't know whether this has been said, but one important reason for using an external process apart from better sandboxing is catching runaway computations (infinite loops); doing that in Haskell inside the lambdabot process is rather unreliable. (It would require -fno-omit-yields or whatever that's called). It also decouples lambdabot's own GC from whatever... |
2022-07-18 21:33:49 +0200 | <int-e> | ...people throw at @run. |
2022-07-18 21:34:04 +0200 | <geekosaur> | that's the flag, yes |
2022-07-18 21:34:15 +0200 | <geekosaur> | and as you noted, still isn't very reliable |
2022-07-18 21:34:31 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2022-07-18 21:35:02 +0200 | <monochrom> | "no-omit" is just one typo away from "no-emit" :) |
2022-07-18 21:35:02 +0200 | mc47 | (~mc47@xmonad/TheMC47) |
2022-07-18 21:35:17 +0200 | <monochrom> | I think it's why I keep misreading it. (Not that I need it often.) |
2022-07-18 21:36:05 +0200 | <monochrom> | oh hey maybe I can call myself okmott and confuse everyone :) |
2022-07-18 21:36:24 +0200 | Pickchea | (~private@user/pickchea) |
2022-07-18 21:36:40 +0200 | jumper149 | (~jumper149@base.felixspringer.xyz) |
2022-07-18 21:36:49 +0200 | <int-e> | monochrom: or you could do what I did and anticipate somebody picking a very similar nick years later. |
2022-07-18 21:37:17 +0200 | <int-e> | @seen int-index |
2022-07-18 21:37:17 +0200 | <lambdabot> | I haven't seen int-index. |
2022-07-18 21:37:29 +0200 | <int-e> | oh. been a while then :-/ |
2022-07-18 21:37:39 +0200 | <geekosaur> | not been seen on libera |
2022-07-18 21:37:46 +0200 | <monochrom> | Maybe they didn't make it to libera, yeah. |
2022-07-18 21:38:04 +0200 | <dlock> | int-e: thats interesting thanks |
2022-07-18 21:38:18 +0200 | <dlock> | id like to try to put together a working mueval example |
2022-07-18 21:38:22 +0200 | Morrow | (~Morrow@192.114.91.213) (Ping timeout: 244 seconds) |
2022-07-18 21:38:29 +0200 | <monochrom> | Some #haskell-tw regulars haven't shown up on libera either. |
2022-07-18 21:38:32 +0200 | <dlock> | but there isnt much i can share my time constraints over |
2022-07-18 21:40:12 +0200 | <int-e> | There's the mueval executable that comes in the same package. I forgot how much code that is though. (I also didn't catch up on the discussion above, I only saw the keyword pop up) |
2022-07-18 21:43:46 +0200 | coot | (~coot@213.134.190.95) |
2022-07-18 21:44:27 +0200 | <dlock> | id like to express something that i would normally with a backpack signature |
2022-07-18 21:44:46 +0200 | <dlock> | i actually have the type i need, though it is parametric in nats |
2022-07-18 21:45:23 +0200 | <dlock> | (List (n::Nat) Double,List (n::Nat) Double) -> (List (n::Nat) Double,List (n::Nat) Double) |
2022-07-18 21:45:53 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 21:46:17 +0200 | <dlock> | the user should implement this as if it were a class or more like if it were a signature, in a seperate module |
2022-07-18 21:46:35 +0200 | <dlock> | which is read in as a text file to interpret the function |
2022-07-18 21:46:51 +0200 | jmorris | (uid537181@id-537181.uxbridge.irccloud.com) |
2022-07-18 21:47:03 +0200 | <dlock> | and typechecked to ensure it has the correct type, so that a read instance will not result in error |
2022-07-18 21:47:44 +0200 | <dlock> | eg they should not have used the wrong n |
2022-07-18 21:48:39 +0200 | <dlock> | for a simple example just interpreting an implementation of the identity function would do |
2022-07-18 21:50:03 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) (Remote host closed the connection) |
2022-07-18 21:50:15 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-18 21:50:29 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) |
2022-07-18 21:53:00 +0200 | nightbreak | nightbreak[Away] |
2022-07-18 21:55:18 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 264 seconds) |
2022-07-18 21:56:38 +0200 | <dlock> | somthing like this; https://paste.tomsmeding.com/sd4WMNSv |
2022-07-18 21:56:51 +0200 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-07-18 21:57:57 +0200 | <dlock> | except without importing the package, hang on |
2022-07-18 22:00:17 +0200 | <dlock> | more like this; https://paste.tomsmeding.com/pKzvnD2m |
2022-07-18 22:01:37 +0200 | <dlock> | i think i will have trouble with the readFunction function? |
2022-07-18 22:02:29 +0200 | <dlock> | does it need to read it into some intermediate type that isnt a pure function type? |
2022-07-18 22:03:20 +0200 | Morrow | (~Morrow@192.114.91.213) |
2022-07-18 22:03:35 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 22:03:39 +0200 | <dlock> | like this? https://paste.tomsmeding.com/F8FFbqhj |
2022-07-18 22:07:52 +0200 | <dlock> | or this? https://paste.tomsmeding.com/POhP2z6m |
2022-07-18 22:11:04 +0200 | nightbreak[Away] | nightbreak |
2022-07-18 22:12:10 +0200 | chronon | (~chronon@user/chronon) |
2022-07-18 22:12:12 +0200 | <dlock> | ok, excelent! i find this; https://kseo.github.io/posts/2017-01-19-fun-with-hint.html |
2022-07-18 22:15:59 +0200 | nate4 | (~nate@98.45.169.16) |
2022-07-18 22:21:05 +0200 | nate4 | (~nate@98.45.169.16) (Ping timeout: 255 seconds) |
2022-07-18 22:22:51 +0200 | maroloccio | (~marolocci@37.100.36.239) (Quit: WeeChat 3.0) |
2022-07-18 22:23:06 +0200 | Kaiepi | (~Kaiepi@156.34.47.253) (Read error: Connection reset by peer) |
2022-07-18 22:30:15 +0200 | _ht | (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection) |
2022-07-18 22:32:13 +0200 | merijn | (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
2022-07-18 22:40:02 +0200 | notzmv | (~zmv@user/notzmv) |
2022-07-18 22:40:29 +0200 | coot | (~coot@213.134.190.95) (Quit: coot) |
2022-07-18 22:41:29 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2022-07-18 22:44:23 +0200 | jumper149 | (~jumper149@base.felixspringer.xyz) (Quit: WeeChat 3.5) |
2022-07-18 22:48:32 +0200 | christiansen | (~christian@83-95-137-75-dynamic.dk.customer.tdc.net) (Ping timeout: 255 seconds) |
2022-07-18 22:51:41 +0200 | zeenk | (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) |
2022-07-18 22:58:01 +0200 | coot | (~coot@213.134.190.95) |
2022-07-18 22:58:54 +0200 | merijn | (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) |
2022-07-18 22:59:08 +0200 | hasbae | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (WeeChat 3.5) |
2022-07-18 22:59:33 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-07-18 22:59:40 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 23:00:37 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-07-18 23:02:44 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 23:03:38 +0200 | <yin> | how do the gloss and brick libraries compare? has anyone used both? |
2022-07-18 23:05:10 +0200 | <qrpnxz> | the two seem nothing to do with one another? |
2022-07-18 23:05:11 +0200 | <geekosaur> | that's an … odd comparison |
2022-07-18 23:05:17 +0200 | nightbreak | nightbreak[Away] |
2022-07-18 23:05:25 +0200 | <geekosaur> | they're both UI libraries but gloss is OpenGL and brick is tty |
2022-07-18 23:05:36 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 272 seconds) |
2022-07-18 23:06:22 +0200 | Kaiepi | (~Kaiepi@156.34.47.253) |
2022-07-18 23:06:36 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-07-18 23:07:01 +0200 | <qrpnxz> | i wouldn't call gloss a UI lib. Seems to be a a graphics lib |
2022-07-18 23:07:34 +0200 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
2022-07-18 23:08:24 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-18 23:08:52 +0200 | marcusxavier | (~marcusxav@2804:6660:ff12:ef70:7969:d3db:8f91:5149) |
2022-07-18 23:08:54 +0200 | <marcusxavier> | Hi |
2022-07-18 23:09:06 +0200 | <qrpnxz> | ugh, is there no way to 'pattern" match on Succ of type level Nat? |
2022-07-18 23:09:07 +0200 | <Rembane> | Hi marcusxavier! |
2022-07-18 23:09:13 +0200 | <qrpnxz> | marcusxavier: hello |
2022-07-18 23:09:35 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) (Ping timeout: 272 seconds) |
2022-07-18 23:09:44 +0200 | <marcusxavier> | I tried to improve my code using the tips that Axman6 gave me. Is still something that I can improve in this code? https://gist.github.com/MarcusXavierr/a91253b0fccf5ae2684bf4bfa7771c21 |
2022-07-18 23:11:46 +0200 | Katarushisu | (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) |
2022-07-18 23:11:52 +0200 | <qrpnxz> | can't immediately think of anything |
2022-07-18 23:12:34 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 23:12:44 +0200 | coot | (~coot@213.134.190.95) (Quit: coot) |
2022-07-18 23:17:03 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-07-18 23:17:34 +0200 | pavonia | (~user@user/siracusa) |
2022-07-18 23:19:11 +0200 | ente | ente` |
2022-07-18 23:19:53 +0200 | segfaultfizzbuzz | (~segfaultf@157-131-253-58.fiber.dynamic.sonic.net) |
2022-07-18 23:21:02 +0200 | coot | (~coot@213.134.190.95) |
2022-07-18 23:22:03 +0200 | coot | (~coot@213.134.190.95) (Client Quit) |
2022-07-18 23:22:28 +0200 | Cale | (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) |
2022-07-18 23:29:29 +0200 | cosimone | (~user@93-44-186-171.ip98.fastwebnet.it) |
2022-07-18 23:30:31 +0200 | nehsou^ | (~nehsou@12.187.69.131) (Remote host closed the connection) |
2022-07-18 23:30:38 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-07-18 23:32:34 +0200 | merijn | (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 244 seconds) |
2022-07-18 23:37:21 +0200 | John_Ivan | (~John_Ivan@user/john-ivan/x-1515935) |
2022-07-18 23:38:23 +0200 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-07-18 23:39:56 +0200 | mjs2600 | (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
2022-07-18 23:40:47 +0200 | <dlock> | here is the thing! https://paste.tomsmeding.com/grDaqD1t |
2022-07-18 23:43:17 +0200 | y04nn | (~y04nn@2001:ac8:28:95::a17e) |
2022-07-18 23:44:12 +0200 | michalz | (~michalz@185.246.204.93) (Read error: Connection reset by peer) |
2022-07-18 23:44:42 +0200 | rodental | (~rodental@38.146.5.222) (Remote host closed the connection) |
2022-07-18 23:44:57 +0200 | codaraxis__ | (~codaraxis@user/codaraxis) |
2022-07-18 23:45:07 +0200 | rodental | (~rodental@38.146.5.222) |
2022-07-18 23:46:14 +0200 | merijn | (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) |
2022-07-18 23:47:30 +0200 | marcusxavier | (~marcusxav@2804:6660:ff12:ef70:7969:d3db:8f91:5149) (Ping timeout: 240 seconds) |
2022-07-18 23:47:58 +0200 | codaraxis | (~codaraxis@user/codaraxis) (Ping timeout: 240 seconds) |
2022-07-18 23:48:30 +0200 | takuan | (~takuan@178.116.218.225) (Remote host closed the connection) |
2022-07-18 23:50:38 +0200 | merijn | (~merijn@c-001-001-023.client.esciencecenter.eduvpn.nl) (Ping timeout: 244 seconds) |
2022-07-18 23:51:59 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2022-07-18 23:57:09 +0200 | yauhsien | (~yauhsien@61-231-22-68.dynamic-ip.hinet.net) |
2022-07-18 23:58:17 +0200 | <qrpnxz> | had to bite the bullet and just define my own naturals from scratch :/ wasn't too bad tho |
2022-07-18 23:58:30 +0200 | <dlock> | sorry, that had a typo; https://paste.tomsmeding.com/aWYc9QtL |
2022-07-18 23:58:57 +0200 | <dlock> | qrpnxz: yes, the Nats packaged with GHC cant be easily matched on in classes |
2022-07-18 23:59:23 +0200 | <dlock> | data Nat = S Nat | Z |
2022-07-18 23:59:33 +0200 | <geekosaur> | there are some plugins that can help, I think |