2022-08-07 00:01:22 +0200 | <monochrom> | I believe that the status quo is already the least worst. |
2022-08-07 00:01:26 +0200 | <erisco> | I see this all the time in designing computer systems... for example, "user" might refer to a human interacting with the system, or it might refer to a username, or it might refer to a table row, or an object class, and so on |
2022-08-07 00:02:39 +0200 | <monochrom> | Consider the alternative: "The integers are an abstract type that supports the following API and obeys the following axioms". You will be left with no audience at all. |
2022-08-07 00:03:35 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-08-07 00:03:45 +0200 | <monochrom> | With "an integer is a bunch of bits/digits" you at least can retain some audience and you can tell the abstract reality later. |
2022-08-07 00:04:37 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-07 00:04:39 +0200 | <erisco> | it is a lure... I know ones and zeros, and if so if an integer is just a collection of those, it can't be so hard |
2022-08-07 00:05:10 +0200 | geekosaur | eyes "CFG" suspiciously |
2022-08-07 00:05:49 +0200 | <geekosaur> | emotion is unlikely to ever boil down to anything so simple |
2022-08-07 00:06:10 +0200 | <monochrom> | I know how to teach queues abstractly, i.e., without referring to any model such as "a linked list and you may only front-add and back-delete". I know no one actually does that, not even myself. There is a reason. |
2022-08-07 00:06:14 +0200 | <erisco> | obv... emotion can only be described with an attribute grammar |
2022-08-07 00:07:41 +0200 | <erisco> | I dunno monochrom, I feel like this sort of reductionism can be a curse |
2022-08-07 00:08:27 +0200 | <qrpnxz> | i've never seen "user" refer to username, or table row, or object class. I thought you were going to say it can refer to a human, or also to some computer client |
2022-08-07 00:08:42 +0200 | <geekosaur> | I have |
2022-08-07 00:08:50 +0200 | <geekosaur> | but I used to be a DBA |
2022-08-07 00:08:59 +0200 | <erisco> | you have never seen a users table or a User class? |
2022-08-07 00:09:32 +0200 | <qrpnxz> | Well User pretty distinct form user :), i guess what was missing is the context. |
2022-08-07 00:09:55 +0200 | merijn | (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) |
2022-08-07 00:09:56 +0200 | phma | (~phma@host-67-44-208-54.hnremote.net) (Read error: Connection reset by peer) |
2022-08-07 00:10:05 +0200 | <monochrom> | I've never seen an OOP programmer who doesn't use the word "car" to refer to an in-memory imposter object that pretends to be a car. >:) |
2022-08-07 00:10:17 +0200 | phma | (~phma@host-67-44-208-54.hnremote.net) |
2022-08-07 00:10:38 +0200 | nattiestnate | (~nate@180.243.13.242) |
2022-08-07 00:11:16 +0200 | <erisco> | there is something that seems better about more fundamental descriptions... more real, or more informed, more advanced, etc... it has merit in physics I think but it doesn't translate the same to mathematics, or to computer science by extension, and I think that is where the harm comes from |
2022-08-07 00:11:22 +0200 | <monochrom> | Oh hey to be fair, I have never seen a Haskell programmer who doesn't use the word "Person" to refer to "data Person = Person { ...}" which is a record type not a person. >:) |
2022-08-07 00:11:22 +0200 | <qrpnxz> | monochrom: btw, ...abstract reality? That sounds oxymoronic xD |
2022-08-07 00:11:59 +0200 | <geekosaur> | no? some ways rerality is the ultimate abstraction |
2022-08-07 00:12:08 +0200 | <darkling> | Have a look at the http-range-14 arguments some time. :) |
2022-08-07 00:12:11 +0200 | <qrpnxz> | to me reality is the opposite of abstraction |
2022-08-07 00:12:20 +0200 | <monochrom> | When I teach the State monad I also say "the fantasy of mutable state" and "the mathematical reality" >:) |
2022-08-07 00:12:26 +0200 | <qrpnxz> | reality is as specific as you get, sample of one, unique |
2022-08-07 00:12:35 +0200 | <qrpnxz> | all abstraction is extracting a pattern out of that |
2022-08-07 00:12:48 +0200 | <monochrom> | Right? "Reality" means whatever I define it to mean! |
2022-08-07 00:12:56 +0200 | <geekosaur> | you might look at how well that worked for robotics |
2022-08-07 00:13:20 +0200 | <geekosaur> | abstraction turned out to be necessary, becayuse treating everything as a concrete one-off lost hard |
2022-08-07 00:14:06 +0200 | michalz | (~michalz@185.246.204.87) (Remote host closed the connection) |
2022-08-07 00:14:21 +0200 | nattiestnate | (~nate@180.243.13.242) (Client Quit) |
2022-08-07 00:14:40 +0200 | nattiestnate | (~nate@180.243.13.242) |
2022-08-07 00:15:32 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::d5f2) (Ping timeout: 244 seconds) |
2022-08-07 00:15:44 +0200 | <monochrom> | But more concretely (pun!), in the case of trying to describe an "integer type", suppose you are given Haskell 2020 without the Data.Bits module. Then Haskell's "Integer type" is truly an abstract type, you are not given access to its representation, you may only use a puny API such as read, (+), show. Your reality is abstract. |
2022-08-07 00:15:56 +0200 | <monochrom> | Err Haskell 2010! |
2022-08-07 00:16:01 +0200 | <EvanR> | you can have many mutually incompatible realities coexisting for whatever reason |
2022-08-07 00:16:11 +0200 | <erisco> | I shy away from "abstraction" anymore because it suggests something illusory, and that is not what I intend |
2022-08-07 00:16:21 +0200 | <monochrom> | (There is no "Haskell 2020 The Pandemic Special Edition" haha) |
2022-08-07 00:16:27 +0200 | kyborg2011 | (~kyborg201@host-176-36-215-61.b024.la.net.ua) |
2022-08-07 00:16:40 +0200 | <qrpnxz> | arguable even bits respects ADT, because you can think it only pulls bits from "where they should be". You can implement bits for something that didn't have bits. |
2022-08-07 00:17:01 +0200 | <EvanR> | I'm doubling down on abstraction any time I mean "stuff I care about" and this is not literally everything in sight |
2022-08-07 00:17:22 +0200 | <monochrom> | I have begun to tell students "it's telephone games all the way down". |
2022-08-07 00:17:26 +0200 | acidjnk | (~acidjnk@p200300d6e7058605e481051ccd0ab90b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-08-07 00:17:28 +0200 | <qrpnxz> | noooo |
2022-08-07 00:17:37 +0200 | <EvanR> | and it's annoying when someone comes to a conclusion that we care about everything in sight |
2022-08-07 00:18:02 +0200 | JimL | (~quassel@89-162-2-132.fiber.signal.no) |
2022-08-07 00:18:33 +0200 | <monochrom> | Strictly technicality speaking, as far as science has found, the only reality for computing is the quantum world. But what's the fun in that? |
2022-08-07 00:18:37 +0200 | <darkling> | There are multiple abstractions, depending on who you're talking to and what they do with the ideas. |
2022-08-07 00:18:48 +0200 | <EvanR> | if you begin from pure constructions and move toward a solution from nothing, it's impossible to care about everything ever, much easier xD |
2022-08-07 00:18:58 +0200 | <darkling> | The difficulties come when two of those domains collide, and you've got to make sense of both at the same time. |
2022-08-07 00:19:15 +0200 | <monochrom> | Anything above the quantum level is a fictional abstraction, by definition. |
2022-08-07 00:19:35 +0200 | <EvanR> | quantum physics is its own perfectly cromulent abstraction |
2022-08-07 00:19:36 +0200 | zanyan | (~zanyan@2a02:6b64:f194:0:d0c7:84be:16ed:9f2a) |
2022-08-07 00:19:40 +0200 | <qrpnxz> | sure? i've seen above the quantum level, never seen below it. |
2022-08-07 00:19:41 +0200 | <darkling> | I'm pretty sure quantum mechanics is a poor abstraction, too. We just haven't worked out what of yet. |
2022-08-07 00:19:45 +0200 | <monochrom> | And also a social construct! |
2022-08-07 00:20:14 +0200 | <zanyan> | Hey there! Was wondering whether I could get some help on a Haskell project I'm working on? The modules don't seem to be loading |
2022-08-07 00:20:35 +0200 | <qrpnxz> | could you be more specific |
2022-08-07 00:20:43 +0200 | <zanyan> | Well I'm using this http://learn.hfm.io/fractals/fractals.html to try and draw some recursive fractal code |
2022-08-07 00:20:52 +0200 | kyborg2011 | (~kyborg201@host-176-36-215-61.b024.la.net.ua) (Ping timeout: 245 seconds) |
2022-08-07 00:20:54 +0200 | PiDelport | (uid25146@id-25146.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2022-08-07 00:21:22 +0200 | EvanR | (~EvanR@user/evanr) (Quit: Leaving) |
2022-08-07 00:21:27 +0200 | <qrpnxz> | lol |
2022-08-07 00:21:39 +0200 | <qrpnxz> | sorry guy, i don't have a mac |
2022-08-07 00:21:47 +0200 | <zanyan> | no no, I don't have one either |
2022-08-07 00:21:52 +0200 | nattiestnate | (~nate@180.243.13.242) (Quit: WeeChat 3.6) |
2022-08-07 00:22:06 +0200 | <zanyan> | I don't think you need one(?...) |
2022-08-07 00:22:18 +0200 | <zanyan> | or wait, do you? which would probably explain why none of the code is working |
2022-08-07 00:23:17 +0200 | <geekosaur[m]> | Looks to me like it uses cabal v1 |
2022-08-07 00:23:39 +0200 | <qrpnxz> | "Run GHCi inside the Fractals.hsproj directory after downloading and unpacking. Then, load the Fractals module" |
2022-08-07 00:23:43 +0200 | <qrpnxz> | did you do that? |
2022-08-07 00:23:57 +0200 | <zanyan> | yup, ran GHCi in the directory, and loaded the fractals module |
2022-08-07 00:24:04 +0200 | <geekosaur[m]> | Things don't work that way with cabal v3, you need to create a project |
2022-08-07 00:24:09 +0200 | <zanyan> | but when I did, it said no modules loaded |
2022-08-07 00:24:23 +0200 | <zanyan> | right right, thank you! |
2022-08-07 00:24:42 +0200 | <geekosaur[m]> | Dependencies won't be found otherwise |
2022-08-07 00:24:53 +0200 | <zanyan> | I'm trying to find some nice interactive tutorials on haskell... it's a shame this tut is outdated then |
2022-08-07 00:25:01 +0200 | <qrpnxz> | hoogle says you need https://hackage.haskell.org/package/Rasterific and https://hackage.haskell.org/package/JuicyPixels |
2022-08-07 00:25:17 +0200 | <zanyan> | I'm applying to universities so I thought it would it be neat to learn some functional programming ahead of time |
2022-08-07 00:25:17 +0200 | <qrpnxz> | you can get those with `cabal install --lib [namehere]` |
2022-08-07 00:25:25 +0200 | <geekosaur[m]> | You could also force v1 but we got rid of it for very good reason |
2022-08-07 00:25:26 +0200 | <zanyan> | alright I'll try that! |
2022-08-07 00:25:27 +0200 | <qrpnxz> | zanyan: neat! |
2022-08-07 00:25:45 +0200 | <zanyan> | (well, I'm still unsure whether I want to do Econ or CS but still :P) |
2022-08-07 00:26:04 +0200 | <monochrom> | Do both. |
2022-08-07 00:26:15 +0200 | <qrpnxz> | lol |
2022-08-07 00:26:24 +0200 | <zanyan> | oh, if only I could |
2022-08-07 00:26:27 +0200 | <monochrom> | We need more programmers who understand and accept that a lot of programming decisions are economical. |
2022-08-07 00:26:29 +0200 | <qrpnxz> | why not |
2022-08-07 00:26:36 +0200 | <qrpnxz> | haha |
2022-08-07 00:26:51 +0200 | <qrpnxz> | super combo: actuarial science + CS |
2022-08-07 00:27:03 +0200 | <zanyan> | Unfortunately the universities in the UK do not offer it :( |
2022-08-07 00:27:09 +0200 | <qrpnxz> | ???? |
2022-08-07 00:27:15 +0200 | <zanyan> | well, econ + cs |
2022-08-07 00:27:17 +0200 | <qrpnxz> | who doesn't offer econ |
2022-08-07 00:27:32 +0200 | <qrpnxz> | what? You can't do two degrees in UK? |
2022-08-07 00:27:32 +0200 | <zanyan> | oh, many offer econ, but not many offer a joint degree of econ and cs |
2022-08-07 00:27:49 +0200 | <zanyan> | well, I'm 17 so I'm going to be an undergrad. I can only pick one at the moment |
2022-08-07 00:28:22 +0200 | <zanyan> | @qr |
2022-08-07 00:28:22 +0200 | <lambdabot> | Maybe you meant: wn v url src rc pl id do bf arr @ ? . |
2022-08-07 00:28:31 +0200 | <monochrom> | I have a feeling that if you go for a game theory degree then it's one degree but it does both economics and CS. |
2022-08-07 00:28:38 +0200 | <zanyan> | uhhh yeah installing the libraries again doesn't do much |
2022-08-07 00:29:11 +0200 | <zanyan> | monochrom oh yeah, I love reading about game theory |
2022-08-07 00:29:24 +0200 | <zanyan> | https://github.com/Zzzayaan/the_prisoners_dilemma/blob/main/the_prisoners_dilemma.ipynb (here's my little notebook where I've looked into it) |
2022-08-07 00:29:56 +0200 | coot | (~coot@213.134.176.158) (Quit: coot) |
2022-08-07 00:30:21 +0200 | <erisco> | what job does an economist hold after graduating? I am wondering if it is like CS where you learn propositional logic and how to balance AVL trees to then write HTTP handlers than shuffle JSON around for the next 30 years |
2022-08-07 00:30:28 +0200 | <zanyan> | I feel like I would have a better chance of getting into a good university for econ though, we at least have an economics teacher. Unfortunately I haven't studied CS yet and we have no support for the subject |
2022-08-07 00:30:57 +0200 | <zanyan> | erisco well a lot go into IB and consultancy |
2022-08-07 00:31:18 +0200 | <zanyan> | I suppose a lot head into the public sector too |
2022-08-07 00:32:56 +0200 | jgeerds | (~jgeerds@55d46bad.access.ecotel.net) (Quit: Leaving) |
2022-08-07 00:33:05 +0200 | kyborg2011 | (~kyborg201@host-176-36-215-61.b024.la.net.ua) |
2022-08-07 00:33:22 +0200 | <qrpnxz> | loading the file work just fine for me after cabal installing the libs |
2022-08-07 00:33:26 +0200 | jgeerds | (~jgeerds@55d46bad.access.ecotel.net) |
2022-08-07 00:34:11 +0200 | <zanyan> | really? |
2022-08-07 00:34:18 +0200 | <qrpnxz> | yes |
2022-08-07 00:34:21 +0200 | <zanyan> | I'll try do it again |
2022-08-07 00:35:05 +0200 | <zanyan> | `cabal install --lib JuicyPixels` and `cabal install --lib Rasterific` right? |
2022-08-07 00:35:16 +0200 | <zanyan> | then cd into the directory |
2022-08-07 00:35:32 +0200 | <geekosaur> | I think you need to be in the directory |
2022-08-07 00:35:48 +0200 | <zanyan> | oh, cd first and load them then? |
2022-08-07 00:35:55 +0200 | <geekosaur> | so the environment file containing those libraries is available to it |
2022-08-07 00:36:11 +0200 | <zanyan> | alright, that's where I might've been wrong |
2022-08-07 00:37:01 +0200 | <zanyan> | no, still getting the error :/ |
2022-08-07 00:37:30 +0200 | niko | (niko@libera/staff/niko) (Ping timeout: 615 seconds) |
2022-08-07 00:37:42 +0200 | <zanyan> | after installing them in the directory, I run ghci and then do `:l Fractals.hs` and that's where I see the "Failed, no modules loaded" dialogue |
2022-08-07 00:38:03 +0200 | <geekosaur> | there should be more errors before that, can you pastebin them? |
2022-08-07 00:38:08 +0200 | <geekosaur> | @where paste |
2022-08-07 00:38:08 +0200 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
2022-08-07 00:38:08 +0200 | <zanyan> | will do |
2022-08-07 00:38:45 +0200 | <zanyan> | https://paste.tomsmeding.com/jYK8CNdd |
2022-08-07 00:39:07 +0200 | <erisco> | zanyan, maybe your intersection is automated trading |
2022-08-07 00:39:35 +0200 | <zanyan> | aha, I'm not sure. I've told my school I want to do CS at Oxford |
2022-08-07 00:39:49 +0200 | <geekosaur> | so you have it installed in the environment twice and that's confusing ghci |
2022-08-07 00:39:57 +0200 | <zanyan> | but if I feel like I would like to switch to Econ, then Cambridge is probably the better choice for me |
2022-08-07 00:40:11 +0200 | <zanyan> | geekosaur ah right, how would I go about fixing that? |
2022-08-07 00:40:19 +0200 | noteness | (~noteness@user/noteness) (Remote host closed the connection) |
2022-08-07 00:40:22 +0200 | <erisco> | academically, I know profs involved with economic simulations |
2022-08-07 00:41:19 +0200 | <geekosaur> | there should be a file .ghc.environment.<platform>-<ghcversion> in that directory |
2022-08-07 00:41:41 +0200 | noteness | (~noteness@user/noteness) |
2022-08-07 00:41:46 +0200 | <geekosaur> | so for example I have a .ghc.environment.x86_64-linux-9.2.2 |
2022-08-07 00:41:51 +0200 | <erisco> | there aint all that much for programmers that doesn't intersect with another discipline |
2022-08-07 00:42:04 +0200 | <geekosaur> | edit that file and look for duplicate lines |
2022-08-07 00:42:17 +0200 | <geekosaur> | or lines that only differ in the hash |
2022-08-07 00:42:29 +0200 | <geekosaur> | or remove the file completely and `cabal install --lib` again |
2022-08-07 00:42:46 +0200 | <zanyan> | hmmm, alright, I'll try do that now, thanks! |
2022-08-07 00:43:02 +0200 | merijn | (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2022-08-07 00:44:45 +0200 | <zanyan> | okay well I created a new directory with a fresh copy of those .hs project files |
2022-08-07 00:44:49 +0200 | <zanyan> | would that work? |
2022-08-07 00:45:13 +0200 | <geekosaur> | yes. a bit silly since everything else is okay, just that environment file needs to be regenerated properly |
2022-08-07 00:46:11 +0200 | <zanyan> | I couldn't find that file for some reason |
2022-08-07 00:47:20 +0200 | <geekosaur> | hm. possibly it's in the global environment then, in which case it needs to be removed from there |
2022-08-07 00:47:53 +0200 | <zanyan> | yeah, I'll try do that since I'm getting the same message |
2022-08-07 00:48:18 +0200 | <geekosaur> | ~/.ghc/<platform>-<ghcver>/environments |
2022-08-07 00:48:30 +0200 | <geekosaur> | I think it's a file default in that directory |
2022-08-07 00:48:59 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2022-08-07 00:50:52 +0200 | JimL | (~quassel@89-162-2-132.fiber.signal.no) (Quit: No Ping reply in 180 seconds.) |
2022-08-07 00:51:41 +0200 | qrpnxz | (~qrpnxz@fsf/member/qrpnxz) (Ping timeout: 244 seconds) |
2022-08-07 00:52:05 +0200 | JimL | (~quassel@89-162-2-132.fiber.signal.no) |
2022-08-07 00:52:30 +0200 | qrpnxz | (~qrpnxz@fsf/member/qrpnxz) |
2022-08-07 00:54:01 +0200 | <zanyan> | ah, it's proving to be a pain |
2022-08-07 00:54:17 +0200 | <zanyan> | I'm using windows so I'm not sure how different that'll be for linux systems |
2022-08-07 00:56:42 +0200 | aeka | (~aeka@user/hiruji) (Ping timeout: 245 seconds) |
2022-08-07 00:57:39 +0200 | aeka | (~aeka@2606:6080:1001:17:9ea4:71f9:d294:d7b7) |
2022-08-07 01:01:02 +0200 | <geekosaur> | hrm. 9.2.2 at least only documents unix paths for environment files 😞 |
2022-08-07 01:03:21 +0200 | hgolden | (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) |
2022-08-07 01:06:42 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds) |
2022-08-07 01:08:43 +0200 | <zanyan> | oh well, maybe it's a sign I shouldn't work on this project lol |
2022-08-07 01:08:51 +0200 | Midjak | (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
2022-08-07 01:08:55 +0200 | <qrpnxz> | idk why even after you said you never programmed and don't use mac, i just assume you are on linux lol. You poor soul |
2022-08-07 01:09:04 +0200 | <zanyan> | (maybe it's a sign I should go study Econ instead???) |
2022-08-07 01:09:12 +0200 | <zanyan> | haha it's fine! |
2022-08-07 01:09:17 +0200 | <qrpnxz> | it's a sign programming not trivial :) |
2022-08-07 01:09:42 +0200 | <zanyan> | I have programmed a little - I used Python here when discussing some game theory https://github.com/Zzzayaan/the_prisoners_dilemma/blob/main/the_prisoners_dilemma.ipynb |
2022-08-07 01:09:56 +0200 | <zanyan> | very very simple python algorithms but yeah that's about it |
2022-08-07 01:10:37 +0200 | <qrpnxz> | i think about the very first thing i played with (after bash) was python, but went immediately to C |
2022-08-07 01:11:01 +0200 | <zanyan> | interesting choice |
2022-08-07 01:11:22 +0200 | <zanyan> | my first programming language wasn't a language at all, I just got experienced at messing with actionscript bytecode |
2022-08-07 01:11:35 +0200 | <qrpnxz> | i think best choice, personally (for learning) |
2022-08-07 01:11:43 +0200 | <zanyan> | after that it's pretty much been tinkering |
2022-08-07 01:12:37 +0200 | <qrpnxz> | C don't have many very good online resources but i made do. Later I learned about the K&R C book and it's my go to recommend. Excellent book |
2022-08-07 01:12:47 +0200 | <zanyan> | I don't think I have time to learn C in depth within this month though |
2022-08-07 01:12:58 +0200 | <zanyan> | I have to send my application off by October |
2022-08-07 01:13:27 +0200 | <qrpnxz> | with the book you could learn pretty good C in a month easy i think. As to whether that gives any advantage for some college application, i have no idea |
2022-08-07 01:14:05 +0200 | <zanyan> | It might do, depends if I have enough time to apply that knowledge somewhere (maybe binary exploitation?) |
2022-08-07 01:14:47 +0200 | JimL | (~quassel@89-162-2-132.fiber.signal.no) (Ping timeout: 252 seconds) |
2022-08-07 01:14:54 +0200 | <geekosaur> | more like making trivially exploitable binaries, if you;re learningf from K&R |
2022-08-07 01:15:02 +0200 | <geekosaur> | it's a book from an earlier age |
2022-08-07 01:15:12 +0200 | <zanyan> | oh right |
2022-08-07 01:15:55 +0200 | JimL | (~quassel@89-162-2-132.fiber.signal.no) |
2022-08-07 01:16:24 +0200 | <zanyan> | it's going to be pretty weird using it on Windows though. Heard Linux is a very C-friendly OS |
2022-08-07 01:16:39 +0200 | <zanyan> | I suppose WSL exists for a reason though |
2022-08-07 01:16:46 +0200 | <erisco> | C is the 101 at my uni |
2022-08-07 01:17:01 +0200 | <qrpnxz> | erisco: what uni? |
2022-08-07 01:17:04 +0200 | <qrpnxz> | nice |
2022-08-07 01:17:17 +0200 | <erisco> | university of windsor (canada) |
2022-08-07 01:17:20 +0200 | <zanyan> | nice |
2022-08-07 01:17:35 +0200 | <qrpnxz> | zanyan: linux is generally programming friendly. I consider windows to be generally not technical user friendly |
2022-08-07 01:18:11 +0200 | <zanyan> | I want to apply to Oxford, Imperial, UCL, St Andrews and Durham if I'll be applying for CS. For economics, probably Cambridge, LSE, UCL, Imperial and Kings |
2022-08-07 01:18:27 +0200 | <zanyan> | qrpnxz Gotchu |
2022-08-07 01:19:22 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-08-07 01:19:22 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-08-07 01:19:22 +0200 | wroathe | (~wroathe@user/wroathe) |
2022-08-07 01:20:57 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-07 01:22:37 +0200 | <erisco> | I wonder if schools should update C to Rust |
2022-08-07 01:24:01 +0200 | <qrpnxz> | i doubt it. C is much simpler, and the direct memory manipulation is very informative. But I would be in support of doing Rust shortly after C |
2022-08-07 01:26:26 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 255 seconds) |
2022-08-07 01:30:05 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-08-07 01:30:57 +0200 | zanyan | (~zanyan@2a02:6b64:f194:0:d0c7:84be:16ed:9f2a) (Quit: Client closed) |
2022-08-07 01:33:19 +0200 | <erisco> | the memory manipulation with Assembly is better |
2022-08-07 01:38:25 +0200 | <qrpnxz> | i disagree |
2022-08-07 01:38:44 +0200 | <qrpnxz> | math is too much of a pain in assembly |
2022-08-07 01:39:07 +0200 | <qrpnxz> | C at least have expressions |
2022-08-07 01:40:28 +0200 | <erisco> | math in assembly is alright if you are good at towers of honoi :P |
2022-08-07 01:40:38 +0200 | <qrpnxz> | lmao |
2022-08-07 01:41:28 +0200 | <monochrom> | Schools will not update C to Rust if Unix does not update C to Rust. |
2022-08-07 01:43:13 +0200 | <erisco> | the number of profs for who C was a breakthrough will only decrease, and I think that will lead to its academic extinction... but likely no sooner |
2022-08-07 01:44:03 +0200 | <monochrom> | No. As long as all OSes are written in C, C will not go extinct. The standard OS course must still use C. |
2022-08-07 01:44:51 +0200 | <monochrom> | Show me an OS written in Rust or C++ or Go, and maybe you will have marginally a case of using it for an OS course. |
2022-08-07 01:45:05 +0200 | <erisco> | Chrome OS |
2022-08-07 01:45:15 +0200 | <monochrom> | Until then your anti-C ideology does not matter. |
2022-08-07 01:45:45 +0200 | <erisco> | apparently is Linux-based... that was my best shot |
2022-08-07 01:45:49 +0200 | <monochrom> | And I don't see why "breakthrough" is relevant. |
2022-08-07 01:46:32 +0200 | <monochrom> | Undergrad curricula are not about teaching breakthroughs in the first place. |
2022-08-07 01:46:56 +0200 | <monochrom> | Binary search trees are no longer a breakthrough, that's why it's taught. Similarly for C. |
2022-08-07 01:47:19 +0200 | <monochrom> | If anything it's the real breakthroughs such as Clojure or Lean that is not taught. |
2022-08-07 01:47:52 +0200 | <monochrom> | Or the polynomial-time primality algorithm. |
2022-08-07 01:48:43 +0200 | <qrpnxz> | well, ocaml does have a "app as operating system" thing, which is pretty bloody sick actually, but idk how that's entirely relevant to your point mono :) |
2022-08-07 01:50:18 +0200 | kyborg2011 | (~kyborg201@host-176-36-215-61.b024.la.net.ua) (Quit: Leaving) |
2022-08-07 01:50:33 +0200 | <monochrom> | I teach a Unix course and I have a lot of ideological friends who are fascinated by C++ or Rust and ask me why I am still sticking to C in that course. |
2022-08-07 01:50:38 +0200 | <erisco> | I don't know if an OS course needs to be mandatory |
2022-08-07 01:50:39 +0200 | <monochrom> | Dude, it's a Unix course. |
2022-08-07 01:50:39 +0200 | kyborg2011 | (~kyborg201@host-176-36-215-61.b024.la.net.ua) |
2022-08-07 01:51:46 +0200 | <erisco> | and I know some profs teach based on what they personally find cool |
2022-08-07 01:51:54 +0200 | <qrpnxz> | Unix course should be mandatory imo |
2022-08-07 01:52:17 +0200 | <qrpnxz> | where unix means linux of course, but if you stick to posix i'm ok too |
2022-08-07 01:52:18 +0200 | <erisco> | so, that is why I think, over time, as profs contemporary with the advent and rise of C retire, that particular bias will diminish |
2022-08-07 01:53:02 +0200 | jgeerds | (~jgeerds@55d46bad.access.ecotel.net) (Ping timeout: 240 seconds) |
2022-08-07 01:53:33 +0200 | kyborg2011 | (~kyborg201@host-176-36-215-61.b024.la.net.ua) (Remote host closed the connection) |
2022-08-07 01:53:58 +0200 | <erisco> | I think C is Crappy compared to some more modern languages |
2022-08-07 01:53:59 +0200 | <qrpnxz> | if there are no more unix profs left, we are in dire straits |
2022-08-07 01:54:04 +0200 | <monochrom> | If it's any consolation for you, in an alternate universe where Unix loses to the Mac Classic, their MacOS course uses Pascal, because that's how you make MacOS syscalls there. |
2022-08-07 01:54:40 +0200 | kyborg2011 | (~kyborg201@host-176-36-215-61.b024.la.net.ua) |
2022-08-07 01:54:44 +0200 | <geekosaur> | or original windows |
2022-08-07 01:55:08 +0200 | <qrpnxz> | idk much about pascal except it's about same level as C and that it does some possibly cringy call by name, but really i'm ignorant |
2022-08-07 01:55:12 +0200 | <geekosaur> | C API for syscalls dodn't come along until win32 |
2022-08-07 01:55:48 +0200 | <monochrom> | Algol had call by name, Pascal doesn't. |
2022-08-07 01:56:14 +0200 | <monochrom> | Pascal has call by reference. But C++ does too. And less cringy than C's "pass me your pointer". |
2022-08-07 01:58:28 +0200 | <monochrom> | If you want to make C irrelevant, you must first make Unix irrelevant. |
2022-08-07 01:58:35 +0200 | <monochrom> | But good luck with that. |
2022-08-07 01:58:51 +0200 | <erisco> | I already think it can be made irrelevant |
2022-08-07 01:59:14 +0200 | <monochrom> | Seeing that no data centre runs PalmOS or something. |
2022-08-07 01:59:26 +0200 | kyborg2011 | (~kyborg201@host-176-36-215-61.b024.la.net.ua) (Ping timeout: 268 seconds) |
2022-08-07 01:59:56 +0200 | <geekosaur> | even Microsoft failed to make Unix irrelevant |
2022-08-07 01:59:58 +0200 | <erisco> | OSes are a specialisation... once upon a time, they were an intimate partner for any programming activity |
2022-08-07 02:00:32 +0200 | <erisco> | but today I don't think their role is as noticed |
2022-08-07 02:00:59 +0200 | <erisco> | you might as well teach AWS in place of Unix |
2022-08-07 02:01:24 +0200 | <qrpnxz> | aws runs on linux, so still relevant |
2022-08-07 02:01:39 +0200 | dcoutts__ | (~duncan@host86-150-18-57.range86-150.btcentralplus.com) |
2022-08-07 02:01:43 +0200 | <qrpnxz> | just because you don't own the machine doesn't mean the os disapeared |
2022-08-07 02:02:04 +0200 | <geekosaur> | and you can't run aws on your desktop |
2022-08-07 02:02:21 +0200 | merijn | (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) |
2022-08-07 02:02:35 +0200 | <geekosaur> | or your laptop |
2022-08-07 02:02:42 +0200 | <qrpnxz> | indeed lol |
2022-08-07 02:02:46 +0200 | <erisco> | AWS is full of serverless, uh, services... which is what I am more so referring to |
2022-08-07 02:03:43 +0200 | <geekosaur> | and you can just ignore all the rest? |
2022-08-07 02:03:48 +0200 | <erisco> | yes |
2022-08-07 02:03:52 +0200 | <geekosaur> | no |
2022-08-07 02:04:09 +0200 | <monochrom> | See, this is why when I say "ideology" it's a derogatory term. |
2022-08-07 02:04:12 +0200 | <erisco> | well, you can, you don't need to know anything about unix or any OS to use aws |
2022-08-07 02:04:22 +0200 | dcoutts_ | (~duncan@host86-153-247-178.range86-153.btcentralplus.com) (Ping timeout: 268 seconds) |
2022-08-07 02:04:26 +0200 | <monochrom> | Ideology blinds you of reality or even plain reason. |
2022-08-07 02:04:29 +0200 | <geekosaur> | you still can't run aws on your lapto[ |
2022-08-07 02:05:39 +0200 | <erisco> | my point is that there are other specialised environments in which you can build and execute programs, and you could be just as focused on one of those and not unix |
2022-08-07 02:06:00 +0200 | <qrpnxz> | erisco: but most of your coding still happen on your computer because aws is expensive and not set up as a programming IDE. The ideal in fact is if your desktop is running what aws is running as closely as possible, which would mean running linux lol |
2022-08-07 02:06:08 +0200 | <geekosaur> | show me the laptop running aws and I might concede your point. until then it's irrelevant |
2022-08-07 02:06:30 +0200 | <geekosaur> | mostly because of what qrpnxz just said |
2022-08-07 02:06:31 +0200 | <erisco> | I don't really understand what my laptop has to do with it |
2022-08-07 02:06:41 +0200 | <erisco> | I don't need to know unix to know how to use my laptop, even if it is running unix |
2022-08-07 02:06:50 +0200 | <monochrom> | Pretty sure Amazon wants to keep their AWS implementation a secret and not let your computer run it. :) |
2022-08-07 02:07:37 +0200 | <erisco> | I think I can get by without knowing about PCBs or scheduling or CPU rings |
2022-08-07 02:07:38 +0200 | <qrpnxz> | programming for a computer you don't have is like programming without a compiler, and then paying 5$ to build it. Terrible. |
2022-08-07 02:07:44 +0200 | <geekosaur> | they also want to be able to hiure people who can develop and maintain it, which means they must know unix |
2022-08-07 02:07:51 +0200 | <monochrom> | You don't need a CS degree to use your laptop. By your logic, universities can cancel all their CS programs now. |
2022-08-07 02:08:03 +0200 | causal | (~user@50.35.83.177) (Quit: WeeChat 3.6) |
2022-08-07 02:09:07 +0200 | <monochrom> | I dare you to generalize from "we should top teaching C" to "we should stop teaching CS altogether". At least I would respect the epicness of that argument. :) |
2022-08-07 02:10:15 +0200 | <erisco> | I don't see C as necessary in a CS program, even if it is the lingua franca of OS programmers, because I don't see OSes as necessary in a CS program |
2022-08-07 02:10:24 +0200 | <qrpnxz> | lmao mono |
2022-08-07 02:12:23 +0200 | <qrpnxz> | C is like the antidote to learning Python. If all you know is python you are totally screwed up. Should be illegal to know python and not know C. (Better yet no python at all, but this is a compromise 🙂) |
2022-08-07 02:13:27 +0200 | <monochrom> | Oh hey we have a prof at my school who successfully did that. |
2022-08-07 02:13:52 +0200 | <erisco> | I think it should be illegal to only know Java |
2022-08-07 02:14:00 +0200 | <qrpnxz> | monochrom: did what |
2022-08-07 02:14:23 +0200 | <erisco> | put that in your AbstractObservableVisitorFactory and smoke it |
2022-08-07 02:14:36 +0200 | <monochrom> | So, previously, our CS101 and CS102 both used Python. The prof managed to convince us to change to: CS102 should use C. |
2022-08-07 02:14:50 +0200 | <qrpnxz> | epic |
2022-08-07 02:15:20 +0200 | <erisco> | I think after I graduated our intro courses were changed to Python too actually oO |
2022-08-07 02:15:34 +0200 | <erisco> | C is already on the ropes |
2022-08-07 02:15:37 +0200 | <monochrom> | I am in favour. (Not to say I actually had a vote; I didn't, still don't.) I have seen how Python convinced students that, for example, copying a string is O(1)-time. |
2022-08-07 02:16:16 +0200 | <monochrom> | I told the prof "Ideally I would prefer Pascal but I can take a compromise too" :) |
2022-08-07 02:16:21 +0200 | adanwan_ | (~adanwan@gateway/tor-sasl/adanwan) |
2022-08-07 02:16:27 +0200 | <qrpnxz> | lol |
2022-08-07 02:16:49 +0200 | <monochrom> | united front for Profs Against Python, right? >:) |
2022-08-07 02:16:50 +0200 | <erisco> | a string is the fundamental unit of measure for any dynamic programmer, so O(1) follows naturally |
2022-08-07 02:17:01 +0200 | <qrpnxz> | hahaha |
2022-08-07 02:17:24 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 268 seconds) |
2022-08-07 02:18:43 +0200 | Jeanne-Kamikaze | (~Jeanne-Ka@142.147.89.248) (Quit: Leaving) |
2022-08-07 02:19:09 +0200 | <monochrom> | But yeah "C as antidote to Python" is what the prof (and me and some others) thought, though we didn't think of wording it like that. |
2022-08-07 02:20:08 +0200 | <monochrom> | But were you aware that python is also a snake species, so "antidote" can be a pun there? :) |
2022-08-07 02:21:19 +0200 | <erisco> | monochrom, actually, now that I think of it, our OS course was also taught in Java, lmao... |
2022-08-07 02:21:44 +0200 | <erisco> | no joke, you had the option of either doing it in C, or doing it make-believe in Java |
2022-08-07 02:24:22 +0200 | <erisco> | I think because some programs had the OS course but not the entry C courses... for whatever reason |
2022-08-07 02:27:11 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
2022-08-07 02:31:16 +0200 | wroathe | (~wroathe@user/wroathe) (Quit: Lost terminal) |
2022-08-07 02:32:50 +0200 | <qrpnxz> | monochrom: oh yeah! |
2022-08-07 02:33:43 +0200 | <monochrom> | Nice. Took me a while to see that. :) |
2022-08-07 02:34:59 +0200 | <erisco> | what is Python other than a timid attempt at making Ruby? |
2022-08-07 02:35:28 +0200 | <erisco> | which I have not heard a word of for many years now... is it still a thing? I still have to suffer active record in every ORM I have to use |
2022-08-07 02:35:50 +0200 | <monochrom> | Did Ruby predate Python? |
2022-08-07 02:35:54 +0200 | <geekosaur> | no |
2022-08-07 02:36:36 +0200 | <geekosaur> | python 1.0 and perl 3.0 (first public releases of each) came out at the same time |
2022-08-07 02:36:38 +0200 | <monochrom> | But I don't think of either Python or Ruby as timid. |
2022-08-07 02:36:42 +0200 | merijn | (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 245 seconds) |
2022-08-07 02:37:07 +0200 | gurkenglas | (~gurkengla@p548ac3ba.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
2022-08-07 02:37:28 +0200 | <geekosaur> | ruby started out as a perl knock-off with some smalltalk features |
2022-08-07 02:37:48 +0200 | <monochrom> | Both are heavily opinionated, I can only imagine their creators to be egomaniacs. |
2022-08-07 02:37:50 +0200 | <geekosaur> | but by ruby 2.0 most of the perl-isms were deprecated |
2022-08-07 02:37:53 +0200 | <erisco> | my understanding is Python strived to be an OOP, but fell short by having a few non-object values, a weakness that Ruby fixed |
2022-08-07 02:38:35 +0200 | <erisco> | Python did not have the bravery to make numbers assignable |
2022-08-07 02:39:00 +0200 | <monochrom> | Well it has the bravery to say no to FP. |
2022-08-07 02:39:23 +0200 | geekosaur | is still highly annoyed that in a language that wants so badly to be OO, strings are appended with + |
2022-08-07 02:39:27 +0200 | <erisco> | what are decorators other than a timid attempt at function composition, a staple FP feature |
2022-08-07 02:40:00 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-07 02:41:24 +0200 | <monochrom> | OK, in the following sense C does not have the bravery to say no to FP. It has ?: . C compilers do not refuse TCO. |
2022-08-07 02:42:10 +0200 | <monochrom> | GvR had the bravery to say no to the former for a long time, and still say no to TCO. In both cases explicitly stating "this is not FP". |
2022-08-07 02:42:29 +0200 | <monochrom> | And still have the bravery to keep lambda castrated. |
2022-08-07 02:43:34 +0200 | <erisco> | this reminds me of how surprised I was to see inline function syntax added to Java |
2022-08-07 02:44:12 +0200 | <erisco> | they just couldn't keep lying about the superiority of inline classes any longer |
2022-08-07 02:44:12 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds) |
2022-08-07 02:49:53 +0200 | <qrpnxz> | i mean, anon classes are pretty nice, and in fact the lambda syntax is just a super neat sugar the exact same feature. Fits like a glove. |
2022-08-07 02:55:58 +0200 | <erisco> | I haven't been paying attention to Haskell closely for a couple years... anything big? |
2022-08-07 02:58:51 +0200 | <qrpnxz> | hard to say. Checkout the changelog of your favourite libs? |
2022-08-07 02:59:32 +0200 | <erisco> | I guess my question is almost synonymous with looking at Kmett's new packages |
2022-08-07 02:59:49 +0200 | <qrpnxz> | hahaha |
2022-08-07 03:00:06 +0200 | <qrpnxz> | lens change a lot, it's at 5.0.0 recently i think? |
2022-08-07 03:01:18 +0200 | <erisco> | they didn't really grip me until I studied the profunctor approach... and then I used them mainly to unwrap and wrap newtypes and not much else oO |
2022-08-07 03:05:24 +0200 | hgolden | (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Quit: Konversation terminated!) |
2022-08-07 03:05:54 +0200 | <geekosaur> | text and aeson both had major revs. ghc9 got linear types |
2022-08-07 03:07:10 +0200 | <qrpnxz> | oh yeah, text 2 is here pretty recently |
2022-08-07 03:07:13 +0200 | <qrpnxz> | now with utf8 finally |
2022-08-07 03:07:15 +0200 | hgolden | (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) |
2022-08-07 03:07:50 +0200 | Colere | (~colere@about/linux/staff/sauvin) (Ping timeout: 240 seconds) |
2022-08-07 03:08:07 +0200 | <geekosaur> | ghc 9.2 got LANGUAGE GHC2021 with a bunch of extensions turned on by default |
2022-08-07 03:08:32 +0200 | <qrpnxz> | was gonna bring that up and got distracted. https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/control.html |
2022-08-07 03:08:40 +0200 | <qrpnxz> | still had the link in my buffer lol |
2022-08-07 03:09:49 +0200 | Furor | (~colere@about/linux/staff/sauvin) |
2022-08-07 03:10:59 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-08-07 03:10:59 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-08-07 03:10:59 +0200 | wroathe | (~wroathe@user/wroathe) |
2022-08-07 03:11:02 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2022-08-07 03:11:03 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds) |
2022-08-07 03:12:18 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-07 03:17:10 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2022-08-07 03:19:12 +0200 | Sciencentistguy9 | (~sciencent@hacksoc/ordinary-member) |
2022-08-07 03:20:56 +0200 | codaraxis__ | (~codaraxis@user/codaraxis) |
2022-08-07 03:20:59 +0200 | Sciencentistguy | (~sciencent@hacksoc/ordinary-member) (Ping timeout: 268 seconds) |
2022-08-07 03:20:59 +0200 | Sciencentistguy9 | Sciencentistguy |
2022-08-07 03:23:46 +0200 | <erisco> | linear types might be fun |
2022-08-07 03:24:35 +0200 | codaraxis___ | (~codaraxis@user/codaraxis) (Ping timeout: 252 seconds) |
2022-08-07 03:32:53 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::d5f2) |
2022-08-07 03:34:07 +0200 | lemonsnicks | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 252 seconds) |
2022-08-07 03:35:20 +0200 | lemonsnicks | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
2022-08-07 03:35:22 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) (Remote host closed the connection) |
2022-08-07 03:36:46 +0200 | nilradical | (~nilradica@user/naso) |
2022-08-07 03:37:53 +0200 | neceve | (~quassel@2.26.93.14) |
2022-08-07 03:39:20 +0200 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 268 seconds) |
2022-08-07 03:47:19 +0200 | neceve | (~quassel@2.26.93.14) (Ping timeout: 252 seconds) |
2022-08-07 03:49:09 +0200 | lemonsnicks | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 252 seconds) |
2022-08-07 03:52:33 +0200 | Furor | Colere |
2022-08-07 03:57:36 +0200 | <albet70> | what SKI calculus is used for? |
2022-08-07 04:01:15 +0200 | <qrpnxz> | stack have any prebuilt way to display pretty graphs from benchmarks? Kind of a PITA to move this data to librecalc |
2022-08-07 04:01:47 +0200 | <qrpnxz> | i should just write a short program, i'm a programmer after all |
2022-08-07 04:03:30 +0200 | merijn | (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) |
2022-08-07 04:10:15 +0200 | <Cale> | albet70: It's not so much useful as it is an interesting thing to think about -- that 2 or 3 combinators are sufficient to encode computation. The types of S and K in a typed lambda calculus can be taken as axioms for intuitionistic logic (though usually most would prefer a presentation based on structural rules these days) |
2022-08-07 04:10:53 +0200 | <Cale> | albet70: also, they're closely related to Applicative: pure and (<*>) for the instance Applicative ((->) e) are exactly K and S |
2022-08-07 04:12:06 +0200 | frost | (~frost@user/frost) |
2022-08-07 04:12:18 +0200 | <Cale> | If you need something which is Turing complete and extremely simple, it can sometimes fit the bill, though there are a lot of those. |
2022-08-07 04:13:21 +0200 | mob | (~kvirc@62-11-5-95.dialup.tiscali.it) (Ping timeout: 252 seconds) |
2022-08-07 04:18:06 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2022-08-07 04:18:06 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2022-08-07 04:18:06 +0200 | finn_elija | FinnElija |
2022-08-07 04:19:55 +0200 | <albet70> | class SKI repr where app :: repr (a -> b) -> repr a -> repr b; s :: repr ((a -> b -> c) -> (a -> b) -> a -> c); k :: repr (a -> b -> a); i :: repr (a -> a); this s's type signature is like (<*>) @((->)_) :: (_ -> a -> b) -> (_ -> a) -> _ -> b |
2022-08-07 04:20:28 +0200 | <qrpnxz> | it makes sense because lambda calc is turing complete, and all S and K do is give you "computation with an implied environment". So if you make every single function argument as an implied argument in a reader monad, then bam, you have the same program but just using (<*>) and pure to deal with the environment that would otherwise be done with lambda abstractions |
2022-08-07 04:24:43 +0200 | waleee | (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 252 seconds) |
2022-08-07 04:27:15 +0200 | hgolden | (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Quit: Konversation terminated!) |
2022-08-07 04:28:51 +0200 | hgolden | (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) |
2022-08-07 04:35:26 +0200 | td_ | (~td@94.134.91.51) (Ping timeout: 240 seconds) |
2022-08-07 04:36:49 +0200 | merijn | (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds) |
2022-08-07 04:37:33 +0200 | td_ | (~td@94.134.91.67) |
2022-08-07 04:40:20 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) |
2022-08-07 04:42:48 +0200 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat) |
2022-08-07 04:42:53 +0200 | <edwardk> | erisco: re new packages: mostly spent some time puttering with stronger linear-logic in haskell, with supporting various unlifted data types with a somewhat modified prelude, recently trying to get something like egg ported over and failing several times to make it nice, and i still every once in a while keep dusting off the new distributive changes and trying to make a go at rewriting the whole package hierarchy |
2022-08-07 04:43:29 +0200 | <edwardk> | currently making a go at doing some of the typechecker like code i like to write in rust, we'll see how long that lasts. |
2022-08-07 04:43:51 +0200 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) |
2022-08-07 04:44:26 +0200 | mzan | (~quassel@mail.asterisell.com) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2022-08-07 04:45:40 +0200 | mzan | (~quassel@mail.asterisell.com) |
2022-08-07 04:46:21 +0200 | <erisco> | what is the typechecker code about? |
2022-08-07 04:52:10 +0200 | frost | (~frost@user/frost) (Quit: Client closed) |
2022-08-07 05:12:43 +0200 | frost | (~frost@user/frost) |
2022-08-07 05:15:04 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 268 seconds) |
2022-08-07 05:15:19 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 252 seconds) |
2022-08-07 05:20:00 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) (Ping timeout: 268 seconds) |
2022-08-07 05:21:02 +0200 | wroathe | (~wroathe@user/wroathe) (Quit: Lost terminal) |
2022-08-07 05:22:06 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-08-07 05:22:06 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-08-07 05:22:06 +0200 | wroathe | (~wroathe@user/wroathe) |
2022-08-07 05:23:05 +0200 | vglfr | (~vglfr@194.9.14.33) (Read error: Connection reset by peer) |
2022-08-07 05:23:57 +0200 | vglfr | (~vglfr@194.9.14.33) |
2022-08-07 05:31:16 +0200 | <erisco> | albet70, SKI doesn't use variables, which makes certain analyses and constructions much easier... variable scope, hygiene, etc, is complicated |
2022-08-07 05:35:17 +0200 | <erisco> | first you remove loops, then mutability, then variables... a hat trick to impress friends |
2022-08-07 05:41:35 +0200 | xff0x | (~xff0x@2405:6580:b080:900:5628:7137:a023:aad6) (Ping timeout: 255 seconds) |
2022-08-07 05:42:38 +0200 | xff0x | (~xff0x@2405:6580:b080:900:d33e:2826:e840:9afc) |
2022-08-07 05:43:26 +0200 | lemonsnicks | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
2022-08-07 05:49:56 +0200 | <albet70> | S is ap, K is const, I is id, right? |
2022-08-07 05:49:57 +0200 | <monochrom> | "First they remove your loops. Then they remove your mutability. Then they remove your variables. Then you win." :) |
2022-08-07 05:53:36 +0200 | <edwardk> | erisco: i spend a lot of time writing little toy typecheckers and the like, but this one is really about trying to see if i can put a better skin on enso.org's language |
2022-08-07 05:54:32 +0200 | <edwardk> | which requires some pretty nasty typechecking tricks to pull off, because you have a language with things like positional and named arguments, but also currying, basically there are like 4 places in the design of the type system that need something like row types |
2022-08-07 05:54:43 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2022-08-07 05:54:44 +0200 | <edwardk> | and one of them requires those row types to be able to be instantiated with polytypes |
2022-08-07 05:55:11 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2022-08-07 05:56:30 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2022-08-07 05:56:53 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2022-08-07 05:58:40 +0200 | <edwardk> | albet70: yes, i like to think of them in terms of the reader monad as well. S is like 'f <*> x' an application that takes an extra environment and plumbs it both ways. K ignores it (pure = const). I uses it (ask = id) |
2022-08-07 05:59:11 +0200 | <edwardk> | albet70: i wanted to say things with explicitly reader-like analogues, because then its clearer, mixing (<*>) with const and id makes it pretty hard to see the reader connections |
2022-08-07 05:59:34 +0200 | <edwardk> | otoh, pure and ask are pretty obscure if you just want to think of it in combinator terms =) |
2022-08-07 06:00:20 +0200 | <edwardk> | ok, simd bitvector for rust done, now i can actually get the succinct stuff i need done, and then i can finally get my catamorphisms out of the way |
2022-08-07 06:02:50 +0200 | merijn | (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) |
2022-08-07 06:04:39 +0200 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2022-08-07 06:05:34 +0200 | gmg | (~user@user/gehmehgeh) |
2022-08-07 06:16:19 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2022-08-07 06:22:25 +0200 | rembo10 | (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-08-07 06:23:25 +0200 | rembo10 | (~rembo10@main.remulis.com) |
2022-08-07 06:24:27 +0200 | nilradical | (~nilradica@user/naso) () |
2022-08-07 06:26:18 +0200 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2022-08-07 06:26:23 +0200 | vglfr | (~vglfr@194.9.14.33) (Read error: Connection reset by peer) |
2022-08-07 06:27:04 +0200 | vglfr | (~vglfr@194.9.14.33) |
2022-08-07 06:27:50 +0200 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 268 seconds) |
2022-08-07 06:28:50 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
2022-08-07 06:30:05 +0200 | paddymahoney | (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Read error: Connection reset by peer) |
2022-08-07 06:30:21 +0200 | <albet70> | are there some types instance of applicative but not functor? |
2022-08-07 06:31:54 +0200 | paddymahoney | (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) |
2022-08-07 06:33:25 +0200 | vglfr | (~vglfr@194.9.14.33) (Read error: Connection reset by peer) |
2022-08-07 06:33:40 +0200 | vglfr | (~vglfr@194.9.14.33) |
2022-08-07 06:37:05 +0200 | merijn | (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds) |
2022-08-07 06:40:02 +0200 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 245 seconds) |
2022-08-07 06:42:06 +0200 | <dolio> | No. |
2022-08-07 06:42:39 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2022-08-07 06:42:39 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2022-08-07 06:42:39 +0200 | finn_elija | FinnElija |
2022-08-07 06:43:32 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2022-08-07 06:44:04 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-08-07 06:51:17 +0200 | foul_owl | (~kerry@23.82.194.107) (Ping timeout: 245 seconds) |
2022-08-07 06:57:00 +0200 | <qrpnxz> | albet70: https://hackage.haskell.org/package/base-4.16.3.0/docs/Control-Applicative.html#v:liftA |
2022-08-07 06:57:38 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-07 07:01:45 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 268 seconds) |
2022-08-07 07:02:09 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-08-07 07:06:09 +0200 | vglfr | (~vglfr@194.9.14.33) |
2022-08-07 07:06:30 +0200 | <albet70> | and instance of functor but not applicative? |
2022-08-07 07:11:54 +0200 | mbuf | (~Shakthi@122.165.55.71) |
2022-08-07 07:18:08 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-07 07:18:26 +0200 | <absentia> | albet70: every functor gets an applicative "for free" |
2022-08-07 07:18:28 +0200 | <absentia> | https://hackage.haskell.org/package/free-5.1.9/docs/Control-Applicative-Free.html |
2022-08-07 07:19:34 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 268 seconds) |
2022-08-07 07:23:33 +0200 | notzmv | (~zmv@user/notzmv) |
2022-08-07 07:24:42 +0200 | <jackdk> | albet70: `Data.Map.Map k` is `Functor` and `Apply` (from `semigroupoids`) but not `Applicative` (no valid `pure`) |
2022-08-07 07:26:07 +0200 | myme1 | (~myme@2a01:799:d5a:cd00:f235:66bd:b223:d95e) (Ping timeout: 272 seconds) |
2022-08-07 07:26:59 +0200 | myme1 | (~myme@2a01:799:d5a:cd00:e0d6:bd5d:e9e6:2667) |
2022-08-07 07:27:02 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
2022-08-07 07:28:28 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) |
2022-08-07 07:28:28 +0200 | Vajb | (~Vajb@85-76-11-145-nat.elisa-mobile.fi) (Read error: Connection reset by peer) |
2022-08-07 07:28:40 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) |
2022-08-07 07:31:01 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-08-07 07:42:55 +0200 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 268 seconds) |
2022-08-07 07:43:49 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) (Ping timeout: 252 seconds) |
2022-08-07 07:51:04 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-08-07 07:52:55 +0200 | acidjnk | (~acidjnk@p200300d6e7058660dd6adf7799b0bbfd.dip0.t-ipconnect.de) |
2022-08-07 07:54:12 +0200 | vglfr | (~vglfr@194.9.14.33) |
2022-08-07 07:59:36 +0200 | Vajb | (~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014) |
2022-08-07 08:03:06 +0200 | rekahsoft | (~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca) |
2022-08-07 08:03:08 +0200 | merijn | (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) |
2022-08-07 08:05:57 +0200 | rekahsoft | (~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca) (Remote host closed the connection) |
2022-08-07 08:07:44 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) |
2022-08-07 08:09:43 +0200 | rekahsoft | (~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca) |
2022-08-07 08:10:05 +0200 | rekahsoft | (~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca) (Remote host closed the connection) |
2022-08-07 08:10:47 +0200 | rekahsoft | (~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca) |
2022-08-07 08:13:22 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2022-08-07 08:15:04 +0200 | titibandit | (~titibandi@xdsl-212-8-147-38.nc.de) |
2022-08-07 08:28:38 +0200 | noteness | (~noteness@user/noteness) (Ping timeout: 268 seconds) |
2022-08-07 08:37:32 +0200 | merijn | (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 245 seconds) |
2022-08-07 08:42:08 +0200 | Sujjek | (~Sujjek@90.95.10.128) |
2022-08-07 08:42:45 +0200 | <Sujjek> | Hi, how can I overcome the problem with cabal init "cabal: The name hopfield is already in use by another package on Hackage."? |
2022-08-07 08:43:02 +0200 | acidjnk | (~acidjnk@p200300d6e7058660dd6adf7799b0bbfd.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-08-07 08:43:22 +0200 | <absentia> | Sujjek: are you trying to install hopfield |
2022-08-07 08:43:27 +0200 | <absentia> | as a dependency of your project |
2022-08-07 08:43:32 +0200 | nilradical | (~nilradica@user/naso) |
2022-08-07 08:43:39 +0200 | <sclv> | Sujjek: use another name lol |
2022-08-07 08:44:21 +0200 | <Sujjek> | No |
2022-08-07 08:44:38 +0200 | <Sujjek> | It appears my cabal is outdated |
2022-08-07 08:44:54 +0200 | <absentia> | https://hackage.haskell.org/package/hopfield |
2022-08-07 08:45:24 +0200 | <Sujjek> | No my project is called hopfield |
2022-08-07 08:46:00 +0200 | <absentia> | Sujjek: that's what the error is saying |
2022-08-07 08:46:03 +0200 | <absentia> | it's already in use |
2022-08-07 08:46:08 +0200 | <absentia> | by the package linked |
2022-08-07 08:48:00 +0200 | <Sujjek> | I know |
2022-08-07 08:48:19 +0200 | <dsal> | Your query is confusing. Is https://hackage.haskell.org/package/hopfield your package? |
2022-08-07 08:48:41 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) |
2022-08-07 08:51:24 +0200 | <Sujjek> | No. `mkdir hopfield; cd hopfield; cabal init` >>> "cabal: The name hopfield is already in use by another package on Hackage." |
2022-08-07 08:51:43 +0200 | noteness | (~noteness@user/noteness) |
2022-08-07 08:52:02 +0200 | <Sujjek> | I just rm -rf ~/.cabal so it doesn't know the hackage packages and that let me create it |
2022-08-07 08:52:20 +0200 | <dsal> | Oh. I've not used cabal directly. That seems like it should be advisory. You wouldn't be able to publish something called `hopfield` but you should be able to make a project called that that you don't intend to publish. |
2022-08-07 08:54:17 +0200 | <absentia> | Sujjek: what cabal version |
2022-08-07 08:54:30 +0200 | <absentia> | oh guess you figured it out |
2022-08-07 08:55:47 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2022-08-07 08:56:42 +0200 | <Sujjek> | It's fixed in master https://github.com/haskell/cabal/issues/7909 |
2022-08-07 09:07:01 +0200 | Sujjek | (~Sujjek@90.95.10.128) (Remote host closed the connection) |
2022-08-07 09:07:12 +0200 | titibandit | (~titibandi@xdsl-212-8-147-38.nc.de) (Quit: Leaving.) |
2022-08-07 09:14:59 +0200 | gurkenglas | (~gurkengla@p548ac3ba.dip0.t-ipconnect.de) |
2022-08-07 09:17:53 +0200 | rekahsoft | (~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca) (Ping timeout: 268 seconds) |
2022-08-07 09:22:52 +0200 | nilradical | (~nilradica@user/naso) (Remote host closed the connection) |
2022-08-07 09:23:49 +0200 | nilradical | (~nilradica@user/naso) |
2022-08-07 09:23:55 +0200 | coot | (~coot@213.134.176.158) |
2022-08-07 09:25:45 +0200 | nilradical | (~nilradica@user/naso) (Remote host closed the connection) |
2022-08-07 09:26:05 +0200 | nilradical | (~nilradica@user/naso) |
2022-08-07 09:38:07 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-231.elisa-laajakaista.fi) |
2022-08-07 09:38:23 +0200 | nilradical | (~nilradica@user/naso) (Remote host closed the connection) |
2022-08-07 09:44:55 +0200 | cosimone | (~user@93-44-186-171.ip98.fastwebnet.it) (Remote host closed the connection) |
2022-08-07 09:45:06 +0200 | acidjnk | (~acidjnk@p200300d6e7058660e0ca873366cee89c.dip0.t-ipconnect.de) |
2022-08-07 09:52:07 +0200 | foul_owl | (~kerry@23.82.194.108) |
2022-08-07 09:53:11 +0200 | nilradical | (~nilradica@user/naso) |
2022-08-07 10:01:20 +0200 | merijn | (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) |
2022-08-07 10:02:25 +0200 | Kaipei | Kaiepi |
2022-08-07 10:03:26 +0200 | jargon | (~jargon@184.101.188.251) (Remote host closed the connection) |
2022-08-07 10:06:33 +0200 | mc47 | (~mc47@xmonad/TheMC47) |
2022-08-07 10:09:56 +0200 | JimL | (~quassel@89-162-2-132.fiber.signal.no) (Read error: Connection reset by peer) |
2022-08-07 10:10:07 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 252 seconds) |
2022-08-07 10:15:43 +0200 | JimL | (~quassel@89-162-2-132.fiber.signal.no) |
2022-08-07 10:21:20 +0200 | vglfr | (~vglfr@194.9.14.33) (Read error: Connection reset by peer) |
2022-08-07 10:21:30 +0200 | vglfr | (~vglfr@194.9.14.33) |
2022-08-07 10:24:59 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2022-08-07 10:27:13 +0200 | zeenk | (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) |
2022-08-07 10:27:32 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds) |
2022-08-07 10:38:39 +0200 | Midjak | (~Midjak@82.66.147.146) |
2022-08-07 10:42:33 +0200 | Midjak | (~Midjak@82.66.147.146) (Read error: Connection reset by peer) |
2022-08-07 10:43:29 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) (Ping timeout: 252 seconds) |
2022-08-07 10:45:46 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2022-08-07 10:46:10 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2022-08-07 10:46:50 +0200 | JimL | (~quassel@89-162-2-132.fiber.signal.no) (Ping timeout: 268 seconds) |
2022-08-07 10:48:17 +0200 | JimL | (~quassel@89-162-2-132.fiber.signal.no) |
2022-08-07 10:48:59 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-07 10:52:04 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-08-07 10:55:26 +0200 | acidjnk | (~acidjnk@p200300d6e7058660e0ca873366cee89c.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-08-07 11:00:22 +0200 | maroloccio | (~marolocci@62.98.94.196) |
2022-08-07 11:07:37 +0200 | elkcl_ | (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) |
2022-08-07 11:08:47 +0200 | elkcl | (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (Ping timeout: 245 seconds) |
2022-08-07 11:08:48 +0200 | elkcl_ | elkcl |
2022-08-07 11:11:08 +0200 | jgeerds | (~jgeerds@55d46bad.access.ecotel.net) |
2022-08-07 11:11:57 +0200 | kenran | (~kenran@200116b82b39570069e9463f1b15ab5c.dip.versatel-1u1.de) |
2022-08-07 11:13:26 +0200 | kenran | (~kenran@200116b82b39570069e9463f1b15ab5c.dip.versatel-1u1.de) (Client Quit) |
2022-08-07 11:14:39 +0200 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2022-08-07 11:14:39 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Read error: Connection reset by peer) |
2022-08-07 11:14:39 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Read error: Connection reset by peer) |
2022-08-07 11:14:39 +0200 | noteness | (~noteness@user/noteness) (Write error: Connection reset by peer) |
2022-08-07 11:15:19 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-08-07 11:15:28 +0200 | noteness | (~noteness@user/noteness) |
2022-08-07 11:15:34 +0200 | gmg | (~user@user/gehmehgeh) |
2022-08-07 11:15:43 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-08-07 11:25:21 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2022-08-07 11:26:59 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-08-07 11:33:50 +0200 | <pavonia> | Is there already a strict function to apply a function n times on a given value? |
2022-08-07 11:37:27 +0200 | <merijn> | pavonia: iterate' ? |
2022-08-07 11:38:47 +0200 | <pavonia> | Oh, didn't see there's a strict version of it |
2022-08-07 11:45:25 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-08-07 11:46:02 +0200 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 268 seconds) |
2022-08-07 11:47:53 +0200 | yaroot | (~yaroot@p3374048-ipngn8502souka.saitama.ocn.ne.jp) (Ping timeout: 268 seconds) |
2022-08-07 11:49:52 +0200 | nilradical | (~nilradica@user/naso) (Remote host closed the connection) |
2022-08-07 11:50:28 +0200 | nilradical | (~nilradica@user/naso) |
2022-08-07 11:52:00 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-08-07 11:52:37 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-08-07 11:56:08 +0200 | Cerins | (~Cerins@m90-128-49-116.cust.tele2.lv) |
2022-08-07 11:57:11 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
2022-08-07 11:57:39 +0200 | nilradical | (~nilradica@user/naso) (Remote host closed the connection) |
2022-08-07 11:57:52 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2022-08-07 11:58:40 +0200 | nilradical | (~nilradica@user/naso) |
2022-08-07 11:58:43 +0200 | nilradical | (~nilradica@user/naso) (Remote host closed the connection) |
2022-08-07 11:59:02 +0200 | nilradical | (~nilradica@user/naso) |
2022-08-07 12:03:13 +0200 | yaroot | (~yaroot@2400:4052:ac0:d900:680e:dbff:fe1e:4953) |
2022-08-07 12:04:39 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-07 12:04:57 +0200 | MajorBiscuit | (~MajorBisc@86-88-79-148.fixed.kpn.net) |
2022-08-07 12:06:47 +0200 | mbuf | (~Shakthi@122.165.55.71) (Quit: Leaving) |
2022-08-07 12:09:56 +0200 | MajorBiscuit | (~MajorBisc@86-88-79-148.fixed.kpn.net) (Ping timeout: 268 seconds) |
2022-08-07 12:11:41 +0200 | neceve | (~quassel@2.26.93.14) |
2022-08-07 12:12:24 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2022-08-07 12:18:33 +0200 | coot | (~coot@213.134.176.158) (Read error: Connection reset by peer) |
2022-08-07 12:18:42 +0200 | coot | (~coot@213.134.176.158) |
2022-08-07 12:19:07 +0200 | instantaphex | (~jb@c-73-171-252-84.hsd1.fl.comcast.net) |
2022-08-07 12:23:35 +0200 | instantaphex | (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 252 seconds) |
2022-08-07 12:26:31 +0200 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) |
2022-08-07 12:27:56 +0200 | yaroot | (~yaroot@2400:4052:ac0:d900:680e:dbff:fe1e:4953) (Ping timeout: 255 seconds) |
2022-08-07 12:29:38 +0200 | vglfr | (~vglfr@194.9.14.33) |
2022-08-07 12:34:21 +0200 | MajorBiscuit | (~MajorBisc@86-88-79-148.fixed.kpn.net) |
2022-08-07 12:36:18 +0200 | yaroot | (~yaroot@2400:4052:ac0:d900:680e:dbff:fe1e:4953) |
2022-08-07 12:38:59 +0200 | MajorBiscuit | (~MajorBisc@86-88-79-148.fixed.kpn.net) (Ping timeout: 252 seconds) |
2022-08-07 12:42:07 +0200 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 245 seconds) |
2022-08-07 12:44:04 +0200 | vglfr | (~vglfr@194.9.14.33) |
2022-08-07 12:53:18 +0200 | coot | (~coot@213.134.176.158) (Quit: coot) |
2022-08-07 12:53:30 +0200 | Cerins | (~Cerins@m90-128-49-116.cust.tele2.lv) (Read error: Connection reset by peer) |
2022-08-07 12:54:11 +0200 | Cerins | (~Cerins@m90-128-49-116.cust.tele2.lv) |
2022-08-07 12:54:24 +0200 | acidjnk | (~acidjnk@p200300d6e7058660e81ade68fca2dfc2.dip0.t-ipconnect.de) |
2022-08-07 12:54:46 +0200 | coot_ | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2022-08-07 12:57:35 +0200 | zeenk | (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!) |
2022-08-07 13:03:33 +0200 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 252 seconds) |
2022-08-07 13:04:04 +0200 | JimL | (~quassel@89-162-2-132.fiber.signal.no) (Quit: No Ping reply in 180 seconds.) |
2022-08-07 13:06:41 +0200 | JimL | (~quassel@89-162-2-132.fiber.signal.no) |
2022-08-07 13:07:57 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds) |
2022-08-07 13:09:13 +0200 | vglfr | (~vglfr@194.9.14.33) |
2022-08-07 13:09:32 +0200 | coot_ | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot_) |
2022-08-07 13:13:24 +0200 | ubert | (~Thunderbi@77.119.210.41.wireless.dyn.drei.com) |
2022-08-07 13:20:37 +0200 | nilradical | (~nilradica@user/naso) (Remote host closed the connection) |
2022-08-07 13:21:27 +0200 | nilradical | (~nilradica@user/naso) |
2022-08-07 13:21:42 +0200 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 245 seconds) |
2022-08-07 13:24:09 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-07 13:25:34 +0200 | Pickchea | (~private@user/pickchea) |
2022-08-07 13:26:17 +0200 | nilradical | (~nilradica@user/naso) (Ping timeout: 245 seconds) |
2022-08-07 13:28:14 +0200 | acidjnk | (~acidjnk@p200300d6e7058660e81ade68fca2dfc2.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-08-07 13:30:18 +0200 | vglfr | (~vglfr@194.9.14.33) |
2022-08-07 13:30:50 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) |
2022-08-07 13:34:00 +0200 | Cerins1 | (~Cerins@m90-128-49-116.cust.tele2.lv) |
2022-08-07 13:35:11 +0200 | Cerins1 | (~Cerins@m90-128-49-116.cust.tele2.lv) (Client Quit) |
2022-08-07 13:36:11 +0200 | Cerins | (~Cerins@m90-128-49-116.cust.tele2.lv) (Ping timeout: 252 seconds) |
2022-08-07 13:38:04 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-08-07 13:39:29 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 252 seconds) |
2022-08-07 13:43:46 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2022-08-07 13:45:40 +0200 | jgeerds | (~jgeerds@55d46bad.access.ecotel.net) (Ping timeout: 268 seconds) |
2022-08-07 13:46:05 +0200 | nilradical | (~nilradica@user/naso) |
2022-08-07 13:49:12 +0200 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 245 seconds) |
2022-08-07 13:54:20 +0200 | vglfr | (~vglfr@194.9.14.33) |
2022-08-07 13:54:49 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-08-07 13:59:51 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds) |
2022-08-07 14:01:17 +0200 | Cerins | (~Cerins@m90-128-49-116.cust.tele2.lv) |
2022-08-07 14:06:33 +0200 | joo-_ | (~joo-_@fsf/member/joo--) (Quit: leaving) |
2022-08-07 14:07:50 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2022-08-07 14:08:50 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-08-07 14:23:11 +0200 | rawles | (~x@user/rawles) |
2022-08-07 14:23:33 +0200 | vglfr | (~vglfr@194.9.14.33) (Read error: Connection reset by peer) |
2022-08-07 14:25:30 +0200 | joo-_ | (~joo-_@87-49-45-115-mobile.dk.customer.tdc.net) |
2022-08-07 14:25:30 +0200 | joo-_ | (~joo-_@87-49-45-115-mobile.dk.customer.tdc.net) (Changing host) |
2022-08-07 14:25:30 +0200 | joo-_ | (~joo-_@fsf/member/joo--) |
2022-08-07 14:27:25 +0200 | <rawles> | Can someone name this function for me? I have a list of values whose type I've defined as a record. The second field is a timestamp, and the same data can appear several times in this list. I want to take my sorted list and retain only the first element appearing for each timestamp. Any ideas for an elegant way to do this? |
2022-08-07 14:27:38 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
2022-08-07 14:28:10 +0200 | <rawles> | I could group them by timestamp, and take the head of each list, but maybe there's a nicer way. |
2022-08-07 14:28:50 +0200 | remedan | (~remedan@octo.cafe) (Read error: Connection reset by peer) |
2022-08-07 14:31:08 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-08-07 14:31:12 +0200 | <Cale> | That already sounds like a one-liner... |
2022-08-07 14:31:22 +0200 | acidjnk | (~acidjnk@p200300d6e705866035693c7955124d42.dip0.t-ipconnect.de) |
2022-08-07 14:32:19 +0200 | vglfr | (~vglfr@194.9.14.33) |
2022-08-07 14:32:34 +0200 | remedan | (~remedan@octo.cafe) |
2022-08-07 14:32:50 +0200 | <Cale> | map head . groupBy ((==) `on` fooTimestamp) |
2022-08-07 14:33:42 +0200 | <Cale> | or you could write a lambda there and it's not much longer |
2022-08-07 14:33:43 +0200 | <rawles> | Fantastic. Thanks Cale. I'll give that a go in a bit. |
2022-08-07 14:34:49 +0200 | <Cale> | head is guaranteed not to fail here because groupBy only ever produces nonempty groups, but if you're worried about how the code might evolve, using (\(x:_) -> x) is also an option (which will produce a more helpful error message at runtime if anyone ever gives it an empty list) |
2022-08-07 14:35:32 +0200 | kyborg2011 | (~kyborg201@host-176-36-215-61.b024.la.net.ua) |
2022-08-07 14:35:49 +0200 | <rawles> | Programming in Haskell at this stage is as much an self-education as it is creating code, so that sounds like a good habit. Thanks. |
2022-08-07 14:35:56 +0200 | kyborg2011 | (~kyborg201@host-176-36-215-61.b024.la.net.ua) (Remote host closed the connection) |
2022-08-07 14:36:48 +0200 | <absentia> | https://hackage.haskell.org/package/protolude-0.3.2/docs/Protolude-List.html |
2022-08-07 14:37:10 +0200 | kyborg2011 | (~kyborg201@host-176-36-215-61.b024.la.net.ua) |
2022-08-07 14:37:19 +0200 | <rawles> | oh nice! |
2022-08-07 14:39:26 +0200 | jmd_ | (~jmdaemon@user/jmdaemon) (Ping timeout: 240 seconds) |
2022-08-07 14:40:33 +0200 | Midjak | (~Midjak@82.66.147.146) |
2022-08-07 14:41:17 +0200 | kyborg2011 | (~kyborg201@host-176-36-215-61.b024.la.net.ua) (Ping timeout: 245 seconds) |
2022-08-07 14:58:13 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-07 14:59:37 +0200 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 245 seconds) |
2022-08-07 15:00:11 +0200 | coot_ | (~coot@213.134.176.158) |
2022-08-07 15:00:21 +0200 | <Cale> | That's just basically a subset of what's in Data.List |
2022-08-07 15:00:56 +0200 | <absentia> | with safer `head` |
2022-08-07 15:01:16 +0200 | <Cale> | oh, I see |
2022-08-07 15:01:32 +0200 | coot_ | (~coot@213.134.176.158) (Read error: Connection reset by peer) |
2022-08-07 15:01:42 +0200 | <Cale> | Though, that often won't help any, because you'll just end up wanting to pattern match on the Just which you know is coming. |
2022-08-07 15:01:44 +0200 | coot_ | (~coot@213.134.176.158) |
2022-08-07 15:01:59 +0200 | <Cale> | (Like in this case) |
2022-08-07 15:02:25 +0200 | vglfr | (~vglfr@194.9.14.33) |
2022-08-07 15:02:38 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-08-07 15:04:17 +0200 | <Cale> | But yeah, 'head' and 'tail' are kind of a silly thing to have around in general, since they're both beginner traps most of the time, but also very easy to implement when you need them, and implementing them inline means the compiler has the opportunity to generate a better error message if you end up being (or becoming) incorrect about the list always being nonempty. |
2022-08-07 15:04:29 +0200 | hrberg | (~quassel@171.79-160-161.customer.lyse.net) |
2022-08-07 15:05:41 +0200 | remedan | (~remedan@octo.cafe) (Quit: Bye!) |
2022-08-07 15:07:25 +0200 | <Cale> | haha, safeFromJust :: Maybe a -> Maybe a; safeFromJust = id |
2022-08-07 15:07:50 +0200 | acidjnk | (~acidjnk@p200300d6e705866035693c7955124d42.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-08-07 15:09:10 +0200 | <hpc> | or if you want to optimize it, safeFromJust = unsafeCoerce |
2022-08-07 15:15:21 +0200 | remedan | (~remedan@octo.cafe) |
2022-08-07 15:16:50 +0200 | <rawles> | Imagine I want to write a library that constructs a bitmap graphic in a canvas of 256x256 pixels. In my library, functions flip pixels, draw lines, and so on. But I don't want to carry around tens of thousands of values on the stack each time I change something. What should I be looking into to solve this - should I be learning about mutable data structures, or something else? |
2022-08-07 15:16:57 +0200 | <rawles> | (I have a lot of questions) |
2022-08-07 15:17:28 +0200 | <geekosaur> | take a look at JuicyPixels, nmuch of that might already be done for you |
2022-08-07 15:18:08 +0200 | <rawles> | geekosaur: Thank you |
2022-08-07 15:18:50 +0200 | <geekosaur> | also all values in Haskell are on the heap 🙂 |
2022-08-07 15:19:08 +0200 | <geekosaur> | there is a pattern match stack, and a C stack for FFI calls |
2022-08-07 15:19:32 +0200 | nilradical | (~nilradica@user/naso) (Remote host closed the connection) |
2022-08-07 15:19:48 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-07 15:20:12 +0200 | <rawles> | Oh I see, that makes sense. |
2022-08-07 15:20:45 +0200 | nilradical | (~nilradica@user/naso) |
2022-08-07 15:20:51 +0200 | <geekosaur> | (the pattern match stack is how things get evaluated, since a 100% lazy language would never do anything. so patterns cause forcing of lazy values) |
2022-08-07 15:22:33 +0200 | remedan | (~remedan@octo.cafe) (Read error: Connection reset by peer) |
2022-08-07 15:25:26 +0200 | nilradical | (~nilradica@user/naso) (Ping timeout: 240 seconds) |
2022-08-07 15:26:42 +0200 | remedan | (~remedan@octo.cafe) |
2022-08-07 15:26:51 +0200 | remedan | (~remedan@octo.cafe) (Read error: Connection reset by peer) |
2022-08-07 15:27:57 +0200 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 244 seconds) |
2022-08-07 15:28:16 +0200 | kilolympus | (~kilolympu@90.206.106.191) |
2022-08-07 15:30:41 +0200 | mxs | (~mxs@user/mxs) (Ping timeout: 255 seconds) |
2022-08-07 15:31:01 +0200 | vglfr | (~vglfr@194.9.14.33) |
2022-08-07 15:31:05 +0200 | remedan | (~remedan@octo.cafe) |
2022-08-07 15:34:37 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) (Ping timeout: 245 seconds) |
2022-08-07 15:35:21 +0200 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 252 seconds) |
2022-08-07 15:35:48 +0200 | remedan | (~remedan@octo.cafe) (Remote host closed the connection) |
2022-08-07 15:35:56 +0200 | maroloccio | (~marolocci@62.98.94.196) (Quit: WeeChat 3.0) |
2022-08-07 15:36:36 +0200 | vglfr | (~vglfr@194.9.14.33) |
2022-08-07 15:36:47 +0200 | Cerins | (~Cerins@m90-128-49-116.cust.tele2.lv) (Quit: Leaving) |
2022-08-07 15:37:20 +0200 | <yin> | is Stack still relevant? |
2022-08-07 15:38:01 +0200 | <yin> | or has cabal caught up and made it obsolete? |
2022-08-07 15:38:29 +0200 | <geekosaur> | there are still a few things stack does better, notably documentation |
2022-08-07 15:38:53 +0200 | <geekosaur> | also some people prefer the resolver-based setup to cabal's more floating arrangement |
2022-08-07 15:39:12 +0200 | <hpc> | ghcup solves what i expect most people use the resolver for |
2022-08-07 15:39:15 +0200 | <geekosaur> | (although you can now simulate a resolver with a cabal.freeze file, but it's only a simulation) |
2022-08-07 15:39:33 +0200 | <hpc> | (installing ghc/cabal in the first place, rather than trying to precisely control package versions) |
2022-08-07 15:40:46 +0200 | <hpc> | can't you also download a cabal.freeze file that corresponds to a resolver? |
2022-08-07 15:41:55 +0200 | <geekosaur> | yes |
2022-08-07 15:42:18 +0200 | <geekosaur> | the upcoming 3.8 release even includes a way to have cabal download it for you |
2022-08-07 15:43:55 +0200 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 268 seconds) |
2022-08-07 15:44:36 +0200 | <geekosaur> | in any case, stack still has something like 50% of the "market",m such as it is, and up to 80% in industry; it's not going away any time soon |
2022-08-07 15:45:31 +0200 | <geekosaur> | I think most people in here prefer cabal, though, so it'll be easier to get help for it |
2022-08-07 15:48:17 +0200 | hrberg | (~quassel@171.79-160-161.customer.lyse.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2022-08-07 15:48:18 +0200 | <hpc> | at the very least, cabal is more "fundamental", so even if you're using stack you have to understand cabal anyway |
2022-08-07 15:48:38 +0200 | hrberg | (~quassel@171.79-160-161.customer.lyse.net) |
2022-08-07 15:49:08 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-08-07 15:50:04 +0200 | BanUtama | (~blake.rai@user/BanUtama) |
2022-08-07 15:51:57 +0200 | zebrag | (~chris@user/zebrag) |
2022-08-07 15:51:59 +0200 | vglfr | (~vglfr@194.9.14.33) |
2022-08-07 15:53:26 +0200 | [Leary] | (~Leary]@122-58-224-198-vdsl.sparkbb.co.nz) (Ping timeout: 240 seconds) |
2022-08-07 15:54:10 +0200 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) |
2022-08-07 15:56:11 +0200 | nilradical | (~nilradica@user/naso) |
2022-08-07 15:58:54 +0200 | <yin> | yeah i stopped using stack because i didn't really see the benefits |
2022-08-07 15:59:15 +0200 | <yin> | since cabal became sane |
2022-08-07 16:02:51 +0200 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 252 seconds) |
2022-08-07 16:04:17 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-08-07 16:04:54 +0200 | doelie | (~tom@c-73-17-195-134.hsd1.me.comcast.net) |
2022-08-07 16:05:02 +0200 | gurkenglas | (~gurkengla@p548ac3ba.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
2022-08-07 16:06:41 +0200 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
2022-08-07 16:06:55 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-08-07 16:07:07 +0200 | vglfr | (~vglfr@194.9.14.33) |
2022-08-07 16:07:09 +0200 | <doelie> | hi. what's a good place to start reading about dependent types in Haskell? i got a bit confused from just googling. there seems to be a lot of fragmented, outdated information online about how to emulate it and (unfinshed?) attempts to integrate it in ghc |
2022-08-07 16:08:11 +0200 | <geekosaur> | the singletons library is how to emulate it. work to integrate it is still ongoing, various pieces have been appearing but it's fragmented and incomplete as yet |
2022-08-07 16:08:39 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) |
2022-08-07 16:08:43 +0200 | <hippoid> | i'm used to seeing the terms covariant and contravariant in terms of oop, but those terms are used in haskell as well in regards to bifuntors and profunctors. What's the meaning of covariant and contravariant in haskell, where there are no subclasses and superclasses? |
2022-08-07 16:09:07 +0200 | <doelie> | geekosaur: thanks |
2022-08-07 16:09:22 +0200 | <geekosaur> | https://www.cis.upenn.edu/~sweirich/papers/eisenberg-thesis.pdf is the plan, only partially implemented |
2022-08-07 16:09:51 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2022-08-07 16:10:45 +0200 | geranim0 | (~geranim0@modemcable062.79-202-24.mc.videotron.ca) |
2022-08-07 16:10:49 +0200 | bob | (~geranim0@modemcable062.79-202-24.mc.videotron.ca) |
2022-08-07 16:12:44 +0200 | <hpc> | hippoid: they mean sort of the same thing, funny enough |
2022-08-07 16:12:49 +0200 | <kaol> | If you squint a bit substituting a type variable with a concrete type is somewhat like subclassing. |
2022-08-07 16:13:02 +0200 | <hpc> | in OOP, they have to do with parameterized types, if you have say Foo<T> you can think about the variance of T |
2022-08-07 16:13:11 +0200 | remedan | (~remedan@octo.cafe) |
2022-08-07 16:13:13 +0200 | <hpc> | in haskell, when you have (a -> b) you can think about the variance of a |
2022-08-07 16:13:51 +0200 | <hpc> | there's a page on this somewhere... |
2022-08-07 16:15:08 +0200 | <hippoid> | for (a->b), is there an implicit forall a, forall b? |
2022-08-07 16:15:19 +0200 | <hpc> | yeah |
2022-08-07 16:15:29 +0200 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 244 seconds) |
2022-08-07 16:16:08 +0200 | <hippoid> | hmm, then a and b can vary universally, so where is the constraint on what concrete type either of them can be? |
2022-08-07 16:16:09 +0200 | <hpc> | https://hackage.haskell.org/package/base-4.16.3.0/docs/Data-Functor-Contravariant.html is a bit of a clue |
2022-08-07 16:16:17 +0200 | <hpc> | (Functor being covariant) |
2022-08-07 16:16:36 +0200 | <hpc> | there's also an implicit (a :: Type) and (b :: Type) |
2022-08-07 16:16:51 +0200 | <hpc> | same as when i write Foo<T>, there's quantifiers there that OOP languages have no syntax for |
2022-08-07 16:17:41 +0200 | <hpc> | or it sort of does, but it gets weird with subtyping and doesn't look like a simple forall |
2022-08-07 16:17:56 +0200 | <hpc> | Foo<T extends SomethingElse>, and such |
2022-08-07 16:18:19 +0200 | <hippoid> | huh, i dont get it |
2022-08-07 16:19:01 +0200 | <hippoid> | i should start with -- what does covariant mean? |
2022-08-07 16:19:08 +0200 | <hpc> | https://www.fpcomplete.com/blog/2016/11/covariance-contravariance/ isn't the page i am thinking of, but it seems to explain everything |
2022-08-07 16:19:19 +0200 | <hpc> | except for that MonadIO part at the bottom, that seems like a weird tangent |
2022-08-07 16:19:23 +0200 | <hippoid> | hpc: thanks, ill check that out! |
2022-08-07 16:25:51 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds) |
2022-08-07 16:26:02 +0200 | <hpc> | the bridge betwen oop variance and fp variance might be, imagine you have some function "B convert(A inputvalue)" |
2022-08-07 16:26:20 +0200 | <hpc> | if you can use convert to write Foo<B> convertFoo(Foo<A> inputvalue), it's covariant |
2022-08-07 16:26:35 +0200 | <hpc> | if you can use convert to write Foo<A> convertFoo(Foo<B> inputvalue), it's contravariant |
2022-08-07 16:27:33 +0200 | vglfr | (~vglfr@194.9.14.33) |
2022-08-07 16:30:13 +0200 | <hpc> | convert might be a whole bunch of code, or it might just be a type cast |
2022-08-07 16:31:51 +0200 | <hpc> | then you can imagine that they way OOP co/contravariance is taught just uses implicit type casts |
2022-08-07 16:33:02 +0200 | joo-_ | (~joo-_@fsf/member/joo--) (Ping timeout: 240 seconds) |
2022-08-07 16:33:17 +0200 | nilradical | (~nilradica@user/naso) (Ping timeout: 252 seconds) |
2022-08-07 16:34:54 +0200 | joo-_ | (~joo-_@80-62-116-136-mobile.dk.customer.tdc.net) |
2022-08-07 16:34:54 +0200 | joo-_ | (~joo-_@80-62-116-136-mobile.dk.customer.tdc.net) (Changing host) |
2022-08-07 16:34:54 +0200 | joo-_ | (~joo-_@fsf/member/joo--) |
2022-08-07 16:36:13 +0200 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 252 seconds) |
2022-08-07 16:38:01 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) (Quit: zxx7529) |
2022-08-07 16:38:23 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) |
2022-08-07 16:43:35 +0200 | zxx7529 | (~Thunderbi@user/zxx7529) (Quit: zxx7529) |
2022-08-07 16:46:40 +0200 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) (Quit: The Lounge - https://thelounge.chat) |
2022-08-07 16:47:31 +0200 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) |
2022-08-07 16:53:16 +0200 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) (Quit: The Lounge - https://thelounge.chat) |
2022-08-07 16:53:32 +0200 | nilradical | (~nilradica@user/naso) |
2022-08-07 16:53:34 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-08-07 16:54:28 +0200 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) |
2022-08-07 16:56:04 +0200 | frost | (~frost@user/frost) (Ping timeout: 252 seconds) |
2022-08-07 16:57:13 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-08-07 17:01:29 +0200 | johnw | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) |
2022-08-07 17:01:46 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds) |
2022-08-07 17:04:14 +0200 | Vajb | (~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014) (Read error: Connection reset by peer) |
2022-08-07 17:04:50 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) |
2022-08-07 17:05:45 +0200 | dcoutts__ | (~duncan@host86-150-18-57.range86-150.btcentralplus.com) (Remote host closed the connection) |
2022-08-07 17:06:07 +0200 | dcoutts__ | (~duncan@host86-150-18-57.range86-150.btcentralplus.com) |
2022-08-07 17:06:38 +0200 | nilradical | (~nilradica@user/naso) (Remote host closed the connection) |
2022-08-07 17:07:27 +0200 | nilradical | (~nilradica@user/naso) |
2022-08-07 17:09:08 +0200 | dcoutts_ | (~duncan@host86-150-18-2.range86-150.btcentralplus.com) |
2022-08-07 17:10:38 +0200 | BanUtama | (~blake.rai@user/BanUtama) (Ping timeout: 240 seconds) |
2022-08-07 17:11:47 +0200 | dcoutts__ | (~duncan@host86-150-18-57.range86-150.btcentralplus.com) (Ping timeout: 252 seconds) |
2022-08-07 17:11:50 +0200 | nilradical | (~nilradica@user/naso) (Ping timeout: 240 seconds) |
2022-08-07 17:13:28 +0200 | Cerins | (~Cerins@m90-128-49-116.cust.tele2.lv) |
2022-08-07 17:15:17 +0200 | dcoutts | (~duncan@host86-171-59-73.range86-171.btcentralplus.com) |
2022-08-07 17:17:09 +0200 | dcoutts__ | (~duncan@host213-122-143-21.range213-122.btcentralplus.com) |
2022-08-07 17:17:29 +0200 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) (Quit: The Lounge - https://thelounge.chat) |
2022-08-07 17:17:50 +0200 | dcoutts_ | (~duncan@host86-150-18-2.range86-150.btcentralplus.com) (Ping timeout: 240 seconds) |
2022-08-07 17:18:01 +0200 | TonyStone | (~TonyStone@2603-7080-8607-c36a-05bb-8b0e-3f23-c965.res6.spectrum.com) (Ping timeout: 244 seconds) |
2022-08-07 17:18:39 +0200 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) |
2022-08-07 17:20:07 +0200 | dcoutts | (~duncan@host86-171-59-73.range86-171.btcentralplus.com) (Ping timeout: 268 seconds) |
2022-08-07 17:21:15 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-08-07 17:25:02 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds) |
2022-08-07 17:29:43 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-08-07 17:30:39 +0200 | TonyStone | (~TonyStone@2603-7080-8607-c36a-2cf3-e44c-3193-429d.res6.spectrum.com) |
2022-08-07 17:32:44 +0200 | BanUtama | (~blake.rai@user/BanUtama) |
2022-08-07 17:33:49 +0200 | dcoutts | (~duncan@host86-144-78-222.range86-144.btcentralplus.com) |
2022-08-07 17:35:22 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-07 17:35:41 +0200 | dcoutts__ | (~duncan@host213-122-143-21.range213-122.btcentralplus.com) (Ping timeout: 268 seconds) |
2022-08-07 17:37:03 +0200 | nilradical | (~nilradica@user/naso) |
2022-08-07 17:37:09 +0200 | dcoutts_ | (~duncan@host86-144-78-222.range86-144.btcentralplus.com) |
2022-08-07 17:39:42 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-08-07 17:39:42 +0200 | dcoutts | (~duncan@host86-144-78-222.range86-144.btcentralplus.com) (Ping timeout: 244 seconds) |
2022-08-07 17:42:04 +0200 | nilradical | (~nilradica@user/naso) (Remote host closed the connection) |
2022-08-07 17:42:15 +0200 | [Leary] | (~Leary]@122-58-224-198-vdsl.sparkbb.co.nz) |
2022-08-07 17:42:21 +0200 | nilradical | (~nilradica@user/naso) |
2022-08-07 17:42:38 +0200 | nilradical | (~nilradica@user/naso) (Client Quit) |
2022-08-07 17:42:50 +0200 | causal | (~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0e) |
2022-08-07 17:43:35 +0200 | titibandit | (~titibandi@xdsl-212-8-147-38.nc.de) |
2022-08-07 17:43:36 +0200 | vglfr | (~vglfr@194.9.14.33) |
2022-08-07 17:49:26 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 240 seconds) |
2022-08-07 17:50:24 +0200 | dcoutts | (~duncan@host86-149-51-51.range86-149.btcentralplus.com) |
2022-08-07 17:50:29 +0200 | emad | (~emad@102.40.214.221) |
2022-08-07 17:51:35 +0200 | dcoutts_ | (~duncan@host86-144-78-222.range86-144.btcentralplus.com) (Ping timeout: 244 seconds) |
2022-08-07 17:52:22 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-07 17:53:18 +0200 | cheater | (~Username@user/cheater) |
2022-08-07 18:00:10 +0200 | mimi1vx[m] | (~osukupmat@2001:470:69fc:105::2:418d) (Quit: You have been kicked for being idle) |
2022-08-07 18:00:48 +0200 | acidjnk | (~acidjnk@p200300d6e705866035693c7955124d42.dip0.t-ipconnect.de) |
2022-08-07 18:02:53 +0200 | Cerins | (~Cerins@m90-128-49-116.cust.tele2.lv) (Quit: Leaving) |
2022-08-07 18:11:27 +0200 | noteness | (~noteness@user/noteness) (Remote host closed the connection) |
2022-08-07 18:12:16 +0200 | noteness | (~noteness@user/noteness) |
2022-08-07 18:13:59 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) |
2022-08-07 18:14:09 +0200 | coco | (~coco@212-51-146-199.fiber7.init7.net) |
2022-08-07 18:15:11 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-08-07 18:15:11 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-08-07 18:15:11 +0200 | wroathe | (~wroathe@user/wroathe) |
2022-08-07 18:15:29 +0200 | alp_ | (~alp@user/alp) |
2022-08-07 18:19:08 +0200 | eldritch_cookie | (~eldritch@2804:7f4:8280:8d2f:870a:e15e:a75:13c7) |
2022-08-07 18:21:32 +0200 | lbseale | (~quassel@user/ep1ctetus) |
2022-08-07 18:27:12 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-08-07 18:27:42 +0200 | Guest26 | (~Guest26@node-b8g.pool-180-180.dynamic.totinternet.net) |
2022-08-07 18:28:37 +0200 | Guest26 | sdev |
2022-08-07 18:33:23 +0200 | sdev | (~Guest26@node-b8g.pool-180-180.dynamic.totinternet.net) (Quit: Client closed) |
2022-08-07 18:37:57 +0200 | BanUtama | (~blake.rai@user/BanUtama) (Ping timeout: 252 seconds) |
2022-08-07 18:41:03 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
2022-08-07 18:41:52 +0200 | <albet70> | return is const in Reader? |
2022-08-07 18:44:29 +0200 | <c_wraith> | technically... no. It has a newtype wrapper thrown in somewhere along the line in Reader. |
2022-08-07 18:45:01 +0200 | <c_wraith> | But if you ignore that, like... |
2022-08-07 18:45:05 +0200 | <c_wraith> | @unmtl Reader r a |
2022-08-07 18:45:05 +0200 | <lambdabot> | r -> a |
2022-08-07 18:45:10 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-08-07 18:45:15 +0200 | <albet70> | ignore the type constructor |
2022-08-07 18:45:24 +0200 | <c_wraith> | what else could it do? |
2022-08-07 18:45:45 +0200 | <c_wraith> | like, there's only one useful implementation of a -> (r -> a) |
2022-08-07 18:47:13 +0200 | lbseale | (~quassel@user/ep1ctetus) (Ping timeout: 268 seconds) |
2022-08-07 18:50:37 +0200 | <albet70> | return_func = \x -> \_ -> x; return_cont = \a -> \k -> k a |
2022-08-07 18:50:55 +0200 | <johnw> | yes, it's const, modulo type wrappers |
2022-08-07 18:51:28 +0200 | BanUtama | (~blake.rai@user/BanUtama) |
2022-08-07 18:51:29 +0200 | <albet70> | S is ap, K is const, I is id, is that something? |
2022-08-07 18:54:56 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2022-08-07 18:58:59 +0200 | lbseale | (~quassel@user/ep1ctetus) |
2022-08-07 18:59:39 +0200 | mxs | (~mxs@user/mxs) |
2022-08-07 19:00:01 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-231.elisa-laajakaista.fi) (Ping timeout: 268 seconds) |
2022-08-07 19:02:00 +0200 | <albet70> | @djinn (((a->b) -> r) -> r) -> ((a->r)->r) -> (b->r) -> r |
2022-08-07 19:02:00 +0200 | <lambdabot> | f a b c = b (\ d -> a (\ e -> c (e d))) |
2022-08-07 19:02:07 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds) |
2022-08-07 19:03:01 +0200 | econo | (uid147250@user/econo) |
2022-08-07 19:03:37 +0200 | mtjm | (~mutantmel@2604:a880:2:d0::208b:d001) (Remote host closed the connection) |
2022-08-07 19:04:50 +0200 | mtjm | (~mutantmel@2604:a880:2:d0::208b:d001) |
2022-08-07 19:06:34 +0200 | cheater | (~Username@user/cheater) (Quit: (BitchX) Chester Cheeta uses BitchX. Ayeuhayueuhayueuh!) |
2022-08-07 19:10:01 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2022-08-07 19:10:10 +0200 | <albet70> | which case would use this function? too weird |
2022-08-07 19:10:49 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2022-08-07 19:11:16 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-07 19:11:37 +0200 | emad | (~emad@102.40.214.221) (Quit: Leaving) |
2022-08-07 19:13:51 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-188.elisa-laajakaista.fi) |
2022-08-07 19:15:12 +0200 | <monochrom> | None. You can stop now. |
2022-08-07 19:18:53 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-08-07 19:26:31 +0200 | cosimone | (~user@93-44-186-171.ip98.fastwebnet.it) |
2022-08-07 19:27:47 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
2022-08-07 19:29:44 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2022-08-07 19:30:21 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-07 19:31:08 +0200 | AlexNoo_ | (~AlexNoo@178.34.151.166) |
2022-08-07 19:32:46 +0200 | <johnw> | albet70: isn't that just liftA2 ($) in Cont r? |
2022-08-07 19:33:41 +0200 | <tomsmeding> | it's the _type_ of that, in any case |
2022-08-07 19:33:45 +0200 | <monochrom> | A shorter name is <*> :) |
2022-08-07 19:33:47 +0200 | AlexZenon | (~alzenon@94.233.241.233) (Ping timeout: 245 seconds) |
2022-08-07 19:33:53 +0200 | <johnw> | ah, yes :) |
2022-08-07 19:34:03 +0200 | Alex_test | (~al_test@94.233.241.233) (Ping timeout: 252 seconds) |
2022-08-07 19:34:04 +0200 | <APic> | ☺ |
2022-08-07 19:34:16 +0200 | Techcable | (~Techcable@user/Techcable) (Remote host closed the connection) |
2022-08-07 19:34:17 +0200 | <johnw> | I love the _accuracy_ in this channel :) |
2022-08-07 19:34:33 +0200 | <tomsmeding> | that djinn output is incorrect as an implementation for Cont though |
2022-08-07 19:34:41 +0200 | <tomsmeding> | because it evaluates the argument before the function :p |
2022-08-07 19:34:42 +0200 | AlexNoo | (~AlexNoo@94.233.241.233) (Ping timeout: 268 seconds) |
2022-08-07 19:34:51 +0200 | <monochrom> | I am still ambivalent whether I should teach <*> or liftA2 though, when I teach Applicative. |
2022-08-07 19:37:07 +0200 | Techcable | (~Techcable@user/Techcable) |
2022-08-07 19:37:30 +0200 | vglfr | (~vglfr@194.9.14.33) (Read error: Connection reset by peer) |
2022-08-07 19:37:45 +0200 | vglfr | (~vglfr@194.9.14.33) |
2022-08-07 19:38:13 +0200 | cheater | (~Username@user/cheater) |
2022-08-07 19:39:22 +0200 | Alex_test | (~al_test@178.34.151.166) |
2022-08-07 19:39:39 +0200 | AlexZenon | (~alzenon@178.34.151.166) |
2022-08-07 19:40:29 +0200 | Guest8787 | (~Guest87@105.157.240.67) |
2022-08-07 19:40:52 +0200 | Guest8787 | (~Guest87@105.157.240.67) (Client Quit) |
2022-08-07 19:42:10 +0200 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 244 seconds) |
2022-08-07 19:42:24 +0200 | <[exa]> | monochrom: imo <*> in combination with <$> looks way more intuitive, and everyone is kinda able to chew themselves through the types to liftA2 after the intuition is in. |
2022-08-07 19:43:02 +0200 | acidjnk | (~acidjnk@p200300d6e705866035693c7955124d42.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-08-07 19:44:43 +0200 | AlexNoo_ | AlexNoo |
2022-08-07 19:44:53 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 255 seconds) |
2022-08-07 19:44:54 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-08-07 19:45:01 +0200 | Vajb | (~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014) |
2022-08-07 19:48:26 +0200 | vglfr | (~vglfr@194.9.14.33) |
2022-08-07 19:49:18 +0200 | machinedgod | (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 240 seconds) |
2022-08-07 19:52:35 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2022-08-07 19:53:50 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2022-08-07 19:55:52 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-08-07 19:55:59 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-07 19:59:50 +0200 | BanUtama | (~blake.rai@user/BanUtama) (Ping timeout: 268 seconds) |
2022-08-07 20:00:18 +0200 | BanUtama | (~blake.rai@user/BanUtama) |
2022-08-07 20:07:57 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 245 seconds) |
2022-08-07 20:08:57 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-08-07 20:09:04 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2022-08-07 20:09:44 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-07 20:13:27 +0200 | noteness | (~noteness@user/noteness) (Remote host closed the connection) |
2022-08-07 20:14:18 +0200 | noteness | (~noteness@user/noteness) |
2022-08-07 20:17:34 +0200 | <johnw> | monochrom: didatictally, I think the story from fmap -> liftA2 has some clarity, whereas <*> is better if speaking of practicalities |
2022-08-07 20:17:57 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds) |
2022-08-07 20:24:41 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-07 20:37:32 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds) |
2022-08-07 20:38:23 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-08-07 20:38:23 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-08-07 20:38:23 +0200 | wroathe | (~wroathe@user/wroathe) |
2022-08-07 20:38:47 +0200 | codaraxis__ | (~codaraxis@user/codaraxis) (Ping timeout: 245 seconds) |
2022-08-07 20:40:12 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-08-07 20:42:18 +0200 | alp_ | (~alp@user/alp) (Ping timeout: 240 seconds) |
2022-08-07 20:48:05 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
2022-08-07 20:48:48 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-08-07 20:54:50 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2022-08-07 20:56:24 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-07 20:57:12 +0200 | alp_ | (~alp@user/alp) |
2022-08-07 20:57:50 +0200 | hippoid | (~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Read error: Connection reset by peer) |
2022-08-07 20:58:06 +0200 | Milan | (~Milan@46.245.124.208) |
2022-08-07 20:58:20 +0200 | Milan | (~Milan@46.245.124.208) (Client Quit) |
2022-08-07 21:00:56 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
2022-08-07 21:00:58 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds) |
2022-08-07 21:02:56 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2022-08-07 21:03:31 +0200 | coot_ | (~coot@213.134.176.158) (Ping timeout: 252 seconds) |
2022-08-07 21:07:45 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 268 seconds) |
2022-08-07 21:07:55 +0200 | kilolympus | (~kilolympu@90.206.106.191) (Ping timeout: 252 seconds) |
2022-08-07 21:09:31 +0200 | BanUtama | (~blake.rai@user/BanUtama) (Ping timeout: 268 seconds) |
2022-08-07 21:11:27 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds) |
2022-08-07 21:12:36 +0200 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 268 seconds) |
2022-08-07 21:12:37 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.5) |
2022-08-07 21:13:06 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-07 21:13:07 +0200 | stiell | (~stiell@gateway/tor-sasl/stiell) |
2022-08-07 21:14:53 +0200 | vglfr | (~vglfr@194.9.14.33) |
2022-08-07 21:16:27 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 268 seconds) |
2022-08-07 21:17:11 +0200 | BanUtama | (~blake.rai@user/BanUtama) |
2022-08-07 21:19:29 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2022-08-07 21:21:26 +0200 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 240 seconds) |
2022-08-07 21:21:30 +0200 | acidjnk | (~acidjnk@p200300d6e70586601410f2009aecb0a6.dip0.t-ipconnect.de) |
2022-08-07 21:24:17 +0200 | vglfr | (~vglfr@194.9.14.33) |
2022-08-07 21:25:59 +0200 | kenran | (~kenran@200116b82b395700fac15ccb28c8605f.dip.versatel-1u1.de) |
2022-08-07 21:26:15 +0200 | kenran | (~kenran@200116b82b395700fac15ccb28c8605f.dip.versatel-1u1.de) (Client Quit) |
2022-08-07 21:28:04 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-08-07 21:28:19 +0200 | jimmy | (~rethinkpa@static-198-54-130-104.cust.tzulo.com) |
2022-08-07 21:28:38 +0200 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 240 seconds) |
2022-08-07 21:31:10 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
2022-08-07 21:31:54 +0200 | <davean> | johnw: I ... yah, I think I'd agree with you. I never actually use liftA2, but its a good way to explain things. |
2022-08-07 21:34:31 +0200 | vglfr | (~vglfr@194.9.14.33) |
2022-08-07 21:38:51 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2022-08-07 21:40:07 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2022-08-07 21:48:59 +0200 | lbseale | (~quassel@user/ep1ctetus) (Ping timeout: 268 seconds) |
2022-08-07 21:50:36 +0200 | cosimone | (~user@93-44-186-171.ip98.fastwebnet.it) (Remote host closed the connection) |
2022-08-07 21:50:56 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-07 21:55:23 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
2022-08-07 21:56:57 +0200 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
2022-08-07 21:58:31 +0200 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 252 seconds) |
2022-08-07 22:00:35 +0200 | cosimone | (~user@93-44-186-171.ip98.fastwebnet.it) |
2022-08-07 22:00:54 +0200 | vglfr | (~vglfr@194.9.14.33) |
2022-08-07 22:07:32 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-08-07 22:08:28 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-07 22:11:11 +0200 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
2022-08-07 22:11:43 +0200 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
2022-08-07 22:12:12 +0200 | coot_ | (~coot@213.134.176.158) |
2022-08-07 22:17:57 +0200 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 245 seconds) |
2022-08-07 22:19:25 +0200 | vglfr | (~vglfr@194.9.14.33) |
2022-08-07 22:22:04 +0200 | jgeerds | (~jgeerds@55d46bad.access.ecotel.net) |
2022-08-07 22:23:35 +0200 | <monochrom> | Currently I teach liftA2, then use liftA2($) to show that it is enough to induce liftAn, then introduce the name <*>. |
2022-08-07 22:25:25 +0200 | titibandit | (~titibandi@xdsl-212-8-147-38.nc.de) (Remote host closed the connection) |
2022-08-07 22:25:52 +0200 | BanUtama | (~blake.rai@user/BanUtama) (Ping timeout: 245 seconds) |
2022-08-07 22:27:41 +0200 | <darkling> | "lift" makes me nervous, probably because every time I've met it so far, it's been used without explanation, and apparently the assumption that I know what it means; I don't. |
2022-08-07 22:27:47 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2022-08-07 22:28:08 +0200 | <geekosaur> | "lift" means too many things and none of them are explained 🙂 |
2022-08-07 22:28:23 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2022-08-07 22:28:23 +0200 | <c_wraith> | yeah, you can't assume there's any pattern to things named lift. |
2022-08-07 22:28:29 +0200 | <c_wraith> | Each one is its own thing |
2022-08-07 22:28:45 +0200 | <darkling> | Well, that's a good meta-explanation, at least. :) |
2022-08-07 22:29:06 +0200 | noteness | (~noteness@user/noteness) (Remote host closed the connection) |
2022-08-07 22:29:07 +0200 | adanwan_ | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2022-08-07 22:29:10 +0200 | <monochrom> | I have long learned that names are meaningless. Context and actual usages give the semantics. |
2022-08-07 22:29:33 +0200 | <monochrom> | Programmers are the worst offenders in two senses. |
2022-08-07 22:29:35 +0200 | noteness | (~noteness@user/noteness) |
2022-08-07 22:29:36 +0200 | <c_wraith> | also, types are documentation that *rarely* lies in Haskell |
2022-08-07 22:29:50 +0200 | <c_wraith> | get fluent in reading types :) |
2022-08-07 22:29:51 +0200 | <monochrom> | For example, consider this name one of them coined: "test pollution". |
2022-08-07 22:29:57 +0200 | <int-e> | It's simple: lift is a next-level operation. |
2022-08-07 22:30:14 +0200 | <Rembane> | Do you even <*>? |
2022-08-07 22:30:23 +0200 | <monochrom> | IMO more people should learn Chess. |
2022-08-07 22:30:25 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-08-07 22:30:37 +0200 | <c_wraith> | great, now I'm going to read <*> as a guy flexing his lats forever |
2022-08-07 22:30:40 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2022-08-07 22:30:47 +0200 | <monochrom> | Then you will understand that the names "queen", "bishop", "rook", "knight", "pawn" all mean nothing. |
2022-08-07 22:30:51 +0200 | <int-e> | `ap` forever |
2022-08-07 22:31:06 +0200 | <darkling> | Yeah, the CS environment is absolutely dreadful for pinching otherwise well-defined terms and redefining them to mean something subly (or totally) different. |
2022-08-07 22:31:32 +0200 | <monochrom> | The name "king" marginally mean a tiny little bit of something, insofar as it means the one piece you can't sacrifice. |
2022-08-07 22:31:33 +0200 | <Rembane> | c_wraith: You're welcome! :D |
2022-08-07 22:31:50 +0200 | <darkling> | My last job title was "ontologist". Just don't tell the philosophers. |
2022-08-07 22:32:02 +0200 | <monochrom> | And if that is not enough, consider the "cannon" piece in Chinese Chess. |
2022-08-07 22:32:19 +0200 | <c_wraith> | Everyone knows knights are famous for their leaping abilitiesa |
2022-08-07 22:32:46 +0200 | <monochrom> | It's a cute little marvel. It can move like a rook, but not capture like a rook. To capture, you must have exactly one obstacle in the line of sight. |
2022-08-07 22:33:05 +0200 | <darkling> | Yeah, the cannon's great. |
2022-08-07 22:33:12 +0200 | <monochrom> | Oh and everyone knows stone towers are famous for their mobility? |
2022-08-07 22:33:29 +0200 | <c_wraith> | yes. but only in cardinal directions |
2022-08-07 22:33:35 +0200 | Rembane | knows this |
2022-08-07 22:33:37 +0200 | <monochrom> | And queens are famous for walking faster than kings? |
2022-08-07 22:33:48 +0200 | <Rembane> | And being absolutely fierce |
2022-08-07 22:34:02 +0200 | <absentia> | the "bishop" visited my local church the other day |
2022-08-07 22:34:05 +0200 | <absentia> | he was a fuckin impostor |
2022-08-07 22:34:07 +0200 | <int-e> | c_wraith: ...what do you make of bishops avoiding cardinal directions... |
2022-08-07 22:34:08 +0200 | <absentia> | never once moved diagonally |
2022-08-07 22:34:16 +0200 | <monochrom> | And pawns are famous for becoming additional royal consorts when hitting the enemy baseline? |
2022-08-07 22:34:23 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-08-07 22:34:29 +0200 | <absentia> | http://bash.org/?261501 |
2022-08-07 22:34:30 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-07 22:34:33 +0200 | <c_wraith> | int-e: I only know it to be true. I cannot comprehend their ways. |
2022-08-07 22:34:45 +0200 | <int-e> | There's more I'd like to add but first I have something to check, mate. |
2022-08-07 22:34:51 +0200 | michalz | (~michalz@185.246.204.87) |
2022-08-07 22:35:13 +0200 | <int-e> | c_wraith: They stay true to their colors at least |
2022-08-07 22:35:14 +0200 | <darkling> | It becomes easier if you generalise to fairy chess, and then look at the traditional set as a selected subset. :) |
2022-08-07 22:35:47 +0200 | <darkling> | Alternatively, this: https://en.wikipedia.org/wiki/Gess |
2022-08-07 22:35:58 +0200 | <darkling> | (I've got the original paper for that one. :) ) |
2022-08-07 22:36:34 +0200 | <monochrom> | After Chess and Chinese Chess and a few more kinds of games, you learn that "lift" has as much meaning as names in Chess. |
2022-08-07 22:37:01 +0200 | <monochrom> | You just go "yeah whatever, just tell me the actual rules of engagement". |
2022-08-07 22:37:53 +0200 | BanUtama | (~blake.rai@user/BanUtama) |
2022-08-07 22:38:24 +0200 | <monochrom> | "is this Chess but Transformers?" butterfly man meme |
2022-08-07 22:38:49 +0200 | jimmy | (~rethinkpa@static-198-54-130-104.cust.tzulo.com) (Quit: Leaving) |
2022-08-07 22:39:52 +0200 | <int-e> | it's funny how fork lifts have nothing to do with dininig etiquette. |
2022-08-07 22:40:14 +0200 | <c_wraith> | fork lifts lift the concept of forks to palletes |
2022-08-07 22:40:34 +0200 | <darkling> | Isn't that what dining forks do? |
2022-08-07 22:40:40 +0200 | <c_wraith> | spelling is hared |
2022-08-07 22:40:45 +0200 | <c_wraith> | (case in point...) |
2022-08-07 22:40:46 +0200 | <darkling> | Lift the food to the palette. :) |
2022-08-07 22:41:20 +0200 | <c_wraith> | I was close. It's pallets. |
2022-08-07 22:42:10 +0200 | <monochrom> | I still spell spurrious with a spurious r. :) |
2022-08-07 22:42:12 +0200 | darkling | hangs up the homophone. |
2022-08-07 22:43:03 +0200 | <Rembane> | So... what's an isophone? |
2022-08-07 22:43:24 +0200 | <monochrom> | I name my iPhone "monophone". :) |
2022-08-07 22:43:52 +0200 | <Rembane> | ^^ |
2022-08-07 22:44:31 +0200 | <monochrom> | Idea for Harry Potter knockoff: Edsger Dijkstra And The Philosopher's Fork :) |
2022-08-07 22:44:37 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Ping timeout: 245 seconds) |
2022-08-07 22:45:14 +0200 | <Rembane> | I want rap battles between Dijkstra and the rest of the world |
2022-08-07 22:45:23 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-08-07 22:45:27 +0200 | <c_wraith> | What's wrong with CS people, always trying to starve philosophers? |
2022-08-07 22:46:15 +0200 | <monochrom> | Because the philosophers put us on rail tracks to be hit by a train? |
2022-08-07 22:47:24 +0200 | <darkling> | You'd rather leave the Byzantine generals to work out the issues for themselves? |
2022-08-07 22:47:51 +0200 | <Rembane> | darkling: As long as they live stream it I'm cool |
2022-08-07 22:48:10 +0200 | <monochrom> | hahahaha |
2022-08-07 22:49:03 +0200 | <darkling> | I think that's my call for bedtime. G'night, ladles and jellyspoons. o/ |
2022-08-07 22:51:02 +0200 | <Rembane> | \o |
2022-08-07 22:53:14 +0200 | slack1256 | (~slack1256@181.43.227.178) |
2022-08-07 22:55:39 +0200 | <slack1256> | I got a really minor memory leak. Every week this program run it increases its RSS by 20MiB. I can diagnose leaks easily when they are noticiable, but how would you approach this? |
2022-08-07 22:57:26 +0200 | <geekosaur> | eventlog and hs-speedscope? |
2022-08-07 22:58:05 +0200 | bob | (~geranim0@modemcable062.79-202-24.mc.videotron.ca) (Remote host closed the connection) |
2022-08-07 22:58:05 +0200 | geranim0 | (~geranim0@modemcable062.79-202-24.mc.videotron.ca) (Remote host closed the connection) |
2022-08-07 22:58:23 +0200 | <sm> | bisect.. remove functionality until it stops., try to narrow it down |
2022-08-07 22:59:01 +0200 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 252 seconds) |
2022-08-07 22:59:33 +0200 | vglfr | (~vglfr@194.9.14.33) |
2022-08-07 23:00:52 +0200 | <sm> | ..watch live memory use with +RTS -S, try to identify events that trigger it.. |
2022-08-07 23:01:03 +0200 | <slack1256> | sm: The bisect testing takes a lot of time. It does not manifest until the next week... |
2022-08-07 23:01:54 +0200 | <sm> | yes that would be slow, unless you can find ways to trigger it faster |
2022-08-07 23:01:55 +0200 | <hpc> | that's about 32 bits per second |
2022-08-07 23:03:07 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-07 23:05:31 +0200 | <monochrom> | Take a trip around the solar system at 0.2c speed. Then you can wait less. >:) |
2022-08-07 23:06:28 +0200 | <sm> | if you can't go that fast, rent a super fast vps ? :) |
2022-08-07 23:06:43 +0200 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 252 seconds) |
2022-08-07 23:06:53 +0200 | <slack1256> | hpc: Mmm that is true. I remember there was a new feature on a release note that said you could activate the profiling in certain pieces of code. I could wrap the "loop" part of the program and study the retained allocation per loop. |
2022-08-07 23:07:19 +0200 | <slack1256> | monochrom: Hey, I would if I could. But Musk & Co are more interested on pump-and-dumping doge ;_; . |
2022-08-07 23:11:02 +0200 | zer0bitz | (~zer0bitz@2001:2003:f748:2000:788d:7b3b:7037:afae) (Ping timeout: 240 seconds) |
2022-08-07 23:13:31 +0200 | adium | (adium@user/adium) (Quit: Stable ZNC by #bnc4you) |
2022-08-07 23:14:25 +0200 | neceve | (~quassel@2.26.93.14) (Ping timeout: 252 seconds) |
2022-08-07 23:15:21 +0200 | coco | (~coco@212-51-146-199.fiber7.init7.net) (Quit: WeeChat 3.5) |
2022-08-07 23:17:55 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2022-08-07 23:18:28 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2022-08-07 23:19:01 +0200 | vglfr | (~vglfr@194.9.14.33) (Ping timeout: 268 seconds) |
2022-08-07 23:20:51 +0200 | michalz | (~michalz@185.246.204.87) (Remote host closed the connection) |
2022-08-07 23:20:57 +0200 | coot_ | (~coot@213.134.176.158) (Quit: coot_) |
2022-08-07 23:26:40 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2022-08-07 23:29:30 +0200 | pavonia | (~user@user/siracusa) |
2022-08-07 23:35:43 +0200 | <slack1256> | Oh, eventlog2html has the slope of allocation of different cost-centres... interesting. |
2022-08-07 23:36:08 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-08-07 23:36:15 +0200 | matthewmosior | (~matthewmo@173.170.253.91) |
2022-08-07 23:40:01 +0200 | vglfr | (~vglfr@194.9.14.33) |
2022-08-07 23:42:38 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-08-07 23:48:25 +0200 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2022-08-07 23:48:29 +0200 | <geekosaur> | 9.4.1 just landed, it seems |
2022-08-07 23:49:07 +0200 | matthewmosior | (~matthewmo@173.170.253.91) (Remote host closed the connection) |
2022-08-07 23:49:11 +0200 | gmg | (~user@user/gehmehgeh) |
2022-08-07 23:51:27 +0200 | <monochrom> | -fprof-late gives me that AoE4 feeling: Why wasn't it done on day 1? :) |
2022-08-07 23:52:50 +0200 | <monochrom> | (AoE4 is a game such that, for example, 1.5 years after initial release, players can finally pick colours.) |
2022-08-07 23:54:35 +0200 | Hecate | stoped after AoE II |
2022-08-07 23:54:38 +0200 | acidjnk | (~acidjnk@p200300d6e70586601410f2009aecb0a6.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |