Logs on 2024-07-26 (liberachat/#haskell)
| 00:08:09 | <kupi> | anyone here used the xiaomi community app here to unlock lisa? I have loggin in with my 8 year old account but it says 0 days in community. Do I have to wait 30 days? |
| 00:09:07 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds) |
| 00:09:44 | × | Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Ping timeout: 264 seconds) |
| 00:10:16 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 00:21:13 | <kupi> | sorry, wrong channel |
| 00:31:38 | → | misterfish joins (~misterfis@84.53.85.146) |
| 00:39:48 | → | bolivood joins (~bolivood@user/bolivood) |
| 00:44:19 | <bolivood> | haskell is the worst |
| 00:44:37 | <bolivood> | functional puritan who complicate even the most straightforward problems |
| 00:45:17 | <Axman6> | ... except for all the others |
| 00:45:41 | <Axman6> | bolivood: don't use it then, I promise we won't be offended |
| 00:46:13 | <EvanR> | we're making simple things simple (or somethings slightly wordy) while making seemingly impossible things not that hard |
| 00:46:34 | <EvanR> | seemingly impossible functional programs |
| 00:46:45 | <Axman6> | needs more tardin monad |
| 00:46:50 | <Axman6> | tardis! |
| 00:46:55 | <Inst> | oh, this is an actual account |
| 00:47:04 | <Inst> | bolivood: why are you angry at Haskell? |
| 00:47:17 | <bolivood> | because i am forced to work with this crap at work |
| 00:47:27 | <Inst> | bolivood -> bollywood? |
| 00:47:28 | <bolivood> | convetions that you invented that are "Correct", and lots of "magic" |
| 00:47:41 | <Axman6> | bolivood: Wanna swap jobs then? |
| 00:47:46 | <bolivood> | and a fanatical community resistant to change |
| 00:47:51 | <Axman6> | you can play with python and C++ and VHDL |
| 00:47:59 | <bolivood> | inflexible stubborn, making it even harder to adopt modern practices |
| 00:48:10 | <Axman6> | "modern practices"? |
| 00:48:11 | <Inst> | Axman6: iirc there's a bunch of Indians trained by Alexander Granin at Juspay |
| 00:48:16 | <EvanR> | I would report your enslavement to the authorities |
| 00:48:27 | <EvanR> | instead of us |
| 00:48:34 | <Axman6> | bolivood: if you just want to rane, you're welsome to go to #haskell-offtopic, but this isn't the place, we've got work to do |
| 00:48:58 | <Inst> | please do so in #haskell-offtopic, I'm fascinated in your story! |
| 00:49:06 | <Axman6> | Inst: account says Frankfurt, but who knows |
| 00:49:45 | <Axman6> | bolivood: why did you take a job writing Haskell if you have such a passionate hate for it? I would never take a Scala job, for that reason (previous job burned me very hard) |
| 00:49:59 | <Inst> | I mean that's the only scenario I can imagine |
| 00:51:54 | <jackdk> | *shrug* more than most communities I've been in, in the Haskell world I can usually find a blog article or paper explaining why things are so |
| 00:52:29 | <Axman6> | I'm really curious what modern practices means |
| 00:53:01 | <Axman6> | I use the git, I've done the devops, I've cried over the TDD, all in Haskell |
| 00:53:16 | <bolivood> | Axman6, it's a good job in other aspects |
| 00:53:36 | <jackdk> | Could be as simple as things like LSP stuff. I've heard opinions on HLS that range from "it's my second-favourite LSP" to extreme frustration |
| 00:54:34 | <Inst> | or it could be an actually cursed Haskell codebase, or lunatics in management, who knows, lots of things are possible |
| 00:54:56 | <bolivood> | Axman6, i'm not burning out, i focus on the positive aspects of the job i do enjoy |
| 00:57:41 | <Inst> | well, i hope you're having a fun time, and yeah, there are legitimate things to complain about with haskell |
| 00:58:44 | <Inst> | there are also illegitimate things, would be fun to figure out which is which, though |
| 00:59:13 | → | ddellacosta joins (~ddellacos@ool-44c73d29.dyn.optonline.net) |
| 00:59:54 | × | xff0x quits (~xff0x@2405:6580:b080:900:c695:3b30:f4d2:83e8) (Ping timeout: 276 seconds) |
| 01:01:06 | → | starburst joins (~starburst@2601:602:480:9390:8538:eef:4cf0:528d) |
| 01:02:57 | <starburst> | is there anyone here familiar with pipes? : ) |
| 01:04:49 | <bolivood> | I was told to stop complaining here Inst |
| 01:05:07 | <Inst> | yeah i guess you're under an NDA |
| 01:05:40 | <starburst> | what ar you hiding from us |
| 01:11:08 | → | xff0x joins (~xff0x@2405:6580:b080:900:c695:3b30:f4d2:83e8) |
| 01:13:55 | × | misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 260 seconds) |
| 01:18:38 | × | starburst quits (~starburst@2601:602:480:9390:8538:eef:4cf0:528d) (Quit: Client closed) |
| 01:22:41 | → | billchenchina- joins (~billchenc@210.110.131.60) |
| 01:29:51 | → | starburst joins (~starburst@2601:602:480:9390:8538:eef:4cf0:528d) |
| 01:37:11 | → | TonyStone joins (~TonyStone@user/TonyStone) |
| 01:38:13 | <jackdk> | Nobody said anything about pipes while you were gone, starburst. I'm sorry to say that I've never successfully written a nontrivial program using it. |
| 01:38:40 | <starburst> | thankyou jackdk |
| 01:39:02 | <jackdk> | These days I use `streaming` by default, conduit when things are simple and I have to interop with existing libraries. I don't know if "just change your project's streaming library" is a move you can make |
| 01:39:59 | <jackdk> | http://jackkelly.name/blog/archives/2024/04/13/why_streaming_is_my_favourite_haskell_streaming_library/index.html |
| 01:40:33 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 01:41:51 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 01:41:52 | <starburst> | i am a nooby noob trying to wrap my head around this sort of thing.. tyty |
| 01:45:48 | <starburst> | ooh.. streaming seems interesting.. i saw the package briefly but wasnt sure if they were doing the same sort of thing.. |
| 01:47:21 | <jackdk> | What is your goal, at this stage? Do you have a specific project or are you just trying to learn how to stream? |
| 01:48:35 | <jackdk> | This affects whether I recommend conduit or streaming; I consider streaming the better library but many common http libs etc can take in a conduit. |
| 01:50:13 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds) |
| 01:50:22 | <starburst> | sort of both in a way.. it seems like streaming is an element of my project sort of.. |
| 01:53:15 | <jackdk> | If the streaming itself is complicated, I will usually do the hard bits using the `streaming` library, and convert to a conduit if/when I need to. |
| 01:54:45 | <starburst> | i feel like its silly to be so vague but.. i hav had this shape of the way i would like to pass control through a program in my mind for a while.. and some packages and paradigms feel like they allude to how to design that kind of shape |
| 01:56:57 | <glguy> | I don't think it crosses into "non-trivial" but I did a terminal implementation of 2048 using pipes a long time ago |
| 01:58:13 | × | ystael quits (~ystael@user/ystael) (Ping timeout: 248 seconds) |
| 01:58:43 | <starburst> | hoyo.. do you understand the secrets |
| 01:58:54 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 01:59:01 | × | starburst quits (~starburst@2601:602:480:9390:8538:eef:4cf0:528d) (Quit: Client closed) |
| 01:59:12 | <Axman6> | did it ever terminate? My problem with pipes was always with wanting to do something once the streeam had finished - like taking a hash of a stream of bytestrings and finalising when it's done |
| 01:59:34 | <glguy> | Terminate? you could exit the game |
| 01:59:59 | <glguy> | https://github.com/glguy/TwosGame/blob/master/Main.hs |
| 02:00:10 | → | starburst joins (~starburst@2601:602:480:9390:8538:eef:4cf0:528d) |
| 02:00:10 | <starburst> | oops |
| 02:00:49 | <glguy> | https://asciinema.org/a/X8H7ErYy6F3AJtVy4VxPTBOF7 |
| 02:01:33 | <starburst> | aowh |
| 02:02:15 | → | lystra joins (~lystra@208.59.105.41) |
| 02:04:59 | × | starburst quits (~starburst@2601:602:480:9390:8538:eef:4cf0:528d) (Client Quit) |
| 02:09:50 | → | starburst joins (~starburst@2601:602:480:9390:8538:eef:4cf0:528d) |
| 02:09:56 | <starburst> | oops again |
| 02:13:55 | × | td_ quits (~td@i53870924.versanet.de) (Ping timeout: 264 seconds) |
| 02:14:07 | <starburst> | hmm.. pipes.. streams.. |
| 02:15:15 | → | td_ joins (~td@i53870934.versanet.de) |
| 02:15:27 | <starburst> | does anyon here enjoy explaining things |
| 02:17:06 | <geekosaur> | half the channel, but they're likely to dive off into irrelevancies (well, to you) |
| 02:17:34 | <starburst> | ty geeko |
| 02:17:58 | <JuanDaugherty> | starburst, https://meansofproduction.biz/pub/codeSamples/xsqlbrws.cls.txt 30+ yo smalltalk code that uses named pipes, they were maybe 10 or 20 years old at that point |
| 02:18:32 | <Axman6> | we love explaining things |
| 02:19:10 | <jackdk> | But it's easier to respond to specific questions than open-ended ones, and the act of formulating the question itself can often be really helpful to the asker |
| 02:19:21 | <starburst> | wo juan.. interesting |
| 02:19:31 | <monochrom> | I enjoy getting paid to explain things. |
| 02:19:44 | <Axman6> | lucky |
| 02:19:56 | <starburst> | that is tru jack mhm |
| 02:22:45 | × | xff0x quits (~xff0x@2405:6580:b080:900:c695:3b30:f4d2:83e8) (Ping timeout: 248 seconds) |
| 02:24:05 | <Lears> | I have a question for #haskell almost every day. Disappointingly, the process of turning it into a /good/ question resolves the issue 99% of the time. |
| 02:25:10 | <starburst> | m.. i am trying to figure out what i even want to know.. |
| 02:25:40 | × | JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
| 02:25:41 | <monochrom> | The other 1% of the time the good question is equivalent to one of the Millenium problems. >:) |
| 02:28:51 | → | Guest58 joins (~Guest62@32.221.120.181) |
| 02:32:52 | <starburst> | uhgg >_< |
| 02:34:26 | <starburst> | i feel like iv read about readers several times b4 but.. its hard for me to hav a good mental image of them |
| 02:35:44 | <monochrom> | Perhaps the problem is with "image" and you should develop "rules", "algebra" instead of "image". |
| 02:37:18 | <starburst> | how do i do that?? |
| 02:37:38 | × | CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 02:38:08 | × | starburst quits (~starburst@2601:602:480:9390:8538:eef:4cf0:528d) (Quit: Client closed) |
| 02:38:33 | → | starburst joins (~starburst@2601:602:480:9390:8538:eef:4cf0:528d) |
| 02:38:44 | <monochrom> | Stop reading picturely "tutorials". Start reading, writing, playing with actual code. |
| 02:38:56 | <starburst> | that keeps happening.. i hope i didnt miss any fun |
| 02:39:34 | <starburst> | anyfin.. oops |
| 02:39:47 | <geekosaur> | we have logs, see the channel topic |
| 02:39:54 | <geekosaur> | in this case, you missed nothing |
| 02:40:10 | → | CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) |
| 02:40:23 | <starburst> | that is true.. i wish i had a pc with me rn |
| 02:40:37 | <starburst> | tyy ty |
| 02:41:51 | <starburst> | mayb i could.. run a lil bit of haskell.. hmmm |
| 02:42:06 | <geekosaur> | https://play.haskell.org |
| 02:42:44 | <starburst> | thanks : ) |
| 02:43:59 | × | starburst quits (~starburst@2601:602:480:9390:8538:eef:4cf0:528d) (Quit: Client closed) |
| 02:44:13 | → | starburst joins (~starburst@2601:602:480:9390:8538:eef:4cf0:528d) |
| 02:46:59 | × | starburst quits (~starburst@2601:602:480:9390:8538:eef:4cf0:528d) (Client Quit) |
| 02:50:23 | → | starburst joins (~starburst@2601:602:480:9390:8538:eef:4cf0:528d) |
| 02:50:46 | <starburst> | it may b a bit hard to stay connected here for now.. thank you for talking to me |
| 02:51:11 | <starburst> | i will explore using the language an see what i can find…. <3 |
| 02:51:54 | <geekosaur> | godbolt.org also has a Haskell environment, I believe |
| 02:53:50 | <starburst> | ty m(- _ -)m |
| 02:54:28 | <starburst> | i hope you hav good dreams tonight |
| 02:56:25 | <starburst> | goodbye for now ( )/ |
| 02:56:53 | × | starburst quits (~starburst@2601:602:480:9390:8538:eef:4cf0:528d) (Quit: Client closed) |
| 02:57:20 | → | torkel joins (~sindu@83-243-191-191.fth.tafjordconnect.net) |
| 02:58:29 | × | Inst quits (~Inst@user/Inst) (Ping timeout: 248 seconds) |
| 03:13:49 | → | xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 03:14:53 | × | slack1256 quits (~slack1256@2803:c600:5111:80cb:ffde:2539:7254:2ff5) (Remote host closed the connection) |
| 03:16:32 | × | billchenchina- quits (~billchenc@210.110.131.60) (Quit: Leaving) |
| 03:38:54 | × | waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 252 seconds) |
| 03:40:55 | × | torkel quits (~sindu@83-243-191-191.fth.tafjordconnect.net) (Ping timeout: 260 seconds) |
| 03:53:56 | × | aforemny_ quits (~aforemny@i59F516CE.versanet.de) (Ping timeout: 252 seconds) |
| 03:54:06 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds) |
| 03:54:09 | → | aforemny joins (~aforemny@i59F516C5.versanet.de) |
| 03:59:18 | → | rosco joins (~rosco@125.235.232.224) |
| 04:14:34 | × | kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 04:37:40 | × | rosco quits (~rosco@125.235.232.224) (Quit: Lost terminal) |
| 04:40:46 | × | brettgilio quits (~brettgili@154.3.237.18) (Quit: The Lounge - https://thelounge.chat) |
| 04:41:03 | → | brettgilio joins (~brettgili@154.3.237.18) |
| 04:56:39 | × | euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 05:00:52 | × | CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 05:01:03 | × | Sgeo quits (~Sgeo@user/sgeo) (Ping timeout: 276 seconds) |
| 05:01:53 | → | euphores joins (~SASL_euph@user/euphores) |
| 05:01:55 | × | Square2 quits (~Square@user/square) (Ping timeout: 264 seconds) |
| 05:03:17 | → | CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) |
| 05:06:55 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 05:18:03 | → | paddymahoney joins (~paddymaho@pool-99-250-30-88.cpe.net.cable.rogers.com) |
| 05:18:13 | × | paddymahoney quits (~paddymaho@pool-99-250-30-88.cpe.net.cable.rogers.com) (Client Quit) |
| 05:19:18 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 05:22:19 | → | michalz joins (~michalz@185.246.207.197) |
| 05:24:29 | <mauke> | <starburst> i feel like iv read about readers several times b4 but.. its hard for me to hav a good mental image of them <- if you mean Control.Monad.Reader, that's just a (very thin) abstraction layer over functions |
| 05:24:50 | <mauke> | `Reader e a` is like `e -> a` |
| 05:30:29 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 05:38:17 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 05:48:38 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 06:08:00 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 06:15:28 | × | euleritian quits (~euleritia@77.22.252.56) (Ping timeout: 265 seconds) |
| 06:16:08 | → | euleritian joins (~euleritia@dynamic-176-006-132-141.176.6.pool.telefonica.de) |
| 06:24:16 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 06:27:19 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
| 06:30:20 | × | ft quits (~ft@p3e9bc4e7.dip0.t-ipconnect.de) (Quit: leaving) |
| 06:40:49 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 06:47:54 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 06:50:54 | → | CiaoSen joins (~Jura@2a05:5800:2ef:3300:e6b9:7aff:fe80:3d03) |
| 06:51:40 | → | acidjnk joins (~acidjnk@p200300d6e72cfb67cc718b9c5fdaa04e.dip0.t-ipconnect.de) |
| 06:52:31 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 06:54:35 | × | m1dnight quits (~christoph@78-20-61-242.access.telenet.be) (Quit: WeeChat 4.3.5) |
| 06:55:17 | → | m1dnight joins (~christoph@78-20-61-242.access.telenet.be) |
| 07:15:38 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 07:22:20 | → | paddymahoney joins (~paddymaho@pool-99-250-30-88.cpe.net.cable.rogers.com) |
| 07:29:38 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 07:31:06 | × | econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
| 07:44:49 | × | rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
| 07:45:22 | → | rvalue joins (~rvalue@user/rvalue) |
| 07:47:06 | × | tinjamin quits (~tinjamin@banshee.h4x0r.space) (Quit: The Lounge - https://thelounge.chat) |
| 07:47:52 | × | euleritian quits (~euleritia@dynamic-176-006-132-141.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 07:48:07 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 07:48:09 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 07:48:11 | → | tinjamin joins (~tinjamin@banshee.h4x0r.space) |
| 07:55:42 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 08:05:49 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
| 08:06:24 | → | euleritian joins (~euleritia@dynamic-176-006-132-141.176.6.pool.telefonica.de) |
| 08:19:02 | × | euleritian quits (~euleritia@dynamic-176-006-132-141.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 08:19:20 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 08:33:41 | → | zetef joins (~quassel@2a02:2f00:5202:1200:3fa2:e908:b522:fa2f) |
| 08:33:50 | × | zetef quits (~quassel@2a02:2f00:5202:1200:3fa2:e908:b522:fa2f) (Client Quit) |
| 08:35:37 | → | danse-nr3 joins (~danse-nr3@user/danse-nr3) |
| 08:40:43 | → | cpressey joins (~weechat@176.254.71.203) |
| 08:49:32 | → | chele joins (~chele@user/chele) |
| 08:55:04 | → | misterfish joins (~misterfis@h239071.upc-h.chello.nl) |
| 08:57:46 | × | ddellacosta quits (~ddellacos@ool-44c73d29.dyn.optonline.net) (Ping timeout: 244 seconds) |
| 08:57:53 | → | ash3en joins (~Thunderbi@2a02:3100:7cbf:eb01:7d12:84f8:86d0:6566) |
| 08:57:56 | × | ash3en quits (~Thunderbi@2a02:3100:7cbf:eb01:7d12:84f8:86d0:6566) (Client Quit) |
| 08:58:04 | → | ddellacosta joins (~ddellacos@68.199.61.41) |
| 09:03:03 | → | cfricke joins (~cfricke@user/cfricke) |
| 09:09:20 | → | Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) |
| 09:12:20 | → | __monty__ joins (~toonn@user/toonn) |
| 09:28:05 | × | driib3 quits (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat) |
| 09:28:42 | → | driib3 joins (~driib@vmi931078.contaboserver.net) |
| 09:33:56 | × | jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 244 seconds) |
| 09:34:01 | → | jespada_ joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
| 09:45:35 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
| 09:46:14 | × | cfricke quits (~cfricke@user/cfricke) (Ping timeout: 245 seconds) |
| 09:46:36 | → | euleritian joins (~euleritia@dynamic-176-006-132-141.176.6.pool.telefonica.de) |
| 09:52:14 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 09:57:11 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 09:58:05 | → | omegatron joins (~some@user/omegatron) |
| 09:58:05 | × | jespada_ quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Quit: My Mac has gone to sleep. ZZZzzz…) |
| 09:58:17 | × | CiaoSen quits (~Jura@2a05:5800:2ef:3300:e6b9:7aff:fe80:3d03) (Ping timeout: 265 seconds) |
| 09:59:06 | → | jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
| 10:02:41 | × | poscat quits (~poscat@user/poscat) (Ping timeout: 255 seconds) |
| 10:04:05 | × | xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 248 seconds) |
| 10:06:07 | → | Midjak joins (~MarciZ@82.66.147.146) |
| 10:06:35 | → | ash3en joins (~Thunderbi@2a02:3100:7cbf:eb01:7d12:84f8:86d0:6566) |
| 10:06:55 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2) |
| 10:10:08 | → | cfricke joins (~cfricke@user/cfricke) |
| 10:14:10 | → | Inst joins (~Inst@user/Inst) |
| 10:15:00 | × | danse-nr3 quits (~danse-nr3@user/danse-nr3) (Read error: Connection reset by peer) |
| 10:15:16 | → | danse-nr3 joins (~danse-nr3@user/danse-nr3) |
| 10:19:55 | × | ash3en quits (~Thunderbi@2a02:3100:7cbf:eb01:7d12:84f8:86d0:6566) (Quit: ash3en) |
| 10:20:22 | → | ash3en joins (~Thunderbi@2a02:3100:7cbf:eb01:7d12:84f8:86d0:6566) |
| 10:21:09 | × | ash3en quits (~Thunderbi@2a02:3100:7cbf:eb01:7d12:84f8:86d0:6566) (Client Quit) |
| 10:23:03 | <Inst> | regarding the link to the old bodigrim post |
| 10:23:39 | <Inst> | i was implicitly complaining that it's dumb that GHC can't optimize a functional version of this to be competitive with the imperative version |
| 10:23:53 | <Inst> | every time you break out the ST / STUArray etc, it's an admission of defeat |
| 10:23:58 | <danse-nr3> | patches welcome? |
| 10:27:22 | × | tomku quits (~tomku@user/tomku) (Ping timeout: 252 seconds) |
| 10:27:36 | → | tomku joins (~tomku@user/tomku) |
| 10:27:40 | × | euleritian quits (~euleritia@dynamic-176-006-132-141.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 10:27:58 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 10:28:29 | → | APic joins (apic@apic.name) |
| 10:28:50 | → | poscat joins (~poscat@user/poscat) |
| 10:35:01 | × | misterfish quits (~misterfis@h239071.upc-h.chello.nl) (Ping timeout: 248 seconds) |
| 10:37:53 | → | CiaoSen joins (~Jura@2a05:5800:2ef:3300:e6b9:7aff:fe80:3d03) |
| 10:40:50 | → | ash3en joins (~Thunderbi@2a02:3100:7cbf:eb01:7d12:84f8:86d0:6566) |
| 10:46:17 | × | ash3en quits (~Thunderbi@2a02:3100:7cbf:eb01:7d12:84f8:86d0:6566) (Quit: ash3en) |
| 10:46:27 | × | danse-nr3 quits (~danse-nr3@user/danse-nr3) (Quit: life calls) |
| 10:51:37 | × | Guest58 quits (~Guest62@32.221.120.181) (Quit: Client closed) |
| 11:03:14 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 11:04:11 | → | misterfish joins (~misterfis@87.215.131.102) |
| 11:21:53 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
| 11:22:49 | → | euleritian joins (~euleritia@dynamic-176-006-132-141.176.6.pool.telefonica.de) |
| 11:28:39 | → | torkel joins (~sindu@83-243-191-191.fth.tafjordconnect.net) |
| 11:32:19 | × | jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Quit: My Mac has gone to sleep. ZZZzzz…) |
| 11:33:15 | → | jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
| 11:35:58 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 4.2.2) |
| 11:38:39 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 11:52:51 | × | jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Read error: Connection reset by peer) |
| 11:52:57 | → | jespada_ joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
| 11:54:49 | × | drdo quits (~drdo@bl5-29-74.dsl.telepac.pt) (Ping timeout: 260 seconds) |
| 11:55:13 | → | drdo joins (~drdo@bl5-29-74.dsl.telepac.pt) |
| 12:02:15 | × | AlexNoo quits (~AlexNoo@94.233.241.102) (Read error: Connection reset by peer) |
| 12:02:35 | × | cpressey quits (~weechat@176.254.71.203) (Ping timeout: 260 seconds) |
| 12:08:29 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 12:18:46 | → | xff0x joins (~xff0x@2405:6580:b080:900:8b26:ef3c:7f31:7c41) |
| 12:31:40 | × | noctux quits (~noctux@user/noctux) (Remote host closed the connection) |
| 12:34:09 | → | noctux joins (~noctux@user/noctux) |
| 12:36:38 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 12:37:45 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 12:37:45 | × | omegatron quits (~some@user/omegatron) (Quit: Power is a curious thing. It can be contained, hidden, locked away, and yet it always breaks free.) |
| 12:39:53 | → | machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net) |
| 12:41:45 | × | td_ quits (~td@i53870934.versanet.de) (Quit: waking up from the american dream ...) |
| 12:43:47 | × | __monty__ quits (~toonn@user/toonn) (Ping timeout: 255 seconds) |
| 12:44:22 | → | td_ joins (~td@i53870934.versanet.de) |
| 12:47:14 | → | danse-nr3 joins (~danse-nr3@user/danse-nr3) |
| 12:53:23 | → | Guest69 joins (~Guest69@remote.ols-na.com) |
| 12:53:31 | ← | Guest69 parts (~Guest69@remote.ols-na.com) () |
| 12:59:18 | → | cpressey joins (~weechat@176.254.71.203) |
| 13:14:02 | × | AlexZenon quits (~alzenon@94.233.241.102) (Ping timeout: 265 seconds) |
| 13:15:06 | → | ystael joins (~ystael@user/ystael) |
| 13:18:47 | → | AlexZenon joins (~alzenon@94.233.241.102) |
| 13:26:59 | × | AlexZenon quits (~alzenon@94.233.241.102) (Ping timeout: 255 seconds) |
| 13:34:06 | → | AlexZenon joins (~alzenon@94.233.241.102) |
| 13:35:38 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 13:42:03 | → | jerg joins (~jerg@2001:a61:247a:4700::bb0) |
| 13:42:21 | × | euleritian quits (~euleritia@dynamic-176-006-132-141.176.6.pool.telefonica.de) (Ping timeout: 276 seconds) |
| 13:42:29 | → | euleritian joins (~euleritia@dynamic-176-006-141-019.176.6.pool.telefonica.de) |
| 13:57:23 | → | __monty__ joins (~toonn@user/toonn) |
| 13:58:53 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2) |
| 14:06:36 | → | Square2 joins (~Square@user/square) |
| 14:11:18 | ← | tram parts (~tram@2a02:587:b43:7300:a89e:683a:2da1:a2ed) () |
| 14:16:23 | × | ddellacosta quits (~ddellacos@68.199.61.41) (Ping timeout: 265 seconds) |
| 14:19:25 | × | euleritian quits (~euleritia@dynamic-176-006-141-019.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 14:19:43 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 14:20:59 | → | Vajb joins (~Vajb@85-76-106-240-nat.elisa-mobile.fi) |
| 14:22:21 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 14:22:28 | → | euleritian joins (~euleritia@dynamic-176-006-141-019.176.6.pool.telefonica.de) |
| 14:22:49 | × | euleritian quits (~euleritia@dynamic-176-006-141-019.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 14:23:06 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 14:24:39 | × | CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 14:25:44 | → | AlexNoo joins (~AlexNoo@94.233.241.102) |
| 14:26:46 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 14:27:01 | → | CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) |
| 14:34:35 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 14:35:22 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 14:41:53 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 14:42:54 | → | cfricke joins (~cfricke@user/cfricke) |
| 14:51:59 | × | CiaoSen quits (~Jura@2a05:5800:2ef:3300:e6b9:7aff:fe80:3d03) (Ping timeout: 272 seconds) |
| 14:58:29 | × | misterfish quits (~misterfis@87.215.131.102) (Ping timeout: 248 seconds) |
| 14:59:57 | × | xdminsy quits (~xdminsy@117.147.70.227) (Remote host closed the connection) |
| 15:00:27 | → | xdminsy joins (~xdminsy@117.147.70.227) |
| 15:04:55 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds) |
| 15:05:37 | → | euleritian joins (~euleritia@dynamic-176-006-141-019.176.6.pool.telefonica.de) |
| 15:07:00 | × | euleritian quits (~euleritia@dynamic-176-006-141-019.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 15:07:18 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 15:08:16 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 15:09:07 | × | xdminsy quits (~xdminsy@117.147.70.227) (Quit: Konversation terminated!) |
| 15:12:42 | → | LawrenceBerkheim joins (~LBerkheim@user/LawrenceBerkheim) |
| 15:12:56 | <LawrenceBerkheim> | Hello, is anybody here?? |
| 15:13:34 | <LawrenceBerkheim> | Fuck my colourscheme is a disaster for irc, my bad |
| 15:13:52 | × | danse-nr3 quits (~danse-nr3@user/danse-nr3) (Quit: on the move) |
| 15:14:18 | × | LawrenceBerkheim quits (~LBerkheim@user/LawrenceBerkheim) (Client Quit) |
| 15:14:45 | <kaol> | This is #haskell, what's your Haskell emergency? |
| 15:16:47 | → | LawrenceBerkheim joins (~LBerkheim@user/LawrenceBerkheim) |
| 15:16:54 | <LawrenceBerkheim> | Hello? |
| 15:17:01 | <LawrenceBerkheim> | Fuck me |
| 15:17:03 | × | LawrenceBerkheim quits (~LBerkheim@user/LawrenceBerkheim) (Client Quit) |
| 15:25:58 | → | Lawrence1erkheim joins (~LBerkheim@user/LawrenceBerkheim) |
| 15:26:00 | <Lawrence1erkheim> | Finally fixed my trash |
| 15:26:09 | <kaol> | This is #haskell, what's your Haskell emergency? |
| 15:26:21 | <Lawrence1erkheim> | Okay, I've been learning haskell for a while, and I'm getting the hang of it, but I'm very confused about one bit |
| 15:26:25 | <EvanR> | Sir this is a haskell |
| 15:26:32 | <Lawrence1erkheim> | I'm looking at a codebase that's not mine |
| 15:26:41 | <Lawrence1erkheim> | And I see a bunch of data's defined |
| 15:26:59 | <Lawrence1erkheim> | And I see there are two types of them |
| 15:27:18 | <Lawrence1erkheim> | One is like `data Value = Something` |
| 15:27:29 | <Lawrence1erkheim> | another is like `data Value = Value Something` |
| 15:27:40 | <Lawrence1erkheim> | i.e. the token after `data` repeats |
| 15:27:41 | <EvanR> | that's the same kind of thing, a data type definition |
| 15:27:44 | <Lawrence1erkheim> | What's the deal? What do I google? |
| 15:27:59 | <kaol> | type variables |
| 15:28:00 | <EvanR> | in the second example, the two Value are different things |
| 15:28:09 | <EvanR> | the first Value is the type name |
| 15:28:15 | <EvanR> | the second Value, confusingly, is the constructor name |
| 15:28:39 | <EvanR> | they inhabit different namespaces |
| 15:28:54 | <EvanR> | so it's possible to make the match, but it's annoying |
| 15:28:54 | → | kupi joins (uid212005@id-212005.hampstead.irccloud.com) |
| 15:29:00 | <EvanR> | s/the/them/ |
| 15:29:40 | <Lawrence1erkheim> | Hmm ok |
| 15:30:06 | <EvanR> | look at section 2.2 https://www.haskell.org/tutorial/goodies.html |
| 15:31:05 | <EvanR> | (there are no type variables in your question though, whose names are in all lowercase) |
| 15:31:41 | <EvanR> | case matters |
| 15:32:47 | <kaol> | Applying one at least. I don't think you can really explain what's going on without talking about them. |
| 15:33:08 | <Lawrence1erkheim> | Yea in the example I'm looking at right now it's IntegerValue, StringValue, etc., separated with `|`'s. I made the connection that it means that the thing can be either one of those. |
| 15:33:25 | <Lawrence1erkheim> | Regardless |
| 15:33:26 | <kaol> | That's sum types and that's correct. |
| 15:33:46 | <Lawrence1erkheim> | I'll do some reading and probably come back with more questions because I should probably try understanding them instead of monkey-coding |
| 15:33:53 | <EvanR> | good idea |
| 15:34:07 | <kaol> | I'd suggest reading about Maybe. |
| 15:34:36 | <EvanR> | section 2.2 and the section after it does get into all that |
| 15:34:41 | <Lawrence1erkheim> | Yea it's also bumming around in the code. I kind of understand it, but not confident about it (couldn't utilise it myself from scratch) |
| 15:34:53 | <Lawrence1erkheim> | Talking about the `Maybe` ^^^ |
| 15:35:00 | <kaol> | It's (almost) the simplest case where you ever encounter a construct like Value Something. |
| 15:35:27 | <Lawrence1erkheim> | Oh shit is `Something` an actual keyword? I used it as a placeholder for a type lol |
| 15:35:30 | <Lawrence1erkheim> | My bad |
| 15:35:32 | <EvanR> | no |
| 15:36:29 | <EvanR> | data Point = Pt Int Int, here there is 1 way to construct a Point, using the Pt constructor. And it requires 2 Ints to do it |
| 15:36:33 | <kaol> | It's completely fine as an example placeholder, as long as it's upper case. Lower case would mean something else. |
| 15:36:49 | <EvanR> | so when you say data Value = MkValue Something, Something is referring to some type named Something |
| 15:37:37 | <EvanR> | data Value = IntValue Int | StringValue String is similar but now there's 2 constructors |
| 15:37:56 | <EvanR> | Int and String are types defined somewhere |
| 15:38:02 | <EvanR> | serving as the "payload" |
| 15:38:53 | <Lawrence1erkheim> | And what are `IntValue`/`StringValue` in those cases? |
| 15:39:14 | <EvanR> | constructor names |
| 15:39:32 | <Lawrence1erkheim> | Do they have to be defined elsewhere? |
| 15:39:37 | <EvanR> | that is the definition |
| 15:39:42 | <Lawrence1erkheim> | Ah |
| 15:40:00 | <EvanR> | it produces functions you can use the construct Values... and they have a type... StringValue :: String -> Value |
| 15:40:04 | <EvanR> | can use to* |
| 15:40:43 | <kaol> | And you can use them for pattern matching as well (like "foo (StringValue x) = x"). |
| 15:41:17 | <EvanR> | case v of { IntValue i -> <code>; StringValue str -> <code> } |
| 15:42:11 | <EvanR> | lets you discover the constructor used and unpack the Value |
| 15:45:48 | <Lawrence1erkheim> | Okay so let's say I have two ,,variables'' or however I call them, one of them is ThingA = IntegerType | StringType, another is ThingB = IntegerType int | StringType String. ThingA denotes the types, and ThingB denotes the instances of types? |
| 15:45:59 | <EvanR> | two data types? |
| 15:46:00 | <Lawrence1erkheim> | IntegerType Int* |
| 15:46:15 | <Lawrence1erkheim> | Yea let's say |
| 15:46:27 | <Lawrence1erkheim> | In practice I have to check if ThingB is of instance ThingA |
| 15:46:35 | <EvanR> | no |
| 15:46:44 | <EvanR> | first of all, did you mean to leave out the data keyword |
| 15:46:59 | <EvanR> | which is needed to define data types |
| 15:47:01 | <Lawrence1erkheim> | My bad, the keyword is supposed to be there |
| 15:47:11 | <EvanR> | ok then you're not "assigning" variables or anything |
| 15:47:31 | <EvanR> | which are lower case, btw |
| 15:47:33 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 15:48:11 | <EvanR> | ThingA and ThingB, assuming you put them in different modules because of name collisions, are two independent types with no relation |
| 15:48:15 | <EvanR> | there's no subtype relationship |
| 15:49:42 | <Lawrence1erkheim> | Wait is `IntegerType` builtin or am I defining a thing that is `IntegerType`? |
| 15:49:49 | <EvanR> | you're defining that |
| 15:49:53 | <Lawrence1erkheim> | Just like in those examples `data Colour = Red | Green` |
| 15:49:53 | <EvanR> | (two different ways) |
| 15:50:03 | <EvanR> | yeah |
| 15:50:07 | <Lawrence1erkheim> | Oh |
| 15:50:23 | <EvanR> | Red :: Colour |
| 15:50:26 | <EvanR> | Green :: Colour |
| 15:50:36 | <Lawrence1erkheim> | Ok I'm looking at the instantiations it makes more sense |
| 15:50:36 | <EvanR> | IntegerType :: Int -> ThingB |
| 15:51:04 | <EvanR> | using the word Type in the constructor may be confusing, because constructors create values not types |
| 15:51:22 | <EvanR> | Red and Green are values, Colour is a type |
| 15:51:27 | → | gorignak joins (~gorignak@user/gorignak) |
| 15:51:32 | <Lawrence1erkheim> | Oh my fucking god I went blind to words. ThingA was IntegerType, etc., while ThingB was IntegerValue, etc. |
| 15:51:35 | <Lawrence1erkheim> | I am going to die |
| 15:51:57 | <EvanR> | and so using Value in the constructor name is redundant xD |
| 15:51:59 | × | gorignak quits (~gorignak@user/gorignak) (Client Quit) |
| 15:52:21 | <EvanR> | e.g. RedValue, GreenValue, it is redundant |
| 15:52:30 | <Lawrence1erkheim> | And IntegerValue is an actual thing (?) (e.g. here https://hackage.haskell.org/package/present-4.1.0/docs/Present.html) |
| 15:52:46 | <EvanR> | some library defined it, haven't heard of that one |
| 15:52:59 | <kaol> | RedWrittenInLatinCharacters |
| 15:53:02 | <EvanR> | many things in haskell are defined somewhere, e.g. type String = [Char] |
| 15:53:23 | <EvanR> | data Bool = False | True |
| 15:54:51 | <Lawrence1erkheim> | Wait so I have instances of ThingA, which is StringType|IntegerType, and then I have a bunch of ThingB, which is StringValue String|IntegerValue Integer. What would be the haskell-esque way to check that the instances match? |
| 15:55:13 | <Lawrence1erkheim> | Do I need to define a map that's like ,,StringType and StringValue are cool", etc? |
| 15:55:23 | → | danse-nr3 joins (~danse-nr3@user/danse-nr3) |
| 15:55:31 | <EvanR> | here is a more popular library with a 'Value' type defined similarly https://hackage.haskell.org/package/aeson-2.2.3.0/docs/src/Data.Aeson.Types.Internal.html#Value |
| 15:55:38 | <EvanR> | it's modelling a JSON value |
| 15:56:18 | <EvanR> | Lawrence1erkheim, I guess you could write a function with type ThingA -> ThingB -> Bool ? |
| 15:56:38 | <Lawrence1erkheim> | Based |
| 15:56:38 | <EvanR> | but more likely how and where you match depends on what you really want to do |
| 15:56:41 | <Lawrence1erkheim> | I'll try that |
| 15:57:13 | <Lawrence1erkheim> | Last time I didn't understand those signatures with arrows so I'm glad I got this far |
| 15:57:16 | <Lawrence1erkheim> | Thanks guys |
| 15:57:16 | <Lawrence1erkheim> | I may be back |
| 15:58:08 | <EvanR> | Bool tests appear a lot less in haskell because pattern matching, usually |
| 15:58:17 | <EvanR> | than in many other languages |
| 15:59:04 | <Lawrence1erkheim> | I've noticed. When I had to pull out my first bool I wondered if I'm doing something wrong since I didn't need them up until that point. |
| 15:59:27 | <EvanR> | yeah it's definitely a red flag of sorts |
| 15:59:48 | <EvanR> | but some utilities take a Bool so you need them there |
| 15:59:51 | <EvanR> | :t filter |
| 15:59:52 | <lambdabot> | (a -> Bool) -> [a] -> [a] |
| 16:01:22 | <kaol> | And that's something you'll encounter much later but a lot of constructions that'd take conditionals in some other language are just done with monads. |
| 16:02:38 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 16:02:42 | <EvanR> | :t mapMaybe |
| 16:02:43 | <lambdabot> | (a -> Maybe b) -> [a] -> [b] |
| 16:03:05 | <EvanR> | (another way to filter but not really monad related) |
| 16:04:21 | <Lawrence1erkheim> | it worked! |
| 16:04:27 | <Lawrence1erkheim> | Thanks guys |
| 16:04:45 | <Lawrence1erkheim> | well fuck the working |
| 16:04:49 | <Lawrence1erkheim> | I get it now (hopefully) |
| 16:07:34 | <ncf> | very monad-related in fact |
| 16:07:46 | <ncf> | Maybe is a submonad of [] |
| 16:08:00 | <ncf> | this is just bind restricted to that submonad in the first argument |
| 16:08:35 | <ncf> | (alternatively, [] is a right Maybe-module) |
| 16:09:00 | ← | JuanDaugherty parts (~juan@user/JuanDaugherty) () |
| 16:10:06 | <EvanR> | so you want to filter a list, let me first introduce you to some category theory xD |
| 16:11:48 | <kaol> | https://aphyr.com/posts/342-typing-the-technical-interview "Haskell is a dynamically-typed, interpreted language." |
| 16:20:24 | → | econo_ joins (uid147250@id-147250.tinside.irccloud.com) |
| 16:29:21 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:34:52 | × | danse-nr3 quits (~danse-nr3@user/danse-nr3) (Read error: Connection reset by peer) |
| 16:35:00 | → | danse-nr3 joins (~danse-nr3@user/danse-nr3) |
| 16:36:07 | × | cpressey quits (~weechat@176.254.71.203) (Ping timeout: 264 seconds) |
| 16:44:14 | × | ridcully quits (~ridcully@p508ac2b4.dip0.t-ipconnect.de) (Quit: WeeChat 4.3.4) |
| 16:44:31 | → | ridcully joins (~ridcully@p508ac2b4.dip0.t-ipconnect.de) |
| 16:48:59 | → | billchenchina- joins (~billchenc@118.38.173.226) |
| 16:49:35 | → | stefior joins (~Stefior@c-71-57-237-142.hsd1.pa.comcast.net) |
| 16:50:32 | <stefior> | hello |
| 16:51:33 | × | micro quits (~micro@user/micro) (Ping timeout: 248 seconds) |
| 16:51:55 | <danse-nr3> | \o stefior |
| 16:52:03 | → | micro joins (~micro@user/micro) |
| 16:52:18 | <stefior> | Hi danse-nr3, this is my first time using irc |
| 16:52:34 | <danse-nr3> | and you came straight to #haskell |
| 16:52:46 | <stefior> | I looked up good channels |
| 16:53:31 | <EvanR> | good. Now install GHC |
| 16:53:42 | <EvanR> | suit up, lock and load |
| 16:54:17 | <stefior> | I have it installed. I haven't ever tried haskell yet though since I figured I'm not a good enough developer yet for functional stuff |
| 16:54:38 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 16:56:19 | → | ft joins (~ft@p3e9bc4e7.dip0.t-ipconnect.de) |
| 16:58:51 | <stefior> | irc is a lot more like discord than I thought |
| 16:59:24 | × | danse-nr3 quits (~danse-nr3@user/danse-nr3) (Quit: life calls) |
| 17:02:18 | <EvanR> | discord was the winning competitor from an era that was trying to make a modernized (and for profit) version of IRC |
| 17:02:59 | <EvanR> | they took some design aspects and left many others behind |
| 17:03:28 | <stefior> | That makes sense |
| 17:05:08 | <stefior> | I like how this is though too. I think the only thing I'd really miss is images |
| 17:06:02 | <dolio> | Given the occasional spambots, it's probably good there's no automatic images. |
| 17:09:43 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 4.2.2) |
| 17:11:29 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:18:10 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 17:18:14 | → | skyesoss joins (~Thunderbi@128.135.204.35) |
| 17:18:47 | <mauke> | I bet some clients render URL previews and images |
| 17:20:19 | <monochrom> | If you use such a client in an office with other people, you expose yourself to the risk and legal liabilities of displaying NFSW content. |
| 17:20:45 | <monochrom> | I can't understand why so many people desire it, as if bad actors did not exist on Earth. |
| 17:20:57 | <stefior> | I'm on weechat. I'm still trying to figure out how to make my name yellow, but I'd be fine with going to the URL instead for images, just something to get used to |
| 17:21:34 | <mauke> | https://c.tenor.com/1iSARWJr-TEAAAAC/tenor.gif |
| 17:21:34 | <stefior> | I only really use discord to text my wife anyway, but your point about the nsfw content makes sense |
| 17:22:07 | <stefior> | haha @mauke |
| 17:22:15 | <Rembane> | stefior: /me bla perhaps? |
| 17:22:21 | stefior | bla |
| 17:22:24 | <Rembane> | mauke: Megasus! |
| 17:22:32 | <mauke> | stefior: how does weechat render your name by default? |
| 17:22:35 | <stefior> | white |
| 17:23:17 | <stefior> | I'm looking at fset for all the weechat.color stuff now, but I also found colorize_nicks.py |
| 17:26:17 | <mauke> | 08,02stefior |
| 17:26:25 | <mauke> | ok, that kind of worked on my end |
| 17:26:34 | <stefior> | That is yellow with light blue background for me |
| 17:26:36 | <stefior> | stefior |
| 17:26:53 | <stefior> | The colorize_nicks.py isn't working, maybe I did the wrong command or need to restart |
| 17:27:17 | <stefior> | I meant making it yellow on the left side though, not in messages, just because I'm used to it being yellow in discord |
| 17:27:25 | <mauke> | from the name I'm guessing it's supposed to assign a different color to each user? |
| 17:29:25 | <stefior> | I think it is supposed to colorize people's names when in messages actually, like when I said "@mauke" earlier it shows "mouke" in green, just like on the left side. Or is that default behavior? |
| 17:29:31 | <Lawrence1erkheim> | Mauke it's blue for me too |
| 17:29:34 | × | destituion quits (~destituio@83-243-191-191.fth.tafjordconnect.net) (Ping timeout: 245 seconds) |
| 17:29:44 | <Lawrence1erkheim> | and I'm on irssi |
| 17:30:00 | <Lawrence1erkheim> | how did you do that |
| 17:30:50 | <mauke> | IRC colors |
| 17:31:08 | <mauke> | #haskell doesn't filter formatting codes from messages |
| 17:31:14 | <mauke> | and most clients render them |
| 17:31:20 | × | torkel quits (~sindu@83-243-191-191.fth.tafjordconnect.net) (Ping timeout: 264 seconds) |
| 17:31:53 | <mauke> | https://modern.ircdocs.horse/formatting.html#forms-of-color-codes |
| 17:33:00 | <Lawrence1erkheim> | I'm not sure my client will be happy with those |
| 17:33:12 | <Lawrence1erkheim> | How the fuck do I input a hex character |
| 17:33:35 | <stefior> | 0x04 Test |
| 17:33:45 | <stefior> | \0x04 test |
| 17:33:49 | <Lawrence1erkheim> | there we go |
| 17:33:54 | <Lawrence1erkheim> | the triforce of irc |
| 17:34:21 | <Lawrence1erkheim> | asd |
| 17:34:22 | <Lawrence1erkheim> | Oh shit |
| 17:34:30 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
| 17:34:49 | <stefior> | ^test^ |
| 17:35:13 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 17:35:17 | <stefior> | ^Itest^I |
| 17:35:22 | <Lawrence1erkheim> | Well, irssi is doing great |
| 17:35:26 | <mauke> | you can literally type Ctrl-C into irssi |
| 17:36:04 | <Lawrence1erkheim> | stefior you have to put in the raw hex characters, which usually isn't easily doable with keyboard. I'm doing my shenanigans with the help of my client, it has special keybinds to put the settings in. |
| 17:36:08 | <mauke> | remember, kids: Ctrl-A is '\1', Ctrl-B is '\2', Ctrl-C is '\3', etc |
| 17:36:17 | <Lawrence1erkheim> | mauke Ctrl-C kills my terminal :( |
| 17:36:30 | <mauke> | then your terminal is very broken |
| 17:36:36 | <Lawrence1erkheim> | Wait a minute |
| 17:36:50 | <stefior> | ah, I see |
| 17:37:12 | → | LawrenceBerkheim joins (~LBerkheim@user/LawrenceBerkheim) |
| 17:37:24 | <LawrenceBerkheim> | I fucked around, and Ctrl-Z actually killed irssi |
| 17:37:32 | <mauke> | no, just paused it |
| 17:37:34 | <mauke> | type 'fg' |
| 17:37:43 | <LawrenceBerkheim> | 3 Green? |
| 17:37:49 | <LawrenceBerkheim> | fg |
| 17:37:51 | <LawrenceBerkheim> | Fuck |
| 17:37:54 | <LawrenceBerkheim> | I'm such a zoomer |
| 17:38:15 | <mauke> | fg is a unix command :-) |
| 17:38:16 | <dolio> | Yeah, your other nick is still here. |
| 17:38:27 | <glguy> | until it pings out |
| 17:38:32 | <mauke> | it will eventually get kicked when it fails to respond to PINGs |
| 17:38:33 | <LawrenceBerkheim> | Ughghgh |
| 17:38:42 | <LawrenceBerkheim> | Goddamnit |
| 17:38:46 | <glguy> | chil |
| 17:38:47 | <glguy> | l |
| 17:38:48 | <LawrenceBerkheim> | Well now I learned |
| 17:39:19 | <mauke> | if this is the same shell session, you can probably /quit your current instance and then type 'fg' to get the old one back |
| 17:39:26 | <int-e> | . o O ( nothing that a reinstall from scratch won't fix ) |
| 17:39:30 | int-e | runs |
| 17:39:43 | → | torkel joins (~sindu@83-243-191-191.fth.tafjordconnect.net) |
| 17:40:48 | × | Lawrence1erkheim quits (~LBerkheim@user/LawrenceBerkheim) (Ping timeout: 245 seconds) |
| 17:41:30 | × | micro quits (~micro@user/micro) (Ping timeout: 252 seconds) |
| 17:42:21 | → | micro joins (~micro@user/micro) |
| 17:46:33 | <stefior> | test |
| 17:46:54 | <stefior> | italic |
| 17:47:03 | <stefior> | reverse |
| 17:47:10 | <LawrenceBerkheim> | You're doing it! |
| 17:47:10 | <stefior> | bold |
| 17:47:37 | <LawrenceBerkheim> | pretty bold of you |
| 17:47:43 | <LawrenceBerkheim> | XD |
| 17:48:11 | <stefior> | 08:) |
| 17:48:41 | → | tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 17:49:03 | <stefior> | still don't know how to make my name yellow though |
| 17:49:14 | <LawrenceBerkheim> | What client are you using? |
| 17:49:19 | <stefior> | weechat |
| 17:49:23 | <LawrenceBerkheim> | Unfortunate |
| 17:49:35 | <LawrenceBerkheim> | Gonna have to find it yourself |
| 17:50:02 | <stefior> | I could switch to irssi if it's better. This is my first day using irc so I have no preference |
| 17:51:41 | <LawrenceBerkheim> | Depends on you |
| 17:51:59 | <LawrenceBerkheim> | I find it hard to believe that weechat doesn't do the shit irssi does |
| 17:52:12 | <stefior> | huh, it's possible to use discord and slack from within weechat |
| 17:52:20 | <LawrenceBerkheim> | I use it since I'm being pretentious without a desktop environment, so it fits my stuff better |
| 17:52:51 | <stefior> | what do you mean by "without a desktop environment"? |
| 17:53:04 | <LawrenceBerkheim> | Oh shit it's that time of the day |
| 17:53:11 | <LawrenceBerkheim> | COUGH |
| 17:53:19 | <LawrenceBerkheim> | i use arch btw |
| 17:53:26 | <stefior> | XD |
| 17:53:59 | <stefior> | I'm on ubuntu in wsl right now, so I'm not a cool kid |
| 17:54:02 | <LawrenceBerkheim> | https://i.redd.it/y583j1mzw1g91.jpg |
| 17:54:03 | <LawrenceBerkheim> | this is me |
| 17:54:04 | <glguy> | don't forget this is #haskell |
| 17:54:22 | <LawrenceBerkheim> | True |
| 17:54:25 | <stefior> | haha |
| 17:54:39 | <Rembane> | #haskell-offtopic is an amazing channel for these topics. |
| 17:55:35 | <LawrenceBerkheim> | Let me try |
| 17:56:27 | <stefior> | how do I see all the haskell channels? I thought there was just one. I looked it up now and found this: https://www.haskell.org/irc/ but are they connected like how they are on discord? |
| 17:56:54 | <Rembane> | stefior: /join #haskell-offtopic |
| 17:57:01 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 17:57:46 | <stefior> | thanks rembane |
| 17:58:17 | × | stefior quits (~Stefior@c-71-57-237-142.hsd1.pa.comcast.net) (Quit: WeeChat 3.5) |
| 17:58:54 | → | stefior joins (~Stefior@c-71-57-237-142.hsd1.pa.comcast.net) |
| 17:59:17 | → | misterfish joins (~misterfis@84.53.85.146) |
| 17:59:23 | <Rembane> | stefior: np! |
| 18:00:08 | × | torkel quits (~sindu@83-243-191-191.fth.tafjordconnect.net) (Ping timeout: 255 seconds) |
| 18:03:35 | → | torkel joins (~sindu@83-243-191-191.fth.tafjordconnect.net) |
| 18:05:40 | <EvanR> | stefior, yeah even on discord I disable image previews |
| 18:06:16 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:23:06 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 18:35:30 | <Inst> | btw |
| 18:35:50 | <Inst> | existential types allow you to stuff arbitrary functions and data into a sum type, right? |
| 18:36:00 | <Inst> | well, obv they do, but do they allow you to use them? |
| 18:36:13 | <dolio> | Use them how? |
| 18:36:38 | <Inst> | basically Haskell can be forced to be dynamic if people are going to complain about strict static typing all the time, just rip off JSON from Aeson or EDN |
| 18:36:48 | <Inst> | but both formats don't support functions in objects |
| 18:37:01 | <EvanR> | you can put functions in a record without existential types |
| 18:37:21 | <EvanR> | or sum type |
| 18:37:52 | <Inst> | no, but I mean putting an arbitrary function of arbitrary type |
| 18:38:20 | <EvanR> | which means what, Unknown1 -> Unknown2 |
| 18:38:50 | <EvanR> | data Cool a b = K1 (a -> b) | K2 (a -> b) |
| 18:39:04 | <Inst> | but hide the a -> b |
| 18:39:17 | <dolio> | Have you seen Data.Dynamic? |
| 18:40:10 | <Inst> | essentially it comes down to wanting [Dynamic]okay, dynamic can do this |
| 18:40:29 | <EvanR> | which doesn't rely on existentials |
| 18:40:30 | <Inst> | I have, just thought there was a limitation that blocked fromDyn from being able to encode functions |
| 18:40:42 | <EvanR> | > typeOf ord |
| 18:40:43 | <lambdabot> | Char -> Int |
| 18:40:44 | <Inst> | so you can have a keymap of string keys + dynamic |
| 18:40:50 | <Inst> | then you can go pretend this is JS |
| 18:41:00 | × | torkel quits (~sindu@83-243-191-191.fth.tafjordconnect.net) (Ping timeout: 252 seconds) |
| 18:41:16 | <Inst> | it was regarding some guy, probably trolling (hi bolivood), doing standard "i came in from a dynamic language" haskell complaints |
| 18:41:46 | <EvanR> | haskell can be ridiculously dynamic, making it just as bad as js |
| 18:41:50 | <EvanR> | more so |
| 18:42:22 | <EvanR> | that it can't be dynamic isn't a viable argument, that you would want it to be is the issue |
| 18:42:42 | <Inst> | yup |
| 18:43:01 | <Inst> | i'm sort of comfortable with default Haskell style and don't really have complaints |
| 18:43:12 | <Inst> | and there's apparently a ton of people who go "throw the rules out the window if you're doing rapid prototyping" |
| 18:43:48 | <EvanR> | there's an option for that, -fdefer-type-errors |
| 18:44:09 | <EvanR> | I don't know how rapid it will make your prototyping though |
| 18:49:37 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 18:49:50 | <Inst> | thanks, was just wondering about this |
| 18:51:28 | <dolio> | I'm not really convinced that what such people say makes any actual sense. |
| 18:52:46 | <mauke> | @let a === b = cast a == Just b |
| 18:52:47 | <lambdabot> | Defined. |
| 18:52:55 | <Inst> | okay, this is weird |
| 18:53:09 | <mauke> | > 'f' === length "three" |
| 18:53:11 | <lambdabot> | error: |
| 18:53:11 | <lambdabot> | Ambiguous occurrence ‘===’ |
| 18:53:11 | <lambdabot> | It could refer to |
| 18:53:13 | <mauke> | aww |
| 18:53:15 | <mauke> | @undefine |
| 18:53:15 | <lambdabot> | Undefined. |
| 18:53:16 | <Inst> | @let u = toDyn (+) |
| 18:53:17 | <lambdabot> | Defined. |
| 18:53:20 | <Inst> | @u |
| 18:53:20 | <lambdabot> | Maybe you meant: undefine undo unlambda unmtl unpf unpl unpointless unshift-topic uptime url users v @ ? . |
| 18:53:33 | <Inst> | @let u = toDyn (+) in (fromDyn u) 1 2 |
| 18:53:33 | <lambdabot> | Parse failed: Parse error: in |
| 18:53:34 | <EvanR> | :t u |
| 18:53:36 | <lambdabot> | error: |
| 18:53:36 | <lambdabot> | Ambiguous occurrence ‘u’ |
| 18:53:36 | <lambdabot> | It could refer to |
| 18:53:46 | <EvanR> | gone |
| 18:53:54 | <Inst> | @(fromDyn u) 1 2 |
| 18:53:54 | <lambdabot> | Unknown command, try @list |
| 18:54:13 | × | vgtw quits (~vgtw@user/vgtw) (Ping timeout: 248 seconds) |
| 18:54:15 | <Inst> | @let v = toDyn (+); u = fromDyn v; u 1 2 |
| 18:54:16 | <lambdabot> | Parse failed: TemplateHaskell language extension is not enabled. Please add ... |
| 18:54:32 | → | vgtw joins (~vgtw@user/vgtw) |
| 18:54:35 | <Inst> | well on ghci it seems as though fromDyn toDyn is mangling the function |
| 18:54:52 | <EvanR> | > typeOf (+) |
| 18:54:54 | <lambdabot> | Integer -> Integer -> Integer |
| 18:54:55 | <mauke> | @undefine |
| 18:54:55 | <lambdabot> | Undefined. |
| 18:55:01 | <Inst> | @undefine |
| 18:55:01 | <lambdabot> | Undefined. |
| 18:55:06 | → | torkel joins (~sindu@83-243-191-191.fth.tafjordconnect.net) |
| 18:55:08 | <mauke> | > let u = toDyn (+) in fromDyn u |
| 18:55:09 | <lambdabot> | error: |
| 18:55:10 | <lambdabot> | • No instance for (Typeable a0) |
| 18:55:10 | <lambdabot> | arising from a use of ‘show_M27679112337342994988’ |
| 18:55:22 | <mauke> | > let u = toDyn (+) in fromDyn u 1 2 |
| 18:55:22 | <EvanR> | you have to pick the Num |
| 18:55:23 | <lambdabot> | error: |
| 18:55:24 | <lambdabot> | • Could not deduce (Typeable t0) |
| 18:55:24 | <lambdabot> | from the context: (Typeable t, Typeable t1, Num t1, Num (t1 -> t)) |
| 18:56:17 | → | Guest24 joins (~Guest24@2601:98a:87f:dc80::a16f) |
| 18:56:31 | <Inst> | https://paste.tomsmeding.com/tZlAmv8u |
| 18:56:34 | <Inst> | is there something I'm missing here? |
| 18:56:35 | × | Guest24 quits (~Guest24@2601:98a:87f:dc80::a16f) (Client Quit) |
| 18:56:42 | → | rvalue- joins (~rvalue@user/rvalue) |
| 18:56:45 | <mauke> | > let u = toDyn (+) in fromDyn u (error "oops" :: Integer -> Integer -> Integer) 1 2 |
| 18:56:46 | <lambdabot> | 3 |
| 18:57:02 | <Inst> | ah |
| 18:57:41 | × | rvalue quits (~rvalue@user/rvalue) (Ping timeout: 265 seconds) |
| 18:58:10 | <Inst> | oh, i'm misunderstanding fromDyn |
| 18:58:21 | × | euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 18:59:57 | × | CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 19:00:20 | <mauke> | > let u = toDyn '+' in fromDyn u (error "oops" :: Integer -> Integer -> Integer) 1 2 |
| 19:00:22 | <lambdabot> | *Exception: oops |
| 19:00:41 | <Inst> | ya i set it up as fromDyn (undefined :: Integer -> Integer -> Integer) 1 2 |
| 19:02:21 | → | CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) |
| 19:03:50 | <mauke> | > let f = toDyn ord; x = toDyn 'A' in (f, x, dynApp f x) |
| 19:03:52 | <lambdabot> | (<<Char -> Int>>,<<Char>>,<<Int>>) |
| 19:04:24 | <mauke> | > let f = toDyn ord; x = toDyn 'A' in (f, x, fromDynamic (dynApp f x) :: Maybe Int) |
| 19:04:26 | <lambdabot> | (<<Char -> Int>>,<<Char>>,Just 65) |
| 19:04:31 | rvalue- | is now known as rvalue |
| 19:04:48 | → | euphores joins (~SASL_euph@user/euphores) |
| 19:04:51 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:05:25 | <mauke> | > toDyn (toDyn :: () -> Dynamic) |
| 19:05:27 | <lambdabot> | <<() -> Dynamic>> |
| 19:05:31 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 19:06:08 | <LawrenceBerkheim> | Holy sht just figured out what guards are |
| 19:06:10 | <LawrenceBerkheim> | a bit too late |
| 19:06:12 | <LawrenceBerkheim> | fucking hell |
| 19:06:14 | <LawrenceBerkheim> | my brain owie |
| 19:06:40 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
| 19:07:36 | <mauke> | simple guards or fancy guards? |
| 19:07:36 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 19:08:22 | <LawrenceBerkheim> | `|` |
| 19:08:32 | <LawrenceBerkheim> | I tied comparing Integers and stuff did not work |
| 19:08:37 | <LawrenceBerkheim> | Got desperate and asked chatgpt |
| 19:08:38 | <jle`> | nice |
| 19:08:40 | <LawrenceBerkheim> | It said ,,guards'' |
| 19:08:44 | <LawrenceBerkheim> | I still don't know what's happening |
| 19:08:46 | <LawrenceBerkheim> | but at least it works |
| 19:08:48 | <LawrenceBerkheim> | now reading up |
| 19:08:59 | <Inst> | guards are funny because you can stuff an entire function into guards |
| 19:09:11 | <LawrenceBerkheim> | During compiling it bitched that the variable was unused and that it was shadowed |
| 19:09:14 | <LawrenceBerkheim> | I didn't see how |
| 19:09:26 | <jle`> | ideally guards are taught at the same time defining functions are taught |
| 19:09:27 | <LawrenceBerkheim> | I remember guards from using TLA |
| 19:09:37 | <LawrenceBerkheim> | Not sure if similar |
| 19:09:44 | <EvanR> | > compare 4 9 |
| 19:09:46 | <lambdabot> | LT |
| 19:09:48 | <EvanR> | > 4 < 9 |
| 19:09:49 | <lambdabot> | True |
| 19:09:54 | <EvanR> | comparing integers |
| 19:09:55 | <mauke> | yeah, but what's after the `|`? |
| 19:10:23 | → | euleritian joins (~euleritia@dynamic-176-006-133-059.176.6.pool.telefonica.de) |
| 19:10:38 | <Inst> | are guards fully equivalent to a combination of case, if then else, and let? |
| 19:11:06 | <EvanR> | mainly if then else |
| 19:11:14 | <EvanR> | which is sugar for case analysis |
| 19:11:41 | <Inst> | i mean pattern guards |
| 19:11:53 | <mauke> | yeah, it all desugars eventually |
| 19:11:53 | <jle`> | it's kind of not a direct translation because of fallback behavior |
| 19:11:58 | <mauke> | just the details are very hairy |
| 19:13:30 | <Inst> | hmmm, wait, what happens if let in guards has a partial pattern match? let's find out |
| 19:14:27 | <mauke> | oh, I think I've come up with a new way of defining (&&) without pattern matching |
| 19:14:55 | <mauke> | (&&) x y | x = y | True = False |
| 19:15:00 | <Inst> | okay so the let binding is lazy |
| 19:15:51 | <Inst> | okay, so let can throw a non-exhaustive pattern match error |
| 19:16:27 | <Inst> | and won't fall through if you add bang patterns |
| 19:16:38 | <mauke> | > case Nothing of ~(Just x) -> x |
| 19:16:39 | <jle`> | mauke: that's a neat little definition |
| 19:16:39 | <lambdabot> | *Exception: <interactive>:(3,1)-(4,22): Non-exhaustive patterns in Just x |
| 19:19:02 | <jle`> | does it work if you inline the &&, it's a nice little puzzle/golfy brain teaser kind of thing |
| 19:19:06 | × | LawrenceBerkheim quits (~LBerkheim@user/LawrenceBerkheim) (Quit: Lost terminal) |
| 19:19:12 | <jle`> | x && y | x = y | True = False |
| 19:19:16 | <jle`> | hehe |
| 19:19:54 | <EvanR> | o_O |
| 19:20:07 | <jle`> | > let x ?? y | x = y | True = False in liftA2 (??) [False, True] [False, True] |
| 19:20:08 | × | euleritian quits (~euleritia@dynamic-176-006-133-059.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 19:20:09 | <lambdabot> | [False,False,False,True] |
| 19:20:26 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 19:20:41 | <EvanR> | I'm going to use this as an introduce to haskell for noobs |
| 19:20:47 | <EvanR> | introduction |
| 19:20:58 | <EvanR> | look how simple haskell is xD |
| 19:21:04 | <jle`> | this is probably damaging to most brains to see, i would not show newcomers this ._. |
| 19:21:10 | <EvanR> | lol |
| 19:21:15 | <jle`> | ah i didn't see your last message haha |
| 19:22:01 | <jle`> | :t let x??y|x=y|True=False in (??) |
| 19:22:02 | <lambdabot> | Bool -> Bool -> Bool |
| 19:23:15 | <EvanR> | :t let x??y|x=y|y=x|False=True|True=False |
| 19:23:16 | <lambdabot> | <no location info>: error: |
| 19:23:16 | <lambdabot> | not an expression: ‘let x??y|x=y|y=x|False=True|True=False’ |
| 19:23:32 | <EvanR> | :t let x??y|x=y|y=x|False=True|True=False in (??) |
| 19:23:33 | <lambdabot> | Bool -> Bool -> Bool |
| 19:24:04 | <EvanR> | now it's more symmetric |
| 19:25:11 | <jle`> | it's art |
| 19:25:38 | <mauke> | this sort of thing is exactly how perl got its reputation |
| 19:25:43 | <mauke> | don't do art, kids |
| 19:26:39 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 245 seconds) |
| 19:27:52 | <ncf> | x ?? y | x = y | y = x | not x = x | not y = y |
| 19:31:08 | <Inst> | x ?? y | x = y | y = x | unsafeCoerce "profanity" = undefined |
| 19:33:37 | <Inst> | so wait, should unsafeCoerce of any non-empty list result in True when the target type is Bool? |
| 19:35:15 | <mauke> | define "should" |
| 19:35:27 | <mauke> | you're squarely in UB land here |
| 19:35:34 | <Inst> | it sort of says so in the name |
| 19:37:17 | <EvanR> | unsafeShouldWork |
| 19:42:14 | × | kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 19:44:32 | <Inst> | hmmm |
| 19:44:46 | <Inst> | also, has anyone tried to do an O'Neill style Sieve of Atkin? |
| 19:44:53 | <Inst> | Not sure if it can be done |
| 19:47:10 | × | infinity0 quits (~infinity0@pwned.gg) (Remote host closed the connection) |
| 19:48:36 | → | gmg joins (~user@user/gehmehgeh) |
| 19:49:08 | → | prolic_ joins (~sasa@181.122.138.24) |
| 19:49:18 | → | jinsun joins (~jinsun@user/jinsun) |
| 19:49:43 | <prolic_> | hey folks, I just published the next qt5 demo in haskell: https://github.com/prolic/hsqml-demo-manic |
| 19:49:56 | <jle`> | nice |
| 19:52:31 | × | gmg quits (~user@user/gehmehgeh) (Client Quit) |
| 19:54:27 | → | infinity0 joins (~infinity0@pwned.gg) |
| 19:55:06 | × | stefior quits (~Stefior@c-71-57-237-142.hsd1.pa.comcast.net) (Quit: WeeChat 3.5) |
| 19:57:39 | → | gmg joins (~user@user/gehmehgeh) |
| 20:08:17 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:14:10 | <Hecate> | prolic_: incredible |
| 20:14:53 | <prolic_> | thanks |
| 20:17:28 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:18:00 | → | cpressey joins (~weechat@176.254.71.203) |
| 20:21:23 | → | waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
| 20:22:22 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
| 20:22:28 | × | cpressey quits (~weechat@176.254.71.203) (Ping timeout: 252 seconds) |
| 20:29:23 | → | CiaoSen joins (~Jura@2a05:5800:2ef:3300:e6b9:7aff:fe80:3d03) |
| 20:34:36 | × | foul_owl quits (~kerry@185.216.231.179) (Ping timeout: 272 seconds) |
| 20:46:21 | <Hecate> | prolic_: I got a compilation error of hsqml on GHC 9.6.6, where can I open a ticket? It would seem your fork has issues disabled |
| 20:46:52 | → | foul_owl joins (~kerry@174-21-147-232.tukw.qwest.net) |
| 20:47:53 | × | billchenchina- quits (~billchenc@118.38.173.226) (Ping timeout: 265 seconds) |
| 20:48:51 | → | slack1256 joins (~slack1256@2803:c600:5111:80cb:d321:865d:b7ff:34ea) |
| 20:49:29 | <slack1256> | 1/2 Hey guys, quick TH question. How do I quote this name on TH? |
| 20:49:37 | <slack1256> | 2/2 deriveFromJSON (aesonPrefix snakeCase) (''IMAPAccountRequest ''Identity) |
| 20:50:05 | <slack1256> | Obviously ''IMAPAccountRequest ''Identity does not work. It is a HKD |
| 20:57:16 | → | VedantT joins (~VedantT@2603:6000:b500:29a9:ac9a:7661:5229:f762) |
| 20:59:52 | × | jespada_ quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 252 seconds) |
| 21:01:24 | × | kimiamania quits (~65804703@user/kimiamania) (Quit: PegeLinux) |
| 21:01:45 | → | kimiamania joins (~65804703@user/kimiamania) |
| 21:01:54 | → | jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) |
| 21:08:09 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:19:42 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 21:30:02 | <prolic_> | Hecate: https://github.com/prolic/HsQML/issues |
| 21:30:56 | <prolic_> | Hecate: I am using GHC 9.4.8 without issues |
| 21:31:42 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:32:07 | × | oo_miguel quits (~Thunderbi@78.10.207.46) (Ping timeout: 252 seconds) |
| 21:32:30 | × | skyesoss quits (~Thunderbi@128.135.204.35) (Ping timeout: 252 seconds) |
| 21:33:28 | → | skyesoss joins (~Thunderbi@128.135.204.35) |
| 21:36:28 | × | michalz quits (~michalz@185.246.207.197) (Quit: ZNC 1.9.0 - https://znc.in) |
| 21:44:36 | × | VedantT quits (~VedantT@2603:6000:b500:29a9:ac9a:7661:5229:f762) (Quit: Client closed) |
| 21:50:05 | <Hecate> | prolic_: <3 |
| 21:52:12 | → | pavonia joins (~user@user/siracusa) |
| 21:56:49 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 252 seconds) |
| 22:04:35 | × | paddymahoney quits (~paddymaho@pool-99-250-30-88.cpe.net.cable.rogers.com) (Ping timeout: 260 seconds) |
| 22:04:48 | × | prolic_ quits (~sasa@181.122.138.24) (Ping timeout: 276 seconds) |
| 22:05:50 | <Inst> | no one likes sieve of atkin here? |
| 22:09:52 | → | paddymahoney joins (~paddymaho@pool-99-250-30-88.cpe.net.cable.rogers.com) |
| 22:11:35 | <glguy> | slack1256: a name is a single thing. One type applied to another isn't a name but would be a Type. What does deriveFromJSON expect? |
| 22:12:10 | × | foul_owl quits (~kerry@174-21-147-232.tukw.qwest.net) (Ping timeout: 260 seconds) |
| 22:12:58 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 22:15:01 | <Inst> | i'm still reading the paper but it looks like it's actually much more condusive to FP than eratosthenes |
| 22:19:14 | × | Inst quits (~Inst@user/Inst) (Read error: Connection reset by peer) |
| 22:21:54 | × | CiaoSen quits (~Jura@2a05:5800:2ef:3300:e6b9:7aff:fe80:3d03) (Ping timeout: 260 seconds) |
| 22:24:13 | × | CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 22:26:34 | → | foul_owl joins (~kerry@185.216.231.180) |
| 22:26:35 | → | CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) |
| 22:32:53 | × | SteelBlueSilk quits (~SteelBlue@user/SteelBlueSilk) (Ping timeout: 248 seconds) |
| 22:43:03 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:45:12 | × | acidjnk quits (~acidjnk@p200300d6e72cfb67cc718b9c5fdaa04e.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 22:46:48 | × | Midjak quits (~MarciZ@82.66.147.146) (Quit: This computer has gone to sleep) |
| 22:51:19 | × | jerg quits (~jerg@2001:a61:247a:4700::bb0) (Ping timeout: 252 seconds) |
| 22:52:48 | <dsal> | Is there a way to do a sort of stateful update of values identified by a traversal? |
| 22:53:20 | <dsal> | I've got a fairly complicated nested structure and want to be able to replace a particular field quite deep down. I've got a list of unique values I'd like to apply, but I'm not sure how to thread them through. |
| 22:54:01 | <dsal> | I could do this without lens, but it seems like a pretty straightforward use case I'd like to avoid writing a bunch of code to do. |
| 23:01:34 | <jackdk> | dsal: https://hackage.haskell.org/package/lens-5.3.2/docs/Control-Lens-Traversal.html#v:partsOf ? |
| 23:02:21 | <dsal> | Yes, this looks like it might be the shape I was looking for. Thanks! |
| 23:03:06 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 23:13:34 | <dsal> | I ended up with partsOf (super . long . traversed . pile . of . traversed . bits) %~ zipWith updateOne someStuff |
| 23:14:11 | <EvanR> | lens poetry? |
| 23:15:31 | <dsal> | So much better than writing out all that stuff. There are nine components to that traversal in the real code. |
| 23:19:23 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 23:23:12 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 23:23:27 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 23:26:37 | → | VedantT joins (~VedantT@2603:6000:b500:29a9:ac9a:7661:5229:f762) |
| 23:29:25 | × | Rodney- quits (~Rodney@90.201.223.82) (Ping timeout: 248 seconds) |
| 23:30:40 | × | VedantT quits (~VedantT@2603:6000:b500:29a9:ac9a:7661:5229:f762) (Client Quit) |
| 23:31:31 | × | szkl quits (uid110435@2a03:5180:f:5::1:af63) (Quit: Connection closed for inactivity) |
| 23:40:55 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 23:42:29 | → | prolic_ joins (~sasa@181.122.138.24) |
| 23:44:22 | × | machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 244 seconds) |
| 23:45:32 | × | Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
| 23:52:38 | × | waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 244 seconds) |
| 23:55:33 | × | skyesoss quits (~Thunderbi@128.135.204.35) (Ping timeout: 248 seconds) |
| 23:59:32 | × | misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 252 seconds) |
All times are in UTC on 2024-07-26.