Logs on 2022-12-14 (liberachat/#haskell)
| 00:02:52 | × | thyriaen quits (~thyriaen@2a01:aea0:dd4:4bae:6245:cbff:fe9f:48b1) (Remote host closed the connection) |
| 00:06:23 | lisk1n | is now known as liskin |
| 00:14:04 | × | Tuplanolla quits (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Quit: Leaving.) |
| 00:19:31 | → | merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) |
| 00:20:32 | × | freeside quits (~mengwong@pd907d273.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 00:21:07 | → | cowboy8625 joins (~cowboy@96-2-208-2-static.midco.net) |
| 00:24:20 | × | merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
| 00:27:49 | × | szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 00:32:07 | → | freeside joins (~mengwong@pd907d273.dip0.t-ipconnect.de) |
| 00:36:40 | × | freeside quits (~mengwong@pd907d273.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 00:37:18 | × | TonyStone quits (~TonyStone@cpe-74-76-57-186.nycap.res.rr.com) (Quit: Leaving) |
| 00:37:27 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:a84a:2d35:f948:fe07) |
| 00:41:51 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:a84a:2d35:f948:fe07) (Ping timeout: 252 seconds) |
| 00:45:04 | × | hgolden quits (~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection) |
| 00:46:31 | → | hgolden joins (~hgolden@cpe-172-251-233-141.socal.res.rr.com) |
| 00:46:47 | → | magpi[m] joins (~magpimatr@2001:470:69fc:105::1:725a) |
| 00:55:49 | → | thyriaen joins (~thyriaen@2a01:aea0:dd4:4bae:6245:cbff:fe9f:48b1) |
| 00:56:31 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 00:57:38 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 01:00:16 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 01:01:33 | → | instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net) |
| 01:02:54 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 01:09:06 | × | biberu quits (~biberu@user/biberu) (Read error: Connection reset by peer) |
| 01:12:38 | → | freeside joins (~mengwong@pd907d273.dip0.t-ipconnect.de) |
| 01:19:45 | → | merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) |
| 01:24:50 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 256 seconds) |
| 01:25:58 | × | xff0x_ quits (~xff0x@ai071162.d.east.v6connect.net) (Ping timeout: 256 seconds) |
| 01:30:40 | × | hsw_ quits (~hsw@112-104-142-182.adsl.dynamic.seed.net.tw) (Remote host closed the connection) |
| 01:33:24 | → | hsw joins (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) |
| 01:34:37 | × | hsw quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Client Quit) |
| 01:37:10 | → | hsw joins (~hsw@112-104-142-182.adsl.dynamic.seed.net.tw) |
| 01:37:23 | × | gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 01:43:32 | → | telser joins (~quassel@user/telser) |
| 01:46:03 | → | wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com) |
| 01:46:03 | × | wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
| 01:46:03 | → | wroathe joins (~wroathe@user/wroathe) |
| 01:47:32 | → | ddellacosta joins (~ddellacos@143.244.47.88) |
| 01:48:24 | → | Me-me- joins (~me-me@2602:ff16:3:0:1:dc:beef:d00d) |
| 01:49:25 | × | Wstfgl0 quits (~me-me@2602:ff16:3:0:1:dc:beef:d00d) (Read error: Connection reset by peer) |
| 01:50:10 | × | thyriaen quits (~thyriaen@2a01:aea0:dd4:4bae:6245:cbff:fe9f:48b1) (Remote host closed the connection) |
| 01:51:13 | × | mmhat quits (~mmh@p200300f1c718063cee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.7.1) |
| 01:54:37 | × | merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds) |
| 02:06:30 | → | xff0x_ joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 02:11:03 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 02:11:22 | × | ddellacosta quits (~ddellacos@143.244.47.88) (Ping timeout: 272 seconds) |
| 02:11:34 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 02:12:51 | → | ddellacosta joins (~ddellacos@89.45.224.168) |
| 02:13:02 | × | freeside quits (~mengwong@pd907d273.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 02:16:34 | × | mestre quits (~mestre@191.177.185.178) (Ping timeout: 252 seconds) |
| 02:18:54 | → | Sgeo_ joins (~Sgeo@user/sgeo) |
| 02:19:36 | × | Sgeo quits (~Sgeo@user/sgeo) (Ping timeout: 272 seconds) |
| 02:23:50 | ← | magpi[m] parts (~magpimatr@2001:470:69fc:105::1:725a) () |
| 02:25:34 | → | freeside joins (~mengwong@pd907d273.dip0.t-ipconnect.de) |
| 02:30:00 | × | freeside quits (~mengwong@pd907d273.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 02:34:26 | → | abrar joins (~abrar@static-108-2-152-54.phlapa.fios.verizon.net) |
| 02:34:42 | × | shriekingnoise quits (~shrieking@186.137.167.202) (Quit: Quit) |
| 02:42:34 | → | fizbin joins (~fizbin@user/fizbin) |
| 02:44:12 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 02:47:30 | × | fizbin quits (~fizbin@user/fizbin) (Ping timeout: 252 seconds) |
| 02:50:34 | → | merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) |
| 02:56:18 | × | merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds) |
| 03:01:51 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 03:03:18 | × | hgolden quits (~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection) |
| 03:03:22 | → | freeside joins (~mengwong@pd907d273.dip0.t-ipconnect.de) |
| 03:04:59 | → | hgolden joins (~hgolden@cpe-172-251-233-141.socal.res.rr.com) |
| 03:13:08 | × | ballast quits (~ballast@cpe-104-32-238-223.socal.res.rr.com) (Ping timeout: 260 seconds) |
| 03:13:08 | → | eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
| 03:15:35 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 03:16:51 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 03:18:29 | × | instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 268 seconds) |
| 03:28:38 | × | ddellacosta quits (~ddellacos@89.45.224.168) (Ping timeout: 272 seconds) |
| 03:29:47 | → | wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com) |
| 03:29:47 | × | wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
| 03:29:47 | → | wroathe joins (~wroathe@user/wroathe) |
| 03:33:02 | → | ddellacosta joins (~ddellacos@86.106.143.155) |
| 03:35:45 | → | notzmv joins (~zmv@user/notzmv) |
| 03:37:26 | × | ddellacosta quits (~ddellacos@86.106.143.155) (Ping timeout: 256 seconds) |
| 03:38:08 | × | td_ quits (~td@83.135.9.49) (Ping timeout: 272 seconds) |
| 03:39:21 | → | ddellacosta joins (~ddellacos@89.45.224.129) |
| 03:39:46 | → | td_ joins (~td@83.135.9.16) |
| 03:40:29 | → | instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net) |
| 03:50:53 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::6126) |
| 03:50:57 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::6126) (Client Quit) |
| 03:51:16 | → | lisbeths joins (uid135845@id-135845.lymington.irccloud.com) |
| 03:51:54 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 03:53:07 | → | merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) |
| 03:56:01 | → | zer0bitz_ joins (~zer0bitz@196.244.192.57) |
| 03:59:00 | × | zer0bitz quits (~zer0bitz@196.244.192.57) (Ping timeout: 252 seconds) |
| 04:00:31 | → | razetime joins (~quassel@49.207.203.213) |
| 04:02:00 | × | jargon quits (~jargon@174-22-192-24.phnx.qwest.net) (Remote host closed the connection) |
| 04:02:56 | × | freeside quits (~mengwong@pd907d273.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 04:03:19 | → | shriekingnoise joins (~shrieking@186.137.167.202) |
| 04:03:30 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 256 seconds) |
| 04:08:36 | → | dsrt^ joins (~dsrt@76.145.185.103) |
| 04:10:52 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
| 04:15:29 | × | zmt01 quits (~zmt00@user/zmt00) (Read error: Connection reset by peer) |
| 04:16:13 | → | freeside joins (~mengwong@pd907d273.dip0.t-ipconnect.de) |
| 04:18:40 | × | cowboy8625 quits (~cowboy@96-2-208-2-static.midco.net) (Ping timeout: 272 seconds) |
| 04:20:14 | → | zmt00 joins (~zmt00@user/zmt00) |
| 04:22:54 | × | zmt00 quits (~zmt00@user/zmt00) (Client Quit) |
| 04:27:32 | × | merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
| 04:28:43 | × | JordiGH quits (~jordi@user/jordigh) (Ping timeout: 260 seconds) |
| 04:37:57 | → | fizbin joins (~fizbin@user/fizbin) |
| 04:42:58 | × | ddellacosta quits (~ddellacos@89.45.224.129) (Ping timeout: 268 seconds) |
| 04:50:16 | → | McBoog joins (~McBoog@172-10-253-252.lightspeed.fyvlar.sbcglobal.net) |
| 04:52:03 | × | thegeekinside quits (~thegeekin@189.217.82.244) (Read error: Connection reset by peer) |
| 04:55:18 | × | McBoog quits (~McBoog@172-10-253-252.lightspeed.fyvlar.sbcglobal.net) (Ping timeout: 268 seconds) |
| 05:04:38 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 252 seconds) |
| 05:07:41 | × | jinsun quits (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
| 05:11:07 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving) |
| 05:13:57 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) |
| 05:16:55 | → | wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com) |
| 05:16:55 | × | wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
| 05:16:55 | → | wroathe joins (~wroathe@user/wroathe) |
| 05:19:58 | × | freeside quits (~mengwong@pd907d273.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 05:21:27 | → | merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) |
| 05:24:32 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 272 seconds) |
| 05:25:32 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 05:26:04 | → | Vajb joins (~Vajb@2001:999:504:3ad6:52a4:a3b5:32d8:e74d) |
| 05:26:26 | × | merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
| 05:27:54 | → | zmt00 joins (~zmt00@user/zmt00) |
| 05:31:47 | → | freeside joins (~mengwong@pd907d273.dip0.t-ipconnect.de) |
| 05:36:26 | × | freeside quits (~mengwong@pd907d273.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 05:37:38 | → | jinsun joins (~jinsun@user/jinsun) |
| 05:43:57 | × | phma quits (phma@2001:5b0:2144:3348:b796:42a8:66d:6853) (Read error: Connection reset by peer) |
| 05:44:36 | → | phma joins (~phma@host-67-44-208-17.hnremote.net) |
| 05:45:09 | → | biberu joins (~biberu@user/biberu) |
| 05:47:08 | × | zmt00 quits (~zmt00@user/zmt00) (Read error: Connection reset by peer) |
| 05:48:58 | → | freeside joins (~mengwong@pd907d273.dip0.t-ipconnect.de) |
| 05:52:23 | × | son0p quits (~ff@2604:3d08:5b7f:5540::64ea) (Ping timeout: 260 seconds) |
| 05:53:09 | → | zmt00 joins (~zmt00@user/zmt00) |
| 05:54:30 | × | freeside quits (~mengwong@pd907d273.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 05:55:17 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 06:07:09 | → | freeside joins (~mengwong@pd907d273.dip0.t-ipconnect.de) |
| 06:08:04 | × | instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 252 seconds) |
| 06:08:52 | × | nut quits (~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 272 seconds) |
| 06:10:32 | × | Erutuon_ quits (~Erutuon@user/erutuon) (Ping timeout: 268 seconds) |
| 06:11:12 | × | zmt00 quits (~zmt00@user/zmt00) (Quit: Leaving) |
| 06:14:22 | → | zmt00 joins (~zmt00@user/zmt00) |
| 06:14:53 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 06:14:54 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 06:15:16 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 06:15:25 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 06:16:26 | <iqubic> | Seeing the error message "No instance (Functor Set)" and having to use `S.map` makes me a bit sad. |
| 06:17:03 | <jackdk> | It's not possible because you can't add constraints to fmap |
| 06:17:43 | <iqubic> | I know why it's impossible. I just wish it was possible. |
| 06:18:11 | → | bgs joins (~bgs@212-85-160-171.dynamic.telemach.net) |
| 06:20:04 | × | freeside quits (~mengwong@pd907d273.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 06:20:12 | → | instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net) |
| 06:21:39 | → | merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) |
| 06:21:47 | <EvanR> | there's probably a way to force it, and there's probably many languages which have forced it and don't care about consequences xD |
| 06:22:05 | <EvanR> | move Functor break things |
| 06:22:13 | <c_wraith> | there's actually a pretty principled way to force it. |
| 06:22:23 | <c_wraith> | But it requires defining the data types differently |
| 06:23:09 | <c_wraith> | ... and it requires a GADT. so... there's that |
| 06:23:28 | → | forell joins (~forell@user/forell) |
| 06:24:34 | × | instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 252 seconds) |
| 06:26:39 | <jackdk> | While we're breaking the universe, let's rename fmap -> map |
| 06:28:00 | <Jade[m]> | yep |
| 06:31:18 | <EvanR> | you mean bundle an ordering with the Data.Set? |
| 06:31:30 | × | fizbin quits (~fizbin@user/fizbin) (Quit: Leaving) |
| 06:31:52 | <EvanR> | I wonder where I saw something like "this is why that's a bad idea(tm)" |
| 06:34:35 | <int-e> | data FSet b where FSet :: Set a -> (a -> b) -> FSet b supports `fmap` but is otherwise pretty unpleasant? |
| 06:35:41 | <c_wraith> | data FSet a b where FSet :: Set a -> FSet a a ; instance Ord a => Functor (FSet a) where ... |
| 06:36:53 | <EvanR> | interesting |
| 06:37:18 | <int-e> | fmap :: (a -> b) -> FSet a a -> FSet a b |
| 06:37:31 | <EvanR> | ... |
| 06:37:34 | <c_wraith> | that's a type error, though |
| 06:37:40 | <c_wraith> | well, no it's not |
| 06:37:47 | <c_wraith> | There's just no FSet constructor with that type |
| 06:37:56 | <int-e> | No. But the arguments are inhabited while the result is not, unless a = b. |
| 06:38:08 | <iqubic> | This is silly. |
| 06:38:20 | <int-e> | So I don't think that particular type is helpful. |
| 06:38:28 | <c_wraith> | Then I remembered the details wrong. I can't seem to find the reddit post. |
| 06:38:37 | <EvanR> | hey, at least you can use fmap! |
| 06:38:49 | <EvanR> | which was the objective? xD |
| 06:39:03 | <int-e> | c_wraith: I imagine it had two constructors. |
| 06:39:30 | <int-e> | c_wraith: One for Set + identity, and the other for Set + arbitrary function captured from `fmap`. |
| 06:40:15 | <c_wraith> | Oh, hah. No, the trick was for Foldable, not Functor. That implementation works fine there |
| 06:40:21 | <int-e> | There's no way for `fmap` to produce a new set directly. The type doesn't allow it. |
| 06:40:45 | <int-e> | (where "set" = Data.Set.Set, requiring an Ord instance) |
| 06:40:47 | × | zmt00 quits (~zmt00@user/zmt00) (Read error: Connection reset by peer) |
| 06:40:53 | <c_wraith> | https://oleg.fi/gists/posts/2022-01-25-folding-unfoldable.html |
| 06:40:55 | <iqubic> | Isn't the identity for Set just an empty set? |
| 06:42:18 | <int-e> | Foldable is different, the class never constructs new Foldable values. |
| 06:42:47 | <int-e> | iqubic: I meant the identity function. |
| 06:42:57 | <iqubic> | Oh. I see.... |
| 06:43:27 | <int-e> | Set has several semigroups... what's the identity for intersection? ;-) |
| 06:44:34 | <iqubic> | I don't think you can have a monoid under intersection. |
| 06:44:55 | <int-e> | Ah, but for some element types you can. |
| 06:45:09 | <iqubic> | Oh? How? |
| 06:45:14 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 06:45:20 | <EvanR> | when set means "subset of some universe set" it works |
| 06:45:36 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 06:45:40 | <EvanR> | that's when intersection and complement really shine |
| 06:45:47 | <int-e> | iqubic: they need to be finite, and then you can enumerate them all. (For Data.Set.Set that is.) |
| 06:46:08 | <iqubic> | Ah, I see. |
| 06:46:10 | <EvanR> | last years advent of code does agree with the finite xD |
| 06:46:13 | <EvanR> | doesn't* |
| 06:46:17 | → | zmt00 joins (~zmt00@user/zmt00) |
| 06:46:38 | <EvanR> | it had to sectioning off subsets of an infinite plane into two regions |
| 06:46:47 | <EvanR> | ok I'm going to bed |
| 06:46:49 | <iqubic> | It did? |
| 06:46:56 | <EvanR> | yeah |
| 06:47:02 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 06:47:08 | <iqubic> | Which puzzle in 2020 wanted us to section off subsets of an infinite plane? |
| 06:47:10 | <[Leary]> | It can also be done in general if you represent Set differently, E.g. `newtype Set a = Set (a -> Bool)`, or `data Set a = Set (Data.Set.Set a) | Complement (Data.Set.Set a)`. |
| 06:47:14 | <EvanR> | 2021? |
| 06:47:18 | <int-e> | You can also have a new type `data Set' a = Direct (Set a) | Complement (Set a)`, which will support union, intersection, and complenent |
| 06:47:26 | <[Leary]> | Hah. |
| 06:47:31 | → | img joins (~img@user/img) |
| 06:47:34 | <iqubic> | EvanR: It's to late for me to be up. |
| 06:47:38 | <int-e> | (but not filter; if you want filter as well, you have to go [Leary]'s route) |
| 06:47:39 | → | freeside joins (~mengwong@pd907d273.dip0.t-ipconnect.de) |
| 06:47:54 | <iqubic> | Which puzzle had us sectioning off subsets? |
| 06:47:56 | <int-e> | the first one that is |
| 06:48:44 | <int-e> | (I didn't read the second half of [Leary]'s message before hitting return...) |
| 06:50:21 | <EvanR> | I think I was thinking of day 22 |
| 06:50:35 | <int-e> | Ah, `Finite` and `Cofinite` would be nice names for those constructors. |
| 06:50:42 | <EvanR> | which wasn't a plane it was 3D space |
| 06:52:03 | <iqubic> | EvanR: Yeah, that puzzle was very difficult. |
| 06:52:36 | → | bilegeek joins (~bilegeek@2600:1008:b08d:1565:29c1:7d26:b6e4:da2a) |
| 06:52:59 | <EvanR> | i could have sworn there was a 2D puzzle which at least would benefit from treating "the rest of the world" as toggling from 0 to 1 or on to off |
| 06:55:49 | <iqubic> | There was. Let me see if I can figure out which puzzle that was. |
| 06:56:22 | × | merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
| 06:57:55 | <EvanR> | maybe it was glowing octopus or something |
| 07:07:48 | → | kenran joins (~user@user/kenran) |
| 07:09:07 | × | kenran quits (~user@user/kenran) (Remote host closed the connection) |
| 07:09:22 | × | freeside quits (~mengwong@pd907d273.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 07:10:23 | <int-e> | This? https://adventofcode.com/2021/day/20 |
| 07:10:44 | <int-e> | Where the actual input had the property that it would invert the empty space. |
| 07:12:41 | <int-e> | (Which apparently I just hard-coded into my solution.) |
| 07:13:47 | <iqubic> | Yeah, that.. |
| 07:18:54 | × | shriekingnoise quits (~shrieking@186.137.167.202) (Quit: Quit) |
| 07:20:38 | <iqubic> | To make my solution to that more readable I used binary literals and numeric underscores and write literals like "0b111_111_111" and such |
| 07:27:20 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 255 seconds) |
| 07:27:20 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds) |
| 07:28:14 | × | zmt00 quits (~zmt00@user/zmt00) (Read error: Connection reset by peer) |
| 07:28:24 | <int-e> | > map (foldl' (\x y -> 2*x + if y == '.' then 0 else 1) 0 . replicate 9) ".#" |
| 07:28:26 | <lambdabot> | [0,511] |
| 07:29:07 | <int-e> | (that `foldl'` is something I actually used) |
| 07:29:17 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 07:29:30 | → | zmt00 joins (~zmt00@user/zmt00) |
| 07:31:14 | peutri_ | is now known as peutri |
| 07:31:23 | × | ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds) |
| 07:31:23 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 255 seconds) |
| 07:31:43 | <int-e> | https://paste.tomsmeding.com/bt3J2YXR -- not pretty, and, as I said, hard-coding the outside. (This is based on padding, so it alternates between padding with '.' and with '#') |
| 07:32:00 | <int-e> | Not efficient either, it didn't have to be. |
| 07:32:17 | × | stiell quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 255 seconds) |
| 07:32:32 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 07:32:36 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 07:33:31 | <int-e> | (I didn't even pack the rules into a vector or array or bytestring) |
| 07:35:28 | → | stiell joins (~stiell@gateway/tor-sasl/stiell) |
| 07:39:00 | × | xff0x_ quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 252 seconds) |
| 07:41:10 | → | xff0x_ joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 07:47:24 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 07:49:19 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 07:50:22 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:9454:4b6:946e:87e6) |
| 07:52:44 | → | merijn joins (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) |
| 07:53:47 | → | michalz joins (~michalz@185.246.204.89) |
| 07:54:43 | → | mncheck joins (~mncheck@193.224.205.254) |
| 08:02:33 | → | gmg joins (~user@user/gehmehgeh) |
| 08:04:10 | → | son0p joins (~ff@2604:3d08:5b7f:5540::4026) |
| 08:07:42 | → | nschoe joins (~q@141.101.51.197) |
| 08:07:53 | → | trev joins (~trev@user/trev) |
| 08:12:41 | × | bilegeek quits (~bilegeek@2600:1008:b08d:1565:29c1:7d26:b6e4:da2a) (Quit: Leaving) |
| 08:13:27 | → | acidjnk joins (~acidjnk@p200300d6e7137a818d61d9f76e9e41fa.dip0.t-ipconnect.de) |
| 08:13:53 | → | mmhat joins (~mmh@p200300f1c718063cee086bfffe095315.dip0.t-ipconnect.de) |
| 08:19:53 | × | trev quits (~trev@user/trev) (Remote host closed the connection) |
| 08:21:10 | → | trev joins (~trev@user/trev) |
| 08:25:50 | × | merijn quits (~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
| 08:29:07 | × | razetime quits (~quassel@49.207.203.213) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 08:41:11 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 08:43:16 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 08:44:16 | → | gmg joins (~user@user/gehmehgeh) |
| 08:44:42 | → | avicenzi joins (~avicenzi@2a00:ca8:a1f:b004:5b49:4996:51e:12cd) |
| 08:44:49 | × | Sgeo_ quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 08:50:50 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 08:53:57 | × | eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 08:54:22 | → | MajorBiscuit joins (~MajorBisc@2001:1c00:2404:ed00:28e1:ad14:ec67:539e) |
| 08:56:22 | × | machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 252 seconds) |
| 08:58:12 | → | fserucas joins (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) |
| 08:58:14 | → | machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net) |
| 08:58:14 | × | tessier quits (~treed@98.171.210.130) (Ping timeout: 260 seconds) |
| 08:58:44 | × | glguy quits (~glguy@libera/staff-emeritus/glguy) (Ping timeout: 256 seconds) |
| 08:58:57 | × | fserucas quits (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Client Quit) |
| 08:59:06 | → | glguy_ joins (~glguy@libera/staff-emeritus/glguy) |
| 09:00:04 | × | VanceIsM7[m] quits (~vanceism7@2001:470:69fc:105::3ad) (Quit: You have been kicked for being idle) |
| 09:00:04 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
| 09:00:18 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 09:02:41 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 09:10:31 | × | use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:40bc:fcc3:815f:f6e9) (Remote host closed the connection) |
| 09:10:50 | → | use-value joins (~Thunderbi@2a00:23c6:8a03:2f01:40bc:fcc3:815f:f6e9) |
| 09:13:57 | → | nut joins (~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 09:22:05 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 09:23:23 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 09:25:22 | × | zer0bitz_ quits (~zer0bitz@196.244.192.57) (Ping timeout: 256 seconds) |
| 09:25:56 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 09:30:32 | → | fserucas joins (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) |
| 09:31:25 | → | Guest23 joins (~Guest23@27.57.46.219) |
| 09:32:54 | × | Guest23 quits (~Guest23@27.57.46.219) (Remote host closed the connection) |
| 09:34:52 | × | Xeroine_ quits (~Xeroine@user/xeroine) (Ping timeout: 252 seconds) |
| 09:35:14 | → | Xeroine joins (~Xeroine@user/xeroine) |
| 09:36:26 | → | chele joins (~chele@user/chele) |
| 09:37:21 | × | jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
| 09:37:54 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 09:39:30 | → | tessier joins (~treed@98.171.210.130) |
| 09:45:30 | × | xff0x_ quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 252 seconds) |
| 09:46:28 | → | xff0x_ joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 09:48:28 | → | jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 09:52:44 | kmein_ | is now known as kmein |
| 09:54:25 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:f49d:401d:a888:f078) |
| 09:57:31 | × | ft quits (~ft@p4fc2a257.dip0.t-ipconnect.de) (Quit: leaving) |
| 09:58:48 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:f49d:401d:a888:f078) (Ping timeout: 256 seconds) |
| 10:03:29 | → | teo joins (~teo@user/teo) |
| 10:15:52 | × | chele quits (~chele@user/chele) (Ping timeout: 272 seconds) |
| 10:18:08 | × | troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 246 seconds) |
| 10:20:17 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds) |
| 10:22:44 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 10:24:14 | × | MajorBiscuit quits (~MajorBisc@2001:1c00:2404:ed00:28e1:ad14:ec67:539e) (Ping timeout: 260 seconds) |
| 10:24:55 | → | CiaoSen joins (~Jura@p200300c9571a2c002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 10:28:21 | → | dextaa2 joins (~DV@user/dextaa) |
| 10:30:23 | × | dextaa quits (~DV@user/dextaa) (Ping timeout: 246 seconds) |
| 10:30:23 | dextaa2 | is now known as dextaa |
| 10:33:10 | × | zmt00 quits (~zmt00@user/zmt00) (Ping timeout: 252 seconds) |
| 10:33:37 | → | zmt00 joins (~zmt00@user/zmt00) |
| 10:33:44 | × | natto quits (~natto@140.238.225.67) (Quit: a.) |
| 10:34:20 | → | natto joins (~natto@140.238.225.67) |
| 10:37:54 | × | xff0x_ quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 256 seconds) |
| 10:38:40 | × | natto quits (~natto@140.238.225.67) (Client Quit) |
| 10:40:32 | → | natto joins (~natto@140.238.225.67) |
| 10:41:06 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 10:42:07 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 10:44:08 | × | natto quits (~natto@140.238.225.67) (Client Quit) |
| 10:45:19 | → | natto joins (~natto@140.238.225.67) |
| 10:47:54 | × | natto quits (~natto@140.238.225.67) (Client Quit) |
| 10:48:26 | → | natto joins (~natto@140.238.225.67) |
| 10:51:14 | → | chele joins (~chele@user/chele) |
| 10:51:44 | × | acidjnk quits (~acidjnk@p200300d6e7137a818d61d9f76e9e41fa.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 10:52:43 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 10:59:44 | × | use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:40bc:fcc3:815f:f6e9) (Quit: use-value) |
| 11:09:27 | → | ubert joins (~Thunderbi@p200300ecdf264ebd3096e1a4e8bd793f.dip0.t-ipconnect.de) |
| 11:16:52 | × | natto quits (~natto@140.238.225.67) (Quit: a.) |
| 11:19:33 | → | natto joins (~natto@140.238.225.67) |
| 11:29:06 | → | xff0x_ joins (~xff0x@ai071162.d.east.v6connect.net) |
| 11:33:24 | × | hueso quits (~root@user/hueso) (Ping timeout: 260 seconds) |
| 11:34:02 | × | CiaoSen quits (~Jura@p200300c9571a2c002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 11:34:47 | → | hueso joins (~root@user/hueso) |
| 11:40:43 | <mniip> | what's a non-terrible way to write case x of { S.Bin _ S.Tip x S.Tip -> Just x; _ -> Nothing } |
| 11:41:17 | <mniip> | most operations on sets want to recurse on the branches first |
| 11:44:09 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 11:49:27 | → | CiaoSen joins (~Jura@p200300c9571a2c002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 11:49:33 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 11:52:27 | → | perrierjouet joins (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) |
| 11:56:26 | → | MajorBiscuit joins (~MajorBisc@2001:1c00:2404:ed00:28e1:ad14:ec67:539e) |
| 11:56:29 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:f49d:401d:a888:f078) |
| 11:57:43 | × | hueso quits (~root@user/hueso) (Ping timeout: 268 seconds) |
| 12:00:55 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:f49d:401d:a888:f078) (Ping timeout: 260 seconds) |
| 12:01:48 | → | hueso joins (~root@user/hueso) |
| 12:05:16 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 12:18:02 | × | mmhat quits (~mmh@p200300f1c718063cee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 12:18:24 | → | mmhat joins (~mmh@p200300f1c7180627ee086bfffe095315.dip0.t-ipconnect.de) |
| 12:21:07 | × | jpds2 quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 12:21:24 | → | jpds2 joins (~jpds@gateway/tor-sasl/jpds) |
| 12:31:16 | → | Guest75 joins (Guest75@2a01:7e01::f03c:92ff:fe5d:7b18) |
| 12:36:26 | → | JordiGH joins (~jordi@user/jordigh) |
| 12:44:16 | × | JordiGH quits (~jordi@user/jordigh) (Ping timeout: 256 seconds) |
| 12:45:58 | × | mauke quits (~mauke@user/mauke) (Quit: Reconnecting) |
| 12:46:07 | → | mauke joins (~mauke@user/mauke) |
| 12:46:34 | × | mauke quits (~mauke@user/mauke) (Client Quit) |
| 12:47:20 | → | johnw joins (~johnw@2600:1700:cf00:db0:10fb:30b:5c13:20f5) |
| 12:48:38 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 12:49:35 | → | mauke joins (~mauke@user/mauke) |
| 12:49:51 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 12:53:32 | × | Alex_test quits (~al_test@178.34.161.14) (Quit: ;-) |
| 12:54:09 | → | jonathanx_ joins (~jonathan@94.234.101.245) |
| 12:54:35 | × | AlexZenon quits (~alzenon@178.34.161.14) (Quit: ;-) |
| 12:55:54 | × | AlexNoo quits (~AlexNoo@178.34.161.14) (Remote host closed the connection) |
| 12:57:22 | × | jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 272 seconds) |
| 12:58:58 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 12:59:19 | → | cowboy8625 joins (~cowboy@96-2-208-2-static.midco.net) |
| 13:01:27 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 13:04:03 | × | Guest75 quits (Guest75@2a01:7e01::f03c:92ff:fe5d:7b18) (Ping timeout: 260 seconds) |
| 13:04:40 | → | jonathanx__ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 13:07:30 | × | jonathanx_ quits (~jonathan@94.234.101.245) (Ping timeout: 256 seconds) |
| 13:08:06 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 13:17:30 | → | freeside joins (~mengwong@37.230.10.52) |
| 13:20:12 | → | JordiGH joins (~jordi@user/jordigh) |
| 13:21:56 | × | stiell quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 255 seconds) |
| 13:22:23 | × | jpds2 quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 255 seconds) |
| 13:23:09 | → | jpds2 joins (~jpds@gateway/tor-sasl/jpds) |
| 13:23:39 | → | stiell joins (~stiell@gateway/tor-sasl/stiell) |
| 13:23:45 | → | acidjnk joins (~acidjnk@p200300d6e7137a66c0eb5a8137ed3b6d.dip0.t-ipconnect.de) |
| 13:28:03 | → | troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua) |
| 13:29:02 | → | AlexNoo joins (~AlexNoo@178.34.161.14) |
| 13:32:45 | × | ystael quits (~ystael@user/ystael) (Ping timeout: 260 seconds) |
| 13:37:14 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds) |
| 13:38:46 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 13:39:03 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds) |
| 13:40:27 | → | AlexZenon joins (~alzenon@178.34.161.14) |
| 13:42:48 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 13:43:24 | → | bontaq joins (~user@ool-45779fe5.dyn.optonline.net) |
| 13:43:54 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit) |
| 13:44:59 | <chreekat> | mniip: PatternSynonyms perhaps? |
| 13:45:12 | <chreekat> | or ViewPatterns |
| 13:45:22 | <mniip> | that helps how? |
| 13:45:28 | → | Alex_test joins (~al_test@178.34.161.14) |
| 13:45:37 | <mniip> | the problem is I don't want to have to use Data.Set.Internal |
| 13:45:41 | <chreekat> | oh |
| 13:45:54 | <chreekat> | well then I don't understand the problem well enough |
| 13:46:14 | × | Alex_test quits (~al_test@178.34.161.14) (Client Quit) |
| 13:46:34 | → | Alex_test joins (~al_test@178.34.161.14) |
| 13:49:02 | <c_wraith> | mniip: but that's an internal detail. the root of the tree isn't something you're supposed to care about |
| 13:49:18 | <c_wraith> | Or the leaves, for that matter |
| 13:49:20 | × | freeside quits (~mengwong@37.230.10.52) (Ping timeout: 268 seconds) |
| 13:49:48 | <mniip> | I want a function that extracts the only element of a set, but in case there are more, it doesn't traverse the set more that necessary |
| 13:49:57 | → | freeside joins (~mengwong@37.230.10.52) |
| 13:50:08 | × | inversed quits (~inversed@bcdcac82.skybroadband.com) (Ping timeout: 260 seconds) |
| 13:50:12 | <mniip> | I guess I could do a S.findMin guarded behind S.size |
| 13:50:30 | <c_wraith> | yeah, that's how you'd express that. |
| 13:50:36 | → | shriekingnoise joins (~shrieking@186.137.167.202) |
| 13:51:32 | <mniip> | this has the behavior of case x of { S.Bin sz l x _ | sz == 1 -> case l of { S.Tip -> Just x; S.Bin -> unreachable }; _ -> Nothing } |
| 13:51:38 | <mniip> | berable I guess |
| 13:52:46 | → | inversed joins (~inversed@bcdcac82.skybroadband.com) |
| 13:55:13 | <c_wraith> | eh? if the size is 1, l should be Tip |
| 13:55:26 | <c_wraith> | Oh, nevermind. It's clearly too easy for me to be reading |
| 13:57:15 | → | Erutuon_ joins (~Erutuon@user/erutuon) |
| 14:04:57 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 14:08:33 | × | mmhat quits (~mmh@p200300f1c7180627ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.7.1) |
| 14:09:21 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 14:22:07 | → | thyriaen joins (~thyriaen@2a01:aea0:dd4:4bae:6245:cbff:fe9f:48b1) |
| 14:23:47 | → | thegeekinside joins (~thegeekin@189.217.82.244) |
| 14:25:24 | × | nut quits (~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 272 seconds) |
| 14:25:42 | × | Vajb quits (~Vajb@2001:999:504:3ad6:52a4:a3b5:32d8:e74d) (Ping timeout: 256 seconds) |
| 14:28:18 | → | Vajb joins (~Vajb@2001:999:250:c9:8588:6e93:7809:7816) |
| 14:30:10 | × | thegeekinside quits (~thegeekin@189.217.82.244) (Remote host closed the connection) |
| 14:30:21 | → | thegeekinside joins (~thegeekin@189.217.82.244) |
| 14:31:27 | → | ystael joins (~ystael@user/ystael) |
| 14:36:14 | × | mncheck quits (~mncheck@193.224.205.254) (Remote host closed the connection) |
| 14:36:42 | → | mncheck joins (~mncheck@193.224.205.254) |
| 14:38:57 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds) |
| 14:43:25 | → | doyougnu joins (~doyougnu@cpe-74-69-132-225.stny.res.rr.com) |
| 14:53:31 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 14:58:27 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
| 14:58:58 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 272 seconds) |
| 15:03:21 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 15:03:40 | × | ystael quits (~ystael@user/ystael) (Ping timeout: 256 seconds) |
| 15:04:00 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 15:08:43 | <dminuoso> | mniip: You could use MonadComprehensions together with: [r | S.Bin _ S.Tip x S.Tip <- x] |
| 15:09:07 | <dminuoso> | Oh slight typo in the pattern, but you get the idea |
| 15:09:24 | <mniip> | what |
| 15:09:49 | <mniip> | my main issue is with breaking the Data.Set abstraction, not syntax sugar |
| 15:09:53 | <dminuoso> | Oh I see. |
| 15:14:55 | <dminuoso> | Indeed it seems like size guarded findMin is your best bet if sticking with public API. |
| 15:17:11 | → | Guest23 joins (~Guest23@27.57.46.219) |
| 15:18:45 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 15:20:24 | → | festive_kurbus joins (~festive_k@user/kurbus) |
| 15:33:51 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 15:38:15 | × | gnyeki quits (~gnyeki@user/gnyeki) (Quit: leaving) |
| 15:39:06 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
| 15:41:48 | → | gnyeki joins (~gnyeki@user/gnyeki) |
| 15:50:09 | → | charmelon joins (~charmelon@136.233.9.107) |
| 15:51:03 | × | charmelon quits (~charmelon@136.233.9.107) (Remote host closed the connection) |
| 15:51:32 | × | freeside quits (~mengwong@37.230.10.52) (Ping timeout: 272 seconds) |
| 15:52:20 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 15:52:42 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 16:02:05 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:9454:4b6:946e:87e6) (Quit: WeeChat 2.8) |
| 16:04:18 | → | coot joins (~coot@213.134.171.3) |
| 16:06:19 | → | ystael joins (~ystael@user/ystael) |
| 16:09:17 | → | paolino joins (~paolo@5.157.115.53) |
| 16:10:36 | <Athas> | Are there any GHC binary tarballs that work on RHEL 8? |
| 16:10:38 | → | rcharles joins (~user@pool-71-166-43-226.bltmmd.fios.verizon.net) |
| 16:12:02 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 16:13:14 | → | vpan joins (~0@212.117.1.172) |
| 16:14:14 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:15:04 | → | nut joins (~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 16:15:39 | × | festive_kurbus quits (~festive_k@user/kurbus) (Quit: Client closed) |
| 16:21:35 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:f49d:401d:a888:f078) |
| 16:22:34 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 16:25:45 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 16:33:50 | → | festive_kurbus joins (~festive_k@user/kurbus) |
| 16:37:52 | × | nschoe quits (~q@141.101.51.197) (Ping timeout: 252 seconds) |
| 16:45:22 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 272 seconds) |
| 16:51:55 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 16:52:05 | <monochrom> | I don't know but there is some chance one of {Fedora, CentOS} may work. |
| 16:54:09 | <geekosaur> | low chance; RHEL8 is ancient |
| 16:54:25 | <geekosaur> | well, probably uo to date by their release schedule but all ancient software |
| 16:54:49 | <geekosaur> | hm, centos should work but I doubt there's a release for that either |
| 16:54:59 | <geekosaur> | old gmp, in particular |
| 16:55:38 | <monochrom> | There is a GHC binary for CentOS 7. |
| 16:58:00 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 16:58:26 | <mauke> | "Since joining Epic Games in late 2021, I have been involved in the design and development of Verse, a new, declarative programming language that Epic plans to use as the language of the metaverse." <- :-( what a disappointing summary |
| 16:58:41 | <monochrom> | haha |
| 16:58:42 | → | themc47 joins (~mc47@xmonad/TheMC47) |
| 16:59:23 | <monochrom> | What's the context? Who's the intended audience? |
| 16:59:50 | × | Guest23 quits (~Guest23@27.57.46.219) (Ping timeout: 256 seconds) |
| 16:59:50 | <mauke> | no idea, found it in a SPJ video on youtube |
| 16:59:56 | <int-e> | does "meta" work like "co", where "cocoverse" reduces to "verse"? |
| 17:00:27 | × | mc47 quits (~mc47@xmonad/TheMC47) (Read error: Connection reset by peer) |
| 17:00:42 | <monochrom> | Hrm so that's why it's called Verse. I thought it referred to having verses in poems etc. |
| 17:00:59 | monochrom | goes write a multiverse poem! |
| 17:01:17 | <monochrom> | (one more great tautology) |
| 17:01:44 | <shapr> | @quote |
| 17:01:44 | <lambdabot> | sigfpe says: It's like deciding that the prime numbers bigger than 20 are interesting for some reason, and then choosing to name them "the primes". |
| 17:01:48 | <mauke> | "Understanding join points can help you are a programmer too, because you can write code confident that it will optimise well. You will discover a rather compelling example this." |
| 17:01:51 | <mauke> | who writes these |
| 17:02:16 | × | themc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 17:02:22 | <int-e> | . o O ( Verse programs must be written in iambic pentameter. ) |
| 17:02:24 | <monochrom> | Prime numbers bigger than 2 are interesting for some reason, and I choose to name them "the odd primes". >:) |
| 17:02:35 | → | themc47 joins (~mc47@xmonad/TheMC47) |
| 17:02:49 | <int-e> | monochrom: that's unfair to 2. |
| 17:03:01 | <mauke> | which prime is the oddest? |
| 17:03:10 | <int-e> | (which, as you are certainly aware, is a pretty odd prime) |
| 17:03:12 | <mauke> | is it 2? |
| 17:04:15 | <[exa]> | mauke: 1 |
| 17:04:42 | [exa] | runs away from the angered crowd of mathematicians |
| 17:04:51 | <mauke> | sub putStr{-print@_}q o-}=0;main=do;putStr"JAHP\n" |
| 17:05:25 | int-e | locks [exa] up in an Euclidean domain for safety. |
| 17:07:21 | <monochrom> | "You will discover a rather compelling example this" is probably from Yoda >:) |
| 17:07:53 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:f49d:401d:a888:f078) (Remote host closed the connection) |
| 17:08:23 | <monochrom> | But I can also agree that it's from an AI that learned from Yoda. |
| 17:08:44 | × | ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds) |
| 17:09:30 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 17:14:51 | → | aeroplane joins (~user@user/aeroplane) |
| 17:15:04 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:16:54 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 17:17:58 | × | CiaoSen quits (~Jura@p200300c9571a2c002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 17:20:30 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 17:23:07 | × | paolino quits (~paolo@5.157.115.53) (Quit: Leaving) |
| 17:28:33 | × | sayola quits (~sayola@dslb-088-064-186-217.088.064.pools.vodafone-ip.de) (Read error: Connection reset by peer) |
| 17:30:49 | → | sayola joins (~sayola@dslb-088-064-186-217.088.064.pools.vodafone-ip.de) |
| 17:33:16 | × | themc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 17:33:35 | → | themc47 joins (~mc47@xmonad/TheMC47) |
| 17:35:01 | → | Guest75 joins (Guest75@2a01:7e01::f03c:92ff:fe5d:7b18) |
| 17:36:18 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds) |
| 17:37:16 | × | themc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 17:37:35 | → | themc47 joins (~mc47@xmonad/TheMC47) |
| 17:40:27 | <aeroplane> | I've removed brackets and then this code causes memory leak, http://ix.io/4iBr/haskell |
| 17:40:27 | <aeroplane> | |
| 17:41:16 | <aeroplane> | Make sure to run it like this or else it will blow up your RAM, $ sh ghc -O -rtsopts haskell.hs;./haskell +RTS -M4m -RTS |
| 17:41:27 | <monochrom> | I am seeing fib x = (fib x) - 1 + (fib x) - 2. |
| 17:41:42 | <monochrom> | I would be surprised if it would terminate at all. |
| 17:42:15 | <aeroplane> | arguments still confuses me |
| 17:43:48 | × | festive_kurbus quits (~festive_k@user/kurbus) (Quit: Client closed) |
| 17:44:03 | <int-e> | For the most part, spaces are irrelevant in Haskell's syntax; there's no difference between `fib x-1 + fib x-2` and `fib x - 1 + fib x - 2`. |
| 17:44:41 | <monochrom> | A good white lie (much better than competing white lies) is that between "fib" and "x" there is an invisible operator for function application and its operator precedence is very high. This explains why "fib x - 1" becomes "(fib x) - 1" not "fib (x-1)". |
| 17:44:44 | <int-e> | (spaces are of course relevant for indentation and for a few extensions like NegativeLiterals and TypeApplications... am I forgetting something?) |
| 17:45:16 | <int-e> | % :set -XNegativeLiterals |
| 17:45:16 | <yahb2> | <no output> |
| 17:45:21 | → | econo joins (uid147250@user/econo) |
| 17:45:22 | <int-e> | % id -1 |
| 17:45:22 | <yahb2> | -1 |
| 17:45:29 | <int-e> | % id - 1 -- confusingly :-/ |
| 17:45:29 | <yahb2> | <interactive>:36:1: error: ; • No instance for (Show (a0 -> a0)) ; arising from a use of ‘Yahb2Defs.limitedPrint’ ; (maybe you haven't applied a function to enough arguments?) ;... |
| 17:45:58 | <monochrom> | "But but isn't space that operator?" is a pretty good white lie too. (Until you find out that length"abc" works, no space.) |
| 17:46:02 | <int-e> | That is an extension though. |
| 17:46:14 | <int-e> | (the negative literals thing) |
| 17:46:27 | <int-e> | > length"abc" |
| 17:46:29 | <lambdabot> | 3 |
| 17:46:31 | <int-e> | > ord'a' |
| 17:46:32 | <lambdabot> | error: Variable not in scope: ord'a' |
| 17:46:36 | <int-e> | :-/ |
| 17:46:56 | <monochrom> | > let ord'a' x = ord x in ord'a' 'a' |
| 17:46:57 | <lambdabot> | 97 |
| 17:46:59 | <monochrom> | >:) |
| 17:47:12 | → | festive_kurbus joins (~festive_k@user/kurbus) |
| 17:47:28 | <monochrom> | Recall oleg'case'works :) |
| 17:47:53 | <mauke> | rock'n'roll |
| 17:48:24 | <int-e> | monochrom: I mean, I knew that it wouldn't work, and why. |
| 17:48:31 | <monochrom> | OK heh |
| 17:48:42 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 17:49:05 | <int-e> | > let foo x f = f x in foo 1id |
| 17:49:06 | <lambdabot> | 1 |
| 17:49:46 | <int-e> | fortunately, these corner cases are not often exercised in real world code |
| 17:49:47 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 265 seconds) |
| 17:49:50 | <monochrom> | Unpopular opinion: Use parentheses to avoid spaces! map(f)(x:xs) = x : map(f)(xs) |
| 17:50:11 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 17:50:14 | <monochrom> | Did you know: Landin legit wrote that in papers. |
| 17:50:26 | <monochrom> | Or rather, wrote like that. "f(x)(y)". |
| 17:50:35 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 17:50:36 | <int-e> | dym map(f)(x:xs)=x:map(f)xs |
| 17:50:53 | <monochrom> | Yeah |
| 17:51:14 | × | themc47 quits (~mc47@xmonad/TheMC47) (Ping timeout: 272 seconds) |
| 17:51:20 | <mauke> | why not x:(map)f(xs) |
| 17:51:45 | <int-e> | why not indeed |
| 17:51:52 | <int-e> | or (x):(map)(f)(xs) |
| 17:51:54 | <mauke> | x:f`map`xs |
| 17:52:18 | <monochrom> | (:)(x)(f`map`xs) |
| 17:52:19 | <int-e> | (:map(f)xs)x |
| 17:52:53 | <monochrom> | OK sorry I'm degenerating to s-expressions. |
| 17:52:54 | <int-e> | (and people complain about Perl being line noise) |
| 17:53:08 | × | JordiGH quits (~jordi@user/jordigh) (Ping timeout: 246 seconds) |
| 17:53:30 | <monochrom> | I complain about COBOL being word noise. >:) |
| 17:53:47 | × | vpan quits (~0@212.117.1.172) (Quit: Leaving.) |
| 17:54:45 | <monochrom> | Hey I'm going to coin "readable noise" as a derogatory term! |
| 17:58:57 | glguy_ | is now known as glguy |
| 18:01:04 | × | thegeekinside quits (~thegeekin@189.217.82.244) (Remote host closed the connection) |
| 18:01:14 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:f49d:401d:a888:f078) |
| 18:02:43 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 18:07:42 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 272 seconds) |
| 18:15:33 | → | JordiGH joins (~jordi@user/jordigh) |
| 18:16:03 | × | JordiGH quits (~jordi@user/jordigh) (Remote host closed the connection) |
| 18:16:22 | → | JordiGH joins (~jordi@user/jordigh) |
| 18:20:22 | × | doyougnu quits (~doyougnu@cpe-74-69-132-225.stny.res.rr.com) (Ping timeout: 272 seconds) |
| 18:21:53 | → | fizbin joins (~fizbin@user/fizbin) |
| 18:24:48 | <fizbin> | I have a question about laziness and Control.Monad.State. |
| 18:25:56 | <fizbin> | Can someone explain to me the difference among the four possibilities: Control.Monad.State.Lazy.modify, Control.Monad.State.Lazy.modify', Control.Monad.State.Strict.modify, Control.Monad.State.Strict.modify' |
| 18:26:42 | <fizbin> | Specifically, what exactly ends up lazy in the middle two (Lazy.modify' vs Strict.modify) there? |
| 18:28:57 | <EvanR> | I looked at the source, so now I know xD |
| 18:30:40 | <aeroplane> | Thanks for this awesome discussion about my ques, really understood about arguments now. Since in "fib x + 1", fib takes single argument, ∴ + is not an argument to 'fib'. And since λ is a func prog lang, ∴ order of execution is from left to right in sequence |
| 18:30:58 | → | thegeekinside joins (~thegeekin@189.217.82.244) |
| 18:31:13 | <geekosaur> | fizbin, there are two things that can be strict vs. lazy: the (>>=) operation, and updating the state |
| 18:31:35 | <geekosaur> | Strict vs. Lazy is the former, and modify vs. modify' is the latter |
| 18:31:55 | × | nut quits (~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Quit: WeeChat 2.3) |
| 18:32:13 | <fizbin> | I guess I'm a little confused on what it means for (>>=) to be lazy then. |
| 18:32:48 | <fizbin> | Because I thought that (>>=) in Control.Monad.State being lazy meant being lazy in the state. |
| 18:32:53 | × | fserucas quits (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Ping timeout: 252 seconds) |
| 18:33:44 | <geekosaur> | I think it is, but in a different place from modify/modify' ? |
| 18:36:20 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 18:36:46 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 18:36:49 | <EvanR> | lazy >>= doesn't actual touch the state |
| 18:37:05 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 18:37:09 | <EvanR> | it defers the continuation entirely |
| 18:37:36 | <geekosaur> | there you go, then |
| 18:38:43 | <EvanR> | oof, I'm looking at the code for `state' |
| 18:39:59 | <EvanR> | state f = get >>= \s -> let ~(a, s') = f s in put s' >> return a |
| 18:41:31 | <mauke> | inb4 backwards state monad |
| 18:41:34 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds) |
| 18:41:57 | <dminuoso> | fizbin: Lets first talk about modify vs modify'. The difference here, is that one is strict in the state itself, so `modify f`, f is applied *strictly* to the state. |
| 18:42:44 | <dminuoso> | modify' f = do { s <- get; put $! f s } |
| 18:42:47 | <dminuoso> | modify f = do { s <- get; put $ f s } |
| 18:42:54 | × | festive_kurbus quits (~festive_k@user/kurbus) (Quit: Client closed) |
| 18:44:31 | → | ft joins (~ft@p4fc2a257.dip0.t-ipconnect.de) |
| 18:46:17 | → | festive_kurbus joins (~festive_k@user/kurbus) |
| 18:49:16 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 18:49:35 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 18:51:19 | <EvanR> | and State.Lazy >>= also has a similar ~ in the definition of >>= |
| 18:52:05 | <EvanR> | much lazy |
| 18:52:46 | × | mc47 quits (~mc47@xmonad/TheMC47) (Client Quit) |
| 18:55:12 | × | Erutuon_ quits (~Erutuon@user/erutuon) (Ping timeout: 272 seconds) |
| 18:57:44 | × | rcharles quits (~user@pool-71-166-43-226.bltmmd.fios.verizon.net) (Ping timeout: 272 seconds) |
| 18:58:47 | <monochrom> | EvanR: Yes, State.Lazy allows left recursion. foo = do { xs <- foo; pure (0:xs) } gives you an infinite list. |
| 18:59:18 | → | tomokojun joins (~tomokojun@75.164.52.103) |
| 18:59:42 | <EvanR> | fizbin, probably a giant gotcha is: even "Strict State" is particularly lazy with the state by default |
| 19:00:26 | <glguy> | fizbin: The Lazy and Strict in the module names refers to being lazy in the tuple part of (s -> (a,s)) |
| 19:00:33 | <glguy> | and not to being strict/lazy in the state value itself |
| 19:01:58 | <glguy> | so consider this from Control.Monad.State.Lazy |
| 19:01:59 | <glguy> | >>> execState (undefined >> put 'a') undefined |
| 19:02:04 | <glguy> | evaluates to 'a' |
| 19:02:29 | <glguy> | it doesn't matter than the computation before put 'a' wasn't defined as it wasn't needed; put ignored it |
| 19:03:08 | <glguy> | but that would have been undefined in the Strict state case |
| 19:03:28 | <glguy> | In the strict state case, you can still be lazy in the state value |
| 19:03:29 | <glguy> | >>> execState (put 'a') undefined |
| 19:03:30 | × | AkechiShiro quits (~licht@user/akechishiro) (Ping timeout: 260 seconds) |
| 19:03:32 | <glguy> | 'a' |
| 19:04:10 | × | Adran quits (adran@botters/adran) (Ping timeout: 252 seconds) |
| 19:04:12 | → | AkechiShiro joins (~licht@user/akechishiro) |
| 19:04:18 | → | Erutuon_ joins (~Erutuon@user/erutuon) |
| 19:04:19 | × | nisstyre quits (wes@user/nisstyre) (Ping timeout: 256 seconds) |
| 19:05:22 | → | Adran joins (~adran@botters/adran) |
| 19:05:38 | <EvanR> | >>> execState (do put undefined; put 'a') 'b' |
| 19:05:44 | <EvanR> | > execState (do put undefined; put 'a') 'b' |
| 19:05:46 | <lambdabot> | 'a' |
| 19:07:18 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 19:08:43 | → | elevenkb joins (~elevenkb@105.224.37.83) |
| 19:08:59 | <EvanR> | > execState (do modify (+1); put 3) undefined |
| 19:09:01 | <lambdabot> | 3 |
| 19:10:39 | → | Tuplanolla joins (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) |
| 19:11:12 | → | doyougnu joins (~doyougnu@cpe-74-69-132-225.stny.res.rr.com) |
| 19:11:25 | × | doyougnu quits (~doyougnu@cpe-74-69-132-225.stny.res.rr.com) (Remote host closed the connection) |
| 19:11:40 | → | slaydr joins (~slaydr@75.164.94.61) |
| 19:14:42 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 19:15:09 | → | gensyst joins (gensyst@user/gensyst) |
| 19:15:23 | × | MajorBiscuit quits (~MajorBisc@2001:1c00:2404:ed00:28e1:ad14:ec67:539e) (Ping timeout: 260 seconds) |
| 19:16:00 | <gensyst> | Why could cause traceShow "foo" from not getting output? Can it be that multiple invocations are not output if the string is the same? |
| 19:16:19 | <gensyst> | I'm pretty sure the thing should be evaluated because it's after a return in an IO call |
| 19:16:32 | <gensyst> | return $ traceShow "foo" 2 |
| 19:16:38 | <gensyst> | and the 2 is used |
| 19:16:53 | <opqdonut> | the compiler might lift the constant |
| 19:17:14 | <opqdonut> | you can check the core to be sure |
| 19:17:26 | <opqdonut> | (if it's a nontrivial sized program reading the core might be a bit of a chore though) |
| 19:17:55 | → | nisstyre joins (~wes@user/nisstyre) |
| 19:17:56 | <gensyst> | i'm forced to throw in a random number into that string, to be sure it's output? |
| 19:17:56 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 19:18:23 | <gensyst> | any tricks here? |
| 19:18:31 | <gensyst> | btw that string *is* getting output, but just once |
| 19:18:40 | <opqdonut> | yeah that would be consistent with constant lifting |
| 19:18:51 | <opqdonut> | if you're in IO, why even use trace instead of a print? |
| 19:19:10 | <gensyst> | well ok i meant monad lol |
| 19:19:16 | <gensyst> | ok i'll just add monadio for now and do print lol |
| 19:20:01 | <opqdonut> | this is a good demonstration of how laziness and impure operatios don't mix that well :) |
| 19:20:13 | <mauke> | :t Debug.Trace.traceIO |
| 19:20:14 | <lambdabot> | String -> IO () |
| 19:21:08 | <opqdonut> | there's probably some trick where you introduce a closure to make the optimizer not lift that out |
| 19:21:28 | <mauke> | see description of https://hackage.haskell.org/package/base-4.17.0.0/docs/Debug-Trace.html#v:traceM |
| 19:22:46 | <gensyst> | thank you guys |
| 19:23:31 | <gensyst> | but why would one ever use traceIO instead of print? |
| 19:23:44 | <gensyst> | built-in caching (for performance) or something? |
| 19:24:20 | <EvanR> | :t print |
| 19:24:21 | <lambdabot> | Show a => a -> IO () |
| 19:24:40 | <jean-paul[m]> | "Setup configure ..." is failing with "Missing (or bad) C library:". It says I can pass "-v3" to see the error messages ... but "Setup -v3 configure ..." says exactly the same thing, as does "Setup configure -v3 ...". Where do I pass it? |
| 19:24:44 | <monochrom> | print goes to stdout, but I want stderr |
| 19:25:07 | <jean-paul[m]> | Meh. "..." had stuff in it that reset verbosity to a lower level. |
| 19:25:23 | <monochrom> | Even in a C course I teach students "debugging messages go to stderr please, don't spam stdout". |
| 19:26:23 | <EvanR> | haha, traceIO is defined in terms of something called `debugBelch :: CString -> CString -> IO ()' |
| 19:27:01 | <EvanR> | (presumably goes to stderr) |
| 19:27:03 | <monochrom> | Unpopular opinion: When debugging messages spam stdout, it's called "test pollution". >:) |
| 19:27:37 | → | mikoto-chan joins (~mikoto-ch@2001:999:230:86e2:ae4c:4efd:1f0:d882) |
| 19:28:46 | <EvanR> | gensyst, standard trace is attached to an expression. It's tricky to insist ghc evaluates that expression the number of times you want it to, if evaluating less times (or zero times) gives the same usual semantics |
| 19:30:01 | <EvanR> | purity is great if you take it seriously xD |
| 19:31:14 | <Profpatsch> | Okay okay this might sound crazy, but hear me out: RecordWildCards for HasField |
| 19:31:28 | → | gmg joins (~user@user/gehmehgeh) |
| 19:32:28 | <gensyst> | Interesting! |
| 19:32:57 | <gensyst> | Ah, so the issue is not the string being the same. The issue is the main value being the same |
| 19:33:09 | <gensyst> | sorry misunderstood earlier |
| 19:33:20 | <Profpatsch> | \(foo{..}, bar{..}) -> … this would put all HasField instances for the type of foo and bar into scope |
| 19:33:56 | <monochrom> | Debug.Trace lets you observe lazy evaluation and more detailedly what GHC has decided about when to evaluate and how many times. |
| 19:33:58 | <EvanR> | value being the same doesn't explain it, since that sounds like caching |
| 19:34:17 | <monochrom> | Corollary being if you don't see a message then evaluation didn't happen. |
| 19:35:09 | <monochrom> | If you see it only once then it's evaluated only once. If you expected repeats then it means GHC decided to memoize or common-subexpression-elimination etc. |
| 19:35:52 | × | wagle quits (~wagle@quassel.wagle.io) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
| 19:36:23 | → | wagle joins (~wagle@quassel.wagle.io) |
| 19:36:30 | → | kalj joins (~kalj@81-227-161-241-no193.tbcn.telia.com) |
| 19:37:06 | → | tomokojun_ joins (~tomokojun@75.164.24.44) |
| 19:37:46 | <kalj> | I'm having some trouble with lsp-haskell in emacs. It doesn't seem to search for my stack.yaml file the same way that happens when I run haskell-language-server-wrapper directly. |
| 19:38:39 | × | festive_kurbus quits (~festive_k@user/kurbus) (Quit: Client closed) |
| 19:40:10 | × | tomokojun quits (~tomokojun@75.164.52.103) (Ping timeout: 272 seconds) |
| 19:41:32 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:809d:9c93:5943:40a1) |
| 19:46:58 | → | ballast joins (~ballast@cpe-104-32-238-223.socal.res.rr.com) |
| 19:47:34 | × | son0p quits (~ff@2604:3d08:5b7f:5540::4026) (Ping timeout: 252 seconds) |
| 19:49:16 | <ballast> | what's the right data structure to model a many-to-one relation? I basically want a map where multiple keys can map to the same value. And importantly I want to also be able to go from the value to all of the keys that map to it. |
| 19:49:55 | <EvanR> | Map k a already lets multiple keys go to the same value |
| 19:50:00 | <EvanR> | Map a [k] goes backwards |
| 19:51:19 | <ballast> | hmmm, so perhaps I could just have `a` be itself a key in a `Map a value`. I think I might want to mutate the `value`. |
| 19:51:19 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
| 19:52:10 | tomokojun_ | is now known as tomokojun |
| 19:52:28 | <EvanR> | if you change the forward map, you have to change the index regardless |
| 19:52:42 | <EvanR> | whether it's adding, removing, or changing values |
| 19:53:22 | × | thyriaen quits (~thyriaen@2a01:aea0:dd4:4bae:6245:cbff:fe9f:48b1) (Quit: Leaving) |
| 19:53:52 | × | slaydr quits (~slaydr@75.164.94.61) (Quit: Leaving) |
| 19:53:56 | <ballast> | i'm a little surprised that there isn't some sort of preexisting data structure for this, but admittedly i can't think of a different way of doing it in another programming language |
| 19:54:03 | <EvanR> | there's stuff on hackage, I'm sure |
| 19:54:28 | <EvanR> | even for Map you need the containers package |
| 19:54:37 | <ballast> | my other thought is to store `[k]` in `a` itself |
| 19:55:09 | <EvanR> | How would that help |
| 19:55:39 | <ballast> | wouldn't need the backwards map as long as you have `a` , but then you'd need to update every entry in `Map k a` if you add a new key |
| 19:55:45 | <EvanR> | I mean, if `a' is some unique object somewhere that you can always access, ok |
| 19:55:59 | <EvanR> | but I assumed a are values |
| 19:56:13 | <EvanR> | independent of the state of your database |
| 19:56:16 | <ballast> | ah i see |
| 19:56:48 | <ballast> | regardless i think you're right that the way to go about it is just to have a regular map |
| 19:57:18 | <EvanR> | some kind of index to go backwards, I just said Map a [k] because it's the dumbest |
| 19:57:47 | <EvanR> | pair the index with the original map and keep it up to date |
| 19:59:42 | <EvanR> | as soon as you start having multiple indexes of multiple sets, there is IxSet from package ixset |
| 20:00:02 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:809d:9c93:5943:40a1) (Ping timeout: 256 seconds) |
| 20:02:31 | × | avicenzi quits (~avicenzi@2a00:ca8:a1f:b004:5b49:4996:51e:12cd) (Ping timeout: 260 seconds) |
| 20:06:45 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 20:09:04 | × | coot quits (~coot@213.134.171.3) (Quit: coot) |
| 20:11:50 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 272 seconds) |
| 20:13:46 | → | thyriaen joins (~thyriaen@2a01:aea0:dd4:4bae:6245:cbff:fe9f:48b1) |
| 20:19:18 | × | mikoto-chan quits (~mikoto-ch@2001:999:230:86e2:ae4c:4efd:1f0:d882) (Ping timeout: 256 seconds) |
| 20:23:38 | × | thyriaen quits (~thyriaen@2a01:aea0:dd4:4bae:6245:cbff:fe9f:48b1) (Quit: Leaving) |
| 20:24:53 | → | thyriaen joins (~thyriaen@2a01:aea0:dd4:4bae:6245:cbff:fe9f:48b1) |
| 20:27:06 | → | pavonia joins (~user@user/siracusa) |
| 20:30:33 | → | mmhat joins (~mmh@p200300f1c71eb3c8ee086bfffe095315.dip0.t-ipconnect.de) |
| 20:30:40 | × | mmhat quits (~mmh@p200300f1c71eb3c8ee086bfffe095315.dip0.t-ipconnect.de) (Client Quit) |
| 20:31:27 | → | kenran joins (~user@user/kenran) |
| 20:31:52 | × | kenran quits (~user@user/kenran) (Remote host closed the connection) |
| 20:33:13 | × | ballast quits (~ballast@cpe-104-32-238-223.socal.res.rr.com) (Ping timeout: 260 seconds) |
| 20:33:33 | × | thyriaen quits (~thyriaen@2a01:aea0:dd4:4bae:6245:cbff:fe9f:48b1) (Remote host closed the connection) |
| 20:34:27 | → | thyriaen joins (~thyriaen@2a01:aea0:dd4:4bae:6245:cbff:fe9f:48b1) |
| 20:35:06 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:36:32 | × | ystael quits (~ystael@user/ystael) (Ping timeout: 272 seconds) |
| 20:40:24 | → | ballast joins (~ballast@cpe-104-32-238-223.socal.res.rr.com) |
| 20:43:50 | → | festive_kurbus joins (~festive_k@user/kurbus) |
| 20:43:50 | × | alphabeta quits (~kilolympu@213.144.144.24) (Ping timeout: 260 seconds) |
| 20:47:41 | → | kilolympus joins (~kilolympu@213.144.144.24) |
| 20:49:54 | × | festive_kurbus quits (~festive_k@user/kurbus) (Quit: Client closed) |
| 20:51:17 | → | freeside joins (~mengwong@pd907d273.dip0.t-ipconnect.de) |
| 20:51:54 | → | festive_kurbus joins (~festive_k@user/kurbus) |
| 20:52:17 | → | Topsi joins (~Topsi@host-091-097-060-181.ewe-ip-backbone.de) |
| 20:54:50 | × | kilolympus quits (~kilolympu@213.144.144.24) (Ping timeout: 268 seconds) |
| 20:55:48 | × | ballast quits (~ballast@cpe-104-32-238-223.socal.res.rr.com) (Quit: Client closed) |
| 21:01:00 | × | festive_kurbus quits (~festive_k@user/kurbus) (Quit: Client closed) |
| 21:02:50 | → | Pickchea joins (~private@user/pickchea) |
| 21:03:16 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 21:05:40 | → | son0p joins (~ff@2604:3d08:5b7f:5540::4026) |
| 21:06:07 | × | bgs quits (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection) |
| 21:06:58 | × | thyriaen quits (~thyriaen@2a01:aea0:dd4:4bae:6245:cbff:fe9f:48b1) (Remote host closed the connection) |
| 21:07:50 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 21:12:01 | <fizbin> | Is it possible to declare the fixity of a non-top-level binding? |
| 21:15:30 | <fizbin> | Huh. infixr inside a let expression seems to work. |
| 21:15:45 | × | kalj quits (~kalj@81-227-161-241-no193.tbcn.telia.com) (Quit: Client closed) |
| 21:15:57 | × | gensyst quits (gensyst@user/gensyst) (Quit: Leaving) |
| 21:15:59 | → | kalj joins (~kalj@81-227-161-241-no193.tbcn.telia.com) |
| 21:16:43 | × | _xor quits (~xor@74.215.182.83) (Ping timeout: 252 seconds) |
| 21:19:33 | × | trev quits (~trev@user/trev) (Remote host closed the connection) |
| 21:21:06 | → | _xor joins (~xor@74.215.182.83) |
| 21:22:41 | <geekosaur> | the Report says nothing about it but ghc allows it, yes |
| 21:22:50 | <geekosaur> | with no extension |
| 21:25:14 | → | Lycurgus joins (~juan@user/Lycurgus) |
| 21:25:29 | × | mixfix41 quits (~sdenynine@user/mixfix41) (Ping timeout: 260 seconds) |
| 21:25:59 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 21:26:34 | × | lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 21:26:45 | → | mixfix41_ joins (~sdenynine@user/mixfix41) |
| 21:34:25 | × | Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz) |
| 21:35:24 | × | teo quits (~teo@user/teo) () |
| 21:36:39 | <davean> | geekosaur: does it not? Hum, I'd have to reread the grammar, I though it was part of the decl grammar ... |
| 21:36:52 | <davean> | So it should go anywhere a decl can |
| 21:37:42 | <davean> | Yah, its part of gendecl which is in decl and cdecl, not topdecl' |
| 21:37:54 | <davean> | so the Haskell report clearly says it must be allowed there. |
| 21:37:57 | <geekosaur> | https://downloads.haskell.org/ghc/9.4.1/docs/users_guide/exts/local_fixity_decls.html?highlight=fixity |
| 21:38:05 | <davean> | https://www.haskell.org/onlinereport/haskell2010/haskellch4.html#x10-620004 |
| 21:38:28 | <geekosaur> | maybe it was fixed in 2010 |
| 21:38:44 | <geekosaur> | yeh, the one I pointed to specifically says H98 |
| 21:39:41 | <davean> | The complaint there is the specification is clear, even that claims they are specified to exist |
| 21:39:52 | <davean> | *is not clear |
| 21:40:29 | <davean> | Thats a debate about scoping, to which the correct interpritation seems clear, and taken by GHC |
| 21:41:58 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds) |
| 21:42:09 | → | ystael joins (~ystael@user/ystael) |
| 21:46:35 | → | mestre joins (~mestre@191.177.185.178) |
| 21:50:49 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 21:51:43 | × | kalj quits (~kalj@81-227-161-241-no193.tbcn.telia.com) (Quit: Client closed) |
| 21:52:10 | → | ballast joins (~ballast@cpe-104-32-238-223.socal.res.rr.com) |
| 21:52:11 | × | ballast quits (~ballast@cpe-104-32-238-223.socal.res.rr.com) (Client Quit) |
| 21:54:43 | → | finsternis joins (~X@23.226.237.192) |
| 21:58:06 | × | ystael quits (~ystael@user/ystael) (Ping timeout: 252 seconds) |
| 22:09:38 | × | freeside quits (~mengwong@pd907d273.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 22:14:58 | × | fizbin quits (~fizbin@user/fizbin) (Ping timeout: 252 seconds) |
| 22:23:26 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:24:46 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 22:24:56 | → | money_ joins (~money@user/polo) |
| 22:28:08 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
| 22:28:08 | → | zanc joins (~azure@103.154.231.231) |
| 22:30:12 | → | zeenk joins (~zeenk@2a02:2f04:a30d:4300::7fe) |
| 22:30:23 | × | Topsi quits (~Topsi@host-091-097-060-181.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
| 22:32:28 | × | JordiGH quits (~jordi@user/jordigh) (Ping timeout: 256 seconds) |
| 22:32:54 | × | mestre quits (~mestre@191.177.185.178) (Quit: Lost terminal) |
| 22:33:03 | <zanc> | what is ghc's -B option? |
| 22:35:09 | <geekosaur> | it tells ghc where it is actually installed, since it can be relocated at runtime |
| 22:35:33 | <zanc> | is it documented somewhere? |
| 22:38:05 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 22:38:06 | <geekosaur> | I don't think so; it's an internal detail |
| 22:38:16 | <geekosaur> | if it is it would be in the ghc wiki |
| 22:41:39 | × | mixfix41_ quits (~sdenynine@user/mixfix41) (Ping timeout: 255 seconds) |
| 22:42:48 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:43:09 | × | money_ quits (~money@user/polo) (Quit: late) |
| 22:43:20 | → | freeside joins (~mengwong@pd907d273.dip0.t-ipconnect.de) |
| 22:45:10 | × | zanc quits (~azure@103.154.231.231) (Quit: WeeChat 3.7.1) |
| 22:46:14 | → | money_ joins (~money@user/polo) |
| 22:46:16 | → | JordiGH joins (~jordi@user/jordigh) |
| 22:57:52 | × | freeside quits (~mengwong@pd907d273.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 22:57:58 | × | JordiGH quits (~jordi@user/jordigh) (Ping timeout: 256 seconds) |
| 22:58:20 | → | kilolympus joins (~kilolympu@213.144.144.24) |
| 22:58:55 | × | money_ quits (~money@user/polo) (Ping timeout: 256 seconds) |
| 23:00:09 | × | iqubic quits (~avi@2601:602:9502:c70:6988:8eb0:bd8c:3233) (Remote host closed the connection) |
| 23:00:40 | → | JordiGH joins (~jordi@user/jordigh) |
| 23:00:53 | → | money_ joins (~money@user/polo) |
| 23:07:21 | → | ballast joins (~ballast@cpe-104-32-238-223.socal.res.rr.com) |
| 23:09:04 | <ballast> | if i have a really simple data type (let's say it's isomorphic to `Either String Int`), is there a library i can use to easily define a parser and pretty printer for it? |
| 23:09:21 | → | freeside joins (~mengwong@pd907d273.dip0.t-ipconnect.de) |
| 23:09:47 | <ballast> | i swear i've seen things like this before (was it called bidirectional parsing? all of those libraries i found on hackage seem unpopular/unmaintained) but I can't for the life of me remember where |
| 23:10:07 | → | tomokojun_ joins (~tomokojun@75.164.24.44) |
| 23:10:13 | × | tomokojun_ quits (~tomokojun@75.164.24.44) (Remote host closed the connection) |
| 23:10:43 | × | elevenkb quits (~elevenkb@105.224.37.83) (Ping timeout: 260 seconds) |
| 23:12:19 | <monochrom> | data MyType = Case1 Int | Case2 String deriving Show |
| 23:12:30 | <monochrom> | err, deriving (Read, Show) |
| 23:12:42 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds) |
| 23:13:56 | <ballast> | ah but i want to for example parse "32" as `Case1 Int` and "test" as `Case2 String` . It seems like I'll just have to settle for rolling my own simple parser |
| 23:14:11 | <monochrom> | I wouldn't want that. |
| 23:14:13 | → | smol-hors joins (sid524992@smol/hors) |
| 23:14:25 | <jackdk> | ballast: best trick I found is to use a profunctor that can also be a monad (so you can do monadic wrangling if you need). If the parser and printer are set up right (parser `p` is applicative/alternative and `pr` divisible/decidable, then `Product (Clown p) (Joker pr)` might work with the tools in control.arrow or product-profunctors |
| 23:14:25 | <EvanR> | deriving (Num) xD |
| 23:14:37 | <smol-hors> | how does one install Haskell these days? it's been a while since I've used it. I wanted to try Euterpea. |
| 23:14:41 | <EvanR> | deriving (IsString) |
| 23:14:53 | <monochrom> | data FunType = Case1 Int | Case2 Int. I wouldn't always want "32" to be parsed as Case1 32, and I wouldn't always want Case2 32 either. |
| 23:15:20 | <jackdk> | ballast: https://www.microsoft.com/en-us/research/wp-content/uploads/2004/01/picklercombinators.pdf and https://poisson.chat/esop19/composing-bidir-prog-monadically.pdf are some rough papers that might help |
| 23:15:44 | <jackdk> | monochrom: `data I = Even Int | Odd Int` would set certain expectations about the parse of `"32"` |
| 23:15:50 | <jackdk> | smol-hors: https://www.haskell.org/ghcup/ |
| 23:16:13 | <jackdk> | ballast: sorry, got confused, the parser is in the Joker and the pretty-printer is in the Clown |
| 23:16:35 | <ballast> | jackdk: oh… you weren't making up names… |
| 23:16:42 | <smol-hors> | jackdk: thank you |
| 23:16:43 | <EvanR> | ballast, I'm skeptical that you're saving a huge amount of code with these javascript-like shenanigans. But Num class has magic for numeric literals and IsString has magic for string literals |
| 23:17:28 | <EvanR> | IsString magic enabled via OverloadedStrings in particular tends to cause other trouble IME |
| 23:18:05 | <ballast> | hrm, i didn't mean to raise alarm by mentioning that i wanted to parse 32 to an int and test to a string. my point only is that each of the parsers ought to be relatively simple to define |
| 23:18:46 | <jackdk> | ballast: https://hackage.haskell.org/package/bifunctors has the newtypes; the mnemonic is "clowns to the left of me, jokers to the right; here I am, stuck in the middle with you" |
| 23:18:57 | <EvanR> | it's true |
| 23:19:21 | <ballast> | jackdk: i hope they aren't going to cut my ear off, i've grown attached to it |
| 23:19:29 | <ballast> | or perhaps it's grown attached to me? |
| 23:19:43 | <EvanR> | pretty printing and parsing could be pretty simple |
| 23:20:34 | × | shriekingnoise quits (~shrieking@186.137.167.202) (Ping timeout: 272 seconds) |
| 23:20:59 | <EvanR> | you can even install them as your Show and Read instance |
| 23:21:10 | <monochrom> | "deriving (Read, Show)" is very simple to define. |
| 23:21:42 | <EvanR> | *assuming we're not talking about the standard derived instances for some reason, because otherwise it's trivial |
| 23:22:06 | <EvanR> | my XY problem detector is now going off though |
| 23:22:54 | <ballast> | fair enough, usually i ask a question because i suspect there is a slicker way of solving my problem |
| 23:23:04 | <monochrom> | Yeah please write a formal specification and sign your name under it. :) |
| 23:23:13 | <ballast> | of course slicker doesn't necessarily mean better |
| 23:23:45 | <ballast> | but at the very least i'm learning about what high-powered options i have to accomplish even simple tasks :) |
| 23:24:06 | × | cowboy8625 quits (~cowboy@96-2-208-2-static.midco.net) (Quit: WeeChat 3.5) |
| 23:25:12 | × | michalz quits (~michalz@185.246.204.89) (Remote host closed the connection) |
| 23:25:58 | <smol-hors> | do I want 'stack exec --package euterpea -- ghci', then to try it? |
| 23:26:18 | × | ubert quits (~Thunderbi@p200300ecdf264ebd3096e1a4e8bd793f.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 23:26:51 | → | ubert joins (~Thunderbi@p200300ecdf264e1ec8d72b0a2c29e966.dip0.t-ipconnect.de) |
| 23:30:14 | → | fizbin joins (~fizbin@user/fizbin) |
| 23:33:52 | <smol-hors> | ok I did that but I'm running the examples and not hearing anything RIP |
| 23:36:09 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 23:38:45 | × | masterbuilder quits (~master@user/masterbuilder) (Quit: Lost terminal) |
| 23:40:57 | × | money_ quits (~money@user/polo) (Quit: late) |
| 23:43:53 | <smol-hors> | nvm I found my problem in troubleshooting. sorry for bothering you all! |
| 23:44:02 | → | money_ joins (~money@user/polo) |
| 23:47:03 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:f49d:401d:a888:f078) (Remote host closed the connection) |
| 23:51:32 | → | dimsuz joins (~dimsuz@10-91-52-95.baltnet.ru) |
| 23:53:50 | × | brettgilio quits (~brettgili@x-irc.gq) (Quit: The Lounge - https://thelounge.chat) |
| 23:54:49 | × | money_ quits (~money@user/polo) (Quit: late) |
| 23:58:00 | × | ballast quits (~ballast@cpe-104-32-238-223.socal.res.rr.com) (Quit: Client closed) |
| 23:58:02 | → | money_ joins (~money@user/polo) |
| 23:58:03 | <dimsuz> | Hi! I have a list [a] and then I know that some elements under certain indexes (say 1, 3, 4) I must call "f :: a" and prepend this 'a' to element at that index. so given [a,b,c,d,e] I would get [a, x, b, c, y, d, z, e]. I'm trying to think of what instrument to use here: can this be done with foldr/foldl, or can I use Traversable (which I don't |
| 23:58:04 | <dimsuz> | fully grasp yet). |
| 23:58:36 | <dimsuz> | I'd be thankful for a pointer on where I should point my reading to |
| 23:59:46 | <dimsuz> | I would also like this to be a performant solution |
All times are in UTC on 2022-12-14.