2024-12-06 00:02:41 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 252 seconds) |
2024-12-06 00:02:49 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2024-12-06 00:04:13 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) cyanteeth |
2024-12-06 00:04:40 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-12-06 00:07:57 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 00:09:29 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 260 seconds) |
2024-12-06 00:10:36 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) (Quit: Client closed) |
2024-12-06 00:11:01 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) cyanteeth |
2024-12-06 00:12:45 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) Smiles |
2024-12-06 00:12:57 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-06 00:13:00 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) (Client Quit) |
2024-12-06 00:13:47 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) cyanteeth |
2024-12-06 00:14:31 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-12-06 00:14:39 +0100 | falafel | (~falafel@2603:8000:b4f0:62a0:e8b3:b69f:e70f:bca9) (Ping timeout: 272 seconds) |
2024-12-06 00:15:24 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) (Client Quit) |
2024-12-06 00:19:17 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-12-06 00:21:59 +0100 | sonolin | (~michael@user/sonolin) (Read error: Connection reset by peer) |
2024-12-06 00:22:24 +0100 | sonolin | (~michael@174-26-31-216.phnx.qwest.net) |
2024-12-06 00:23:34 +0100 | sonolin | (~michael@174-26-31-216.phnx.qwest.net) (Changing host) |
2024-12-06 00:23:34 +0100 | sonolin | (~michael@user/sonolin) sonolin |
2024-12-06 00:23:46 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 00:23:50 +0100 | supercode | (~supercode@user/supercode) (Quit: Client closed) |
2024-12-06 00:24:19 +0100 | KicksonButt | (~quassel@187.21.174.221) (Ping timeout: 252 seconds) |
2024-12-06 00:28:44 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-06 00:29:07 +0100 | voonij | (~voonij@163.123.195.138) |
2024-12-06 00:29:10 +0100 | voonij | (~voonij@163.123.195.138) (Remote host closed the connection) |
2024-12-06 00:30:26 +0100 | <iqubic> | Why does Containers have such a weird Graph API? |
2024-12-06 00:30:32 +0100 | homo | (~homo@user/homo) (Quit: homo) |
2024-12-06 00:30:45 +0100 | homo | (~homo@82-128-196-26.bb.dnainternet.fi) |
2024-12-06 00:31:03 +0100 | homo | (~homo@82-128-196-26.bb.dnainternet.fi) (Changing host) |
2024-12-06 00:31:03 +0100 | homo | (~homo@user/homo) homo |
2024-12-06 00:31:17 +0100 | <iqubic> | It's awkward to work with. Even just creating a graph and topographically sorting it it is a pain with that API. |
2024-12-06 00:34:07 +0100 | <Axman6> | last I heard, fgl was the way to go |
2024-12-06 00:37:11 +0100 | <iqubic> | Yeah. fgl is so much better for working with graphs, I find. |
2024-12-06 00:39:31 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 00:41:08 +0100 | <probie> | Is it actually that bad? It seems more unsafe than the average Haskell API, but the specific case of making a graph and topographically sorting the vertices seems straightforward |
2024-12-06 00:44:09 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-12-06 00:45:04 +0100 | xff0x | (~xff0x@2405:6580:b080:900:2aec:ff1e:1898:31f2) (Ping timeout: 260 seconds) |
2024-12-06 00:53:14 +0100 | eL_Bart0 | (eL_Bart0@dietunichtguten.org) (Ping timeout: 260 seconds) |
2024-12-06 00:55:17 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 00:55:43 +0100 | <iqubic> | Well, it's just that Data.Graph from Containers uses essentially arbitary integers to label the nodes and I can't really give the nodes and edges their own labels. |
2024-12-06 00:56:31 +0100 | <iqubic> | fgl lets me label the nodes and edges. It also lets me assign my own data to the edges. |
2024-12-06 00:57:24 +0100 | <iqubic> | *assign my own data to the nodes |
2024-12-06 00:57:56 +0100 | <jackdk> | algebraic-graphs |
2024-12-06 00:58:16 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-12-06 00:58:40 +0100 | <iqubic> | Is that better than fgl? |
2024-12-06 00:59:19 +0100 | <jackdk> | it has a cleaner model imho; whether it's better for your problem isn't for me to decide |
2024-12-06 01:00:00 +0100 | <iqubic> | Is there a guide to using algebraic-graphs that I can look at? I don't know how that API works. |
2024-12-06 01:00:21 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-06 01:07:16 +0100 | tdammers | (~tdammers@82-150-212-87.ftth.glasoperator.nl) |
2024-12-06 01:07:46 +0100 | xff0x | (~xff0x@2405:6580:b080:900:585d:f11d:d292:5d16) |
2024-12-06 01:08:04 +0100 | sprotte24 | (~sprotte24@p200300d16f0cca009d8994f8fb036ac7.dip0.t-ipconnect.de) (Quit: Leaving) |
2024-12-06 01:09:00 +0100 | tomboy64 | (~tomboy64@user/tomboy64) (Ping timeout: 265 seconds) |
2024-12-06 01:11:03 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 01:13:42 +0100 | econo_ | (uid147250@id-147250.tinside.irccloud.com) |
2024-12-06 01:16:02 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-06 01:18:19 +0100 | tdammers | (~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 260 seconds) |
2024-12-06 01:19:07 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b105:e5ae:be6:818e) |
2024-12-06 01:20:08 +0100 | haskellbridge | (~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection) |
2024-12-06 01:20:52 +0100 | haskellbridge | (~hackager@syn-024-093-192-219.res.spectrum.com) hackager |
2024-12-06 01:20:52 +0100 | ChanServ | +v haskellbridge |
2024-12-06 01:21:08 +0100 | acidjnk_new3 | (~acidjnk@p200300d6e7283f313597cdba6c3bdfe2.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
2024-12-06 01:22:20 +0100 | tomboy64 | (~tomboy64@user/tomboy64) tomboy64 |
2024-12-06 01:26:52 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 01:28:37 +0100 | troojg | (~troojg@user/troojg) troojg |
2024-12-06 01:31:05 +0100 | | https://www.reddit.com/r/haskell | Admin: #haskell-ops | Offtopic: #haskell-offtopic | https://downloads.haskell.org | https://play.haskell.org/ | Paste code/errors: https://paste.tomsmeding.com | Logs: https://ircbrowse.tomsmeding.com/browse/lchaskell | AoC: 43100-84040706 |
2024-12-06 01:31:35 +0100 | <glguy> | If anyone's doing AoC in Haskell this year you're welcome to join the leaderboard in the topic |
2024-12-06 01:31:45 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-12-06 01:31:54 +0100 | <hammond> | AoC? |
2024-12-06 01:31:59 +0100 | <glguy> | adventofcode.co |
2024-12-06 01:32:00 +0100 | <glguy> | m |
2024-12-06 01:32:46 +0100 | <hammond> | oh cool |
2024-12-06 01:34:06 +0100 | <glguy> | about 45 people are have finished the 5 days so far; a pretty good start |
2024-12-06 01:34:23 +0100 | <glguy> | (specifically on the leaderboard I advertise in here each year) |
2024-12-06 01:42:40 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 01:45:40 +0100 | <geekosaur> | comment from elsewhere: "watching welltyped folks doing advent of code live is like a live sports occasion for Haskellers" |
2024-12-06 01:46:52 +0100 | <monochrom> | heh |
2024-12-06 01:48:06 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
2024-12-06 01:48:40 +0100 | sindu | (~sindu@176.75.224.1) (Ping timeout: 252 seconds) |
2024-12-06 01:50:28 +0100 | <jackdk> | An equivalent to the excel championship streams could be fun |
2024-12-06 01:53:23 +0100 | <probie> | I'm doing them in Haskell this year, but only after I initially do them in BQN |
2024-12-06 01:53:24 +0100 | ftzm0 | (~ftzm@085081054140.dynamic.telenor.dk) ftzm |
2024-12-06 01:54:39 +0100 | <glguy> | admire-only-programming :) |
2024-12-06 01:55:02 +0100 | ftzm | (~ftzm@085080252164.dynamic.telenor.dk) (Ping timeout: 255 seconds) |
2024-12-06 01:55:02 +0100 | ftzm0 | ftzm |
2024-12-06 01:58:10 +0100 | <probie> | Why write readable Haskell when you can vomit out things like {+´(𝕩⊸=¨"MAS")⊸{m‿a‿s←𝕏¨𝕨⋄+´⥊s∧««s∧»˘»˘m∧»»m∧«˘«a}¨⟨⊢⋄⌽˘⋄⍉⋄⌽˘∘⍉⟩} |
2024-12-06 01:58:27 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 01:58:47 +0100 | <glguy> | I give up; why? |
2024-12-06 01:59:20 +0100 | Buliarous | (~gypsydang@46.232.210.139) (Quit: leaving) |
2024-12-06 01:59:39 +0100 | Buliarous | (~gypsydang@46.232.210.139) Buliarous |
2024-12-06 02:02:47 +0100 | tdammers | (~tdammers@82-150-212-87.ftth.glasoperator.nl) tdammers |
2024-12-06 02:03:19 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
2024-12-06 02:03:21 +0100 | <monochrom> | because it's 2-in-1 usable code and xmas decoration? :) |
2024-12-06 02:03:48 +0100 | <iqubic> | jackdk: Does algebraic-graphs have a way to do a topographical sort? |
2024-12-06 02:03:58 +0100 | <monochrom> | hot take: I can see "xmas" spelt in it, so it's readable >:) |
2024-12-06 02:05:31 +0100 | <glguy> | iqubic: when you're looking at the haddocks press 's' and you can live-search |
2024-12-06 02:05:46 +0100 | <iqubic> | Oh, that's handy to know. |
2024-12-06 02:09:08 +0100 | AlexNoo | (~AlexNoo@5.139.233.9) (Read error: Connection reset by peer) |
2024-12-06 02:09:31 +0100 | AlexNoo | (~AlexNoo@5.139.233.9) |
2024-12-06 02:10:22 +0100 | _xor | (~xor@ip-66-42-132-175.dynamic.fuse.net) (Quit: Ping timeout (120 seconds)) |
2024-12-06 02:10:30 +0100 | Fijxu | (~Fijxu@user/fijxu) (Quit: XD!!) |
2024-12-06 02:11:01 +0100 | _xor | (~xor@ip-66-42-132-175.dynamic.fuse.net) _xor |
2024-12-06 02:11:19 +0100 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-12-06 02:11:36 +0100 | img | (~img@user/img) img |
2024-12-06 02:12:19 +0100 | Fijxu | (~Fijxu@user/fijxu) fijxu |
2024-12-06 02:12:33 +0100 | <Axman6> | probie: I had no idea BQN shilled x.com |
2024-12-06 02:14:08 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 02:14:28 +0100 | Brett90 | (~Brett@cpc91312-watf11-2-0-cust1213.15-2.cable.virginm.net) |
2024-12-06 02:15:38 +0100 | <Brett90> | does anyone use nvim and haskell-tools? i can't get hardly anything to work |
2024-12-06 02:16:15 +0100 | <probie> | glguy: If I'm serious for a moment; because it's a different way of looking at things. Some people doing AoC in Haskell have never written much Haskell and are going to write janky solutions to the problems, and will then look at how "simply" other people solved them and will learn something |
2024-12-06 02:16:51 +0100 | <Brett90> | alexandria ocasio-cortez? |
2024-12-06 02:17:44 +0100 | <glguy> | Brett90: no |
2024-12-06 02:18:33 +0100 | <glguy> | probie: I do try my best to write my Haskell "simply", but we can't tell ourselves that Haskell solutions will be simple by default. It's quite easy to write unreadable Haskell |
2024-12-06 02:19:40 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2024-12-06 02:21:06 +0100 | <probie> | glguy: Perhaps "simply" was the wrong word. How about "and will then learn something new from comparing their solutions to more "idiomatic" solutions"? |
2024-12-06 02:23:13 +0100 | <geekosaur> | evolution of a haskell programmer, aoc edition |
2024-12-06 02:23:56 +0100 | youthlic | (~Thunderbi@user/youthlic) youthlic |
2024-12-06 02:24:07 +0100 | <glguy> | probie: yeah, I think it can be valuable to solve the problems and see how other people did it. That's my favorite part of the who exercise :) |
2024-12-06 02:24:49 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-12-06 02:24:58 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-06 02:25:50 +0100 | <glguy> | whole* |
2024-12-06 02:31:09 +0100 | <glguy> | (and it's why I have a repo of solutions from 2015-today https://github.com/glguy/advent/tree/main/solutions/src/2024 ) |
2024-12-06 02:32:15 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:b105:e5ae:be6:818e) (Read error: Connection reset by peer) |
2024-12-06 02:33:13 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) Smiles |
2024-12-06 02:33:33 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Quit: Lost terminal) |
2024-12-06 02:35:34 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) ezzieyguywuf |
2024-12-06 02:36:29 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 02:37:16 +0100 | JeremyB99 | (~JeremyB99@dhcp-248-40.resnet.purdue.edu) |
2024-12-06 02:41:46 +0100 | JeremyB99 | (~JeremyB99@dhcp-248-40.resnet.purdue.edu) (Ping timeout: 252 seconds) |
2024-12-06 02:41:46 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-06 02:47:26 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:401:7:f09:c735:97c0:a2aa) |
2024-12-06 02:47:40 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:401:7:f09:c735:97c0:a2aa) (Read error: Connection reset by peer) |
2024-12-06 02:52:16 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 02:57:29 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-12-06 03:00:16 +0100 | KicksonButt | (~quassel@187.21.174.221) |
2024-12-06 03:01:27 +0100 | fmira | (~user@user/fmira) fmira |
2024-12-06 03:02:07 +0100 | KicksonButt | (~quassel@187.21.174.221) (Client Quit) |
2024-12-06 03:02:25 +0100 | KicksonButt | (~quassel@187.21.174.221) |
2024-12-06 03:06:13 +0100 | tdammers | (~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 248 seconds) |
2024-12-06 03:06:37 +0100 | tdammers | (~tdammers@82-150-212-87.ftth.glasoperator.nl) tdammers |
2024-12-06 03:08:04 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 03:08:37 +0100 | <KicksonButt> | Let's say I have a type f of kind * -> * for which I create an instance of Functor, defining how fmap operates on f. Which is more correct to say: "f é a functor" or "fmap is an functor"? |
2024-12-06 03:09:22 +0100 | <KicksonButt> | "f is a functor" or "fmap is a functor"? |
2024-12-06 03:09:34 +0100 | <monochrom> | f is a functor. |
2024-12-06 03:11:07 +0100 | Brett90 | (~Brett@cpc91312-watf11-2-0-cust1213.15-2.cable.virginm.net) (Quit: Client closed) |
2024-12-06 03:12:49 +0100 | <KicksonButt> | monochrom: is fmap not at all a functor? |
2024-12-06 03:12:54 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-12-06 03:13:10 +0100 | <geekosaur> | it is a method of Functor |
2024-12-06 03:13:17 +0100 | <probie> | it's a function |
2024-12-06 03:13:36 +0100 | <monochrom> | m is part of monochrom, and that does not mean that m is monochrom. |
2024-12-06 03:13:52 +0100 | <geekosaur> | a functor is a type which supports particular operations, in this case fmap |
2024-12-06 03:13:53 +0100 | <probie> | m: are you sure about that? |
2024-12-06 03:15:24 +0100 | <KicksonButt> | Thanks for the clarifications |
2024-12-06 03:15:25 +0100 | <monochrom> | Indeed, M is the boss of Bond, but monochrom is not. >:) |
2024-12-06 03:18:49 +0100 | <monochrom> | When teaching, I don't even say "f is a functor", I say "f is an instance of Functor". "is-a" is over-abused and is becoming informationless and tautological. |
2024-12-06 03:18:52 +0100 | Brett5 | (~Brett@cpc91312-watf11-2-0-cust1213.15-2.cable.virginm.net) |
2024-12-06 03:22:53 +0100 | <KicksonButt> | monochrom: The classes I attended would have been much better with such approach. Our instructor ended up making a confusion around these terms |
2024-12-06 03:23:52 +0100 | <geekosaur> | is-a also implies to most programmers OOP, but typeclasses are not OOP despite the name |
2024-12-06 03:23:53 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 03:25:19 +0100 | <geekosaur> | (but I stand by it in the lowercase one because it's mathematical terminology in that case so I'm kinda stuck with it. should have used the uppercase one to indicate the Haskell typeclass though) |
2024-12-06 03:27:22 +0100 | OftenFaded | (~OftenFade@user/tisktisk) (Quit: Client closed) |
2024-12-06 03:28:26 +0100 | <monochrom> | In the case of math, fmap becomes one bullet point among 2 or 3 bullet points of the data of functor. So one still doesn't say "fmap is a functor". |
2024-12-06 03:29:30 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
2024-12-06 03:29:47 +0100 | <monochrom> | Fortunately, I don't teach a math course, I teach a programming course, so I never need to say the "f is a functor" math wording. >:) |
2024-12-06 03:30:09 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 276 seconds) |
2024-12-06 03:30:59 +0100 | <probie> | "f is a functor and an instance of Functor" |
2024-12-06 03:31:41 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2024-12-06 03:32:04 +0100 | sonolin | (~michael@user/sonolin) (Ping timeout: 265 seconds) |
2024-12-06 03:33:42 +0100 | sonolin | (~michael@174-26-31-216.phnx.qwest.net) |
2024-12-06 03:34:06 +0100 | sonolin | (~michael@174-26-31-216.phnx.qwest.net) (Changing host) |
2024-12-06 03:34:07 +0100 | sonolin | (~michael@user/sonolin) sonolin |
2024-12-06 03:38:40 +0100 | tv | (~tv@user/tv) (Read error: Connection reset by peer) |
2024-12-06 03:39:39 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 03:40:24 +0100 | hgolden | (~hgolden@2603:8000:9d00:3ed1:2d8:61ff:feaa:be45) hgolden |
2024-12-06 03:40:54 +0100 | rekahsoft | (~rekahsoft@bras-base-orllon1103w-grc-06-76-69-85-220.dsl.bell.ca) rekahsoft |
2024-12-06 03:41:14 +0100 | tdammers | (~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 245 seconds) |
2024-12-06 03:44:34 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
2024-12-06 03:46:42 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:c53d:8130:21bb:6073) |
2024-12-06 03:47:18 +0100 | fmira | (~user@user/fmira) (Quit: fmira) |
2024-12-06 03:48:05 +0100 | fmira | (~user@user/fmira) fmira |
2024-12-06 03:49:00 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:c53d:8130:21bb:6073) (Read error: Connection reset by peer) |
2024-12-06 03:51:51 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
2024-12-06 03:54:10 +0100 | tdammers | (~tdammers@82-150-212-87.ftth.glasoperator.nl) tdammers |
2024-12-06 03:54:29 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
2024-12-06 03:54:57 +0100 | ryanbooker | (uid4340@id-4340.hampstead.irccloud.com) ryanbooker |
2024-12-06 03:55:25 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 04:00:18 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-06 04:02:03 +0100 | ethantwardy | (user@user/ethantwardy) ethantwardy |
2024-12-06 04:02:49 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:c53d:8130:21bb:6073) |
2024-12-06 04:02:52 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:c53d:8130:21bb:6073) (Read error: Connection reset by peer) |
2024-12-06 04:03:01 +0100 | Brett5 | (~Brett@cpc91312-watf11-2-0-cust1213.15-2.cable.virginm.net) (Quit: Client closed) |
2024-12-06 04:07:34 +0100 | tdammers | (~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 252 seconds) |
2024-12-06 04:10:24 +0100 | yangby | (~secret@218.72.98.138) (Ping timeout: 240 seconds) |
2024-12-06 04:10:56 +0100 | tomboy64 | (~tomboy64@user/tomboy64) (*.net *.split) |
2024-12-06 04:10:56 +0100 | aforemny | (~aforemny@i577BEE5E.versanet.de) (*.net *.split) |
2024-12-06 04:10:56 +0100 | mulk | (~mulk@p5b11254a.dip0.t-ipconnect.de) (*.net *.split) |
2024-12-06 04:10:56 +0100 | rini | (~rini@user/rini) (*.net *.split) |
2024-12-06 04:10:56 +0100 | masterbuilder | (~quassel@user/masterbuilder) (*.net *.split) |
2024-12-06 04:10:56 +0100 | mesaoptimizer | (~mesaoptim@user/PapuaHardyNet) (*.net *.split) |
2024-12-06 04:10:56 +0100 | rachelambda | (~rachelamb@cust-95-80-25-71.csbnet.se) (*.net *.split) |
2024-12-06 04:10:56 +0100 | emergence | (emergence@vm0.max-p.me) (*.net *.split) |
2024-12-06 04:10:56 +0100 | dostoyevsky2 | (~sck@user/dostoyevsky2) (*.net *.split) |
2024-12-06 04:10:56 +0100 | rdcdr | (~rdcdr@user/rdcdr) (*.net *.split) |
2024-12-06 04:10:56 +0100 | nschoe | (~nschoe@82-65-202-30.subs.proxad.net) (*.net *.split) |
2024-12-06 04:10:56 +0100 | zfnmxt | (~zfnmxt@user/zfnmxt) (*.net *.split) |
2024-12-06 04:10:56 +0100 | Clint | (~Clint@user/clint) (*.net *.split) |
2024-12-06 04:10:56 +0100 | meejah | (~meejah@rutas.meejah.ca) (*.net *.split) |
2024-12-06 04:10:56 +0100 | wz1000 | (~zubin@static.11.113.47.78.clients.your-server.de) (*.net *.split) |
2024-12-06 04:10:56 +0100 | barthandelous01 | (barth@triton.blinkenshell.org) (*.net *.split) |
2024-12-06 04:10:56 +0100 | Dykam | (Dykam@dykam.nl) (*.net *.split) |
2024-12-06 04:10:56 +0100 | tmr | (~tamer@user/tamer) (*.net *.split) |
2024-12-06 04:10:56 +0100 | aku | (aku@65.108.245.241) (*.net *.split) |
2024-12-06 04:11:13 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 04:13:35 +0100 | masterbuilder | (~quassel@user/masterbuilder) masterbuilder |
2024-12-06 04:14:22 +0100 | aforemny | (~aforemny@2001:9e8:6ce6:8a00:ba1a:a166:2953:a01a) aforemny |
2024-12-06 04:15:54 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-12-06 04:17:41 +0100 | yangby | (~secret@218.72.98.138) yangby |
2024-12-06 04:19:04 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:c53d:8130:21bb:6073) |
2024-12-06 04:19:51 +0100 | aku | (aku@65.108.245.241) eagleflo |
2024-12-06 04:19:52 +0100 | Clint | (~Clint@user/clint) Clint |
2024-12-06 04:19:53 +0100 | dostoyevsky2 | (~sck@user/dostoyevsky2) dostoyevsky2 |
2024-12-06 04:19:54 +0100 | meejah | (~meejah@rutas.meejah.ca) meejah |
2024-12-06 04:19:57 +0100 | rini | (~rini@user/rini) rini |
2024-12-06 04:19:58 +0100 | emergence | (emergence@vm0.max-p.me) emergence |
2024-12-06 04:20:00 +0100 | wz1000 | (~zubin@static.11.113.47.78.clients.your-server.de) |
2024-12-06 04:20:01 +0100 | nschoe | (~nschoe@2a01:e0a:8e:a190:70f8:56a2:d0db:fe4d) nschoe |
2024-12-06 04:20:02 +0100 | zfnmxt | (~zfnmxt@user/zfnmxt) zfnmxt |
2024-12-06 04:20:03 +0100 | rdcdr | (~rdcdr@user/rdcdr) rdcdr |
2024-12-06 04:20:04 +0100 | rachelambda | (~rachelamb@cust-95-80-25-71.csbnet.se) rachelambda |
2024-12-06 04:20:08 +0100 | tmr | (~tamer@5.2.74.82) |
2024-12-06 04:20:08 +0100 | tomboy64 | (~tomboy64@user/tomboy64) tomboy64 |
2024-12-06 04:20:08 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:c53d:8130:21bb:6073) (Read error: Connection reset by peer) |
2024-12-06 04:20:35 +0100 | mulk | (~mulk@p5b11254a.dip0.t-ipconnect.de) mulk |
2024-12-06 04:20:37 +0100 | Dykam | (Dykam@dykam.nl) Dykam |
2024-12-06 04:21:11 +0100 | tdammers | (~tdammers@82-150-212-87.ftth.glasoperator.nl) tdammers |
2024-12-06 04:21:31 +0100 | barthandelous01 | (barth@triton.blinkenshell.org) barthandelous01 |
2024-12-06 04:26:54 +0100 | yangby | (~secret@218.72.98.138) (Ping timeout: 240 seconds) |
2024-12-06 04:27:01 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 04:29:34 +0100 | KicksonButt | (~quassel@187.21.174.221) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2024-12-06 04:31:38 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
2024-12-06 04:34:24 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 264 seconds) |
2024-12-06 04:34:39 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
2024-12-06 04:36:54 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:c53d:8130:21bb:6073) |
2024-12-06 04:37:49 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:c53d:8130:21bb:6073) (Read error: Connection reset by peer) |
2024-12-06 04:37:53 +0100 | Brett25 | (~Brett@cpc91312-watf11-2-0-cust1213.15-2.cable.virginm.net) |
2024-12-06 04:39:40 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2024-12-06 04:42:47 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 04:48:09 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
2024-12-06 04:48:18 +0100 | gorignak | (~gorignak@user/gorignak) gorignak |
2024-12-06 04:50:45 +0100 | troojg | (~troojg@user/troojg) (Ping timeout: 276 seconds) |
2024-12-06 04:53:33 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:c53d:8130:21bb:6073) |
2024-12-06 04:55:49 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:c53d:8130:21bb:6073) (Read error: Connection reset by peer) |
2024-12-06 04:57:25 +0100 | weary-traveler | (~user@user/user363627) user363627 |
2024-12-06 04:57:29 +0100 | notzmv | (~umar@user/notzmv) (Ping timeout: 245 seconds) |
2024-12-06 04:58:19 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:c53d:8130:21bb:6073) |
2024-12-06 04:58:34 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 05:02:27 +0100 | td_ | (~td@i5387092C.versanet.de) (Ping timeout: 276 seconds) |
2024-12-06 05:03:29 +0100 | td_ | (~td@i5387093D.versanet.de) |
2024-12-06 05:05:09 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-06 05:08:47 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 05:09:39 +0100 | korrykatti | (~korrykatt@user/korrykatti) korrykatti |
2024-12-06 05:10:33 +0100 | notzmv | (~umar@user/notzmv) notzmv |
2024-12-06 05:13:35 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-12-06 05:15:54 +0100 | aforemny_ | (~aforemny@2001:9e8:6ccb:4000:5e66:f8ae:2e96:5c20) aforemny |
2024-12-06 05:16:48 +0100 | aforemny | (~aforemny@2001:9e8:6ce6:8a00:ba1a:a166:2953:a01a) (Ping timeout: 246 seconds) |
2024-12-06 05:22:47 +0100 | homo_ | (~homo@82-128-196-26.bb.dnainternet.fi) |
2024-12-06 05:23:09 +0100 | homo_ | (~homo@82-128-196-26.bb.dnainternet.fi) (Changing host) |
2024-12-06 05:23:09 +0100 | homo_ | (~homo@user/homo) homo |
2024-12-06 05:24:29 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 05:26:45 +0100 | homo | (~homo@user/homo) (Ping timeout: 252 seconds) |
2024-12-06 05:26:46 +0100 | homo_ | homo |
2024-12-06 05:31:36 +0100 | CrunchyFlakes | (~CrunchyFl@ip1f13e94e.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-12-06 05:33:14 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-12-06 05:33:43 +0100 | CrunchyFlakes | (~CrunchyFl@ip1f13e94e.dynamic.kabel-deutschland.de) |
2024-12-06 05:36:24 +0100 | Pozyomka | (~pyon@user/pyon) (Ping timeout: 244 seconds) |
2024-12-06 05:38:22 +0100 | Pozyomka | (~pyon@user/pyon) pyon |
2024-12-06 05:44:48 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 05:49:51 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-06 05:56:51 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 05:57:43 +0100 | falafel | (~falafel@2603:8000:b4f0:62a0:5eb1:a3f:a835:5033) falafel |
2024-12-06 06:04:24 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-12-06 06:04:43 +0100 | ryanbooker | (uid4340@id-4340.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2024-12-06 06:13:31 +0100 | <iqubic> | So, I have some data of type `Map k (Maybe v)` What's the best way to convert this to a `[(k, v)]` containing only the data from the key value pairs where I have a Just value stored? |
2024-12-06 06:14:40 +0100 | <iqubic> | Oh, it turns out that list comprehensions can do pattern matching. Neat. |
2024-12-06 06:16:04 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 06:17:09 +0100 | <iqubic> | getData m = [(k, v) | (k, Just v) <- M.assocs m] |
2024-12-06 06:19:22 +0100 | yangby | (~secret@218.72.98.138) yangby |
2024-12-06 06:19:49 +0100 | cheater | (~Username@user/cheater) (Quit: Going offline, see ya! (www.adiirc.com)) |
2024-12-06 06:21:29 +0100 | weary-traveler | (~user@user/user363627) (Read error: Connection reset by peer) |
2024-12-06 06:23:52 +0100 | weary-traveler | (~user@user/user363627) user363627 |
2024-12-06 06:24:39 +0100 | vulpine | (xfnw@user/meow/xfnw) (Quit: Connection reset by purr) |
2024-12-06 06:26:07 +0100 | vulpine | (xfnw@user/meow/xfnw) xfnw |
2024-12-06 06:26:54 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-12-06 06:34:29 +0100 | <mauke> | if this turns out to be traverse again ... |
2024-12-06 06:34:33 +0100 | <mauke> | ah, no |
2024-12-06 06:38:30 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 06:39:40 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:c53d:8130:21bb:6073) (Read error: Connection reset by peer) |
2024-12-06 06:42:02 +0100 | Pixi` | (~Pixi@user/pixi) (Quit: Leaving) |
2024-12-06 06:43:14 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-12-06 06:44:55 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:c53d:8130:21bb:6073) |
2024-12-06 06:46:25 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:c53d:8130:21bb:6073) (Read error: Connection reset by peer) |
2024-12-06 06:46:27 +0100 | falafel | (~falafel@2603:8000:b4f0:62a0:5eb1:a3f:a835:5033) (Ping timeout: 276 seconds) |
2024-12-06 06:46:56 +0100 | korrykatti | (~korrykatt@user/korrykatti) (Remote host closed the connection) |
2024-12-06 06:49:24 +0100 | cheater | (~Username@user/cheater) cheater |
2024-12-06 06:49:35 +0100 | <jackdk> | % import qualified Data.Map as Map |
2024-12-06 06:49:35 +0100 | <yahb2> | <no output> |
2024-12-06 06:49:40 +0100 | <jackdk> | % import Control.Lens |
2024-12-06 06:49:40 +0100 | <yahb2> | <no location info>: error: [GHC-35235] ; Could not find module ‘Control.Lens’. ; It is not a module in the current program, or in any known package. |
2024-12-06 06:49:45 +0100 | <jackdk> | % :q |
2024-12-06 06:49:45 +0100 | <yahb2> | <bye> |
2024-12-06 06:50:03 +0100 | <jackdk> | anyway: `(Map.fromList [("hello", Just "world"), ("we wait for", Nothing), ("come on and", Just "slam")]) ^@.. itraversed <. folded` |
2024-12-06 06:54:02 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 06:54:26 +0100 | <jackdk> | Hm, you can use `_Just` instead of `folded` and it won't mess with the index, meaning you can use `.` instead of `<.` |
2024-12-06 06:55:18 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:c53d:8130:21bb:6073) |
2024-12-06 06:58:31 +0100 | <Leary> | :t M.assocs . M.mapMaybe id |
2024-12-06 06:58:32 +0100 | <lambdabot> | M.Map k (Maybe a) -> [(k, a)] |
2024-12-06 06:58:45 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-06 06:58:54 +0100 | <jackdk> | Leary: nice. |
2024-12-06 06:58:56 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:c53d:8130:21bb:6073) (Read error: Connection reset by peer) |
2024-12-06 07:00:29 +0100 | michalz | (~michalz@185.246.207.205) |
2024-12-06 07:04:55 +0100 | Pixi | (~Pixi@user/pixi) Pixi |
2024-12-06 07:05:34 +0100 | Square | (~Square@user/square) Square |
2024-12-06 07:07:27 +0100 | mange | (~user@user/mange) (Quit: Quittin' time!) |
2024-12-06 07:08:52 +0100 | fmira | (~user@user/fmira) (Quit: fmira) |
2024-12-06 07:09:03 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2024-12-06 07:09:45 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 07:10:50 +0100 | cheater_ | (~Username@user/cheater) cheater |
2024-12-06 07:11:30 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 265 seconds) |
2024-12-06 07:11:35 +0100 | cheater_ | cheater |
2024-12-06 07:12:59 +0100 | cheater | (~Username@user/cheater) (Read error: Connection reset by peer) |
2024-12-06 07:13:44 +0100 | cheater | (~Username@user/cheater) cheater |
2024-12-06 07:14:25 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:c53d:8130:21bb:6073) |
2024-12-06 07:14:38 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-06 07:19:33 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) cyanteeth |
2024-12-06 07:20:09 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:c53d:8130:21bb:6073) (Read error: Connection reset by peer) |
2024-12-06 07:20:48 +0100 | cyanteeth | (~cyanteeth@user/cyanteeth) (Client Quit) |
2024-12-06 07:23:37 +0100 | Brett25 | (~Brett@cpc91312-watf11-2-0-cust1213.15-2.cable.virginm.net) (Quit: Client closed) |
2024-12-06 07:25:32 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 07:30:40 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-12-06 07:34:14 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:c53d:8130:21bb:6073) |
2024-12-06 07:35:26 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:c53d:8130:21bb:6073) (Read error: Connection reset by peer) |
2024-12-06 07:39:00 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:c53d:8130:21bb:6073) |
2024-12-06 07:41:21 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 07:43:49 +0100 | Square2 | (~Square4@user/square) Square |
2024-12-06 07:47:13 +0100 | Square | (~Square@user/square) (Ping timeout: 248 seconds) |
2024-12-06 07:47:53 +0100 | robobub | (uid248673@id-248673.uxbridge.irccloud.com) robobub |
2024-12-06 07:48:06 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-06 07:59:23 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 08:01:39 +0100 | mesaoptimizer | (~mesaoptim@user/PapuaHardyNet) PapuaHardyNet |
2024-12-06 08:03:49 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-06 08:04:33 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 08:08:29 +0100 | matsurago | (~matsurago@240b:10:b3a1:1700:b208:b72c:53fc:819f) |
2024-12-06 08:09:09 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-06 08:10:47 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 08:13:26 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Read error: Connection timed out) |
2024-12-06 08:15:30 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-06 08:16:40 +0100 | tcard | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving) |
2024-12-06 08:20:59 +0100 | ft | (~ft@p508db9c7.dip0.t-ipconnect.de) (Quit: leaving) |
2024-12-06 08:25:35 +0100 | tcard | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
2024-12-06 08:26:32 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 08:31:33 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-06 08:39:17 +0100 | arthurvl | (~arthurvl@77-174-49-144.fixed.kpn.net) (Quit: stroomwerk) |
2024-12-06 08:42:20 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 08:46:30 +0100 | tcard | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Remote host closed the connection) |
2024-12-06 08:46:44 +0100 | tcard | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) tcard |
2024-12-06 08:47:32 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds) |
2024-12-06 08:49:04 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:c53d:8130:21bb:6073) (Remote host closed the connection) |
2024-12-06 08:49:12 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:c53d:8130:21bb:6073) |
2024-12-06 08:52:24 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2024-12-06 08:58:07 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 09:00:01 +0100 | caconym | (~caconym@user/caconym) (Quit: bye) |
2024-12-06 09:00:39 +0100 | caconym | (~caconym@user/caconym) caconym |
2024-12-06 09:02:54 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-12-06 09:04:19 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac |
2024-12-06 09:06:49 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-12-06 09:10:29 +0100 | acidjnk_new3 | (~acidjnk@p200300d6e7283f42e8f4273a1ef84d34.dip0.t-ipconnect.de) |
2024-12-06 09:11:44 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 09:16:53 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-06 09:27:32 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 09:32:38 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-12-06 09:35:00 +0100 | korrykatti | (~korrykatt@user/korrykatti) korrykatti |
2024-12-06 09:37:11 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
2024-12-06 09:37:28 +0100 | CiaoSen | (~Jura@2a05:5800:2ed:3200:ca4b:d6ff:fec1:99da) CiaoSen |
2024-12-06 09:42:11 +0100 | housemate | (~housemate@2405:6e00:242b:e64:7c12:4309:4b5a:92c0) housemate |
2024-12-06 09:42:35 +0100 | Brett70 | (~Brett@cpc91312-watf11-2-0-cust1213.15-2.cable.virginm.net) |
2024-12-06 09:43:20 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 09:48:03 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-12-06 09:49:17 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2024-12-06 09:54:21 +0100 | sonolin | (~michael@user/sonolin) (Ping timeout: 246 seconds) |
2024-12-06 09:58:41 +0100 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2024-12-06 09:59:07 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 10:03:49 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-06 10:07:53 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 10:14:01 +0100 | p3n | (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-12-06 10:14:36 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla |
2024-12-06 10:15:34 +0100 | p3n | (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) p3n |
2024-12-06 10:16:54 +0100 | chele | (~chele@user/chele) chele |
2024-12-06 10:19:53 +0100 | housemate | (~housemate@2405:6e00:242b:e64:7c12:4309:4b5a:92c0) (Quit: Nothing to see here. I wasn't there. https://files.catbox.moe/4yru45.pdf) |
2024-12-06 10:32:15 +0100 | korrykatti | (~korrykatt@user/korrykatti) (Remote host closed the connection) |
2024-12-06 10:32:55 +0100 | korrykatti | (~korrykatt@user/korrykatti) korrykatti |
2024-12-06 10:42:10 +0100 | korrykatti | (~korrykatt@user/korrykatti) (Ping timeout: 252 seconds) |
2024-12-06 10:42:53 +0100 | korrykatti | (~korrykatt@user/korrykatti) korrykatti |
2024-12-06 10:45:34 +0100 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
2024-12-06 10:51:22 +0100 | lxsameer | (~lxsameer@Serene/lxsameer) lxsameer |
2024-12-06 10:59:49 +0100 | driib318 | (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat) |
2024-12-06 11:00:26 +0100 | driib318 | (~driib@vmi931078.contaboserver.net) driib |
2024-12-06 11:05:47 +0100 | fp | (~Thunderbi@2001:708:20:1406::1370) fp |
2024-12-06 11:09:26 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.4.2) |
2024-12-06 11:16:36 +0100 | alp | (~alp@2001:861:8ca0:4940:9e8e:b300:b6f0:b48e) (Ping timeout: 246 seconds) |
2024-12-06 11:17:30 +0100 | krjst | (~krjst@2604:a880:800:c1::16b:8001) (Ping timeout: 246 seconds) |
2024-12-06 11:19:27 +0100 | krjst | (~krjst@2604:a880:800:c1::16b:8001) krjst |
2024-12-06 11:19:29 +0100 | econo_ | (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
2024-12-06 11:21:33 +0100 | <fp> | So I keep running into issues where I want to use a function that I perceive to be simple and are are common in other languages' standard libraries, like "split string by delimiter". However, I find that often these functions either don't exist or require external dependencies. Is the culture with Haskell that you're often remaking simple functions, or am taking an un-idiomatic approach, or am I at an uncomfortable part of the learning curve and it |
2024-12-06 11:22:33 +0100 | malte | (~malte@mal.tc) (Remote host closed the connection) |
2024-12-06 11:22:49 +0100 | <fp> | am I at an uncomfortable part of the learning curve and it's not actually that bad? |
2024-12-06 11:23:23 +0100 | <jackdk> | fp: there are a number of packages that are bundled with GHC and necessary for pretty much any nontrivial work (text, bytestring, containers all immediately spring to mind). You should not fear depending on packages like these |
2024-12-06 11:24:20 +0100 | malte | (~malte@mal.tc) malte |
2024-12-06 11:24:30 +0100 | eL_Bart0 | (eL_Bart0@dietunichtguten.org) |
2024-12-06 11:24:49 +0100 | <jackdk> | There is also an "uncomfortable part of a learning curve" thing where sometimes a function you might expect to exist is actually defined with a more general name and sometimes it's not obvious that it does what you want. `traverse` is the classic example, where it's the solution to a great many common things you want your program to do |
2024-12-06 11:25:44 +0100 | <fp> | So I started to use Text, but then it felt wrong that I had to litter everything with =pack "my string"=, especially since the examples in Text /don't/ do that. But the compiler insisted that I was missing the Text monad |
2024-12-06 11:26:20 +0100 | <dminuoso> | fp: You can use OverloadedStrings to avoid having `pack` everywhere. |
2024-12-06 11:26:41 +0100 | <fp> | aha, ok |
2024-12-06 11:26:54 +0100 | alp | (~alp@2001:861:8ca0:4940:d3d7:b90a:479f:639b) |
2024-12-06 11:27:21 +0100 | <fp> | Also, out of curiosity, what is Haskell used for these days? I'm aware that pandoc is written in Haskell |
2024-12-06 11:27:31 +0100 | <jackdk> | yep, pretty much everyone turns on overloaded strings. This is another one of those "part of the curve" things where most libraries will use Text but some insist on using String. Work in Text wherever possible |
2024-12-06 11:28:50 +0100 | <jackdk> | it's great for web services and "connect thing to other thing" type code. It's fantastic to bind someone else's REST API with an actual parser, and fail noisily when you get an unexpected result instead of your program silently doing unexpected things |
2024-12-06 11:29:12 +0100 | <jackdk> | I use it as my go-to general-purpose programming language, both in and out of work |
2024-12-06 11:29:46 +0100 | <jackdk> | shellcheck is another really handy tool written in Haskell |
2024-12-06 11:30:05 +0100 | <leif> | Case in point: postgrest (which supabase uses) is written in Haskell |
2024-12-06 11:31:00 +0100 | <dminuoso> | Now it's time for someone to write Haskcheck written in bash. |
2024-12-06 11:31:09 +0100 | <fp> | Forgive me, why would one want a parser for a REST API? |
2024-12-06 11:31:25 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2024-12-06 11:31:48 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) ChaiTRex |
2024-12-06 11:32:24 +0100 | <kaol> | For JSON? |
2024-12-06 11:33:36 +0100 | <dminuoso> | Sure, inside JSON. |
2024-12-06 11:34:41 +0100 | <dminuoso> | With JSON you should eventually parse those string literals into data types. |
2024-12-06 11:39:13 +0100 | <fp> | Ah ok so for deserializing JSON into the relevant Data |
2024-12-06 11:41:55 +0100 | <fp> | I guess I just didn't think of that because I'm used to having =my_struct.from_string(...)= provided by a library and not really even thinking of it as parsing |
2024-12-06 11:42:46 +0100 | sprotte24 | (~sprotte24@p200300d16f152100688be7f09d717f48.dip0.t-ipconnect.de) |
2024-12-06 11:47:14 +0100 | <davean> | fp: ah you aren't the person who has to make those libraries constantly :-p |
2024-12-06 11:51:12 +0100 | Square2 | (~Square4@user/square) (Ping timeout: 252 seconds) |
2024-12-06 11:57:09 +0100 | CiaoSen | (~Jura@2a05:5800:2ed:3200:ca4b:d6ff:fec1:99da) (Ping timeout: 265 seconds) |
2024-12-06 11:57:51 +0100 | __monty__ | (~toonn@user/toonn) toonn |
2024-12-06 12:06:18 +0100 | <fp> | davean: truly bless those people |
2024-12-06 12:07:09 +0100 | <davean> | The worst REST-like API I ever had to deal with was shopify. Other than that they're mostly easy |
2024-12-06 12:07:59 +0100 | tv | (~tv@user/tv) tv |
2024-12-06 12:23:43 +0100 | nucleus | (~grigory@77-174-131-220.fixed.kpn.net) |
2024-12-06 12:24:50 +0100 | leif | (~leif@210.54.33.112) (Ping timeout: 252 seconds) |
2024-12-06 12:28:16 +0100 | <haskellbridge> | <maerwald> jackdk: OverloadedStrings is garbage (the way it's implemented) |
2024-12-06 12:29:23 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) Smiles |
2024-12-06 12:30:43 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) L29Ah |
2024-12-06 12:34:18 +0100 | fp | (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 246 seconds) |
2024-12-06 12:34:25 +0100 | <int-e> | :t S.dropWhileAntitone |
2024-12-06 12:34:26 +0100 | <lambdabot> | (a -> Bool) -> S.Set a -> S.Set a |
2024-12-06 12:40:23 +0100 | fp | (~Thunderbi@130.233.70.169) fp |
2024-12-06 12:41:24 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-12-06 12:54:34 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 12:56:28 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac |
2024-12-06 13:08:02 +0100 | sprotte24 | (~sprotte24@p200300d16f152100688be7f09d717f48.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
2024-12-06 13:10:29 +0100 | kronicmage | (~kronicmag@neotame.csclub.uwaterloo.ca) (Ping timeout: 248 seconds) |
2024-12-06 13:12:24 +0100 | yangby | (~secret@218.72.98.138) (Ping timeout: 240 seconds) |
2024-12-06 13:13:42 +0100 | CiaoSen | (~Jura@2a05:5800:2ed:3200:ca4b:d6ff:fec1:99da) CiaoSen |
2024-12-06 13:14:47 +0100 | korrykatti | (~korrykatt@user/korrykatti) (Remote host closed the connection) |
2024-12-06 13:19:31 +0100 | ubert | (~Thunderbi@2a02:8109:ab8a:5a00:ad4b:6165:bf6d:b915) ubert |
2024-12-06 13:28:56 +0100 | ystael | (~ystael@user/ystael) ystael |
2024-12-06 13:33:23 +0100 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) szkl |
2024-12-06 13:46:34 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-12-06 13:48:12 +0100 | <hellwolf> | maerwald, what alternatives you would propose? |
2024-12-06 13:51:29 +0100 | korrykatti | (~korrykatt@user/korrykatti) korrykatti |
2024-12-06 13:51:56 +0100 | alp | (~alp@2001:861:8ca0:4940:d3d7:b90a:479f:639b) (Remote host closed the connection) |
2024-12-06 13:52:19 +0100 | alp | (~alp@2001:861:8ca0:4940:d3d7:b90a:479f:639b) |
2024-12-06 13:53:13 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2024-12-06 13:57:56 +0100 | Square2 | (~Square4@user/square) Square |
2024-12-06 14:02:03 +0100 | MyNetAz | (~MyNetAz@user/MyNetAz) (Read error: Connection reset by peer) |
2024-12-06 14:02:37 +0100 | kronicmage | (~kronicmag@neotame.csclub.uwaterloo.ca) |
2024-12-06 14:09:04 +0100 | MyNetAz | (~MyNetAz@user/MyNetAz) MyNetAz |
2024-12-06 14:09:14 +0100 | <haskellbridge> | <sm> @fp, base and other libraries included with ghc are quite comprehensive, but you'll still find things missing. It's common to write your own helpers, but also you'll find some go to extra packages that provide some missing pieces on hackage. Sometimes it's worth using those. |
2024-12-06 14:09:37 +0100 | <haskellbridge> | <sm> Safe, split, and Extra are some that I'm using |
2024-12-06 14:09:52 +0100 | <haskellbridge> | <sm> * safe, |
2024-12-06 14:10:36 +0100 | <haskellbridge> | <sm> * extra |
2024-12-06 14:12:57 +0100 | voonij | (~voonij@163.123.195.138) |
2024-12-06 14:13:00 +0100 | <haskellbridge> | <sm> regex is one to consider if you need those |
2024-12-06 14:14:08 +0100 | <haskellbridge> | <sm> fp: , base and other libraries included with ghc are quite comprehensive, but you'll still find things missing. It's common to write your own helpers, but also you'll find some go to extra packages that provide some missing pieces on hackage. Sometimes it's worth using those. |
2024-12-06 14:14:37 +0100 | <haskellbridge> | <sm> fp: , base and other libraries included with ghc are quite comprehensive, but you'll still find things missing. It's common to write your own helpers, but also you'll find some go to extra packages that provide some missing pieces. Sometimes it's worth using those. |
2024-12-06 14:15:24 +0100 | <fp> | So what you're saying is there's a set of basic libraries that you want to include by default in most projects |
2024-12-06 14:15:41 +0100 | <merijn> | fp: There's definitely a set of basic libraries I use in almost everything, yes |
2024-12-06 14:16:20 +0100 | <merijn> | fp: The main argument for NOT including such things in base/ghc is "now your iteration cycle is limited by the GHC release schedule", since you cannot upgrade base without changing GHC versions |
2024-12-06 14:16:26 +0100 | <haskellbridge> | <sm> I try not to depend too eagerly, but at some point yes |
2024-12-06 14:17:16 +0100 | <merijn> | fp: So there's a decently sized group of people that actually want to shrink base *even* more (or rather, making it a separate library independent of GHC) |
2024-12-06 14:17:25 +0100 | <haskellbridge> | <sm> I think the Haskell library ecosystem is still evolving. It's not that polished in some ways |
2024-12-06 14:17:36 +0100 | <fp> | And with these ={- LANGUAGE OverloadedStrings -}= deals, is that like a compiler option? |
2024-12-06 14:17:41 +0100 | <merijn> | fp: Yes |
2024-12-06 14:18:07 +0100 | <merijn> | fp: GHC by default tries to (mostly) conform to the Haskell Report 2010 as a standard and any deviations/extensions to the report are opt-in |
2024-12-06 14:18:14 +0100 | <int-e> | {-# ... #-} is syntax for pragmas |
2024-12-06 14:18:32 +0100 | <merijn> | fp: As opposed to, say, gcc which deviates from the C standard by default unless you opt-out |
2024-12-06 14:18:33 +0100 | <fp> | Oh excuse me I forgot the ## |
2024-12-06 14:18:57 +0100 | <int-e> | {- ... -} would just be a comment |
2024-12-06 14:19:00 +0100 | <merijn> | fp: In practice since there's only like, 2 (well 1, and two halves) haskell compilers it doesn't really matter |
2024-12-06 14:19:19 +0100 | <fp> | Ah yeah if you give it like -x c++23 instead of -x gnu++23 |
2024-12-06 14:19:48 +0100 | voonij | (~voonij@163.123.195.138) (Remote host closed the connection) |
2024-12-06 14:19:54 +0100 | <merijn> | fp: Exactly, so GHC by default will use Haskell2010 and anything else is opt-in. With the pragmas allowing you to opt-in per file |
2024-12-06 14:20:09 +0100 | <merijn> | fp: Although even then GHC does not strictly implement Haskell2010, see https://ghc.gitlab.haskell.org/ghc/doc/users_guide/bugs.html |
2024-12-06 14:20:31 +0100 | <merijn> | Most of those deviations are like, ultra ultra nitpicky, though |
2024-12-06 14:20:59 +0100 | <fp> | > The main argument for NOT including such things in base/ghc is "now your iteration cycle is limited by the GHC release schedule" |
2024-12-06 14:20:59 +0100 | <fp> | Is "your" meaning the library author's? |
2024-12-06 14:21:00 +0100 | <lambdabot> | <hint>:1:49: error: parse error on input ‘in’ |
2024-12-06 14:21:06 +0100 | <merijn> | fp: Yeah |
2024-12-06 14:21:20 +0100 | <merijn> | fp: Since base is wired into GHC it is not updatable |
2024-12-06 14:22:07 +0100 | <merijn> | So if you put stuff in base any changes/fixes/improvements require users to upgrade their compiler version which is...not ideal :) |
2024-12-06 14:23:01 +0100 | <merijn> | fp: Any real program almost always ends up depending on a bunch of stuff, like containers, text, bytestring, transformers |
2024-12-06 14:24:26 +0100 | <dminuoso> | 13:17:25 +haskellbridge │ <sm> I think the Haskell library ecosystem is still evolving. It's not that polished in some ways |
2024-12-06 14:24:37 +0100 | <Leary> | merijn: Only old GHC default to `Haskell2010`. Modern GHCs use `GHC202*` instead. |
2024-12-06 14:24:44 +0100 | <dminuoso> | The more I use python these days, one of the things that Haskell really lacks is a cohesive singular logging infrastructure. |
2024-12-06 14:25:07 +0100 | <dminuoso> | You take 3 components together, each uses their own logging library, you cant easily change their behavior, filter them, combine them.. it's a mess. |
2024-12-06 14:25:32 +0100 | <merijn> | Leary: Yeah, but most cabal invocations default to Haskell2010 |
2024-12-06 14:25:43 +0100 | <merijn> | Since only very recent versions of cabal-spec default to anything else |
2024-12-06 14:26:01 +0100 | <merijn> | dminuoso: We lack slf4j ;) |
2024-12-06 14:26:38 +0100 | <dminuoso> | Never done Java, so I cant comment on that (joke?) |
2024-12-06 14:26:39 +0100 | <merijn> | There's not much I like about the Java ecosystem, but slf4j is actually really nice |
2024-12-06 14:27:08 +0100 | <dminuoso> | The `logging` library in Python is really nice and modular too. |
2024-12-06 14:27:22 +0100 | <dminuoso> | After a few years, I would say its perhaps the best part of it. |
2024-12-06 14:27:23 +0100 | <merijn> | dminuoso: No, I'm serious. It's essentially just a bunch of interfaces with no implementation, but they're incredibly lightweight, so 95% of libraries just use that |
2024-12-06 14:27:42 +0100 | <merijn> | dminuoso: And then as a user you can just "plug in" whatever slf4j supporting logging implementation you like at runtime |
2024-12-06 14:29:10 +0100 | <dminuoso> | Ah, yeah `logging` comes with some builtin handlers but you can easily add your own too. |
2024-12-06 14:29:11 +0100 | <fp> | I see, so out-of-the-box Haskell is fairly limited and you typically want to add a couple libraries and compiler options to get the full language experience |
2024-12-06 14:29:25 +0100 | <dminuoso> | And the best part, is that `logging` is a stdlib module which is why everybody uses it. |
2024-12-06 14:29:37 +0100 | <dminuoso> | So it does not require velocity and community consensus as much. |
2024-12-06 14:29:58 +0100 | <dminuoso> | In Haskell its completely fragmented, and every year a new framework comes out. |
2024-12-06 14:31:13 +0100 | <haskellbridge> | <sm> what do you mean by out-of-the-box Haskell ? |
2024-12-06 14:31:31 +0100 | <haskellbridge> | <sm> ghc and the libraries shipped with it ? |
2024-12-06 14:31:52 +0100 | <merijn> | sm: Yeah, the "batteries included" thing Python always brags about |
2024-12-06 14:32:01 +0100 | <dminuoso> | fp: The reality in haskell is that the ecosystem is structured differently. Even stuff you might consider as "stdlib" is split onto packages that you have to depend upon. |
2024-12-06 14:32:07 +0100 | <haskellbridge> | <sm> well, we need to define that |
2024-12-06 14:32:17 +0100 | <dminuoso> | But it's not as obvious, so it easily feels as if depending on `text` introduces external dependencies. |
2024-12-06 14:32:31 +0100 | <merijn> | fp: "batteries included" matters in python, because their package management is absolutely godawful, so if it's not shipped with the interpreter it's a nightmare to get working nicely together :p |
2024-12-06 14:33:07 +0100 | <merijn> | fp: I have some packages that are literally 1 or 2 modules in size, because that means I can maintain them in one place and easily use them across projects |
2024-12-06 14:33:18 +0100 | <dminuoso> | merijn: I would reserve "absolutely godawful" for other languages like JavaScript. |
2024-12-06 14:33:20 +0100 | <merijn> | since dependencies are so simple to add |
2024-12-06 14:33:41 +0100 | <dminuoso> | merijn: Python has a bunch of things for packaging that make it.. bad but not godawful. |
2024-12-06 14:34:07 +0100 | <merijn> | fp: The only downside of external dependencies are: 1) version compatibility if they're not super actively maintained, and 2) some packages have giant transitive dependency trees (which blows up your compile time and binary size) |
2024-12-06 14:34:49 +0100 | <merijn> | dminuoso: They don't even have version bounds in python, it's near impossible to maintain a consistent set of dependencies over a long time |
2024-12-06 14:35:18 +0100 | <dminuoso> | Maybe I just feel fine because I'm managing python packages as nix closures anyway.. |
2024-12-06 14:35:34 +0100 | <dminuoso> | merijn: And you have version bounds in python. |
2024-12-06 14:35:35 +0100 | <haskellbridge> | <sm> for the "simple things" OP asked about first, sometimes it's worth writing or stealing them yourself. But yes real world haskell software almost always depends on a 10 or 20 or more direct dependencies |
2024-12-06 14:35:54 +0100 | <fp> | I guess I'm just comparing to like python or rust where most basic string or list manipulations are available in stdlib, but with haskell you need to bring in a library |
2024-12-06 14:35:54 +0100 | <haskellbridge> | <sm> -a |
2024-12-06 14:36:10 +0100 | <dminuoso> | merijn: you can just declare `foo=0.1.*` in your requirements.txt |
2024-12-06 14:36:18 +0100 | <merijn> | dminuoso: Yeah, but no one uses them and they're not solved transitively |
2024-12-06 14:36:23 +0100 | <haskellbridge> | <sm> @fp: yes. We are bad on ergonomic for some basic things |
2024-12-06 14:36:30 +0100 | <dminuoso> | merijn: No, they are used. |
2024-12-06 14:36:31 +0100 | <haskellbridge> | <sm> * ergonomics |
2024-12-06 14:36:50 +0100 | <merijn> | dminuoso: Not in the packages I encountered up until a year ago :p |
2024-12-06 14:36:50 +0100 | <dminuoso> | merijn: While some prefer pyproject.toml - both are in use and I regularly see boundaries. |
2024-12-06 14:36:59 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2024-12-06 14:37:10 +0100 | <haskellbridge> | <sm> fp: but, give us some examples ? Sometimes it's there but not obvious yet |
2024-12-06 14:37:31 +0100 | <haskellbridge> | <sm> fp: : yes. We are bad on ergonomics for some basic things |
2024-12-06 14:40:35 +0100 | <SrPx> | ok im confused about pseq |
2024-12-06 14:40:36 +0100 | <merijn> | fp: I mean, the stdlib has quite a lot of list stuff, the splitting functions are just a bit underwhelming |
2024-12-06 14:40:45 +0100 | <fp> | The two that I caught yesterday were =split ',' "thing1,thing2,thing3" --["thing1", "thing2", "thing3"]= and =mapAtIndex (\idx val -> ...)=. I was able to make them myself, but so many languages have that kind of =split=, and Mathematica has =MapIndexed= |
2024-12-06 14:40:50 +0100 | <SrPx> | `a` par `b` pseq `c` means `c` can only run after `a` and `b` are wnf? |
2024-12-06 14:40:57 +0100 | <fp> | =mapWithIndex= excuse me |
2024-12-06 14:41:39 +0100 | <merijn> | fp: mapWithIndex is just "map f . zip [0..]" |
2024-12-06 14:41:51 +0100 | <fp> | Right and I did that |
2024-12-06 14:41:52 +0100 | <SrPx> | I don't understand why "`a` par `b` pseq `c`" is used, to me it reads like "run a and b in parallel, then run c after b is wnf". why would we do that? like why run "c" after "b" is wnf specifically |
2024-12-06 14:41:52 +0100 | <merijn> | fp: So that's under the Fairbairn threshold ;) |
2024-12-06 14:42:22 +0100 | <SrPx> | oops, I mean "a `par` b `pseq` b". using backticks here is weird |
2024-12-06 14:42:57 +0100 | <merijn> | fp: (on the Haskell list there was a whole bunch of discussion about simple/small helper stuff, when the Fairbairn Threshold was proposed which is: A function is only worth adding if implementing it is harder/more work than remembering what name the implementation had) |
2024-12-06 14:43:39 +0100 | <haskellbridge> | <sm> splitting by element is probably the best example. You're right, it's not in Data.List (I think) which is a bit crazy. You have to add the "split" package. |
2024-12-06 14:44:10 +0100 | <haskellbridge> | <sm> merijn: that threshold is quite subjective isn't it |
2024-12-06 14:44:26 +0100 | <merijn> | fp: Actually you could even do "zipWith f [0..]", but if you're not used to laziness yet, you probably didn't think of zipping an infinite list as index |
2024-12-06 14:45:02 +0100 | <merijn> | fp: At any rate, the split package has every possible method of splitting you could ever want and it's only dependency is base (aka GHC), so it's really cheap to include as dependency |
2024-12-06 14:45:12 +0100 | <haskellbridge> | <sm> mapWithIndex doesn't seem so needed |
2024-12-06 14:45:41 +0100 | <Leary> | SrPx: "a `par` b `pseq` c" means "Spark off a and b before evaluating c locally." |
2024-12-06 14:45:46 +0100 | <merijn> | > zipWith (+) [0..] [5,4,3,2] |
2024-12-06 14:45:47 +0100 | <lambdabot> | [5,5,5,5] |
2024-12-06 14:46:17 +0100 | <merijn> | fp: added bonus of the zipWith approach is that you're not even limited to indices starting at 0/incrementing by 1 :p |
2024-12-06 14:46:29 +0100 | <int-e> | Leary: Nope. b will be evaluated locally, before c. |
2024-12-06 14:46:48 +0100 | <int-e> | (there's only one `par` so at most one spark) |
2024-12-06 14:46:51 +0100 | <Leary> | Ohhh. Right, yes. Been a while since I used this. |
2024-12-06 14:47:25 +0100 | <int-e> | There's no point in writing a `par` b `pseq` b; the pattern is for more complex expressions involving a and b. |
2024-12-06 14:48:40 +0100 | <SrPx> | Leary: oh *that* makes more sense |
2024-12-06 14:48:43 +0100 | <int-e> | (but there's also no real harm in writing b `pseq` b for b) |
2024-12-06 14:49:08 +0100 | hiecaq | (~hiecaq@user/hiecaq) hiecaq |
2024-12-06 14:49:15 +0100 | <Leary> | SrPx: Please note int-e's correction if you missed it; I wasn't quite right. |
2024-12-06 14:49:43 +0100 | <haskellbridge> | <sm> so how about merging split in base, eh |
2024-12-06 14:49:56 +0100 | <SrPx> | yes just read it, mb |
2024-12-06 14:51:28 +0100 | <SrPx> | ok so my question is: if I want to make 4 "lines" of sparks (i.e., one per core), as in, a0 a1 a2 a3 b0 b1 b2 b3 c0 c1 c2 c3 ... such that a0 finishes before b0, and b0 finished before c0, and so on |
2024-12-06 14:51:52 +0100 | <merijn> | sm: That just brings us back to: Now it cannot change without a GHC release |
2024-12-06 14:51:57 +0100 | <SrPx> | what I could do is spark everything with `par`, and then do `a0 pseq a1 pseq a2 ...`, and `b0 pseq b1 pseq b2 ...`, etc.? |
2024-12-06 14:52:11 +0100 | <merijn> | sm: tbh, I get what you want, but the best way to achieve it would be the ancient quest of split-base |
2024-12-06 14:52:22 +0100 | <haskellbridge> | <sm> but it's split. I think it has probably been stable for years. |
2024-12-06 14:52:37 +0100 | <haskellbridge> | <sm> I think it would make sense |
2024-12-06 14:52:58 +0100 | <merijn> | sm: It's not split in the sense of having no GHC internals and being upgradable |
2024-12-06 14:53:29 +0100 | <nucleus> | \c |
2024-12-06 14:53:29 +0100 | <merijn> | Until base is upgradeable/separately installable from GHC moving more things into it is a fool's errand |
2024-12-06 14:54:34 +0100 | <haskellbridge> | <sm> I didn't quite understand your reply there. IMHO this is a module that could be merged under Data.List and noone would regret it |
2024-12-06 14:55:07 +0100 | <merijn> | sm: Yeah, but then if you come up with a new method of splitting or some other tweaks/additions, you couldn't release those without upgrade GHC |
2024-12-06 14:55:31 +0100 | weary-traveler | (~user@user/user363627) user363627 |
2024-12-06 14:55:53 +0100 | <haskellbridge> | <sm> for unstable stuff you need to release quickly, you can still have the separate split package |
2024-12-06 14:57:32 +0100 | <int-e> | SrPx: Well you'd need 3 `par` (one thread of evaluation can be left to the original thread) and then arrange for such `pseq`s. Hardcoding the number of threads doesn't sound great though. |
2024-12-06 14:59:31 +0100 | <SrPx> | int-e: yeah I know, the fundamental issue is that the underlying C-side evaluator() I'm calling inside the sparks only supports up to 16 parallel calls (due to resource constraints). so I'm here trying to understand how to balance haskell's spark model (which is perfectly fit for the actual problem being solved), with this underlying limitation |
2024-12-06 15:00:00 +0100 | <int-e> | SrPx: This doesn't do the kind of round-robin scheduling you ask for but I wonder whether it's good enough for what you actually need: https://hackage.haskell.org/package/parallel-3.2.2.0/docs/Control-Parallel-Strategies.html#v:parLi… |
2024-12-06 15:00:22 +0100 | <int-e> | Oh, eww. |
2024-12-06 15:02:03 +0100 | <int-e> | Just don't go beyond +RTS -N16 -RTS then? |
2024-12-06 15:03:01 +0100 | <int-e> | What could possibly go wrong? (I /think/ that restricts things to 16 simultaneous FFI calls but I'm not 100% sure; it's not exactly a thing you'd usually need to control.) |
2024-12-06 15:08:22 +0100 | fp | (~Thunderbi@130.233.70.169) (Ping timeout: 252 seconds) |
2024-12-06 15:10:15 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-12-06 15:11:55 +0100 | <SrPx> | int-e: but even with -N16, Haskell might call the `reduce()` function more than 16 times in parallel, right? like I need to pass a "thread id" to reduce(), and I can't call reduce(1,...) reduce(1,...) at the same time because it will be using the same stack. i need to make sure one finishes before the other |
2024-12-06 15:11:58 +0100 | <SrPx> | i'll check it ty |
2024-12-06 15:12:28 +0100 | <int-e> | SrPx: Well, no, unless your FFI calls back into Haskell. |
2024-12-06 15:12:43 +0100 | <int-e> | Well, FF (foreign function) |
2024-12-06 15:12:59 +0100 | <SrPx> | hmm |
2024-12-06 15:14:14 +0100 | <int-e> | The -N16 restricts the RTS to 16 capabilities, and while the mapping of capabilities to OS threads is flaky, there's at most one active FFI call per capability. |
2024-12-06 15:14:40 +0100 | <SrPx> | ah interesting |
2024-12-06 15:14:42 +0100 | korrykatti | (~korrykatt@user/korrykatti) (Remote host closed the connection) |
2024-12-06 15:15:06 +0100 | korrykatti | (~korrykatt@user/korrykatti) korrykatti |
2024-12-06 15:17:17 +0100 | <int-e> | (In this model, if you call back into Haskell from a foreign function, that function is suspended until the Haskell evaluation returns... suspended calls are not active.) |
2024-12-06 15:18:57 +0100 | CiaoSen | (~Jura@2a05:5800:2ed:3200:ca4b:d6ff:fec1:99da) (Ping timeout: 248 seconds) |
2024-12-06 15:27:24 +0100 | AlexNoo_ | (~AlexNoo@178.34.161.102) |
2024-12-06 15:29:24 +0100 | AlexZenon | (~alzenon@5.139.233.9) (Ping timeout: 260 seconds) |
2024-12-06 15:30:25 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
2024-12-06 15:30:44 +0100 | AlexNoo | (~AlexNoo@5.139.233.9) (Ping timeout: 252 seconds) |
2024-12-06 15:33:52 +0100 | AlexZenon | (~alzenon@178.34.161.102) |
2024-12-06 15:37:27 +0100 | rekahsoft | (~rekahsoft@bras-base-orllon1103w-grc-06-76-69-85-220.dsl.bell.ca) (Remote host closed the connection) |
2024-12-06 15:39:09 +0100 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
2024-12-06 15:43:23 +0100 | rekahsoft | (~rekahsoft@bras-base-orllon1103w-grc-06-76-69-85-220.dsl.bell.ca) rekahsoft |
2024-12-06 15:54:14 +0100 | <SrPx> | makes sense, I won't do that though |
2024-12-06 15:59:56 +0100 | rekahsoft | (~rekahsoft@bras-base-orllon1103w-grc-06-76-69-85-220.dsl.bell.ca) (Remote host closed the connection) |
2024-12-06 16:00:25 +0100 | matsurago | (~matsurago@240b:10:b3a1:1700:b208:b72c:53fc:819f) (Quit: Leaving) |
2024-12-06 16:05:13 +0100 | <merijn> | int-e: That's not true |
2024-12-06 16:05:28 +0100 | <merijn> | foreign calls run in their own threads separate from capabilities |
2024-12-06 16:05:41 +0100 | <merijn> | Only unsafe foreign calls run directly on a capability |
2024-12-06 16:05:54 +0100 | <merijn> | Which is one of the reasons they're unsafe :p |
2024-12-06 16:06:51 +0100 | <merijn> | Also, I did some benchmarks (admittedly a decade ago) and beyond 20 capabilities you get some heavy diminishing returns on how fast things run in GHC even if you have more cores |
2024-12-06 16:07:10 +0100 | <merijn> | because coordination of GCs becomes quite slot |
2024-12-06 16:08:40 +0100 | notzmv | (~umar@user/notzmv) (Ping timeout: 260 seconds) |
2024-12-06 16:19:46 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
2024-12-06 16:21:30 +0100 | rekahsoft | (~rekahsoft@bras-base-orllon1103w-grc-06-76-69-85-220.dsl.bell.ca) rekahsoft |
2024-12-06 16:21:35 +0100 | <int-e> | merijn: Hrm, you're right. I was hoping those capabilities would only be available for GC, not for Haskell evaluation. |
2024-12-06 16:21:59 +0100 | <int-e> | Now I'm sad :P |
2024-12-06 16:28:48 +0100 | Brett70 | (~Brett@cpc91312-watf11-2-0-cust1213.15-2.cable.virginm.net) (Quit: Client closed) |
2024-12-06 16:32:59 +0100 | zfnmxt | (~zfnmxt@user/zfnmxt) (Remote host closed the connection) |
2024-12-06 16:33:09 +0100 | <SrPx> | merijn: wait so haskell wouldn't run efficiently in a 256-core CPU? even if you didn't hit the GC? |
2024-12-06 16:33:30 +0100 | <merijn> | There's a bunch of assumptions in that question |
2024-12-06 16:33:37 +0100 | <SrPx> | i mean using sparks |
2024-12-06 16:33:44 +0100 | <SrPx> | or forkIO presumably |
2024-12-06 16:34:07 +0100 | <merijn> | The current threaded runtime system is not optimised for something like that, so no it wouldn't really perform super well |
2024-12-06 16:34:41 +0100 | <merijn> | That said, nothing is (theoretically) stopping you from implementing a new runtime system that handles it better |
2024-12-06 16:35:00 +0100 | <merijn> | It's just that there's not many people running >16 cores, so why optimise things for that |
2024-12-06 16:35:01 +0100 | <int-e> | SrPx: Experiment supporting merijn's correction: https://paste.tomsmeding.com/b15BJnc5 -- uses 800% CPU with -N1. Sigh :-/ |
2024-12-06 16:35:08 +0100 | <SrPx> | merijn: makes sense |
2024-12-06 16:35:33 +0100 | <int-e> | . o O ( Give it another 6 months. ) |
2024-12-06 16:35:40 +0100 | <SrPx> | int-e: oh well |
2024-12-06 16:35:59 +0100 | <int-e> | (forkIO vs forkOS makes no difference) |
2024-12-06 16:36:00 +0100 | <merijn> | Haskell, being a language doesn't inherently have a speed/performance. The implementation does, but you can swap out/improve implementations :p |
2024-12-06 16:36:08 +0100 | <merijn> | int-e: forkOS is just forkIO, but pinned |
2024-12-06 16:36:31 +0100 | <SrPx> | I mean it has exponential lambdas so it is inherently slower thank linear languages :p but that's fine and fair |
2024-12-06 16:36:35 +0100 | <int-e> | merijn: I didn't expect a difference, but it felt worth mentioning :P |
2024-12-06 16:37:06 +0100 | <SrPx> | merijn: do you have any idea how I could solve my problem? of making sure that my sparks don't call reduce() more than 16 times at the same time |
2024-12-06 16:37:10 +0100 | mari-estel | (~mari-este@user/mari-estel) mari-estel |
2024-12-06 16:37:12 +0100 | korrykatti | (~korrykatt@user/korrykatti) (Remote host closed the connection) |
2024-12-06 16:37:14 +0100 | <SrPx> | I guess the way to go is to use `pseq` ? |
2024-12-06 16:37:19 +0100 | <merijn> | Actually, I know the perfect library for that |
2024-12-06 16:37:37 +0100 | korrykatti | (~korrykatt@user/korrykatti) korrykatti |
2024-12-06 16:37:39 +0100 | <merijn> | It just doesn't work on recent GHC, because I don't have a personal dev machine atm :p |
2024-12-06 16:38:06 +0100 | <merijn> | so I haven't updated in...a while |
2024-12-06 16:38:16 +0100 | <SrPx> | hmmm i can still have a look no worries |
2024-12-06 16:38:36 +0100 | Pozyomka | (~pyon@user/pyon) (Quit: brb) |
2024-12-06 16:39:12 +0100 | <merijn> | It does need IO, though |
2024-12-06 16:39:29 +0100 | <int-e> | I guess the reason for continuing Haskell evaluation while a safe FFI call is in progress is that we don't want to stop Haskell evaluation for blocking calls (that wait for IO). |
2024-12-06 16:39:32 +0100 | <merijn> | I kept having to reinvent "run this function N times in parallel", so I just stuffed it in a package: https://hackage.haskell.org/package/broadcast-chan-0.2.1.2/docs/BroadcastChan.html#g:4 |
2024-12-06 16:39:38 +0100 | <merijn> | int-e: yeah |
2024-12-06 16:40:17 +0100 | <int-e> | merijn: Anyway thanks for the correction :) |
2024-12-06 16:42:23 +0100 | Pozyomka | (~pyon@user/pyon) pyon |
2024-12-06 16:42:29 +0100 | <Leary> | SrPx, merijn: N.B. https://hackage.haskell.org/package/unliftio-0.2.25.0/docs/UnliftIO-Async.html#g:9 |
2024-12-06 16:44:01 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.4.2) |
2024-12-06 16:52:34 +0100 | hiecaq | (~hiecaq@user/hiecaq) (Quit: ERC 5.6.0.30.1 (IRC client for GNU Emacs 30.0.92)) |
2024-12-06 16:56:13 +0100 | ft | (~ft@p508db9c7.dip0.t-ipconnect.de) ft |
2024-12-06 16:59:01 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-12-06 17:07:55 +0100 | AlexNoo_ | AlexNoo |
2024-12-06 17:10:54 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-12-06 17:12:00 +0100 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2024-12-06 17:16:33 +0100 | chele | (~chele@user/chele) (Remote host closed the connection) |
2024-12-06 17:20:40 +0100 | weary-traveler | (~user@user/user363627) (Quit: Konversation terminated!) |
2024-12-06 17:21:09 +0100 | weary-traveler | (~user@user/user363627) user363627 |
2024-12-06 17:23:33 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 17:24:25 +0100 | zfnmxt | (~zfnmxt@user/zfnmxt) zfnmxt |
2024-12-06 17:25:14 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-12-06 17:27:41 +0100 | sonolin | (~michael@174-26-31-216.phnx.qwest.net) |
2024-12-06 17:27:50 +0100 | sonolin | (~michael@174-26-31-216.phnx.qwest.net) (Client Quit) |
2024-12-06 17:28:54 +0100 | sonolin | (~michael@user/sonolin) sonolin |
2024-12-06 17:28:55 +0100 | nucleus | (~grigory@77-174-131-220.fixed.kpn.net) (Ping timeout: 264 seconds) |
2024-12-06 17:29:07 +0100 | sonolin | (~michael@user/sonolin) (Client Quit) |
2024-12-06 17:29:33 +0100 | sonolin | (~michael@174-26-31-216.phnx.qwest.net) |
2024-12-06 17:29:35 +0100 | sonolin | (~michael@174-26-31-216.phnx.qwest.net) (Client Quit) |
2024-12-06 17:30:11 +0100 | notzmv | (~umar@user/notzmv) notzmv |
2024-12-06 17:30:44 +0100 | sonolin | (~michael@user/sonolin) sonolin |
2024-12-06 17:32:23 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2024-12-06 17:32:45 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-06 17:33:49 +0100 | zfnmxt | (~zfnmxt@user/zfnmxt) (Remote host closed the connection) |
2024-12-06 17:43:49 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 17:48:21 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-06 17:51:41 +0100 | Square | (~Square@user/square) Square |
2024-12-06 17:54:50 +0100 | Square2 | (~Square4@user/square) (Ping timeout: 252 seconds) |
2024-12-06 17:56:16 +0100 | tremon | (~tremon@83.80.159.219) tremon |
2024-12-06 17:58:14 +0100 | euphores | (~SASL_euph@user/euphores) euphores |
2024-12-06 17:59:11 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 18:01:05 +0100 | zfnmxt | (~zfnmxt@user/zfnmxt) zfnmxt |
2024-12-06 18:03:48 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-06 18:06:26 +0100 | sindu | (~sindu@176.75.224.1) |
2024-12-06 18:07:02 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (Remote host closed the connection) |
2024-12-06 18:08:31 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) TheCoffeMaker |
2024-12-06 18:09:27 +0100 | Square | (~Square@user/square) (Remote host closed the connection) |
2024-12-06 18:14:33 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 18:18:47 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-06 18:18:58 +0100 | gorignak | (~gorignak@user/gorignak) (Quit: quit) |
2024-12-06 18:19:16 +0100 | gorignak | (~gorignak@user/gorignak) gorignak |
2024-12-06 18:23:36 +0100 | alp | (~alp@2001:861:8ca0:4940:d3d7:b90a:479f:639b) (Ping timeout: 246 seconds) |
2024-12-06 18:28:03 +0100 | mari-estel | (~mari-este@user/mari-estel) () |
2024-12-06 18:29:56 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 18:32:39 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:c53d:8130:21bb:6073) (Read error: Connection reset by peer) |
2024-12-06 18:34:22 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-06 18:35:49 +0100 | notzmv | (~umar@user/notzmv) (Ping timeout: 248 seconds) |
2024-12-06 18:36:12 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) wootehfoot |
2024-12-06 18:38:40 +0100 | picnoir | (~picnoir@about/aquilenet/vodoo/NinjaTrappeur) (Quit: WeeChat 4.4.2) |
2024-12-06 18:39:52 +0100 | JeremyB99 | (~JeremyB99@128.211.254.217) |
2024-12-06 18:40:22 +0100 | JeremyB99 | (~JeremyB99@128.211.254.217) (Read error: Connection reset by peer) |
2024-12-06 18:40:37 +0100 | picnoir | (~picnoir@about/aquilenet/vodoo/NinjaTrappeur) NinjaTrappeur |
2024-12-06 18:41:28 +0100 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) tzh |
2024-12-06 18:45:19 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 18:45:39 +0100 | JeremyB99 | (~JeremyB99@128.211.254.217) |
2024-12-06 18:45:43 +0100 | JeremyB99 | (~JeremyB99@128.211.254.217) (Read error: Connection reset by peer) |
2024-12-06 18:48:05 +0100 | korrykatti | (~korrykatt@user/korrykatti) (Remote host closed the connection) |
2024-12-06 18:48:48 +0100 | korrykatti | (~korrykatt@user/korrykatti) korrykatti |
2024-12-06 18:49:50 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-06 18:55:38 +0100 | JeremyB99 | (~JeremyB99@2607:fb90:d9e2:c2c7:2868:24a3:ddc7:6fab) |
2024-12-06 18:57:50 +0100 | JeremyB99 | (~JeremyB99@2607:fb90:d9e2:c2c7:2868:24a3:ddc7:6fab) (Read error: Connection reset by peer) |
2024-12-06 18:59:51 +0100 | fmira | (~user@user/fmira) fmira |
2024-12-06 19:00:41 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 19:01:02 +0100 | <haskellbridge> | <maralorn> Can I have an associated type be "forall a. a"? |
2024-12-06 19:02:56 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) |
2024-12-06 19:03:00 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) (Remote host closed the connection) |
2024-12-06 19:03:13 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) |
2024-12-06 19:05:17 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-06 19:07:54 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 19:07:57 +0100 | KicksonButt | (~quassel@187.21.174.221) |
2024-12-06 19:08:59 +0100 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
2024-12-06 19:09:22 +0100 | nucleus | (~grigory@77-174-131-220.fixed.kpn.net) |
2024-12-06 19:09:38 +0100 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2024-12-06 19:10:13 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds) |
2024-12-06 19:11:56 +0100 | Lord_of_Life_ | Lord_of_Life |
2024-12-06 19:12:31 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-06 19:14:30 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) (Remote host closed the connection) |
2024-12-06 19:14:44 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) |
2024-12-06 19:20:28 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2024-12-06 19:23:13 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 19:27:43 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) (Read error: Connection reset by peer) |
2024-12-06 19:28:01 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-06 19:28:42 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) |
2024-12-06 19:31:26 +0100 | econo_ | (uid147250@id-147250.tinside.irccloud.com) |
2024-12-06 19:32:02 +0100 | philopsos | (~caecilius@user/philopsos) (Quit: Lost terminal) |
2024-12-06 19:32:08 +0100 | rvalue | (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
2024-12-06 19:32:18 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) (Read error: Connection reset by peer) |
2024-12-06 19:32:47 +0100 | rvalue | (~rvalue@user/rvalue) rvalue |
2024-12-06 19:33:57 +0100 | nucleus | (~grigory@77-174-131-220.fixed.kpn.net) (Ping timeout: 248 seconds) |
2024-12-06 19:36:46 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) |
2024-12-06 19:38:05 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) (Read error: Connection reset by peer) |
2024-12-06 19:38:28 +0100 | philopsos | (~caecilius@user/philopsos) philopsos |
2024-12-06 19:38:30 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) |
2024-12-06 19:38:46 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 19:41:47 +0100 | Brett78 | (~Brett@cpc91312-watf11-2-0-cust1213.15-2.cable.virginm.net) |
2024-12-06 19:41:48 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) (Read error: Connection reset by peer) |
2024-12-06 19:42:07 +0100 | A_Dragon | Festive |
2024-12-06 19:43:07 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-06 19:44:10 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-12-06 19:49:32 +0100 | homo_ | (~homo@82-128-196-26.bb.dnainternet.fi) |
2024-12-06 19:49:37 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) |
2024-12-06 19:49:55 +0100 | homo_ | (~homo@82-128-196-26.bb.dnainternet.fi) (Changing host) |
2024-12-06 19:49:55 +0100 | homo_ | (~homo@user/homo) homo |
2024-12-06 19:50:24 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) (Read error: Connection reset by peer) |
2024-12-06 19:51:36 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) Unicorn_Princess |
2024-12-06 19:53:38 +0100 | homo | (~homo@user/homo) (Ping timeout: 252 seconds) |
2024-12-06 19:53:38 +0100 | homo_ | homo |
2024-12-06 19:54:07 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 19:55:07 +0100 | briandaed | (~root@185.234.210.211) |
2024-12-06 19:55:20 +0100 | rvalue- | (~rvalue@user/rvalue) rvalue |
2024-12-06 19:55:55 +0100 | rvalue | (~rvalue@user/rvalue) (Ping timeout: 244 seconds) |
2024-12-06 19:55:56 +0100 | <tomsmeding> | maralorn: what would that even mean? Isn't that equivalent to writing `Void`? |
2024-12-06 19:56:27 +0100 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) szkl |
2024-12-06 19:58:46 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-06 20:00:53 +0100 | glguy | (glguy@libera/staff/glguy) (Remote host closed the connection) |
2024-12-06 20:01:41 +0100 | rvalue- | rvalue |
2024-12-06 20:01:49 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) |
2024-12-06 20:01:50 +0100 | glguy | (glguy@libera/staff/glguy) glguy |
2024-12-06 20:05:25 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) (Read error: Connection reset by peer) |
2024-12-06 20:08:51 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 20:13:29 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-06 20:15:11 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-12-06 20:22:31 +0100 | <SrPx> | is there any easy way to merge an arbitrary monad with IO? |
2024-12-06 20:22:44 +0100 | <glguy> | no |
2024-12-06 20:22:46 +0100 | <SrPx> | specifically trying to make this one work in an IO context: |
2024-12-06 20:22:48 +0100 | <SrPx> | https://gist.github.com/VictorTaelin/60d3bc72fb4edefecd42095e44138b41 |
2024-12-06 20:23:00 +0100 | <SrPx> | currently resorting to unsafePerformIO |
2024-12-06 20:24:13 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 20:26:26 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) |
2024-12-06 20:30:57 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-06 20:35:46 +0100 | lxsameer | (~lxsameer@Serene/lxsameer) (Ping timeout: 265 seconds) |
2024-12-06 20:36:15 +0100 | Square2 | (~Square4@user/square) Square |
2024-12-06 20:38:29 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2024-12-06 20:39:06 +0100 | thaumavorio | (~thaumavor@thaumavor.io) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-12-06 20:39:11 +0100 | sprotte24 | (~sprotte24@p200300d16f1521002020c35b0109401f.dip0.t-ipconnect.de) |
2024-12-06 20:39:51 +0100 | thaumavorio | (~thaumavor@thaumavor.io) thaumavorio |
2024-12-06 20:42:00 +0100 | <tomsmeding> | SrPx: could you define `data CollapseT m a = Sup Int (CollapseT m a) (CollapseT m a) | Val (m a)`? |
2024-12-06 20:42:17 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 20:42:18 +0100 | korrykatti | (~korrykatt@user/korrykatti) (Remote host closed the connection) |
2024-12-06 20:42:46 +0100 | <tomsmeding> | I didn't look carefully at what the monad is actually doing, but just from the type, it seems okay |
2024-12-06 20:43:17 +0100 | <SrPx> | oh is it so simple |
2024-12-06 20:43:24 +0100 | <SrPx> | interesting |
2024-12-06 20:44:12 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) (Remote host closed the connection) |
2024-12-06 20:44:31 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) |
2024-12-06 20:44:55 +0100 | <tomsmeding> | SrPx: do you know monad transformers? :p |
2024-12-06 20:45:09 +0100 | <SrPx> | almost nothing, never had to use them other than recently |
2024-12-06 20:45:16 +0100 | <tomsmeding> | not every monad can be made into a monad transformers, but some very useful ones can |
2024-12-06 20:45:25 +0100 | <tomsmeding> | *a monad transformer |
2024-12-06 20:45:25 +0100 | <SrPx> | had a pretty fine experience recently though, but not in deep |
2024-12-06 20:46:02 +0100 | <tomsmeding> | so do note that this trick does _not_ work with any arbitrary monad |
2024-12-06 20:46:53 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-12-06 20:49:10 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) (Read error: Connection reset by peer) |
2024-12-06 20:51:55 +0100 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2024-12-06 20:52:45 +0100 | briandaed | (~root@185.234.210.211) (Remote host closed the connection) |
2024-12-06 20:53:13 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) |
2024-12-06 20:56:01 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) (Remote host closed the connection) |
2024-12-06 20:56:14 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) |
2024-12-06 20:57:38 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 21:00:04 +0100 | caconym | (~caconym@user/caconym) (Quit: bye) |
2024-12-06 21:00:08 +0100 | haetsal | (~quassel@221.138.168.192) (Remote host closed the connection) |
2024-12-06 21:00:42 +0100 | caconym | (~caconym@user/caconym) caconym |
2024-12-06 21:01:02 +0100 | haetsal | (~quassel@221.138.168.192) |
2024-12-06 21:02:03 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-06 21:09:50 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 21:14:13 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-06 21:16:12 +0100 | weary-traveler | (~user@user/user363627) user363627 |
2024-12-06 21:16:22 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod |
2024-12-06 21:22:29 +0100 | alp | (~alp@2001:861:8ca0:4940:b0c1:7414:d62f:3e1f) |
2024-12-06 21:23:14 +0100 | KicksonButt | (~quassel@187.21.174.221) (Ping timeout: 244 seconds) |
2024-12-06 21:24:19 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) (Remote host closed the connection) |
2024-12-06 21:24:32 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) |
2024-12-06 21:25:14 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 21:26:59 +0100 | Square | (~Square@user/square) Square |
2024-12-06 21:29:48 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-06 21:37:24 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) (Read error: Connection reset by peer) |
2024-12-06 21:38:46 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
2024-12-06 21:39:46 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) |
2024-12-06 21:39:49 +0100 | <SrPx> | I see |
2024-12-06 21:40:36 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 21:41:28 +0100 | Everything | (~Everythin@94.153.5.84) Everything |
2024-12-06 21:42:13 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) (Read error: Connection reset by peer) |
2024-12-06 21:45:06 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-06 21:45:33 +0100 | Guest81 | (~Guest81@2601:283:4a00:7ab0:72:a12f:2eef:8bc6) |
2024-12-06 21:51:48 +0100 | Guest81 | (~Guest81@2601:283:4a00:7ab0:72:a12f:2eef:8bc6) (Quit: Client closed) |
2024-12-06 21:53:31 +0100 | tabemann_ | (~tabemann@2600:1700:7990:24e0:39a4:2ebe:705f:fb9f) |
2024-12-06 21:53:50 +0100 | pavonia | (~user@user/siracusa) siracusa |
2024-12-06 21:55:45 +0100 | tabemann | (~tabemann@2600:1700:7990:24e0:b476:3399:7ccb:c1f7) (Ping timeout: 260 seconds) |
2024-12-06 21:55:58 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 22:00:25 +0100 | notzmv | (~umar@user/notzmv) notzmv |
2024-12-06 22:00:33 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-06 22:01:46 +0100 | kimiamania | (~65804703@user/kimiamania) (Quit: PegeLinux) |
2024-12-06 22:02:01 +0100 | kimiamania | (~65804703@user/kimiamania) kimiamania |
2024-12-06 22:02:27 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) |
2024-12-06 22:03:05 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) (Read error: Connection reset by peer) |
2024-12-06 22:08:37 +0100 | tremon | (~tremon@83.80.159.219) (Quit: getting boxed in) |
2024-12-06 22:09:00 +0100 | OftenFaded | (~OftenFade@user/tisktisk) OftenFaded |
2024-12-06 22:11:22 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 22:18:06 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-06 22:22:15 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) |
2024-12-06 22:24:34 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) (Read error: Connection reset by peer) |
2024-12-06 22:25:13 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) |
2024-12-06 22:27:39 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) (Read error: Connection reset by peer) |
2024-12-06 22:28:49 +0100 | JeremyB99 | (~JeremyB99@2607:fb90:d362:60:94c9:3ce9:328b:546d) |
2024-12-06 22:36:20 +0100 | <sprotte24> | https://paste.tomsmeding.com/7FMcgqwq |
2024-12-06 22:36:35 +0100 | JeremyB99 | (~JeremyB99@2607:fb90:d362:60:94c9:3ce9:328b:546d) (Ping timeout: 260 seconds) |
2024-12-06 22:36:42 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) |
2024-12-06 22:36:57 +0100 | <sprotte24> | I want to make 2 little changes to the code presented in paste |
2024-12-06 22:37:00 +0100 | Everything | (~Everythin@94.153.5.84) (Quit: Lost terminal) |
2024-12-06 22:37:19 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) (Remote host closed the connection) |
2024-12-06 22:37:24 +0100 | <sprotte24> | can you help me? |
2024-12-06 22:37:33 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) |
2024-12-06 22:38:09 +0100 | Square2 | (~Square4@user/square) (Ping timeout: 244 seconds) |
2024-12-06 22:39:06 +0100 | <glguy> | sprotte24: your play definition needs a parameter with all the past guesses |
2024-12-06 22:40:10 +0100 | <sprotte24> | yes, but only the secret word should be taken from command line parameter. |
2024-12-06 22:40:30 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) Feuermagier |
2024-12-06 22:40:40 +0100 | <glguy> | That's fine |
2024-12-06 22:41:17 +0100 | <glguy> | To read command line parameters use System.Environment.getArgs |
2024-12-06 22:41:34 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) (Read error: Connection reset by peer) |
2024-12-06 22:44:02 +0100 | <sprotte24> | can I use something like lambda? |
2024-12-06 22:45:44 +0100 | <glguy> | I'm not sure what you mean |
2024-12-06 22:46:23 +0100 | <sprotte24> | i fear, signature hangman :: char -> ... will not help for IO? |
2024-12-06 22:47:10 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) |
2024-12-06 22:47:48 +0100 | JeremyB99 | (~JeremyB99@pal-210-106-52.itap.purdue.edu) (Read error: Connection reset by peer) |
2024-12-06 22:48:01 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2024-12-06 22:48:08 +0100 | ljdarj1 | (~Thunderbi@user/ljdarj) ljdarj |
2024-12-06 22:48:08 +0100 | michalz | (~michalz@185.246.207.205) (Remote host closed the connection) |
2024-12-06 22:48:41 +0100 | <glguy> | Eventually you'll write a main::IO() |
2024-12-06 22:48:50 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 260 seconds) |
2024-12-06 22:48:50 +0100 | ljdarj1 | ljdarj |
2024-12-06 22:48:57 +0100 | <glguy> | That can call hangman with extra arguments |
2024-12-06 22:49:47 +0100 | <monochrom> | You have seen "play :: String -> IO ()" and it's just fine so clearly you already know you have that option. |
2024-12-06 22:50:40 +0100 | <sprotte24> | perhaps main can be named as hangman, and the old hangman can use another name? |
2024-12-06 22:51:07 +0100 | <monochrom> | I trust that you know you can extrapolate that to "Char -> IO ()" or even "Char -> String -> IO ()" etc etc. If you cannot, you have trouble with much more basic concepts. |
2024-12-06 22:51:23 +0100 | <sprotte24> | I am ordered to start with hangman secretword |
2024-12-06 22:51:35 +0100 | <sprotte24> | It is an exercise |
2024-12-06 22:51:55 +0100 | <geekosaur> | that's the name of the program, not the function |
2024-12-06 22:52:08 +0100 | arthurvl | (~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net) earthy |
2024-12-06 22:54:39 +0100 | <sprotte24> | The solution will be tested automatically, and only starting with hangman is allowed without main |
2024-12-06 22:55:08 +0100 | <geekosaur> | no |
2024-12-06 22:55:32 +0100 | <geekosaur> | I cannot believe they want you to start with advanced topics (specifically, using something not called maon as the entry point) |
2024-12-06 22:56:49 +0100 | <geekosaur> | either you are being asked to produce a function which will be hooked into a test framework, or you are being required to produce a program in which the entry point will be called main |
2024-12-06 22:57:04 +0100 | <geekosaur> | how about you show us the actual problem? |
2024-12-06 22:57:28 +0100 | JeremyB99 | (~JeremyB99@2607:fb91:1062:461e:102a:ca46:8fa0:97ac) |
2024-12-06 22:57:32 +0100 | ljdarj1 | (~Thunderbi@user/ljdarj) ljdarj |
2024-12-06 22:57:33 +0100 | <monochrom> | I don't think of that as advanced. It's just String -> IO (). Instead, it is getArgs that, maybe not "advanced" but certainly a little topic that can be skipped. |
2024-12-06 22:58:31 +0100 | JeremyB99 | (~JeremyB99@2607:fb91:1062:461e:102a:ca46:8fa0:97ac) (Read error: Connection reset by peer) |
2024-12-06 22:59:06 +0100 | <monochrom> | I bet it's going to be a tester that expects hangman :: String -> IO (). I do that all the time when I'm teaching. |
2024-12-06 22:59:08 +0100 | <sprotte24> | this is a given smple, it should work from hgci> |
2024-12-06 22:59:12 +0100 | <sprotte24> | ghci |
2024-12-06 22:59:14 +0100 | <sprotte24> | ghci> |
2024-12-06 22:59:14 +0100 | <sprotte24> | hangman |
2024-12-06 22:59:15 +0100 | <sprotte24> | "hallo" |
2024-12-06 22:59:15 +0100 | <sprotte24> | Secret: *****Enter a character: HSecret: h****Enter a character: lSecret: h*ll*Enter a character: oSecret: h*lloEnter a character: eSecret: h*lloEnter a character: aSolved in 5 tries. |
2024-12-06 22:59:49 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 248 seconds) |
2024-12-06 22:59:49 +0100 | ljdarj1 | ljdarj |
2024-12-06 22:59:53 +0100 | <sprotte24> | bad formatted |
2024-12-06 23:01:44 +0100 | <sprotte24> | should work as a function from command line ghci> hangman "hallo" |
2024-12-06 23:03:18 +0100 | KicksonButt | (~quassel@187.21.174.221) |
2024-12-06 23:08:50 +0100 | <sprotte24> | could the following help: module main where ...? |
2024-12-06 23:09:28 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 23:11:38 +0100 | <geekosaur> | okay, that is not "command line", command line is what you start ghci from |
2024-12-06 23:11:45 +0100 | <geekosaur> | ghc prompt is something different |
2024-12-06 23:11:49 +0100 | <geekosaur> | *ghci |
2024-12-06 23:12:42 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:43ac:8410:148a:7aab) |
2024-12-06 23:13:48 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-06 23:13:48 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:43ac:8410:148a:7aab) (Read error: Connection reset by peer) |
2024-12-06 23:13:59 +0100 | <sprotte24> | excuse me, I am a beginner :-) |
2024-12-06 23:14:55 +0100 | <sprotte24> | ghci> hangman "hallo" |
2024-12-06 23:15:23 +0100 | <geekosaur> | right, so you want a function, you don't need to mess with the command line (which involves `main` and `getArgs` etc.) |
2024-12-06 23:15:29 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:43ac:8410:148a:7aab) |
2024-12-06 23:16:03 +0100 | <monochrom> | This is why you must always provide authentic examples and authentic original unabridge questions / assignments handouts / problem statements. You must never "explain in your own words" to show that you are making it all up. |
2024-12-06 23:16:24 +0100 | gmg | (~user@user/gehmehgeh) (Ping timeout: 264 seconds) |
2024-12-06 23:16:36 +0100 | <sprotte24> | "hallo" is may secret word, it should not be entered while hangman asks for solution chard |
2024-12-06 23:17:07 +0100 | gmg | (~user@user/gehmehgeh) gehmehgeh |
2024-12-06 23:17:20 +0100 | <sprotte24> | -d |
2024-12-06 23:17:27 +0100 | <geekosaur> | right, so that's a parameter to your function |
2024-12-06 23:18:10 +0100 | <geekosaur> | and from that we know that the type is at least `hangman :: String -> IO ()` but may involve more because you still haven't told us what the assignment actually is |
2024-12-06 23:19:56 +0100 | <sprotte24> | the assignment is: hangman "secretword" |
2024-12-06 23:22:13 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) Smiles |
2024-12-06 23:22:43 +0100 | <geekosaur> | does the function have a result, or is everything simply printed? |
2024-12-06 23:25:14 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:43ac:8410:148a:7aab) (Remote host closed the connection) |
2024-12-06 23:25:22 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:43ac:8410:148a:7aab) |
2024-12-06 23:25:28 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-12-06 23:26:08 +0100 | <sprotte24> | it prints the answer on the screen, at the end writuing "solved in x tries." |
2024-12-06 23:27:27 +0100 | <sprotte24> | ald the 2. point is: The correct chars should be accumulated for the next step |
2024-12-06 23:32:00 +0100 | Square | (~Square@user/square) (Ping timeout: 276 seconds) |
2024-12-06 23:32:01 +0100 | <sprotte24> | hallo h h**** l h*ll* ... |
2024-12-06 23:32:45 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-12-06 23:39:34 +0100 | SlackCoder | (~SlackCode@64-94-63-8.ip.weststar.net.ky) SlackCoder |
2024-12-06 23:41:09 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:43ac:8410:148a:7aab) (Remote host closed the connection) |
2024-12-06 23:41:16 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:43ac:8410:148a:7aab) |
2024-12-06 23:47:09 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-12-06 23:51:30 +0100 | JeremyB99 | (~JeremyB99@2607:ac80:407:7:43ac:8410:148a:7aab) (Ping timeout: 276 seconds) |
2024-12-06 23:51:44 +0100 | JeremyB99 | (~JeremyB99@2607:fb90:2ce0:c5f3:a191:442e:a62a:6f1c) |
2024-12-06 23:52:19 +0100 | JeremyB99 | (~JeremyB99@2607:fb90:2ce0:c5f3:a191:442e:a62a:6f1c) (Remote host closed the connection) |
2024-12-06 23:52:28 +0100 | JeremyB99 | (~JeremyB99@2607:fb90:2ce0:c5f3:a191:442e:a62a:6f1c) |
2024-12-06 23:55:55 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-06 23:59:57 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 246 seconds) |