Logs on 2022-06-24 (liberachat/#haskell)
| 00:12:42 | × | alp quits (~alp@user/alp) (Ping timeout: 264 seconds) |
| 00:13:15 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:99c9:a0a4:f69e:b22e) (Remote host closed the connection) |
| 00:13:49 | <jackdk> | raehik: it's called gogol and it's not especially well-maintained |
| 00:14:09 | <raehik> | jackdk: I just finished looking at it. fantastic internals |
| 00:14:35 | <jackdk> | raehik: I'm helping out with the maintenance of amazonka, but work is an AWS shop; I have no energy to do the same to gogol |
| 00:15:13 | <raehik> | it doesn't support the Identity Platform which I need |
| 00:16:08 | <raehik> | if I do upload something it will be specifically just for authentication (since that will help folks who want to interface with apps based on gcloud) |
| 00:18:31 | <jackdk> | There are a few non-amazonka AWS libraries, so there's precedent for that sort of thing |
| 00:18:32 | × | ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Remote host closed the connection) |
| 00:20:11 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:99c9:a0a4:f69e:b22e) |
| 00:20:26 | × | merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds) |
| 00:21:13 | → | ezzieyguywuf joins (~Unknown@user/ezzieyguywuf) |
| 00:22:10 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 00:23:15 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 00:23:16 | <raehik> | apparently Identity Platform doesn't have an entry in Google's magical API JSON schema directory. so gogol doesn't gen bindings. guess I'll have a look |
| 00:26:11 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 00:27:58 | × | _xor quits (~xor@74.215.182.83) (Ping timeout: 240 seconds) |
| 00:30:16 | → | _xor joins (~xor@74.215.182.83) |
| 00:32:08 | × | gurkenglas quits (~gurkengla@dslb-002-207-014-022.002.207.pools.vodafone-ip.de) (Ping timeout: 272 seconds) |
| 00:43:34 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.5) |
| 00:44:24 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 00:44:41 | × | ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Ping timeout: 248 seconds) |
| 00:46:20 | × | xff0x quits (~xff0x@2405:6580:b080:900:6f91:670e:f20c:cfe) (Ping timeout: 268 seconds) |
| 00:49:53 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:99c9:a0a4:f69e:b22e) (Remote host closed the connection) |
| 00:50:29 | → | sebastiandb joins (~sebastian@pool-108-31-128-56.washdc.fios.verizon.net) |
| 00:51:39 | → | ezzieyguywuf joins (~Unknown@user/ezzieyguywuf) |
| 00:52:18 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 240 seconds) |
| 00:55:18 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds) |
| 00:58:58 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:99c9:a0a4:f69e:b22e) |
| 01:02:40 | × | simeon quits (~pi@dslb-088-069-178-224.088.069.pools.vodafone-ip.de) (Ping timeout: 244 seconds) |
| 01:08:32 | × | sebastiandb quits (~sebastian@pool-108-31-128-56.washdc.fios.verizon.net) (Ping timeout: 268 seconds) |
| 01:12:00 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:18:07 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:24:54 | → | nunggu joins (~q@user/nunggu) |
| 01:28:50 | → | nate4 joins (~nate@98.45.169.16) |
| 01:29:31 | → | frost joins (~frost@user/frost) |
| 01:31:29 | × | Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection) |
| 01:31:56 | → | dsrt^ joins (~dsrt@50.237.44.186) |
| 01:34:20 | → | xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 01:36:17 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
| 01:40:24 | × | ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Remote host closed the connection) |
| 01:41:51 | → | simeon joins (~pi@dslb-088-071-128-104.088.071.pools.vodafone-ip.de) |
| 01:43:18 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::4588) (Ping timeout: 264 seconds) |
| 01:45:21 | Batzy_ | is now known as Btayz |
| 01:45:24 | Btayz | is now known as Batzy |
| 01:45:51 | → | z0k joins (~z0k@206.84.141.12) |
| 01:46:42 | → | merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
| 01:47:00 | → | slack1256 joins (~slack1256@191.125.99.212) |
| 01:49:48 | → | ezzieyguywuf joins (~Unknown@user/ezzieyguywuf) |
| 01:50:40 | → | sebastiandb joins (~sebastian@pool-108-31-128-56.washdc.fios.verizon.net) |
| 01:59:26 | × | Henson quits (~kvirc@107-179-133-201.cpe.teksavvy.com) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/) |
| 02:09:42 | × | machinedgod quits (~machinedg@66.244.246.252) (Ping timeout: 264 seconds) |
| 02:10:41 | → | slac55811 joins (~slack1256@186.11.81.205) |
| 02:11:12 | × | perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.5) |
| 02:12:28 | × | tcard quits (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) (Remote host closed the connection) |
| 02:13:09 | × | slack1256 quits (~slack1256@191.125.99.212) (Ping timeout: 256 seconds) |
| 02:17:37 | → | tcard joins (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) |
| 02:19:04 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:19:04 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 02:19:04 | finn_elija | is now known as FinnElija |
| 02:21:05 | × | merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
| 02:21:36 | → | yauhsien joins (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) |
| 02:23:09 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 268 seconds) |
| 02:23:58 | → | mikoto-chan joins (~mikoto-ch@esm-84-240-99-143.netplaza.fi) |
| 02:27:02 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 02:30:43 | × | zebrag quits (~chris@user/zebrag) (Ping timeout: 256 seconds) |
| 02:33:06 | × | yauhsien quits (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) (Ping timeout: 272 seconds) |
| 02:40:19 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 02:43:11 | × | sebastiandb quits (~sebastian@pool-108-31-128-56.washdc.fios.verizon.net) (Quit: Leaving) |
| 02:59:30 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 264 seconds) |
| 03:00:09 | × | td_ quits (~td@94.134.91.184) (Ping timeout: 268 seconds) |
| 03:01:14 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 03:01:18 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 240 seconds) |
| 03:01:34 | → | td_ joins (~td@muedsl-82-207-238-027.citykom.de) |
| 03:06:02 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
| 03:08:53 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 03:18:18 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 03:21:45 | × | nunggu quits (~q@user/nunggu) (Ping timeout: 268 seconds) |
| 03:25:00 | → | nunggu joins (~q@user/nunggu) |
| 03:31:29 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 03:33:28 | × | nunggu quits (~q@user/nunggu) (Remote host closed the connection) |
| 03:34:16 | → | nunggu joins (~q@user/nunggu) |
| 03:37:07 | → | Alleria joins (~AllahuAkb@68.65.161.35) |
| 03:45:55 | → | merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
| 03:47:15 | → | coot joins (~coot@213.134.190.95) |
| 03:47:39 | → | razetime joins (~quassel@49.207.193.240) |
| 03:48:05 | → | yauhsien joins (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) |
| 03:48:10 | × | Alleria quits (~AllahuAkb@68.65.161.35) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 03:48:40 | → | Alleria joins (~AllahuAkb@68.65.161.35) |
| 03:49:07 | → | nate4 joins (~nate@98.45.169.16) |
| 03:53:38 | × | yauhsien quits (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
| 03:54:06 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 264 seconds) |
| 03:57:38 | <hololeap> | I can't figure out if a Monad instance for SomeParseResult is possible. I'm thinking not. http://sprunge.us/oADV0I |
| 04:01:30 | × | Alleria quits (~AllahuAkb@68.65.161.35) (Quit: Textual IRC Client: www.textualapp.com) |
| 04:09:05 | → | leeb joins (~leeb@KD106154144179.au-net.ne.jp) |
| 04:09:27 | <hololeap> | possibly for the same reason that you can't make a monad out of: Monad m => Maybe (m a) |
| 04:10:25 | <hololeap> | you can't make the inner computation within 'm' affect the outer constructor |
| 04:10:53 | <hololeap> | or maybe I'm totally wrong here |
| 04:12:54 | → | yauhsien joins (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) |
| 04:20:46 | × | merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
| 04:21:36 | × | gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
| 04:24:38 | × | mikoto-chan quits (~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Ping timeout: 268 seconds) |
| 04:24:58 | × | yauhsien quits (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
| 04:26:36 | → | mikoto-chan joins (~mikoto-ch@esm-84-240-99-143.netplaza.fi) |
| 04:27:30 | → | gentauro joins (~gentauro@user/gentauro) |
| 04:40:13 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 04:40:44 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Client Quit) |
| 04:43:05 | → | yauhsien joins (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) |
| 04:43:28 | <mon_aaraj> | huh... weird, i've decided to try out the Optics library instead of lens, but it seemz like it doesn't have any `worded` alternative.. I've looked everywhere, any idea what it could be? |
| 04:56:38 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 04:57:06 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 05:05:18 | <dsal> | :t worded |
| 05:05:19 | <lambdabot> | (Indexable Int p, Applicative f) => p String (f String) -> String -> f String |
| 05:05:43 | <dsal> | Can you just use `words`? |
| 05:05:44 | <dsal> | :t words |
| 05:05:46 | <lambdabot> | String -> [String] |
| 05:08:35 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:15:27 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 05:15:28 | × | mtjm quits (~mutantmel@2604:a880:2:d0::208b:d001) (Remote host closed the connection) |
| 05:16:32 | → | mtjm joins (~mutantmel@2604:a880:2:d0::208b:d001) |
| 05:24:04 | → | michalz joins (~michalz@185.246.204.97) |
| 05:25:16 | × | phma quits (~phma@2001:5b0:211f:4838:bc99:a0da:9cf3:c583) (Read error: Connection reset by peer) |
| 05:26:14 | → | phma joins (~phma@host-67-44-209-11.hnremote.net) |
| 05:29:23 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 05:29:40 | → | img joins (~img@user/img) |
| 05:32:15 | → | vglfr joins (~vglfr@88.155.8.225) |
| 05:36:25 | × | leeb quits (~leeb@KD106154144179.au-net.ne.jp) (Ping timeout: 248 seconds) |
| 05:38:24 | → | leeb joins (~leeb@KD106154144157.au-net.ne.jp) |
| 05:45:49 | → | merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
| 05:47:32 | × | moet quits (~moet@mobile-166-171-249-250.mycingular.net) (Ping timeout: 272 seconds) |
| 05:53:54 | <mon_aaraj> | i can, but it isn't an optic that focuses pieces of the full structure |
| 05:54:10 | <mon_aaraj> | which `worded` is, and it allows me to program in an entirely optical manner |
| 06:02:21 | → | liz joins (~liz@host86-159-158-175.range86-159.btcentralplus.com) |
| 06:06:47 | × | nunggu quits (~q@user/nunggu) (Remote host closed the connection) |
| 06:07:38 | × | mikoto-chan quits (~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Ping timeout: 240 seconds) |
| 06:07:52 | → | nunggu joins (~q@user/nunggu) |
| 06:11:19 | × | dsrt^ quits (~dsrt@50.237.44.186) (Ping timeout: 268 seconds) |
| 06:11:58 | × | liz quits (~liz@host86-159-158-175.range86-159.btcentralplus.com) (Ping timeout: 240 seconds) |
| 06:17:27 | → | dyeplexer joins (~dyeplexer@user/dyeplexer) |
| 06:18:54 | → | dsrt^ joins (~dsrt@50.237.44.186) |
| 06:20:09 | × | merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 248 seconds) |
| 06:25:36 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 06:26:00 | <dsal> | You could write worded atop words pretty easily in that case. The lens implementation is `worded f = fmap unwords . conjoined traverse (indexing traverse) f . words` |
| 06:26:20 | <dsal> | microlens is `worded f = fmap unwords . traverse f . words` |
| 06:28:18 | × | z0k quits (~z0k@206.84.141.12) (Ping timeout: 264 seconds) |
| 06:30:09 | → | z0k joins (~z0k@206.84.143.68) |
| 06:30:31 | → | gmg joins (~user@user/gehmehgeh) |
| 06:30:36 | × | frost quits (~frost@user/frost) (Quit: Ping timeout (120 seconds)) |
| 06:36:19 | → | mikoto-chan joins (~mikoto-ch@esm-84-240-99-143.netplaza.fi) |
| 06:38:28 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds) |
| 06:38:50 | × | z0k quits (~z0k@206.84.143.68) (Ping timeout: 272 seconds) |
| 06:39:19 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 06:39:20 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 06:40:04 | → | mastarija joins (~mastarija@2a05:4f46:e02:8c00:8952:fd3b:3e41:ddea) |
| 06:40:55 | × | dsrt^ quits (~dsrt@50.237.44.186) (Ping timeout: 268 seconds) |
| 06:47:01 | → | chomwitt joins (~chomwitt@2a02:587:dc0d:e600:8f05:e6fa:1178:1d79) |
| 06:54:16 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 06:55:44 | → | acidjnk joins (~acidjnk@dynamic-046-114-168-206.46.114.pool.telefonica.de) |
| 06:56:27 | → | alp joins (~alp@user/alp) |
| 07:00:16 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 07:00:34 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer) |
| 07:00:56 | × | hsw quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Remote host closed the connection) |
| 07:01:01 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 07:01:16 | → | hsw joins (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) |
| 07:05:59 | <Axman6> | That's an unlawful traversal right? |
| 07:09:58 | × | dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 240 seconds) |
| 07:10:09 | → | merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
| 07:11:57 | → | zeenk joins (~zeenk@2a02:2f04:a301:3d00:39df:1c4b:8a55:48d3) |
| 07:13:51 | <Axman6> | > let worded f = fmap unwords . traverse f . words in worded (const "") "Hello, world" |
| 07:13:53 | <lambdabot> | error: |
| 07:13:53 | <lambdabot> | • Couldn't match type ‘Char’ with ‘[Char]’ |
| 07:13:53 | <lambdabot> | Expected type: String -> [String] |
| 07:14:20 | <Axman6> | > let worded f = fmap unwords . traverse f . words in worded (Just . const "") "Hello, world" |
| 07:14:21 | <lambdabot> | Just " " |
| 07:14:45 | <Axman6> | > let worded f = fmap unwords . traverse f . words in worded (Just) "Hello, world" |
| 07:14:46 | <lambdabot> | Just "Hello, world" |
| 07:15:06 | × | merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 264 seconds) |
| 07:16:29 | → | acidjnk_new joins (~acidjnk@dynamic-046-114-168-206.46.114.pool.telefonica.de) |
| 07:16:41 | × | acidjnk quits (~acidjnk@dynamic-046-114-168-206.46.114.pool.telefonica.de) (Ping timeout: 268 seconds) |
| 07:18:37 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 07:21:52 | → | Pickchea joins (~private@user/pickchea) |
| 07:22:46 | → | dyeplexer joins (~dyeplexer@user/dyeplexer) |
| 07:26:21 | → | acidjnk_new3 joins (~acidjnk@dynamic-046-114-168-206.46.114.pool.telefonica.de) |
| 07:29:08 | × | nunggu quits (~q@user/nunggu) (Remote host closed the connection) |
| 07:29:55 | → | nunggu joins (~q@user/nunggu) |
| 07:30:06 | × | acidjnk_new quits (~acidjnk@dynamic-046-114-168-206.46.114.pool.telefonica.de) (Ping timeout: 264 seconds) |
| 07:31:25 | → | ubert joins (~Thunderbi@p200300ecdf0da5c0c858ae0629519002.dip0.t-ipconnect.de) |
| 07:31:58 | <dminuoso> | mon_aaraj: Use `ifolding words` |
| 07:33:05 | → | chele joins (~chele@user/chele) |
| 07:34:10 | <dminuoso> | (Or `folding` if you dont care about indices) |
| 07:35:35 | × | ubert quits (~Thunderbi@p200300ecdf0da5c0c858ae0629519002.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 07:35:53 | → | ubert joins (~Thunderbi@p200300ecdf0da5c0b08d08d51a120a85.dip0.t-ipconnect.de) |
| 07:36:25 | <dminuoso> | Incidentally this works in plain `lens` as well |
| 07:36:30 | <dminuoso> | :t folding words |
| 07:36:31 | <lambdabot> | (Contravariant f, Applicative f) => (String -> f String) -> String -> f String |
| 07:40:14 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 07:41:11 | → | eod|fserucas joins (~eod|fseru@193.65.114.89.rev.vodafone.pt) |
| 07:41:14 | → | eod|fserucas_ joins (~eod|fseru@193.65.114.89.rev.vodafone.pt) |
| 07:42:30 | → | MajorBiscuit joins (~MajorBisc@wlan-145-94-167-213.wlan.tudelft.nl) |
| 07:48:37 | × | tzh_ quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
| 07:50:54 | → | machinedgod joins (~machinedg@66.244.246.252) |
| 07:51:30 | → | nate4 joins (~nate@98.45.169.16) |
| 07:52:00 | → | merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
| 07:52:27 | × | vglfr quits (~vglfr@88.155.8.225) (Ping timeout: 268 seconds) |
| 07:53:41 | → | vglfr joins (~vglfr@coupling.penchant.volia.net) |
| 07:56:33 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds) |
| 07:59:01 | × | hughjfchen quits (~hughjfche@vmi556545.contaboserver.net) (Quit: WeeChat 2.8) |
| 07:59:15 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 07:59:51 | → | __monty__ joins (~toonn@user/toonn) |
| 08:03:55 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 256 seconds) |
| 08:09:58 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:99c9:a0a4:f69e:b22e) (Remote host closed the connection) |
| 08:18:58 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
| 08:19:13 | × | acidjnk_new3 quits (~acidjnk@dynamic-046-114-168-206.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 08:19:26 | → | acidjnk_new3 joins (~acidjnk@dynamic-046-114-168-206.46.114.pool.telefonica.de) |
| 08:20:39 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 08:31:37 | → | ccntrq joins (~Thunderbi@2a01:c23:9556:e100:66b1:7f27:4ed9:da23) |
| 08:31:40 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 08:32:35 | × | jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
| 08:32:57 | → | jgeerds joins (~jgeerds@55d45f48.access.ecotel.net) |
| 08:35:44 | → | jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 08:40:30 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) |
| 08:40:32 | → | gurkenglas joins (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) |
| 08:41:52 | × | shriekingnoise quits (~shrieking@201.212.175.181) (Quit: Quit) |
| 08:43:35 | × | vglfr quits (~vglfr@coupling.penchant.volia.net) (Ping timeout: 256 seconds) |
| 08:43:53 | → | cfricke joins (~cfricke@user/cfricke) |
| 08:44:24 | → | vglfr joins (~vglfr@coupling.penchant.volia.net) |
| 08:44:35 | × | jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
| 08:45:29 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) (Ping timeout: 268 seconds) |
| 08:45:42 | × | acidjnk_new3 quits (~acidjnk@dynamic-046-114-168-206.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 08:46:01 | → | acidjnk joins (~acidjnk@dynamic-046-114-168-206.46.114.pool.telefonica.de) |
| 08:46:26 | → | acidjnk_new joins (~acidjnk@dynamic-046-114-168-206.46.114.pool.telefonica.de) |
| 08:47:13 | → | jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 08:50:20 | × | acidjnk quits (~acidjnk@dynamic-046-114-168-206.46.114.pool.telefonica.de) (Ping timeout: 246 seconds) |
| 08:53:08 | × | yauhsien quits (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 08:56:25 | × | vglfr quits (~vglfr@coupling.penchant.volia.net) (Remote host closed the connection) |
| 08:56:25 | → | yauhsien joins (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) |
| 08:57:17 | → | vglfr joins (~vglfr@coupling.penchant.volia.net) |
| 08:57:22 | → | Guest3 joins (~Guest3@43.21.135.77.rev.sfr.net) |
| 09:00:13 | × | thonoht[m] quits (~thonohtma@2001:470:69fc:105::d7be) (Quit: You have been kicked for being idle) |
| 09:00:18 | × | marinelli[m] quits (~marinelli@2001:470:69fc:105::2d8) (Quit: You have been kicked for being idle) |
| 09:00:19 | × | vglfr quits (~vglfr@coupling.penchant.volia.net) (Remote host closed the connection) |
| 09:00:24 | <Guest3> | hello, i have a function f that sends arguments to g or h functions with many arguments (a1, a2, a3…) and a case of pattern matching (Case1, case2) where i would like not to repeat the arguments for conciseness : |
| 09:00:25 | <Guest3> | f C1 a1 a2 a3 … = g a1 a2 a3 … |
| 09:00:25 | <Guest3> | f C2 a1 a2 a3 … = h a1 a2 a3 … |
| 09:00:26 | <Guest3> | is there a way to write something like : |
| 09:00:26 | <Guest3> | f C1 = g |
| 09:00:27 | <Guest3> | f C2 = h |
| 09:00:32 | × | amongas666[m] quits (~amongas66@2001:470:69fc:105::2:fea) (Quit: You have been kicked for being idle) |
| 09:00:44 | <Guest3> | or should i refactor it all into something more idiomatic? |
| 09:00:53 | → | amongas666[m] joins (~amongas66@2001:470:69fc:105::2:fea) |
| 09:01:03 | × | elfi2125[m] quits (~elfi2125m@2001:470:69fc:105::2:13d6) (Quit: You have been kicked for being idle) |
| 09:01:06 | → | thonoht[m] joins (~thonohtma@2001:470:69fc:105::d7be) |
| 09:01:16 | → | vglfr joins (~vglfr@coupling.penchant.volia.net) |
| 09:01:18 | × | yauhsien quits (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) (Ping timeout: 264 seconds) |
| 09:01:25 | → | marinelli[m] joins (~marinelli@2001:470:69fc:105::2d8) |
| 09:01:26 | <merijn> | Guest3: You can't quite do what you suggest, but you can simplify it a bit (in case you have many more cases than C1 and C2 |
| 09:01:39 | → | elfi2125[m] joins (~elfi2125m@2001:470:69fc:105::2:13d6) |
| 09:01:48 | <Guest3> | i have more cases but they are different from these two first cases |
| 09:02:03 | <merijn> | Ah, then it probably won't quite work out |
| 09:02:16 | <Guest3> | yes i am not sure what to do :s |
| 09:02:31 | ← | thonoht[m] parts (~thonohtma@2001:470:69fc:105::d7be) () |
| 09:02:43 | <merijn> | Guest3: This is what I had in mind: https://paste.tomsmeding.com/1oJEODy1 |
| 09:02:52 | ← | marinelli[m] parts (~marinelli@2001:470:69fc:105::2d8) () |
| 09:03:01 | <merijn> | (obviously this assumes g and h have the same type |
| 09:03:03 | <merijn> | ) |
| 09:03:18 | <Guest3> | they have |
| 09:03:35 | → | yauhsien joins (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) |
| 09:03:38 | <Guest3> | this is good ty |
| 09:03:38 | ← | amongas666[m] parts (~amongas66@2001:470:69fc:105::2:fea) () |
| 09:04:18 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 240 seconds) |
| 09:04:38 | <merijn> | Guest3: It's a common trick to factor out the "different" part of a repeat expression like that |
| 09:05:10 | ← | elfi2125[m] parts (~elfi2125m@2001:470:69fc:105::2:13d6) () |
| 09:05:24 | <Guest3> | ok, it's funny i am getting really comfortable with advanced concepts like writer monads and all, but still sometimes i can't think of such tricks |
| 09:06:15 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds) |
| 09:06:27 | <merijn> | Guest3: Practice makes perfect ;) |
| 09:06:44 | → | coot joins (~coot@213.134.190.95) |
| 09:08:02 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 09:10:05 | <_________> | Guest3: did you try writing 'f C1 = g', 'f C2 = h' ? why it doesn't work for you ? |
| 09:10:06 | × | vglfr quits (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
| 09:10:53 | <Guest3> | I got an error which was like : "different number of arguments in pattern matching" because i have more cases i guess |
| 09:12:29 | <_________> | and you don't get this error with case ? weird |
| 09:13:01 | <Guest3> | i need to refactor yes |
| 09:13:05 | <[Leary]> | If you wrote bespoke functions like g and h for the other cases too, the error would go away. |
| 09:13:27 | <Guest3> | yes i would need to avoid having to specify the arguments |
| 09:13:48 | <[Leary]> | Equivalently, you can transform f x = y to f = \x -> y. |
| 09:15:43 | <Guest3> | why would that help? |
| 09:16:30 | <_________> | hmm, if you don't want to handle all cases, you could add `f _ = error` |
| 09:17:02 | <[Leary]> | Just to equalise the args. That's a generic f; in your case I meant f C3 = \a1 a2 ... -> ... |
| 09:17:14 | <Guest3> | oh ok yes |
| 09:18:41 | <Guest3> | i have to handle all cases and i return Maybe a, so that Nothing means it did not make sense to compute |
| 09:19:02 | → | vglfr joins (~vglfr@coupling.penchant.volia.net) |
| 09:19:32 | <Guest3> | thx for the help all of you |
| 09:23:47 | × | nunggu quits (~q@user/nunggu) (Remote host closed the connection) |
| 09:24:35 | → | nunggu joins (~q@user/nunggu) |
| 09:25:28 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 09:31:48 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 09:33:06 | → | Hemmo joins (~IceChat95@2001:999:48c:6368:7048:df38:ec8b:cf65) |
| 09:34:11 | → | misterfish joins (~misterfis@ip214-130-173-82.adsl2.static.versatel.nl) |
| 09:35:01 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 09:35:09 | <Hemmo> | Hey! Any tips on why this won't compile?? The first one is the function that won't work and below it is the error message. The function checkList works though and it's a similar situation?? |
| 09:35:10 | <Hemmo> | https://paste.tomsmeding.com/pr5DcDfX |
| 09:35:38 | <Hemmo> | I tried changing String to [Char] too with no difference :s |
| 09:37:09 | <[Leary]> | You've shadowed `name`. |
| 09:37:58 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 240 seconds) |
| 09:42:47 | <Hemmo> | Oh my. How simple. Thanks! |
| 09:46:02 | × | zeenk quits (~zeenk@2a02:2f04:a301:3d00:39df:1c4b:8a55:48d3) (Quit: Konversation terminated!) |
| 09:48:58 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 09:49:34 | × | Kaiepi quits (~Kaiepi@156.34.47.253) (Read error: Connection reset by peer) |
| 09:50:32 | × | acidjnk_new quits (~acidjnk@dynamic-046-114-168-206.46.114.pool.telefonica.de) (Ping timeout: 246 seconds) |
| 09:50:41 | → | Infinite joins (~Infinite@49.39.122.144) |
| 09:53:04 | → | frost joins (~frost@user/frost) |
| 09:57:18 | → | nate4 joins (~nate@98.45.169.16) |
| 10:01:29 | → | lisbeths joins (uid135845@id-135845.lymington.irccloud.com) |
| 10:03:37 | × | merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 248 seconds) |
| 10:03:41 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 10:05:14 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds) |
| 10:05:35 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds) |
| 10:06:49 | → | acidjnk_new joins (~acidjnk@dynamic-046-114-168-206.46.114.pool.telefonica.de) |
| 10:07:22 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 10:10:15 | → | perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
| 10:19:10 | × | dyeplexer quits (~dyeplexer@user/dyeplexer) (Read error: Connection reset by peer) |
| 10:19:13 | × | xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 268 seconds) |
| 10:23:20 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 10:23:21 | × | mima quits (~mmh@aftr-62-216-210-68.dynamic.mnet-online.de) (Ping timeout: 248 seconds) |
| 10:24:50 | × | gurkenglas quits (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) (Ping timeout: 246 seconds) |
| 10:27:46 | → | Kaiepi joins (~Kaiepi@156.34.47.253) |
| 10:30:03 | → | merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
| 10:31:56 | × | jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
| 10:41:35 | → | Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net) |
| 11:01:03 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 11:02:58 | × | merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
| 11:04:38 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 11:05:16 | → | Vajb joins (~Vajb@85-76-45-218-nat.elisa-mobile.fi) |
| 11:06:01 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 11:08:14 | → | dsrt^ joins (~dsrt@50.237.44.186) |
| 11:08:22 | × | Infinite quits (~Infinite@49.39.122.144) (Ping timeout: 252 seconds) |
| 11:12:27 | × | Vajb quits (~Vajb@85-76-45-218-nat.elisa-mobile.fi) (Read error: Connection reset by peer) |
| 11:12:56 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 11:14:22 | <Hemmo> | Oh my. How simple. Thanks! |
| 11:14:31 | <Hemmo> | Ewops. |
| 11:16:12 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 11:16:27 | → | Vajb joins (~Vajb@2001:999:40:4c50:1b24:879c:6df3:1d06) |
| 11:17:25 | → | xff0x joins (~xff0x@2405:6580:b080:900:9d54:6002:d2f9:ffa6) |
| 11:17:39 | → | merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
| 11:23:12 | × | merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
| 11:27:46 | → | Kaipei joins (~Kaiepi@156.34.47.253) |
| 11:28:19 | <Hemmo> | How could I make it so that, if my month or day is under 10, then it inputs a 0 before the number of the day or month? E.g I have "2020-02-02" instead of "2020-2-2" |
| 11:28:22 | <Hemmo> | https://paste.tomsmeding.com/DVX34MsE |
| 11:28:44 | <Hemmo> | First one is the one I have now and the second is an attempt at inputting a 0 there |
| 11:29:22 | <Hemmo> | I did something similar before by pattern matching the Show instance in a different context, but not sure how to proceed with this |
| 11:29:35 | → | mima joins (~mmh@dhcp-138-246-3-183.dynamic.eduroam.mwn.de) |
| 11:30:08 | <Hemmo> | Heres an edited one though https://paste.tomsmeding.com/eLe204gk |
| 11:30:26 | <Hemmo> | With data type decl for month and functions for them |
| 11:30:48 | × | dsrt^ quits (~dsrt@50.237.44.186) (Ping timeout: 272 seconds) |
| 11:31:22 | × | Kaiepi quits (~Kaiepi@156.34.47.253) (Ping timeout: 268 seconds) |
| 11:31:40 | <sm> | if you want to depend on time, you can use https://hackage.haskell.org/package/time-1.13/docs/Data-Time-Format.html#v:formatTime |
| 11:31:58 | <sm> | otherwise, you could use printf "%2d" ... |
| 11:32:02 | × | cfricke quits (~cfricke@user/cfricke) (Ping timeout: 246 seconds) |
| 11:32:33 | <sm> | otherotherwise, you could write special cases for < 10 |
| 11:35:53 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 11:37:00 | → | fweht joins (uid404746@id-404746.lymington.irccloud.com) |
| 11:41:58 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 11:42:32 | <Hemmo> | I would probably have to write special cases. You mean using case expressions in the show instance? |
| 11:43:05 | × | superbil quits (~superbil@1-34-176-171.hinet-ip.hinet.net) (Ping timeout: 265 seconds) |
| 11:43:30 | → | superbil joins (~superbil@1-34-176-171.hinet-ip.hinet.net) |
| 11:49:48 | × | mastarija quits (~mastarija@2a05:4f46:e02:8c00:8952:fd3b:3e41:ddea) (Quit: Leaving) |
| 11:52:24 | → | alexhandy joins (~trace@user/trace) |
| 11:53:11 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 11:53:34 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Ping timeout: 268 seconds) |
| 11:53:35 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 11:54:59 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 11:56:38 | <sm> | or if then else |
| 11:58:34 | → | dyeplexer joins (~dyeplexer@user/dyeplexer) |
| 12:00:40 | × | Ram-Z quits (~Ram-Z@li1814-254.members.linode.com) (Quit: ZNC - http://znc.in) |
| 12:01:03 | <lisbeths> | is haskell based off of pure lambda calculus? |
| 12:01:44 | <hpc> | if you go back far enough, sure |
| 12:01:52 | <hpc> | it's closer to system f |
| 12:02:27 | → | Ram-Z joins (Ram-Z@2a01:7e01::f03c:91ff:fe57:d2df) |
| 12:02:38 | → | nate4 joins (~nate@98.45.169.16) |
| 12:03:12 | × | whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 12:03:28 | → | shiraeeshi joins (~shiraeesh@109.166.57.222) |
| 12:07:18 | → | z0k joins (~z0k@206.84.143.59) |
| 12:10:19 | × | Hemmo quits (~IceChat95@2001:999:48c:6368:7048:df38:ec8b:cf65) (Quit: Pull the pin and count to what?) |
| 12:11:00 | → | dsrt^ joins (~dsrt@50.237.44.186) |
| 12:12:42 | × | mima quits (~mmh@dhcp-138-246-3-183.dynamic.eduroam.mwn.de) (Ping timeout: 264 seconds) |
| 12:12:53 | → | cfricke joins (~cfricke@user/cfricke) |
| 12:15:36 | → | merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
| 12:15:47 | × | acidjnk_new quits (~acidjnk@dynamic-046-114-168-206.46.114.pool.telefonica.de) (Ping timeout: 246 seconds) |
| 12:19:58 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
| 12:21:47 | → | Infinite joins (~Infinite@49.39.122.144) |
| 12:22:34 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 12:29:45 | <dminuoso> | System FC now, even |
| 12:34:50 | × | motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 240 seconds) |
| 12:35:17 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 12:39:14 | → | mima joins (~mmh@dhcp-138-246-3-183.dynamic.eduroam.mwn.de) |
| 12:46:16 | → | pleo joins (~pleo@user/pleo) |
| 12:49:02 | × | dsrt^ quits (~dsrt@50.237.44.186) (Ping timeout: 246 seconds) |
| 12:49:54 | × | merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 264 seconds) |
| 12:55:23 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 12:57:27 | → | zeenk joins (~zeenk@2a02:2f04:a301:3d00:39df:1c4b:8a55:48d3) |
| 12:58:01 | × | koz quits (~koz@121.99.240.58) (Ping timeout: 256 seconds) |
| 12:59:27 | → | koz joins (~koz@121.99.240.58) |
| 13:01:40 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 13:12:08 | × | alp quits (~alp@user/alp) (Remote host closed the connection) |
| 13:12:18 | × | frost quits (~frost@user/frost) (Ping timeout: 252 seconds) |
| 13:12:27 | → | alp joins (~alp@user/alp) |
| 13:12:40 | × | Infinite quits (~Infinite@49.39.122.144) (Ping timeout: 252 seconds) |
| 13:22:29 | × | causal quits (~user@50.35.83.177) (Quit: WeeChat 3.5) |
| 13:25:26 | × | Vajb quits (~Vajb@2001:999:40:4c50:1b24:879c:6df3:1d06) (Read error: Connection reset by peer) |
| 13:25:48 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 13:32:28 | → | dsrt^ joins (~dsrt@50.237.44.186) |
| 13:43:27 | → | BusConscious joins (~martin@ip5f5bdf01.dynamic.kabel-deutschland.de) |
| 13:44:00 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 13:46:13 | × | wagle quits (~wagle@quassel.wagle.io) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
| 13:46:41 | → | wagle joins (~wagle@quassel.wagle.io) |
| 13:46:51 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 13:48:00 | → | merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
| 13:48:21 | × | zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection) |
| 13:49:38 | → | zaquest joins (~notzaques@5.130.79.72) |
| 13:51:38 | → | coot joins (~coot@213.134.190.95) |
| 13:59:37 | <lisbeths> | is it possible to implement haskell atop pure lambda calculus? |
| 13:59:58 | <geekosaur> | pure lambda calculus has no notion of values |
| 14:00:26 | <merijn> | lisbeths: eh, you're gonna have to give a more concrete definition of "possible", "implement", "haskell" and "pure lambda calculus" :p |
| 14:00:39 | → | jafarlihi joins (~user@188.253.231.49) |
| 14:03:09 | <geekosaur> | you can use church encoding to encode values as functions, but at some point you have to inject something into it and the untyped lambda calculus doesn't give you anything to inject except more functions |
| 14:04:15 | <geekosaur> | there are also questions about laziness (pure LC is lazy but in a mathematical fashion instead of a computable one) |
| 14:04:35 | <dminuoso> | lisbeths: System F(C) already is very close to lambda calculus already. |
| 14:04:57 | <dminuoso> | The intermediate language GHC compiles to, called Core, is essentially just System FC |
| 14:05:32 | <dminuoso> | So you could imagine your wish being fulfilled already. |
| 14:05:49 | × | Guest3 quits (~Guest3@43.21.135.77.rev.sfr.net) (Quit: Client closed) |
| 14:06:09 | <geekosaur> | depending on your definition of "pure" |
| 14:06:49 | <geekosaur> | (also which lambda calculus? untyped? simply typed? some other elaboration on it, like system fc or f(omega) or etc.?) |
| 14:08:26 | → | mjan22640 joins (~Srain@212.17.33.215) |
| 14:08:55 | <[exa]> | lisbeths: lambda calculus forms a turing-complete system so you can literally implement anything in it |
| 14:09:03 | <[exa]> | but that's the answer you didn't want to hear I guess |
| 14:10:50 | → | werneta joins (~werneta@137.79.203.93) |
| 14:12:28 | × | werneta quits (~werneta@137.79.203.93) (Remote host closed the connection) |
| 14:16:05 | × | xacktm quits (xacktm@user/xacktm) (Quit: fBNC - https://bnc4free.com) |
| 14:16:08 | × | even4void quits (even4void@came.here.for-some.fun) (Quit: fBNC - https://bnc4free.com) |
| 14:16:12 | × | andreas303 quits (andreas303@ip227.orange.bnc4free.com) (Quit: fBNC - https://bnc4free.com) |
| 14:18:38 | × | cfricke quits (~cfricke@user/cfricke) (Ping timeout: 272 seconds) |
| 14:23:32 | × | dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 246 seconds) |
| 14:24:20 | × | jafarlihi quits (~user@188.253.231.49) (Ping timeout: 272 seconds) |
| 14:27:07 | <merijn> | [exa]: Correction *some* lambda calculi form Turing complete systems :p |
| 14:28:45 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 14:29:47 | × | ccntrq quits (~Thunderbi@2a01:c23:9556:e100:66b1:7f27:4ed9:da23) (Remote host closed the connection) |
| 14:30:04 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 14:32:14 | × | superbil quits (~superbil@1-34-176-171.hinet-ip.hinet.net) (Ping timeout: 265 seconds) |
| 14:32:30 | × | slac55811 quits (~slack1256@186.11.81.205) (Ping timeout: 264 seconds) |
| 14:32:40 | → | superbil joins (~superbil@1-34-176-171.hinet-ip.hinet.net) |
| 14:34:07 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 14:34:23 | × | misterfish quits (~misterfis@ip214-130-173-82.adsl2.static.versatel.nl) (Ping timeout: 246 seconds) |
| 14:35:25 | <BusConscious> | can I make Bool an instance of Num |
| 14:36:49 | <[exa]> | BusConscious: why not |
| 14:36:57 | → | dyeplexer joins (~dyeplexer@user/dyeplexer) |
| 14:37:14 | → | shriekingnoise joins (~shrieking@201.212.175.181) |
| 14:38:12 | → | Vajb joins (~Vajb@2001:999:40:4c50:1b24:879c:6df3:1d06) |
| 14:38:13 | → | jinsun__ joins (~jinsun@user/jinsun) |
| 14:38:13 | × | jinsun quits (~jinsun@user/jinsun) (Killed (iridium.libera.chat (Nickname regained by services))) |
| 14:38:13 | jinsun__ | is now known as jinsun |
| 14:38:25 | <[exa]> | you might have some semantic trouble with producing a reasonable lawful (-) and negate, but you may as well choose not to care that much about the semantics |
| 14:40:08 | <geekosaur> | Num's laws are a bit dubious anyway |
| 14:40:29 | <[exa]> | +1 ^ |
| 14:40:43 | <geekosaur> | the main problem with making Bool an instance of Num is it increases the sphere of possible logic errors the compiler will no longer catch for you |
| 14:41:01 | → | jinsun__ joins (~jinsun@user/jinsun) |
| 14:41:01 | jinsun | is now known as Guest2644 |
| 14:41:01 | × | Guest2644 quits (~jinsun@user/jinsun) (Killed (osmium.libera.chat (Nickname regained by services))) |
| 14:41:01 | jinsun__ | is now known as jinsun |
| 14:41:09 | <BusConscious> | mhmm while possible i don't think making Bool an instance of Num is going to help me |
| 14:41:29 | <geekosaur> | so what's your actual problem? |
| 14:42:02 | → | even4void joins (even4void@came.here.for-some.fun) |
| 14:42:55 | <BusConscious> | So I'm implemenenting a parser for arithmetic expressions as in 1.7.2 of https://pubs.opengroup.org/onlinepubs/009604499/utilities/xcu_chap01.html#tag_01_07_02_01 |
| 14:43:58 | <BusConscious> | here the boolean operators && || and ! operate on Integers instead of bools in the way that 2 && 3 ==1 and !0 =1 !2=0 .. |
| 14:44:32 | <geekosaur> | sounds like yiou really want Data.Bits |
| 14:44:44 | × | jinsun quits (~jinsun@user/jinsun) (Client Quit) |
| 14:44:49 | <BusConscious> | Now I could write some function bool2IntF:: (Bool -> Bool -> Bool) -> (Int -> Int -> Int) |
| 14:45:16 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) |
| 14:45:17 | <geekosaur> | and your "not" is (/= 0) |
| 14:45:45 | <BusConscious> | but maybe there is some type voodoo I could do to make haskell's boolean operators these kind of "boolean operators" |
| 14:46:08 | <BusConscious> | geekosaur: ok that's reasonably short |
| 14:46:10 | <geekosaur> | not really, I just wouldn't use them. as I said, you want Data.Bits |
| 14:46:18 | <geekosaur> | > 2 .&. 3 |
| 14:46:20 | <lambdabot> | 2 |
| 14:46:35 | <BusConscious> | that's not logical but bitwise and |
| 14:46:52 | <BusConscious> | I also do that, but for & not && |
| 14:47:23 | → | pavonia joins (~user@user/siracusa) |
| 14:47:41 | <geekosaur> | oh, you want a Boolean class. that's been done by others but isn't in base |
| 14:47:49 | <geekosaur> | it gets brought up occasionally |
| 14:48:15 | <geekosaur> | kinda the opposite of what you initially asked for, it'd be Instance Boolean Int where ... |
| 14:48:48 | <BusConscious> | yeah but Bool is not a type class .. or is Boolean? |
| 14:49:09 | <geekosaur> | as I said, it's been done but isn't in base |
| 14:49:56 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) (Ping timeout: 268 seconds) |
| 14:50:15 | <geekosaur> | https://hackage.haskell.org/package/heyting-algebras |
| 14:50:38 | <geekosaur> | in math terms you want a Boolean algebra over Int |
| 14:52:19 | <dolio> | Probably not a proper boolean algebra, strictly speaking. |
| 14:52:56 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds) |
| 14:54:21 | → | _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl) |
| 14:54:54 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 14:55:44 | × | dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 246 seconds) |
| 14:56:24 | × | superbil quits (~superbil@1-34-176-171.hinet-ip.hinet.net) (Ping timeout: 265 seconds) |
| 14:57:04 | <geekosaur> | in any case, for this I'm not sure I'd even bother with classes or whatever, just define my own "boolean" operators |
| 14:57:08 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 14:57:24 | <geekosaur> | there's no particular reason to reuse the Haskell ones |
| 14:57:42 | <BusConscious> | ok |
| 14:57:50 | → | superbil joins (~superbil@1-34-176-171.hinet-ip.hinet.net) |
| 14:58:09 | <BusConscious> | Can I name these like the Haskell ones. Is there "overloading" in haskell? |
| 14:58:28 | <geekosaur> | "overloading" is via typeclasses, otherwise no |
| 14:59:25 | <geekosaur> | > let x .&&. y = fromEnum $ (x /= 0) && (y /= 0) in 2 .&&. 3 |
| 14:59:27 | <lambdabot> | 1 |
| 14:59:30 | <merijn> | BusConscious: You can't overload exist ones, but you can shadow them (i.e. hide them and define new ones with the same name) |
| 14:59:41 | <geekosaur> | kinda cheating with fromEnum but it does the right thing |
| 14:59:55 | → | xacktm joins (xacktm@user/xacktm) |
| 15:00:10 | → | andreas303 joins (andreas303@ip227.orange.bnc4free.com) |
| 15:01:10 | <geekosaur> | > let x .||. y = fromEnum $ x /= 0 || y /= 0 in 2 .||. 3 |
| 15:01:11 | <lambdabot> | 1 |
| 15:02:14 | <geekosaur> | could do those /='s with toEnum instead, which makes it a bit clearer what's going on perhaps |
| 15:02:29 | <BusConscious> | ah so I can't really get around the additional dots |
| 15:02:40 | <geekosaur> | > let x .||. y = fromEnum $ toEnum x || toEnum y in 2 .||. 3 |
| 15:02:41 | <lambdabot> | *Exception: Prelude.Enum.Bool.toEnum: bad argument |
| 15:02:43 | → | lyle joins (~lyle@104.246.145.85) |
| 15:02:56 | <geekosaur> | whoops, right, checks range. stick with /= 0 |
| 15:03:07 | <BusConscious> | I mean I could try to hide the usual boolean operators, but that would not make my code any simpler |
| 15:03:16 | <geekosaur> | you could define your own Boolean typeclass, but I wouldn't bither, just use custom operators |
| 15:03:19 | <geekosaur> | it's not worth it |
| 15:05:30 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 15:05:31 | <int-e> | . o O ( I like how you put the "bit" into "bother" ) |
| 15:07:18 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 15:07:18 | × | nunggu quits (~q@user/nunggu) (Remote host closed the connection) |
| 15:08:13 | → | nunggu joins (~q@user/nunggu) |
| 15:08:14 | <lyle> | I'm stuck on how to share an environment amongst functions. Code here: https://paste.tomsmeding.com/wo12L2Ev |
| 15:08:18 | → | gmg joins (~user@user/gehmehgeh) |
| 15:08:35 | → | dyeplexer joins (~dyeplexer@user/dyeplexer) |
| 15:10:11 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 15:10:12 | <int-e> | you'll need another runReaderT inside the forkIO |
| 15:11:03 | → | jafarlihi joins (~user@188.253.231.49) |
| 15:11:15 | <geekosaur> | also, if you're just retrieving it into a variable and using it, might as well just pass it as a parameter instead of using Reader |
| 15:12:27 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 15:13:25 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 15:13:44 | <shiraeeshi> | given this equality: |
| 15:13:49 | <shiraeeshi> | t = 2 * O(n/2) + O(log n) |
| 15:14:00 | <shiraeeshi> | can I say that |
| 15:14:04 | <shiraeeshi> | t = O(n) |
| 15:14:06 | <shiraeeshi> | ? |
| 15:15:35 | <shiraeeshi> | in other words, if you add something sub-linear to something linear, the result is still linear, right? |
| 15:16:11 | <dolio> | Yes. |
| 15:16:34 | <shiraeeshi> | good |
| 15:16:58 | × | dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 240 seconds) |
| 15:18:29 | <shiraeeshi> | it means that I managed to solve the problem I was asking about yesterday, using induction |
| 15:18:55 | × | jafarlihi quits (~user@188.253.231.49) (Ping timeout: 268 seconds) |
| 15:19:27 | <dolio> | Oh, nice. |
| 15:19:38 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) |
| 15:21:11 | → | jafarlihi joins (~user@188.253.234.203) |
| 15:22:30 | → | leib joins (~leib@2405:201:900a:f088:e9cb:3827:2e7e:6775) |
| 15:23:36 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 15:25:31 | × | even4void quits (even4void@came.here.for-some.fun) (Quit: fBNC - https://bnc4free.com) |
| 15:25:42 | × | xacktm quits (xacktm@user/xacktm) (Quit: fBNC - https://bnc4free.com) |
| 15:26:27 | × | andreas303 quits (andreas303@ip227.orange.bnc4free.com) (Quit: fBNC - https://bnc4free.com) |
| 15:27:04 | → | N3r1um joins (~igloo@122.sub-174-205-34.myvzw.com) |
| 15:28:59 | → | dyeplexer joins (~dyeplexer@user/dyeplexer) |
| 15:31:26 | × | merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
| 15:33:21 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 15:34:30 | × | jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 240 seconds) |
| 15:37:25 | × | N3r1um quits (~igloo@122.sub-174-205-34.myvzw.com) (Ping timeout: 268 seconds) |
| 15:39:12 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) (Remote host closed the connection) |
| 15:40:10 | → | misterfish joins (~misterfis@ip214-130-173-82.adsl2.static.versatel.nl) |
| 15:42:02 | → | jinsun joins (~jinsun@user/jinsun) |
| 15:42:27 | → | andreas303 joins (andreas303@ip227.orange.bnc4free.com) |
| 15:44:08 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Quit: Leaving) |
| 15:45:37 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 15:49:12 | × | andreas303 quits (andreas303@ip227.orange.bnc4free.com) (Ping timeout: 272 seconds) |
| 15:51:53 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) |
| 15:54:49 | × | jafarlihi quits (~user@188.253.234.203) (Quit: WeeChat 3.5) |
| 15:58:34 | → | merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
| 16:00:12 | × | Ash[m] quits (~signal-wa@2001:470:69fc:105::1:2318) (Quit: You have been kicked for being idle) |
| 16:02:19 | × | hinny[m] quits (~hinnymatr@2001:470:69fc:105::2:18ed) (Quit: You have been kicked for being idle) |
| 16:03:13 | → | jgeerds joins (~jgeerds@55d45f48.access.ecotel.net) |
| 16:04:06 | → | Infinite joins (~Infinite@49.39.124.23) |
| 16:05:28 | <lyle> | int-e, geekosaur: Thanks for checking it out! |
| 16:05:49 | → | hinny[m] joins (~hinnymatr@2001:470:69fc:105::2:18ed) |
| 16:07:50 | × | misterfish quits (~misterfis@ip214-130-173-82.adsl2.static.versatel.nl) (Ping timeout: 246 seconds) |
| 16:08:31 | ← | hinny[m] parts (~hinnymatr@2001:470:69fc:105::2:18ed) () |
| 16:09:13 | → | even4void joins (even4void@came.here.for-some.fun) |
| 16:09:16 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) (Remote host closed the connection) |
| 16:10:38 | × | jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 240 seconds) |
| 16:12:29 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 16:13:49 | × | nunggu quits (~q@user/nunggu) (Ping timeout: 268 seconds) |
| 16:15:02 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Ping timeout: 268 seconds) |
| 16:18:42 | × | dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 264 seconds) |
| 16:18:50 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) |
| 16:20:23 | → | nate4 joins (~nate@98.45.169.16) |
| 16:23:30 | → | andreas303 joins (~andreas30@ip227.orange.bnc4free.com) |
| 16:24:38 | × | MajorBiscuit quits (~MajorBisc@wlan-145-94-167-213.wlan.tudelft.nl) (Ping timeout: 240 seconds) |
| 16:27:20 | → | xacktm joins (xacktm@user/xacktm) |
| 16:27:42 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 264 seconds) |
| 16:30:58 | × | shiraeeshi quits (~shiraeesh@109.166.57.222) (Ping timeout: 240 seconds) |
| 16:31:19 | → | dyeplexer joins (~dyeplexer@user/dyeplexer) |
| 16:33:32 | × | merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
| 16:35:05 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 16:36:58 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
| 16:38:55 | → | slack1256 joins (~slack1256@191.126.227.81) |
| 16:39:19 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 16:40:21 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:40:41 | × | pleo quits (~pleo@user/pleo) (Quit: quit) |
| 16:41:33 | → | shiraeeshi joins (~shiraeesh@109.166.57.222) |
| 16:48:18 | × | mima quits (~mmh@dhcp-138-246-3-183.dynamic.eduroam.mwn.de) (Ping timeout: 240 seconds) |
| 16:58:19 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 16:58:35 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds) |
| 17:00:38 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 17:06:45 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) (Remote host closed the connection) |
| 17:08:45 | × | yauhsien quits (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 17:09:00 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 272 seconds) |
| 17:11:28 | → | yauhsien joins (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) |
| 17:12:56 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds) |
| 17:13:33 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:14:25 | → | merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
| 17:14:59 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 17:16:36 | × | yauhsien quits (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) (Ping timeout: 272 seconds) |
| 17:16:49 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 17:17:41 | → | gmg joins (~user@user/gehmehgeh) |
| 17:19:14 | × | merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
| 17:19:14 | → | moet joins (~moet@lib-02-subnet-194.rdns.cenic.net) |
| 17:19:16 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 17:20:22 | × | lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 17:24:08 | → | yauhsien joins (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) |
| 17:35:14 | × | ubert quits (~Thunderbi@p200300ecdf0da5c0b08d08d51a120a85.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 17:36:18 | × | machinedgod quits (~machinedg@66.244.246.252) (Ping timeout: 240 seconds) |
| 17:41:56 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 272 seconds) |
| 17:43:18 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 17:44:45 | → | arj0019 joins (~arj0019@162.218.254.7) |
| 17:51:53 | <arj0019> | Given a list La = [n, n1, n2, ..., n100], and Lb = [[n], [n, n1], [n, n1, n2], ..., [n, n1, n2, ..., n100]], does Lb grow exponentially large? I am attempting to process timeseries data where at each point in time, the presented data is all data avaliable up to that date. It is assumed that the data is complete, and constant resolution, so there is no actual time index (just the list index). |
| 17:53:20 | × | dsrt^ quits (~dsrt@50.237.44.186) (Ping timeout: 272 seconds) |
| 17:57:46 | × | arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection) |
| 17:58:03 | → | arj0019 joins (~arj0019@162.218.254.7) |
| 17:58:10 | → | werneta joins (~werneta@137.78.30.207) |
| 17:58:26 | <hololeap> | you'll most likely want to use something other than a regular list for that, probably vectors so you have O(1) lookups |
| 17:59:25 | <hololeap> | but this is hard to say without knowing more and why you're building something like Lb |
| 18:01:00 | <hololeap> | if Lb grows exponentially large depends on how you are processing it and how that interacts with lazy evaluation |
| 18:01:17 | → | notzmv joins (~zmv@user/notzmv) |
| 18:04:18 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 18:04:29 | <arj0019> | It is not my intention to support lookups. The consumers of this timeseries data are not given access to the relevant timestamps. Instead, it is my intention to provide the data to consumers with the assumption that the data is complete. The first item in the list is the most recent, and consumers can do operations such as 'take 10' to get the 10 most recent points. Do you still think that a list is the incorrect data structure? The data is only aggregated |
| 18:06:09 | × | arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection) |
| 18:06:26 | → | arj0019 joins (~arj0019@162.218.254.7) |
| 18:06:27 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) |
| 18:07:08 | <arj0019> | now that I think about it, a fold may be better for what I am doing. I can slowly grow the accumulator by prepending the next data point. The only complication is that I would need to figure out how to have two accumulators; one for my output, and one to hold the growing input. Maybe I use a nested fold??? |
| 18:07:49 | → | briandaed joins (~briandaed@109.95.143.14.r.toneticgroup.pl) |
| 18:08:30 | × | mikoto-chan quits (~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Ping timeout: 268 seconds) |
| 18:10:58 | × | arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection) |
| 18:11:09 | <monochrom> | One single foldr/foldl that returns a tuple. Then a fst/snd to pick out the final answer. |
| 18:11:15 | → | arj0019 joins (~arj0019@162.218.254.7) |
| 18:11:34 | → | dsrt^ joins (~dsrt@50.237.44.186) |
| 18:11:42 | × | leib quits (~leib@2405:201:900a:f088:e9cb:3827:2e7e:6775) (Ping timeout: 272 seconds) |
| 18:12:06 | <ski> | arj0019 : the size of `Lb' is quadratic in the size of `La' |
| 18:12:35 | <ski> | <monochrom> One single foldr/foldl that returns a tuple. Then a fst/snd to pick out the final answer. |
| 18:15:00 | × | arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection) |
| 18:15:17 | → | arj0019 joins (~arj0019@162.218.254.7) |
| 18:15:42 | <ski> | arj0019 : are you aware that you're quitting and rejoining repeatedly ? |
| 18:16:04 | × | slack1256 quits (~slack1256@191.126.227.81) (Read error: Connection reset by peer) |
| 18:17:37 | → | slack1256 joins (~slack1256@186.11.81.205) |
| 18:18:32 | → | mima joins (~mmh@aftr-62-216-210-207.dynamic.mnet-online.de) |
| 18:18:56 | → | merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
| 18:21:01 | → | pleo joins (~pleo@user/pleo) |
| 18:21:47 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:23:51 | × | slack1256 quits (~slack1256@186.11.81.205) (Remote host closed the connection) |
| 18:24:42 | × | dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 264 seconds) |
| 18:26:21 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) (Remote host closed the connection) |
| 18:26:23 | <ski> | if you want to represent `Lb', it may be better to represent the lists reversed, that way they can share tails; or you could use vector slices .. |
| 18:27:21 | × | razetime quits (~quassel@49.207.193.240) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 18:27:35 | <ski> | .. but it's not really clear to me what you're doing / you want to do, whether you actually want/need to represent `Lb' at all, where the timeseries data points are coming from, how you get a hold of them |
| 18:28:38 | <ski> | arj0019 : at this point, perhaps showing some code might help. ior trying to explain the context more |
| 18:29:12 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 18:30:12 | × | Infinite quits (~Infinite@49.39.124.23) (Ping timeout: 252 seconds) |
| 18:31:08 | → | alexhandy2 joins (~trace@user/trace) |
| 18:32:40 | → | AndChat-624225 joins (~trace@user/trace) |
| 18:33:04 | <BusConscious> | Say I have function f a -> b -> c and I have a tuple (a,b) : Whats the most idiomatic way to obtain the function f' (a,b) = f a b ? |
| 18:33:07 | × | alexhandy quits (~trace@user/trace) (Read error: Connection reset by peer) |
| 18:33:31 | <ski> | f' = uncurry f |
| 18:33:41 | <BusConscious> | ah ok thanks |
| 18:33:51 | <BusConscious> | gotta remember that |
| 18:34:43 | × | HotblackDesiato quits (~HotblackD@gateway/tor-sasl/hotblackdesiato) (Remote host closed the connection) |
| 18:34:47 | <ski> | f `uncurry` (a,b) -- you can also write it like this, if you'd want to |
| 18:35:32 | × | alexhandy2 quits (~trace@user/trace) (Ping timeout: 246 seconds) |
| 18:35:56 | → | alexhandy joins (~trace@user/trace) |
| 18:36:08 | → | HotblackDesiato joins (~HotblackD@gateway/tor-sasl/hotblackdesiato) |
| 18:37:23 | <arj0019> | Unfortunately I do not have code yet; I am trying to get a map of how to solve the problem first. The data that I am processing is financial data; only price for the first iteration of my system (price vs time for a large number of assets). I will only be looking at price data. I intend to have a type called `factor`, of which instances must implement two functions: `rank` and `rate`. For example, a `factor` can be used to rank the various assets by their |
| 18:38:00 | × | jespada quits (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) (Quit: Textual IRC Client: www.textualapp.com) |
| 18:38:11 | <arj0019> | oof on msg length limit... |
| 18:38:52 | <arj0019> | For example, a `factor` can be used to rank the various assets by their price data series. |
| 18:39:18 | × | AndChat-624225 quits (~trace@user/trace) (Ping timeout: 240 seconds) |
| 18:39:27 | <arj0019> | When running a historical analysis, I need to have snapshots that represent all data that was known at a point in time. |
| 18:40:20 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 18:41:02 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 18:42:15 | <ski> | "a type called `factor`, of which instances must implement two functions: `rank` and `rate`" -- this sounds like OO-speak, to me. iiuc, we'd say it contains two components/fields `rank' and `rate', being functions (or maybe it contains the result of performing those operations ?) |
| 18:44:11 | <ski> | (in the former case, the functions in a `Factor' would be applied to some data to compute rank and rate. in the latter case, you'd apply a function of the data to compute the `Factor' containing the rank and rate results) |
| 18:44:41 | × | kimjetwav quits (~user@2607:fea8:2340:da00:59a1:33be:cb76:515a) (Ping timeout: 248 seconds) |
| 18:45:38 | <arj0019> | Yea, sorry. My only real experience is with OOP. I'm a mechanical engineer, so I don't have much of a background in this stuff. Hopefully changing that soon with a CSSE degree. |
| 18:45:40 | <ski> | "I need to have snapshots that represent all data that was known at a point in time." -- so far, it sounds like using a tail, perhaps with `take'/`drop'/`splitAt', or during incremental processing, would provide you with those snapshots |
| 18:46:23 | <ski> | arj0019 : no worry, just pointing out the differing terminologies, in order to help smooth communication |
| 18:47:35 | → | mikoto-chan joins (~mikoto-ch@esm-84-240-99-143.netplaza.fi) |
| 18:47:48 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) |
| 18:49:28 | × | arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection) |
| 18:49:45 | → | arj0019 joins (~arj0019@162.218.254.7) |
| 18:50:11 | → | Infinite joins (~Infinite@49.39.124.23) |
| 18:50:11 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 18:50:27 | <BusConscious> | yay! Arithmetic expansion works on first try! |
| 18:51:03 | <BusConscious> | honestly the thing i like most about haskell is that when eventually I get all the types right it just works |
| 18:51:59 | × | merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
| 18:52:11 | <arj0019> | I think I understand what you mean by tail. I first analyze the full list, then grab the tail and run analysis on that, and just continue down the 'loop' with each new tail. this correctly avoids look ahead bias, as the analysis only sees the data avaliable at that index and futher back (since data is sorted with most recent at the begining). |
| 18:53:51 | × | arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection) |
| 18:54:08 | → | arj0019 joins (~arj0019@162.218.254.7) |
| 18:54:10 | <arj0019> | That allows my analysis functions to analyze a data series and output a single analysis output, and I can do historical tests by doing the recursive tail analysis. |
| 18:54:43 | <ski> | yes |
| 18:55:27 | <arj0019> | Can you explain more about list vs vectors, or provide a reference? thanks for the help. Sorry I am probably filling the chat with DC/RC messages, not sure why I have connection problems. |
| 18:55:43 | <ski> | however, it could be that the analysis of the data series could reuse the result of the analysis of the tail of the data series, thereby avoiding redoing computations multiple times |
| 18:56:00 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 268 seconds) |
| 18:56:03 | → | adanwan_ joins (~adanwan@gateway/tor-sasl/adanwan) |
| 18:56:20 | <ski> | if this is the case, with the analysis you're aiming for, you should probably try to take advantage of this |
| 18:57:15 | <ski> | "not sure why I have connection problems" -- well, one situation in which this happens often is people chatting on a mobile |
| 18:57:26 | <ski> | anyway, list tails |
| 18:57:36 | <ski> | > inits [0,1,2,3,4,5,6,7] |
| 18:57:37 | <lambdabot> | [[],[0],[0,1],[0,1,2],[0,1,2,3],[0,1,2,3,4],[0,1,2,3,4,5],[0,1,2,3,4,5,6],[0... |
| 18:58:23 | <ski> | in this case, each of the result lists are allocated separately, so the amount of memory space that's required to store all these elements at the same time is quadratic in the size of the original list |
| 18:58:27 | <ski> | however, with |
| 18:58:30 | <ski> | > tails [0,1,2,3,4,5,6,7] |
| 18:58:32 | <lambdabot> | [[0,1,2,3,4,5,6,7],[1,2,3,4,5,6,7],[2,3,4,5,6,7],[3,4,5,6,7],[4,5,6,7],[5,6,... |
| 18:59:20 | <ski> | each list is the tail of the previous list, so the lists share almost all their space (apart from the first element / cons cell). so, in this case, the stoage space is only linear |
| 18:59:43 | <ski> | (this was why i was suggesting representing `LB' with the individual lists reversed) |
| 19:00:04 | <arj0019> | i assume this is an optimization inside GHC? since fundamentally i dont see a difference in the contents. |
| 19:01:11 | <arj0019> | or is it because the 'inits' uses concatenation, and the 'tails' uses prepending? |
| 19:02:00 | <ski> | (btw, it should also be noted that, with lazy evaluation,it's quite common that not all of a list is materialized at the same time. you could walk down a list, the elements (and cons cells) you pass could be GCed (unless you hold on to a reference to them), while the elements further down to the tail hasn't been allocated and computed yet. further, fusion optimization could make it so that the cons cells are |
| 19:02:06 | <ski> | never allocated, the elements passed directly from the producer, in one part of the program, to the consumer, in another part, "under the covers") |
| 19:02:26 | <ski> | arj0019 : this is because lists are (right-leaning/associated) single-linked lists, in Haskell |
| 19:02:29 | <ski> | @src [] |
| 19:02:29 | <lambdabot> | data [] a = [] | a : [a] |
| 19:02:57 | <ski> | `[0,1,2,3]' means `0 : 1 : 2 : 3 : []', which means `0 : (1 : (2 : (3 : [])))' |
| 19:03:55 | <arj0019> | and Haskell/GHC uses this property of lists to more efficently generate the output of tails [1,2,3..] |
| 19:03:56 | <ski> | so, `tail [0,1,2,3]' just reaches into the list, and returns back to you the `1 : 2 : 3 : []' part. it doesn't allocate any new list cells/nodes |
| 19:04:17 | <arj0019> | that is very neat. exactly what I needed |
| 19:04:25 | <ski> | otoh, `init [0,1,2,3]' will allocate the cells in `0 : 1 : 2 : []' for you (sharing the elements (the numbers) themselves) |
| 19:04:53 | <ski> | (and `inits' and `tails' are similar, except they return all initial and tail segments, not just skipping one element) |
| 19:05:42 | → | unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
| 19:05:43 | <ski> | @src init |
| 19:05:43 | <lambdabot> | init [x] = [] |
| 19:05:43 | <lambdabot> | init (x:xs) = x : init xs |
| 19:05:43 | <lambdabot> | init [] = error "Prelude.init: empty list" |
| 19:05:46 | <ski> | @src tail |
| 19:05:46 | <lambdabot> | tail (_:xs) = xs |
| 19:05:46 | <lambdabot> | tail [] = error "Prelude.tail: empty list" |
| 19:05:56 | <ski> | note that `init' is recursively defined, while `tail' isn't |
| 19:06:39 | <ski> | (and `init' does a `:' (allocation) call in the result (after the `='), while `tail' doesn't) |
| 19:07:23 | <arj0019> | so `tail' benefits from being non recursive here? |
| 19:07:59 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) (Remote host closed the connection) |
| 19:08:23 | <ski> | well .. the point was more to show that `tail' only reaches into the first cons cell of the list, and returns whatever is stored in its "tail" component (the part after the `:', namely `xs' in the `_:xs' pattern, in the definition above) |
| 19:08:51 | → | machinedgod joins (~machinedg@66.244.246.252) |
| 19:09:03 | <ski> | while `init', otoh, actually (recursively) traverses the whole list that you give to it (while allocating new cons cells for each cons cell that it passes by, except for the last one) |
| 19:09:47 | <ski> | arj0019 : anyway, vector slicing, docs are here : <https://hackage.haskell.org/package/vector-0.13.0.0/docs/Data-Vector.html#g:6> |
| 19:10:58 | × | zeenk quits (~zeenk@2a02:2f04:a301:3d00:39df:1c4b:8a55:48d3) (Quit: Konversation terminated!) |
| 19:12:52 | × | yauhsien quits (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 19:13:28 | → | yauhsien joins (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) |
| 19:13:38 | <arj0019> | I found a neat package called "ghc-datasize", and I was able to verify that using `tails' results in lower memory consumption than `inits' |
| 19:13:39 | <ski> | a list is not (necessarily) contiguously allocated. a vector is basically an array, so is contiguously allocated, except that apart from keeping track of the contiguous chunk of memory, it also keeps track of an offset and a length for that (equivalent to a start and end), so that you can slice out parts of a vector, and still share the storage chunk |
| 19:16:17 | <ski> | (vectors also have powerful loop fusion, meaning that often you'll actually not materialize intermediate vectors in your computations, they'll be optimized away) |
| 19:16:33 | <arj0019> | if you want to see my highly scientific testing of the data sizes from `init' and `tails', you can review it here https://paste.tomsmeding.com/6oOInWHP . |
| 19:17:38 | × | yauhsien quits (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
| 19:18:06 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds) |
| 19:18:08 | <arj0019> | Thanks for all the help. The IRC here has a great reputation, and you did not disappoint. Hopefully I can assist others eventually. |
| 19:18:18 | <ski> | you should use `$!!' |
| 19:18:38 | <arj0019> | i tried, and GHCI complained... |
| 19:18:47 | <ski> | you need to import `Control.DeepSeq' |
| 19:19:20 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:19:23 | <ski> | ghci> :m + Control.DeepSeq |
| 19:19:33 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 19:20:34 | <geekosaur> | actually "import Control.Deepseq" works too |
| 19:20:49 | <geekosaur> | unimporting still requires :m |
| 19:21:19 | <ski> | well, i guess there's `recursiveSizeNF' you could use, as well |
| 19:21:38 | <ski> | geekosaur : yea, i know .. still not used to that :) |
| 19:22:18 | × | td_ quits (~td@muedsl-82-207-238-027.citykom.de) (Ping timeout: 264 seconds) |
| 19:23:41 | <arj0019> | You can see the '$!!' analysis here: https://paste.tomsmeding.com/miJzVUVw . It better shows the size difference. I am surprised how significant it is for such a small list. |
| 19:23:47 | → | td_ joins (~td@94.134.91.109) |
| 19:24:04 | <geekosaur> | lists are pretty wasteful, yeh |
| 19:24:36 | <geekosaur> | under the right ciircumstances they compile down to *very* tight loops, but are otherwise probably best avoided |
| 19:26:08 | → | liz_ joins (~liz@host86-159-158-175.range86-159.btcentralplus.com) |
| 19:26:42 | <arj0019> | I need to research 'vectors' as mentioned by SKI. I am still very new to Haskell. |
| 19:27:22 | <ski> | @quote is.more.of.a.control.structure |
| 19:27:22 | <lambdabot> | elliott says: ... [a] is more of a control structure than a data structure. |
| 19:28:07 | <geekosaur> | I've been saying that for a while ("a loop encoded as data") |
| 19:28:25 | <arj0019> | is `tails' just a fold of `tail'? and a fold of `tail' to get the same result as `tails', would be equally efficient? |
| 19:28:28 | <ski> | yea, it's old folklore |
| 19:30:05 | <ski> | hm, basically every list-consuming function could be defined in terms of `foldr' .. so that doesn't tay too much |
| 19:30:24 | → | Kaiepi joins (~Kaiepi@156.34.47.253) |
| 19:31:39 | <ski> | i guess it's a `scanr', or an `unfoldr' |
| 19:31:55 | <arj0019> | I guess my question is does `tails' have some special super-efficient logic, or is it no different than using `tail' a bunch of times |
| 19:32:20 | <arj0019> | the type signature does not answer my question |
| 19:32:25 | <arj0019> | > :t tails |
| 19:32:27 | <lambdabot> | <hint>:1:1: error: parse error on input ‘:’ |
| 19:32:31 | <geekosaur> | :t tails |
| 19:32:32 | <lambdabot> | [a] -> [[a]] |
| 19:32:53 | <geekosaur> | it just loops over the list returning the "xs" part of each cons cell |
| 19:33:03 | <geekosaur> | no special logic needed |
| 19:33:06 | × | Kaipei quits (~Kaiepi@156.34.47.253) (Ping timeout: 264 seconds) |
| 19:33:12 | <ski> | > tails [0,1,2,3] |
| 19:33:13 | <lambdabot> | [[0,1,2,3],[1,2,3],[2,3],[3],[]] |
| 19:33:16 | <ski> | > scanr (:) [] [0,1,2,3] |
| 19:33:17 | <lambdabot> | [[0,1,2,3],[1,2,3],[2,3],[3],[]] |
| 19:33:21 | <ski> | > unfoldr (\xs0 -> case xs0 of [] -> Nothing; _:xs -> Just (xs0,xs)) [0,1,2,3] -- not quite |
| 19:33:23 | <lambdabot> | [[0,1,2,3],[1,2,3],[2,3],[3]] |
| 19:33:58 | <ski> | > [0,1,2,3] : unfoldr (\case [] -> Nothing; _:xs -> Just (xs,xs)) [0,1,2,3] |
| 19:34:00 | <lambdabot> | [[0,1,2,3],[1,2,3],[2,3],[3],[]] |
| 19:34:16 | <ski> | @src tails |
| 19:34:16 | <lambdabot> | tails [] = [[]] |
| 19:34:16 | <lambdabot> | tails xxs@(_:xs) = xxs : tails xs |
| 19:34:27 | <ski> | arj0019 : ^ that's the logic of `tails' |
| 19:34:41 | <ski> | it's just a plain recursion, traversing the list, while building a new list |
| 19:35:24 | <ski> | (the `xxs@(_:xs)' pattern names the whole list input `xxs', while also naming its tail `xs') |
| 19:36:35 | <arj0019> | it is interesting that `tails' does not use `tail' in it's definition |
| 19:36:38 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 19:36:56 | <ski> | > foldr (\x xss@(xs:_) -> (x:xs):xss) [[]] [0,1,2,3] -- this implementation, via `foldr', doesn't share tails, though :( |
| 19:36:57 | <geekosaur> | "tail" is just the "xs" pattern match |
| 19:36:58 | <lambdabot> | [[0,1,2,3],[1,2,3],[2,3],[3],[]] |
| 19:37:01 | <geekosaur> | @src tail |
| 19:37:02 | <lambdabot> | tail (_:xs) = xs |
| 19:37:02 | <lambdabot> | tail [] = error "Prelude.tail: empty list" |
| 19:37:47 | <ski> | arj0019 : instead of `tails xxs@(_:xs) = xxs : tails xs', it could say `tails xxs = xxs : tails (tail xxs)' .. but there's not much point, when a pattern-match gives you the same |
| 19:40:26 | × | arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection) |
| 19:40:43 | → | arj0019 joins (~arj0019@162.218.254.7) |
| 19:41:20 | × | z0k quits (~z0k@206.84.143.59) (Ping timeout: 246 seconds) |
| 19:43:25 | <ski> | arj0019 : in general, accessors like `fst',`snd',`head',`tail' (especially partial ones, like the latter two) (also predicates like `null') tend to not be used that often, since when one could replace them with a pattern-match that's approximately as clear (often it is clearer, at least with a little practice reading Haskell), and better due to exhaustiveness/completeness checking |
| 19:43:31 | <ski> | (`-Wincomplete-uni-patterns',`-Wincomplete-patterns'), one tends to do that |
| 19:43:43 | → | alexhandy2 joins (~trace@user/trace) |
| 19:46:38 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:47:43 | × | alexhandy quits (~trace@user/trace) (Ping timeout: 256 seconds) |
| 19:49:05 | → | MajorBiscuit joins (~MajorBisc@86-88-79-148.fixed.kpn.net) |
| 19:49:20 | → | acidjnk_new joins (~acidjnk@dynamic-046-114-173-051.46.114.pool.telefonica.de) |
| 19:51:04 | × | arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection) |
| 19:51:21 | → | arj0019 joins (~arj0019@162.218.254.7) |
| 19:51:43 | <arj0019> | I see that you have referred to two language extensions. It is my understanding, that language extensions exist to allow for language research and development. Would you agree that a Haskell beginner should avoid language extensions? IMO, the Haskell devs know better than me, and I am probably better off working within the structure that they have defined for now. Do you agree? |
| 19:52:34 | <ski> | two ? |
| 19:52:43 | × | pleo quits (~pleo@user/pleo) (Quit: quit) |
| 19:55:12 | <ski> | i'd say some extensions are pretty benign, like `FlexibleInstances',`FlexibleContexts' .. and, yes, `LambdaCase' (and some other syntactical ones) |
| 19:56:26 | <hololeap> | arj0019: I was scared of language extensions when I first started learning and thought that learning base haskell would be hard enough, but quite a few of them add some very minor quality of life improvements |
| 19:57:58 | <ski> | i'd still be very wary of code using `OverlappingInstances' or `IncoherentInstances', though (or the equivalent pragmas) |
| 19:58:42 | <arj0019> | I have seen some used for type constrains that look very useful. I just want to avoid engaging in bad habits early on. When I am more experienced, I think I will be able to better assess the cost/benefit of implementing a language extension |
| 19:58:44 | × | MajorBiscuit quits (~MajorBisc@86-88-79-148.fixed.kpn.net) (Ping timeout: 272 seconds) |
| 19:59:25 | <hololeap> | arj0019: also, I think you're mistaking e.g. `-Wincomplete-uni-patterns' as a language extension. it actually turns on a specific type of warning |
| 19:59:36 | <ski> | ah .. that's why i was confused |
| 19:59:57 | <arj0019> | oh, I was unaware that was a feature. sorry for the confusion |
| 20:00:22 | <hololeap> | arj0019: what version of GHC are you using? |
| 20:01:17 | <arj0019> | my GHCI presents version 8.10.7 . Is it safe to assume GHC has a matching version? |
| 20:01:50 | <arj0019> | I can confirm that GHC is also 8.10.7 |
| 20:01:50 | × | Vajb quits (~Vajb@2001:999:40:4c50:1b24:879c:6df3:1d06) (Read error: Connection reset by peer) |
| 20:02:00 | <arj0019> | Glasgow Haskell Compiler, Version 8.10.7, stage 2 booted by GHC version 8.8.3 |
| 20:02:07 | <dolio> | I think the truth is that with only one Haskell implementation, there isn't a lot of motivation to codify a lot of things that are GHC extensions relative to the official report. However, you can't necessarily tell which extensions are just things you might as well turn on as a new user. |
| 20:02:14 | <ski> | (btw, `-Wall' will turn on those two warnings above, and a bunch more) |
| 20:03:03 | <dolio> | I guess GHC is fixing that by defining sets of GHC extensions that are more 'blessed'. |
| 20:03:11 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 20:03:56 | <ski> | arj0019 : you can probably ask in here, for a particular extension, whether it's considered pretty basic and benign, or more advanced, or possibly dangerous in some way |
| 20:04:55 | <arj0019> | I see many of you are adding my tag as a context in your message. There is also a purple highlight. Is that still a message that others can see, and am I replying correctly? |
| 20:05:41 | <ski> | (btw, lurking in here, to see what other people are talking about, possibly learning stuff, is a good excuse to stay connected to the channel) |
| 20:06:04 | <hololeap> | most irc clients highlight a message with your nick in it |
| 20:06:10 | <darkling> | arj0019: I saw that question, and many people prefixing with your nick, so yes, that's normal and correct. |
| 20:06:10 | <hololeap> | that's all it is |
| 20:07:39 | <ski> | i see every message in white, in my IRC client. different irc clients may display things differently, e.g. auto-colorizing nicknames in front of messages, or the whole message, and possibly highlighting messages that is directed to you, or possibly mentions your nickname |
| 20:07:41 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 20:07:55 | <arj0019> | ski : yes, I plan to listen to what others discuss with the goal of learning best practices and development processes. |
| 20:08:24 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) |
| 20:09:44 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 20:09:52 | <hololeap> | arj0019: this is a pretty good reference for which language extensions are "benign" or not: https://web.archive.org/web/20220513191346/dev.stephendiehl.com/hask/#language-extensions |
| 20:09:56 | <ski> | there's also private messaging. you could try `/msg someone message here ..' or `/query someone' (without the quotes) .. however, if it's about a general question/comment that the other people in the channel could gain from seeing, or could possibly respond to as well, it's probably better to not do it privately |
| 20:11:04 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) (Remote host closed the connection) |
| 20:11:14 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd28:27b2:2677:8e87) |
| 20:11:42 | → | econo joins (uid147250@user/econo) |
| 20:11:53 | <arj0019> | Sounds like the benign extensions are safe for beginners: "Benign implies both that importing the extension won’t change the semantics of the module if not used and that enabling it makes it no easier to shoot yourself in the foot." |
| 20:12:25 | → | whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com) |
| 20:12:30 | <hololeap> | yeah, exactly |
| 20:15:06 | <hololeap> | but here's the full list/docs for 8.10.7 : https://downloads.haskell.org/ghc/8.10.7/docs/html/users_guide/glasgow_exts.html |
| 20:15:34 | <hololeap> | and the docs for -W : https://downloads.haskell.org/ghc/8.10.7/docs/html/users_guide/using-warnings.html |
| 20:15:57 | → | merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
| 20:17:12 | <ski> | arj0019 : anyway, i was confused before, since i only thought i used one extension, namely `LambdaCase', in the second `unfoldr' example. specifically, `\case [] -> Nothing; _:xs -> Just (xs,xs)' means the same thing as `\xs0 of case xs0 of [] -> Nothing; _:xs -> Just (xs,xs)', it just avoids the tedium of having to invent a name `xs0' for the input of the lambda function, also reduces clutter (mental, and |
| 20:17:18 | <ski> | syntactical) |
| 20:17:37 | <hololeap> | ski, it looks like -Wall does _not_ turn on -Wincomplete-uni-patterns, at least that's what the docs for 8.10.7 say |
| 20:17:50 | <geekosaur> | correct, it defaults off |
| 20:18:15 | <ski> | (if you try that example in the GHC interactor, it'll suggest the `LambdaCase' extension for you) |
| 20:20:02 | × | arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection) |
| 20:20:16 | <hololeap> | this is also a pretty good beginner-friendly reference for some language extensions: https://blog.ocharles.org.uk/pages/2014-12-01-24-days-of-ghc-extensions.html |
| 20:20:19 | → | arj0019 joins (~arj0019@162.218.254.7) |
| 20:21:03 | <ski> | hololeap : i checked <https://www.haskell.org/ghc/docs/latest/html/users_guide/using-warnings.html>, which is apparently 9.2.2, and also tried it out (apparently 9.2.3) |
| 20:23:03 | <ski> | <hololeap> this is also a pretty good beginner-friendly reference for some language extensions: https://blog.ocharles.org.uk/pages/2014-12-01-24-days-of-ghc-extensions.html |
| 20:23:06 | <ski> | arj0019 ^ |
| 20:23:07 | × | _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection) |
| 20:24:15 | × | arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection) |
| 20:24:33 | → | nate4 joins (~nate@98.45.169.16) |
| 20:24:42 | → | arj0019 joins (~arj0019@162.218.254.7) |
| 20:24:43 | <hololeap> | it looks like they changed it at some point after 8.10.7, ski, because it says in the docs for that version: "Turns on all warning options that indicate potentially suspicious code. The warnings that are _not_ enabled by -Wall are ... -Wincomplete-uni-patterns ..." |
| 20:26:03 | × | ncf quits (~n@monade.li) (Quit: Fairfarren.) |
| 20:26:12 | → | ncf joins (~n@monade.li) |
| 20:26:48 | <ski> | i see. ty for the checking |
| 20:28:11 | <hololeap> | I'm not sure those docs are 100% accurate |
| 20:29:15 | <hololeap> | in the latest version of the docs, it doesn't mention -Wprepositive-qualified-module as one of the ones not enabled -Wall, which I find unlikely |
| 20:29:34 | <hololeap> | and it doesn't even mention -Wprepositive-qualified-module in the docs for 9.0.2 which I know for a fact is there |
| 20:29:38 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
| 20:30:04 | <hololeap> | s/not enabled -Wall/not enabled by -Wall |
| 20:33:08 | <hololeap> | yeah, the warning has been there since 8.10.1, but didn't show up in the "warnings" section of the docs until sometime after 9.0.2 |
| 20:34:45 | → | yauhsien joins (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) |
| 20:37:16 | × | arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection) |
| 20:37:33 | → | arj0019 joins (~arj0019@162.218.254.7) |
| 20:39:51 | × | yauhsien quits (~yauhsien@61-231-38-201.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
| 20:40:41 | → | jgeerds joins (~jgeerds@55d45f48.access.ecotel.net) |
| 20:41:10 | × | shiraeeshi quits (~shiraeesh@109.166.57.222) (Ping timeout: 272 seconds) |
| 20:44:40 | → | gurkenglas joins (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) |
| 20:45:32 | × | brettgilio quits (~brettgili@c9yh.net) (Remote host closed the connection) |
| 20:46:00 | × | sjanssen quits (~sjanssenm@2001:470:69fc:105::1:61d8) (*.net *.split) |
| 20:46:00 | × | edmundnoble quits (sid229620@id-229620.helmsley.irccloud.com) (*.net *.split) |
| 20:46:00 | × | cbarrett quits (sid192934@id-192934.helmsley.irccloud.com) (*.net *.split) |
| 20:46:00 | × | parseval quits (sid239098@id-239098.helmsley.irccloud.com) (*.net *.split) |
| 20:46:00 | × | grfn quits (sid449115@id-449115.helmsley.irccloud.com) (*.net *.split) |
| 20:46:00 | × | lottaquestions quits (~nick@2607:fa49:5041:a200:f103:73aa:e770:b5d1) (*.net *.split) |
| 20:46:00 | × | bitonic quits (~bitonic@2001:470:69fc:105::1812) (*.net *.split) |
| 20:46:00 | × | Nate[m] quits (~m52957mat@2001:470:69fc:105::1:591a) (*.net *.split) |
| 20:46:00 | × | steve[m] quits (~stevetrou@2001:470:69fc:105::e0b) (*.net *.split) |
| 20:46:00 | × | gdd1 quits (~gdd@2001:470:1f13:187:7f5b:6c09:f7ed:fdf0) (*.net *.split) |
| 20:46:00 | × | alexfmpe[m] quits (~alexfmpem@2001:470:69fc:105::38ba) (*.net *.split) |
| 20:46:00 | × | tapas quits (sid467876@id-467876.ilkley.irccloud.com) (*.net *.split) |
| 20:46:01 | × | feetwind quits (~mike@user/feetwind) (*.net *.split) |
| 20:46:01 | × | tomboy64 quits (~tomboy64@user/tomboy64) (*.net *.split) |
| 20:46:01 | × | berberman quits (~berberman@user/berberman) (*.net *.split) |
| 20:46:01 | × | yahb2 quits (~yahb2@2a01:4f8:c0c:5c7b::2) (*.net *.split) |
| 20:46:01 | × | mcfrdy quits (~mcfrdy@user/mcfrdy) (*.net *.split) |
| 20:46:01 | × | teddyc quits (theodorc@cassarossa.samfundet.no) (*.net *.split) |
| 20:46:01 | × | ozkutuk quits (~ozkutuk@176.240.173.153) (*.net *.split) |
| 20:46:01 | × | goran[m] quits (~goranoour@2001:470:69fc:105::2:1b44) (*.net *.split) |
| 20:46:01 | × | AWizzArd_ quits (~code@gehrels.uberspace.de) (*.net *.split) |
| 20:46:01 | × | koolazer quits (~koo@user/koolazer) (*.net *.split) |
| 20:46:01 | × | romes[m] quits (~romesmatr@2001:470:69fc:105::2:1660) (*.net *.split) |
| 20:46:01 | × | zwro[m] quits (~zwromatri@2001:470:69fc:105::1d4) (*.net *.split) |
| 20:46:01 | × | mzan quits (~quassel@mail.asterisell.com) (*.net *.split) |
| 20:46:01 | × | madnight quits (~madnight@static.59.103.201.195.clients.your-server.de) (*.net *.split) |
| 20:46:01 | × | nerdypepper quits (~nerdypepp@user/nerdypepper) (*.net *.split) |
| 20:46:01 | × | sloorush quits (~sloorush@52.187.184.81) (*.net *.split) |
| 20:46:01 | × | wrengr quits (~wrengr@249.189.233.35.bc.googleusercontent.com) (*.net *.split) |
| 20:46:01 | × | barrucadu quits (~barrucadu@carcosa.barrucadu.co.uk) (*.net *.split) |
| 20:46:01 | × | supersven quits (sid501114@id-501114.ilkley.irccloud.com) (*.net *.split) |
| 20:46:01 | × | Trattue quits (~Trattue@152.70.182.158) (*.net *.split) |
| 20:46:01 | × | lyxia quits (~lyxia@poisson.chat) (*.net *.split) |
| 20:46:01 | × | pieguy128 quits (~pieguy128@bras-base-mtrlpq5031w-grc-35-70-24-248-224.dsl.bell.ca) (*.net *.split) |
| 20:46:01 | × | APic quits (apic@apic.name) (*.net *.split) |
| 20:46:01 | × | noctux quits (~noctux@user/noctux) (*.net *.split) |
| 20:46:01 | × | polux quits (~polux@51-15-169-172.rev.poneytelecom.eu) (*.net *.split) |
| 20:46:08 | → | AWizzArd joins (~code@gehrels.uberspace.de) |
| 20:46:10 | → | supersven joins (sid501114@id-501114.ilkley.irccloud.com) |
| 20:46:11 | → | noctux joins (~noctux@user/noctux) |
| 20:46:14 | → | APic joins (apic@apic.name) |
| 20:46:16 | → | sloorush joins (~sloorush@52.187.184.81) |
| 20:46:17 | → | tapas joins (sid467876@id-467876.ilkley.irccloud.com) |
| 20:46:17 | → | lyxia joins (~lyxia@poisson.chat) |
| 20:46:19 | → | teddyc joins (theodorc@cassarossa.samfundet.no) |
| 20:46:21 | → | polux joins (~polux@51-15-169-172.rev.poneytelecom.eu) |
| 20:46:27 | → | parseval joins (sid239098@id-239098.helmsley.irccloud.com) |
| 20:46:32 | → | feetwind joins (~mike@2406:d501::79ae:5f3e) |
| 20:46:32 | → | mzan joins (~quassel@mail.asterisell.com) |
| 20:46:34 | → | wrengr joins (~wrengr@249.189.233.35.bc.googleusercontent.com) |
| 20:46:36 | → | koolazer joins (~koo@user/koolazer) |
| 20:46:48 | × | feetwind quits (~mike@2406:d501::79ae:5f3e) (Signing in (feetwind)) |
| 20:46:48 | → | feetwind joins (~mike@user/feetwind) |
| 20:46:54 | → | ozkutuk joins (~ozkutuk@176.240.173.153) |
| 20:47:07 | → | edmundnoble joins (sid229620@id-229620.helmsley.irccloud.com) |
| 20:47:08 | → | tomboy64 joins (~tomboy64@user/tomboy64) |
| 20:47:11 | → | pieguy128 joins (~pieguy128@bras-base-mtrlpq5031w-grc-35-70-24-248-224.dsl.bell.ca) |
| 20:47:17 | → | cbarrett joins (sid192934@id-192934.helmsley.irccloud.com) |
| 20:47:19 | → | madnight joins (~madnight@static.59.103.201.195.clients.your-server.de) |
| 20:47:22 | → | mcfrdy joins (~mcfrdy@user/mcfrdy) |
| 20:47:22 | → | lottaquestions joins (~nick@2607:fa49:5041:a200:d970:339e:3d32:94d) |
| 20:47:26 | → | gdd1 joins (~gdd@129.199.146.230) |
| 20:47:27 | → | berberman joins (~berberman@user/berberman) |
| 20:47:36 | → | grfn joins (sid449115@id-449115.helmsley.irccloud.com) |
| 20:47:50 | → | Trattue joins (~Trattue@152.70.182.158) |
| 20:47:52 | → | nate4 joins (~nate@98.45.169.16) |
| 20:48:17 | → | nerdypepper joins (~nerdypepp@user/nerdypepper) |
| 20:48:27 | → | romes[m] joins (~romesmatr@2001:470:69fc:105::2:1660) |
| 20:48:31 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 20:48:55 | → | sjanssen joins (~sjanssenm@2001:470:69fc:105::1:61d8) |
| 20:49:18 | × | inversed quits (~inversed@97e3d74e.skybroadband.com) (Ping timeout: 240 seconds) |
| 20:49:35 | → | pleo joins (~pleo@user/pleo) |
| 20:50:26 | → | inversed joins (~inversed@97e3d74e.skybroadband.com) |
| 20:50:53 | × | lyle quits (~lyle@104.246.145.85) (Quit: WeeChat 3.5) |
| 20:51:10 | → | zwro[m] joins (~zwromatri@2001:470:69fc:105::1d4) |
| 20:51:17 | → | barrucadu joins (~barrucadu@carcosa.barrucadu.co.uk) |
| 20:51:38 | → | alexfmpe[m] joins (~alexfmpem@2001:470:69fc:105::38ba) |
| 20:51:49 | → | brettgilio joins (~brettgili@c9yh.net) |
| 20:54:27 | → | steve[m] joins (~stevetrou@2001:470:69fc:105::e0b) |
| 20:54:30 | → | Nate[m] joins (~m52957mat@2001:470:69fc:105::1:591a) |
| 20:55:30 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 20:56:57 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 20:58:04 | → | moonsheep joins (~user@user/moonsheep) |
| 20:58:15 | → | k`` joins (~user@152.1.137.158) |
| 20:59:25 | → | goran[m] joins (~goranoour@2001:470:69fc:105::2:1b44) |
| 21:01:07 | → | bitonic joins (~bitonic@2001:470:69fc:105::1812) |
| 21:01:30 | × | k` quits (~user@152.1.137.158) (Ping timeout: 240 seconds) |
| 21:02:21 | <moonsheep> | Hi there! Is there a way to do a data-parallel iterate in accelerate? |
| 21:02:36 | <moonsheep> | I'm looking for an equivalent for the Exp iterate but in Acc |
| 21:02:55 | <moonsheep> | I've tried to use awhile, but I'm not sure how should I implemented the counter |
| 21:03:03 | <moonsheep> | *implement |
| 21:04:50 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 21:08:29 | <mon_aaraj> | dminuoso: thank you so very much for that `worded` alternative! it works perfectly! |
| 21:10:12 | <moonsheep> | By the way, I've also tried good ol' recursion, but for some reason it eats up all of my video memory. |
| 21:10:24 | <moonsheep> | I think the array gets copied each time instead of being reused. |
| 21:10:26 | × | Infinite quits (~Infinite@49.39.124.23) (Ping timeout: 252 seconds) |
| 21:12:35 | <hololeap> | @hackage derivingvia-extras -- this is kinda cool |
| 21:12:35 | <lambdabot> | https://hackage.haskell.org/package/derivingvia-extras -- this is kinda cool |
| 21:13:54 | × | pleo quits (~pleo@user/pleo) (Ping timeout: 264 seconds) |
| 21:16:30 | × | arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection) |
| 21:16:34 | × | fweht quits (uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 21:16:47 | → | arj0019 joins (~arj0019@162.218.254.7) |
| 21:17:56 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds) |
| 21:19:41 | × | winny quits (~weechat@user/winny) (Ping timeout: 268 seconds) |
| 21:21:04 | × | acidjnk_new quits (~acidjnk@dynamic-046-114-173-051.46.114.pool.telefonica.de) (Ping timeout: 272 seconds) |
| 21:22:44 | × | arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection) |
| 21:23:01 | → | arj0019 joins (~arj0019@162.218.254.7) |
| 21:24:36 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 21:25:13 | × | alp quits (~alp@user/alp) (Ping timeout: 268 seconds) |
| 21:25:38 | → | MajorBiscuit joins (~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net) |
| 21:25:55 | <mon_aaraj> | I have another issue, HLS seems to be complaining about non-existent issues. It errors on some lines but if I try to run the program it runs perfectly. Here's the entirety of the code, and the response of HLS: https://bpa.st/Y5TQ |
| 21:26:29 | → | pleo joins (~pleo@user/pleo) |
| 21:27:32 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:27:52 | <hololeap> | I'm not sure HLS is stable on ghc 9.2 |
| 21:28:36 | <hololeap> | you can try generating a hie.yaml and see if that helps: `gen-hie | tee hie.yaml` |
| 21:29:28 | → | alp joins (~alp@user/alp) |
| 21:29:55 | <hololeap> | also, when you say "run the program" do you mean run "cabal build" ? |
| 21:30:02 | → | winny joins (~weechat@user/winny) |
| 21:30:54 | × | some02 quits (~cat@user/sudden) (Ping timeout: 276 seconds) |
| 21:31:07 | → | sudden joins (~cat@user/sudden) |
| 21:31:42 | <hololeap> | Completed (1 file worked, 0 files failed) -- this looks like a success to me. what editor are you using? |
| 21:33:42 | × | xacktm quits (xacktm@user/xacktm) (Quit: fBNC - https://bnc4free.com) |
| 21:33:43 | × | andreas303 quits (~andreas30@ip227.orange.bnc4free.com) (Quit: fBNC - https://bnc4free.com) |
| 21:34:17 | × | even4void quits (even4void@came.here.for-some.fun) (Quit: fBNC - https://bnc4free.com) |
| 21:35:57 | × | arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection) |
| 21:36:14 | → | arj0019 joins (~arj0019@162.218.254.7) |
| 21:36:16 | × | MajorBiscuit quits (~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net) (Ping timeout: 272 seconds) |
| 21:36:34 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 21:39:58 | × | arj0019 quits (~arj0019@162.218.254.7) (Remote host closed the connection) |
| 21:40:15 | → | arj0019 joins (~arj0019@162.218.254.7) |
| 21:41:04 | ← | arj0019 parts (~arj0019@162.218.254.7) () |
| 21:43:21 | × | son0p quits (~ff@181.136.122.143) (Ping timeout: 248 seconds) |
| 21:49:13 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 248 seconds) |
| 21:49:18 | → | zeenk joins (~zeenk@2a02:2f04:a301:3d00:39df:1c4b:8a55:48d3) |
| 21:49:45 | × | michalz quits (~michalz@185.246.204.97) (Remote host closed the connection) |
| 21:49:48 | <mon_aaraj> | hololeap: I mean `cabal build` and `cabal run` both work, and the program functions as expected. I'm using doom emacs with lsp and emacs enabled, withh GHCUP using the last version that supports ghc 9.2.2 (which is the version that i use) |
| 21:50:15 | <mon_aaraj> | yes, it succeeded error-checking the file, the issue is that it's errors are wrong, because they're not errors a all |
| 21:52:49 | → | andreas303 joins (andreas303@ip227.orange.bnc4free.com) |
| 21:52:56 | × | briandaed quits (~briandaed@109.95.143.14.r.toneticgroup.pl) (Ping timeout: 246 seconds) |
| 21:53:44 | <maerwald> | sounds like it could be hlint |
| 21:54:11 | → | even4void joins (even4void@came.here.for-some.fun) |
| 21:57:25 | × | BusConscious quits (~martin@ip5f5bdf01.dynamic.kabel-deutschland.de) (Quit: Lost terminal) |
| 22:00:07 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:00:23 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 22:02:23 | × | werneta quits (~werneta@137.78.30.207) (Ping timeout: 246 seconds) |
| 22:02:56 | <geekosaur> | hlint doesn't understand types |
| 22:03:14 | <geekosaur> | it looks for questionable code, it does not typecheck |
| 22:03:25 | <hololeap> | I don't think those are hlint-related errors |
| 22:03:54 | <hololeap> | HLS seems to work better for me when I generate hie.yaml in the root of the project (next to *.cabal) |
| 22:03:56 | → | xacktm joins (xacktm@user/xacktm) |
| 22:10:05 | × | dsrt^ quits (~dsrt@50.237.44.186) (Ping timeout: 246 seconds) |
| 22:10:22 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 22:10:42 | <hololeap> | also, friendly reminder that #haskell-language-server exists |
| 22:11:03 | <hololeap> | it's kinda low traffic, though |
| 22:12:09 | × | HotblackDesiato quits (~HotblackD@gateway/tor-sasl/hotblackdesiato) (Remote host closed the connection) |
| 22:12:09 | × | adanwan_ quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 22:13:06 | <maerwald> | geekosaur: oh, there was a link? :> |
| 22:13:35 | → | HotblackDesiato joins (~HotblackD@gateway/tor-sasl/hotblackdesiato) |
| 22:13:59 | <maerwald> | yeah, add a hie.yaml |
| 22:16:29 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 22:18:15 | × | mikoto-chan quits (~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Ping timeout: 268 seconds) |
| 22:20:38 | <EvanR> | this stackexchange hot question looks pretty good: since accessing an array is O(1) then the key type has to be finite, so traversing any array must be O(1). but in question form |
| 22:21:22 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:24:10 | × | jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 240 seconds) |
| 22:25:44 | <mon_aaraj> | ah, nice. i'll try haskell-language-server. thank you all so much for the helf already |
| 22:27:38 | × | merijn quits (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
| 22:29:32 | → | stackdroid18 joins (14094@user/stackdroid) |
| 22:33:04 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds) |
| 22:48:20 | × | liz_ quits (~liz@host86-159-158-175.range86-159.btcentralplus.com) (Quit: Lost terminal) |
| 22:53:08 | × | moet quits (~moet@lib-02-subnet-194.rdns.cenic.net) (Ping timeout: 246 seconds) |
| 22:54:47 | → | dsrt^ joins (~dsrt@50.237.44.186) |
| 22:58:24 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 23:01:31 | → | mikoto-chan joins (~mikoto-ch@esm-84-240-99-143.netplaza.fi) |
| 23:04:25 | <AndreasK> | EvanR: A good case of technically correct being the best kind of correct? |
| 23:04:41 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds) |
| 23:05:36 | <AndreasK> | Comparing a pointer against every address in 64bit address space is also technically O(1) in the same way. Not quite fast though |
| 23:06:55 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 23:06:56 | × | zeenk quits (~zeenk@2a02:2f04:a301:3d00:39df:1c4b:8a55:48d3) (Quit: Konversation terminated!) |
| 23:07:28 | <darkling> | If all your inputs are bounded, everything's O(1), right? :) |
| 23:08:05 | × | pleo quits (~pleo@user/pleo) (Quit: quit) |
| 23:09:18 | <AndreasK> | If your algorithm is terminating I guess so |
| 23:10:31 | <EvanR> | in this case it seems better to be incorrect |
| 23:15:11 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 246 seconds) |
| 23:17:20 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 23:24:14 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds) |
| 23:24:46 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
| 23:26:16 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 23:26:28 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds) |
| 23:28:56 | Lord_of_Life_ | is now known as Lord_of_Life |
| 23:31:01 | × | AlexZenon quits (~alzenon@178.34.160.206) (Ping timeout: 268 seconds) |
| 23:31:01 | × | Alex_test quits (~al_test@178.34.160.206) (Ping timeout: 268 seconds) |
| 23:33:49 | → | Alex_test joins (~al_test@178.34.160.206) |
| 23:33:52 | → | AlexZenon joins (~alzenon@178.34.160.206) |
| 23:35:20 | × | chomwitt quits (~chomwitt@2a02:587:dc0d:e600:8f05:e6fa:1178:1d79) (Ping timeout: 272 seconds) |
| 23:39:48 | oats | is now known as boats |
| 23:42:52 | × | unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Remote host closed the connection) |
| 23:43:05 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 23:44:57 | → | unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
| 23:45:45 | → | nate4 joins (~nate@98.45.169.16) |
| 23:47:11 | → | liz_ joins (~liz@host86-159-158-175.range86-159.btcentralplus.com) |
| 23:48:19 | → | merijn joins (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
| 23:48:38 | × | moonsheep quits (~user@user/moonsheep) (Remote host closed the connection) |
| 23:48:47 | × | mikoto-chan quits (~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Ping timeout: 246 seconds) |
| 23:48:55 | → | moet joins (~moet@mobile-166-177-248-140.mycingular.net) |
| 23:50:15 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds) |
| 23:50:30 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 264 seconds) |
| 23:50:57 | boats | is now known as oats |
| 23:51:22 | → | mikoto-chan joins (~mikoto-ch@esm-84-240-99-143.netplaza.fi) |
| 23:52:25 | × | gurkenglas quits (~gurkengla@dslb-002-203-144-112.002.203.pools.vodafone-ip.de) (Ping timeout: 248 seconds) |
| 23:53:35 | → | son0p joins (~ff@181.136.122.143) |
| 23:54:23 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 23:55:07 | → | cdsmith63 joins (~cdsmith@c-73-184-127-183.hsd1.ga.comcast.net) |
| 23:58:17 | × | even4void quits (even4void@came.here.for-some.fun) (Ping timeout: 248 seconds) |
| 23:58:46 | × | xacktm quits (xacktm@user/xacktm) (Ping timeout: 272 seconds) |
| 23:59:38 | × | superz quits (~superegg@user/superegg) (Ping timeout: 246 seconds) |
All times are in UTC on 2022-06-24.