2022-01-09 00:00:37 +0100 | Hayek1 | (~xxx@rrcs-173-196-3-254.west.biz.rr.com) (Ping timeout: 240 seconds) |
2022-01-09 00:01:27 +0100 | Hayek1 | (~xxx@rrcs-173-196-3-254.west.biz.rr.com) |
2022-01-09 00:06:13 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2022-01-09 00:08:42 +0100 | Inst | (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) |
2022-01-09 00:08:47 +0100 | <Inst> | technically they're infinite if they have type variables |
2022-01-09 00:08:49 +0100 | <Inst> | i suppose multiplication can't break you out of low cardinalities |
2022-01-09 00:09:11 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-01-09 00:11:01 +0100 | stvc | (~stvc@192.241.166.39) |
2022-01-09 00:12:05 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (Remote host closed the connection) |
2022-01-09 00:13:00 +0100 | shriekingnoise | (~shrieking@186.137.144.80) (Quit: Quit) |
2022-01-09 00:15:44 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Remote host closed the connection) |
2022-01-09 00:16:41 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
2022-01-09 00:19:23 +0100 | coolnickname | (uid531864@user/coolnickname) (Quit: Connection closed for inactivity) |
2022-01-09 00:26:09 +0100 | alMalsamo | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 276 seconds) |
2022-01-09 00:26:13 +0100 | xb0o2 | (~xb0o2@user/xb0o2) (Quit: Client closed) |
2022-01-09 00:28:09 +0100 | <EvanR> | if they have type variables, the question of cardinality is deferred until someone plugs in some concrete types |
2022-01-09 00:28:36 +0100 | alMalsamo | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-01-09 00:28:44 +0100 | <EvanR> | a type indexed family of cardinalities |
2022-01-09 00:31:32 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-09 00:31:32 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-09 00:31:32 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-09 00:35:55 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-01-09 00:37:49 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2022-01-09 00:38:35 +0100 | deadmarshal | (~deadmarsh@95.38.231.124) |
2022-01-09 00:40:05 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 252 seconds) |
2022-01-09 00:41:51 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-01-09 00:42:32 +0100 | waleee | (~waleee@h-98-128-229-110.NA.cust.bahnhof.se) |
2022-01-09 00:42:52 +0100 | deadmarshal | (~deadmarsh@95.38.231.124) (Ping timeout: 256 seconds) |
2022-01-09 00:43:32 +0100 | mcgroin | (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2022-01-09 00:53:51 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2022-01-09 00:53:51 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-01-09 00:57:36 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Ping timeout: 256 seconds) |
2022-01-09 01:02:06 +0100 | SummerSonw | (~The_viole@203.77.49.232) |
2022-01-09 01:04:30 +0100 | tremon | (~tremon@217-120-53-183.cable.dynamic.v4.ziggo.nl) |
2022-01-09 01:05:18 +0100 | talismanick | (~talismani@2601:644:8500:8350::256c) |
2022-01-09 01:08:20 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-09 01:08:20 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-09 01:08:20 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-09 01:09:34 +0100 | max22- | (~maxime@2a01cb08833598001e8492dc42f658f2.ipv6.abo.wanadoo.fr) (Remote host closed the connection) |
2022-01-09 01:11:25 +0100 | SummerSonw | (~The_viole@203.77.49.232) (Ping timeout: 240 seconds) |
2022-01-09 01:12:51 +0100 | jakalx | (~jakalx@base.jakalx.net) () |
2022-01-09 01:12:52 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Remote host closed the connection) |
2022-01-09 01:15:35 +0100 | jgeerds | (~jgeerds@55d4bbed.access.ecotel.net) (Ping timeout: 256 seconds) |
2022-01-09 01:17:22 +0100 | TonyStone | (~TonyStone@2603-7080-8607-c36a-9cdb-69bc-753b-1e50.res6.spectrum.com) (Remote host closed the connection) |
2022-01-09 01:18:51 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) |
2022-01-09 01:20:09 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-01-09 01:23:01 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Ping timeout: 240 seconds) |
2022-01-09 01:28:15 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:58c5:6207:2988:1b06) (Ping timeout: 268 seconds) |
2022-01-09 01:29:09 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2022-01-09 01:31:59 +0100 | tcard | (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving) |
2022-01-09 01:34:24 +0100 | DNH_ | (~DNH@2a02:8108:1100:16d8:c018:4e56:978b:50e2) |
2022-01-09 01:35:05 +0100 | acidjnk_new3 | (~acidjnk@p200300d0c7271e2764e98499ffbb1b91.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2022-01-09 01:35:05 +0100 | acidjnk | (~acidjnk@p200300d0c7271e2764e98499ffbb1b91.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2022-01-09 01:35:09 +0100 | DNH_ | (~DNH@2a02:8108:1100:16d8:c018:4e56:978b:50e2) (Client Quit) |
2022-01-09 01:35:50 +0100 | tcard | (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) |
2022-01-09 01:36:53 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:1c21:9777:b34f:a2a4) (Ping timeout: 268 seconds) |
2022-01-09 01:40:37 +0100 | mcgroin | (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds) |
2022-01-09 01:41:48 +0100 | Inst | (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 256 seconds) |
2022-01-09 01:45:57 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-09 01:46:45 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) (Ping timeout: 276 seconds) |
2022-01-09 01:46:54 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-01-09 01:48:52 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-09 01:48:52 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-09 01:48:52 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-09 01:50:13 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2022-01-09 01:50:52 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 256 seconds) |
2022-01-09 01:50:53 +0100 | pavonia | (~user@user/siracusa) |
2022-01-09 01:53:17 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) |
2022-01-09 02:01:32 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-01-09 02:05:44 +0100 | xkuru | (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
2022-01-09 02:12:18 +0100 | Sgeo_ | (~Sgeo@user/sgeo) |
2022-01-09 02:13:07 +0100 | <lechner> | Hi, is it possible to extend Hasql (or perhaps PostgreSQL.Binary.Encoding) with a data type from an extension? |
2022-01-09 02:14:40 +0100 | Sgeo | (~Sgeo@user/sgeo) (Ping timeout: 256 seconds) |
2022-01-09 02:21:37 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480::41) (Ping timeout: 240 seconds) |
2022-01-09 02:29:36 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) |
2022-01-09 02:35:49 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) (Ping timeout: 240 seconds) |
2022-01-09 02:37:49 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
2022-01-09 02:37:57 +0100 | son0p | (~ff@181.136.122.143) (Ping timeout: 268 seconds) |
2022-01-09 02:50:47 +0100 | kaph | (~kaph@net-2-38-107-19.cust.vodafonedsl.it) (Ping timeout: 256 seconds) |
2022-01-09 02:53:56 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
2022-01-09 02:55:37 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds) |
2022-01-09 02:57:39 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2022-01-09 03:02:09 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-01-09 03:02:28 +0100 | little_mac | (~little_ma@2601:410:4300:3ce0:b17c:f0c6:752d:8263) (Remote host closed the connection) |
2022-01-09 03:03:02 +0100 | little_mac | (~little_ma@2601:410:4300:3ce0:b17c:f0c6:752d:8263) |
2022-01-09 03:03:19 +0100 | SummerSonw | (~The_viole@203.77.49.232) |
2022-01-09 03:04:12 +0100 | vysn | (~vysn@user/vysn) |
2022-01-09 03:05:06 +0100 | justIrresolute | (~justache@user/justache) (Remote host closed the connection) |
2022-01-09 03:06:01 +0100 | TonyStone | (~TonyStone@2603-7080-8607-c36a-9cdb-69bc-753b-1e50.res6.spectrum.com) |
2022-01-09 03:06:05 +0100 | justIrresolute | (~justache@user/justache) |
2022-01-09 03:06:48 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2022-01-09 03:11:02 +0100 | TonyStone | (~TonyStone@2603-7080-8607-c36a-9cdb-69bc-753b-1e50.res6.spectrum.com) (Remote host closed the connection) |
2022-01-09 03:11:25 +0100 | TonyStone | (~TonyStone@2603-7080-8607-c36a-9cdb-69bc-753b-1e50.res6.spectrum.com) |
2022-01-09 03:14:40 +0100 | califax- | (~califax@user/califx) |
2022-01-09 03:15:11 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-09 03:18:24 +0100 | califax | (~califax@user/califx) (Ping timeout: 276 seconds) |
2022-01-09 03:18:24 +0100 | califax- | califax |
2022-01-09 03:19:32 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-01-09 03:21:01 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Client Quit) |
2022-01-09 03:21:08 +0100 | kaph | (~kaph@net-2-38-107-19.cust.vodafonedsl.it) |
2022-01-09 03:28:11 +0100 | mixfix41 | (~homefame@user/mixfix41) (Ping timeout: 256 seconds) |
2022-01-09 03:28:55 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2022-01-09 03:29:25 +0100 | harveypwca | (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving) |
2022-01-09 03:29:36 +0100 | neurocyte09172 | (~neurocyte@IP-094016064252.dynamic.medianet-world.de) |
2022-01-09 03:29:36 +0100 | neurocyte09172 | (~neurocyte@IP-094016064252.dynamic.medianet-world.de) (Changing host) |
2022-01-09 03:29:36 +0100 | neurocyte09172 | (~neurocyte@user/neurocyte) |
2022-01-09 03:31:11 +0100 | <lechner> | Hi, is 'pure' a suitable no-op in a monadic 'case' expression? Sorry if that language makes no sense |
2022-01-09 03:31:25 +0100 | neurocyte0917 | (~neurocyte@user/neurocyte) (Ping timeout: 240 seconds) |
2022-01-09 03:31:25 +0100 | neurocyte09172 | neurocyte0917 |
2022-01-09 03:33:25 +0100 | xff0x | (~xff0x@2001:1a81:5298:9f00:374f:4390:4780:3d6) (Ping timeout: 240 seconds) |
2022-01-09 03:35:34 +0100 | xff0x | (~xff0x@2001:1a81:52d4:9900:80b8:248c:472c:34e) |
2022-01-09 03:38:48 +0100 | <monochrom> | Yes, especially "pure ()" |
2022-01-09 03:40:04 +0100 | <lechner> | monochrom: thanks! |
2022-01-09 03:40:27 +0100 | <lechner> | what should go near the 'Right' please? https://paste.tomsmeding.com/vx0y49YN |
2022-01-09 03:41:08 +0100 | <lechner> | a is () |
2022-01-09 03:43:23 +0100 | <monochrom> | Go back one step. "Session.run (addVersionSession version committish tags) connection >>= \e -> case e of Left error -> ... Right _ -> ...". Or use do-notation. |
2022-01-09 03:43:43 +0100 | <monochrom> | You have "IO (EIther ...)" not plain "Either ...". |
2022-01-09 03:44:58 +0100 | razetime | (~quassel@49.207.213.63) |
2022-01-09 03:53:49 +0100 | Midjak | (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (Ping timeout: 240 seconds) |
2022-01-09 03:55:12 +0100 | TonyStone | (~TonyStone@2603-7080-8607-c36a-9cdb-69bc-753b-1e50.res6.spectrum.com) (Quit: Leaving) |
2022-01-09 03:56:30 +0100 | ph88 | (~ph88@2a02:8109:9e00:71d0::7e04) (Quit: Leaving) |
2022-01-09 03:56:31 +0100 | TonyStone | (~TonyStone@2603-7080-8607-c36a-9cdb-69bc-753b-1e50.res6.spectrum.com) |
2022-01-09 03:56:56 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-01-09 03:58:38 +0100 | <lechner> | oh, i see. it went back in the monad when i moved it from Right error <- (which caused a missed match on success) |
2022-01-09 04:01:37 +0100 | <lechner> | how does that look with 'do' please? |
2022-01-09 04:03:15 +0100 | <lechner> | i think my issue is simply that i want to do nothing on Right _ |
2022-01-09 04:05:05 +0100 | justIrresolute | (~justache@user/justache) (Remote host closed the connection) |
2022-01-09 04:05:37 +0100 | <lechner> | Why doesn't that work? Right _ -> pure () I get Couldn't match expected type ‘IO (Either Session.QueryError ())’ like you said |
2022-01-09 04:06:04 +0100 | justIrresolute | (~justache@user/justache) |
2022-01-09 04:09:07 +0100 | <EvanR> | expected IO (Either ... |
2022-01-09 04:09:22 +0100 | <EvanR> | so like, return (Right (... |
2022-01-09 04:09:35 +0100 | <EvanR> | or pure (pure (... |
2022-01-09 04:11:34 +0100 | sonny | (~sonny@bras-base-london1483w-grc-32-70-52-175-166.dsl.bell.ca) |
2022-01-09 04:16:13 +0100 | dsrt^ | (~dsrt@wsip-98-188-246-242.mc.at.cox.net) (Ping timeout: 240 seconds) |
2022-01-09 04:18:47 +0100 | <lechner> | i think i tried all combinations... |
2022-01-09 04:18:57 +0100 | little_mac | (~little_ma@2601:410:4300:3ce0:b17c:f0c6:752d:8263) (Ping timeout: 240 seconds) |
2022-01-09 04:20:29 +0100 | little_mac | (~little_ma@c-24-127-188-93.hsd1.mi.comcast.net) |
2022-01-09 04:21:10 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) (Quit: leaving) |
2022-01-09 04:22:38 +0100 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection) |
2022-01-09 04:23:13 +0100 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) |
2022-01-09 04:27:07 +0100 | shailangsa | (~shailangs@host86-162-150-202.range86-162.btcentralplus.com) (Ping timeout: 256 seconds) |
2022-01-09 04:29:23 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
2022-01-09 04:30:46 +0100 | Topsi | (~Tobias@dyndsl-095-033-089-163.ewe-ip-backbone.de) |
2022-01-09 04:31:22 +0100 | Hash | (~Hash@hashsecurity.org) |
2022-01-09 04:31:24 +0100 | <Hash> | Hello |
2022-01-09 04:31:30 +0100 | <Hash> | I'm new but have questiona bout Haskell GHC |
2022-01-09 04:31:41 +0100 | <Hash> | I install it on Ubuntu 20.04 and it's very large size. |
2022-01-09 04:31:50 +0100 | <Hash> | Almost 1GB of packages for haskell |
2022-01-09 04:31:53 +0100 | <xsperry> | are you sure you want to return Either wrapped in an IO? so many things can raise exception in IO, so if you return Either (as opposed to throwing) you just have one more type of error to handle |
2022-01-09 04:31:56 +0100 | <Hash> | Is this accurate? |
2022-01-09 04:32:16 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-01-09 04:32:26 +0100 | <Hash> | Is there possible way to get Haskell compiiler/xmonad without having 1GB of ghc dependencies? |
2022-01-09 04:32:34 +0100 | <Hash> | Why is haskell compiler so huge? |
2022-01-09 04:32:56 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
2022-01-09 04:33:36 +0100 | yauhsien | (~yauhsien@118-167-43-90.dynamic-ip.hinet.net) |
2022-01-09 04:33:43 +0100 | <sonny> | maybe it's possible to install only ghc |
2022-01-09 04:34:43 +0100 | <Topsi> | ummm, for me on Windows the size of the folder at C:\Users\Username\AppData\Local\Programs\stack\x86_64-windows\ghc-9.0.1 is 2,5GB |
2022-01-09 04:35:15 +0100 | <EvanR> | Hash, I'm on ubuntu |
2022-01-09 04:35:24 +0100 | <EvanR> | I used ghcup to get haskell, not packages |
2022-01-09 04:35:38 +0100 | <yushyin> | 4.8G /home/yushyin/.ghcup/ ;D |
2022-01-09 04:35:56 +0100 | <Hash> | holy moly |
2022-01-09 04:35:57 +0100 | <EvanR> | yeah can't speak to the disk foot print, I have a new 1TB drive |
2022-01-09 04:36:14 +0100 | <EvanR> | needless to say that's a lot of 1.44MB floppies |
2022-01-09 04:36:14 +0100 | <Hash> | That's so much :( |
2022-01-09 04:36:50 +0100 | <xsperry> | 1TB hdd is like $30 |
2022-01-09 04:37:07 +0100 | <Topsi> | I have ghc-8.6.5, ghc-8.8.2, ghc-8.8.3, ghc-8.8.4, ghc-8.10.1, ghc-8.10.2, ghc-8.10.4 and ghc-9.0.1 installed and my SSD is only 227GB -.- |
2022-01-09 04:37:30 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Remote host closed the connection) |
2022-01-09 04:37:41 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) |
2022-01-09 04:37:57 +0100 | <Topsi> | ye I have external hdds as well, but they're slower |
2022-01-09 04:38:19 +0100 | <EvanR> | Hash, GHC is alien tech, sorry |
2022-01-09 04:38:50 +0100 | <Topsi> | I just want to express that I find GHCs size inconvenient |
2022-01-09 04:38:56 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
2022-01-09 04:39:22 +0100 | <EvanR> | the real issue seems to be how much memory it takes to run, which becomes an issue on raspberry pi |
2022-01-09 04:40:08 +0100 | <Topsi> | that too x) |
2022-01-09 04:40:23 +0100 | <lechner> | xsperry: i don't want to return anything. just trying to process the error https://paste.tomsmeding.com/vx0y49YN |
2022-01-09 04:41:19 +0100 | <EvanR> | lechner, all functions return something, be it (), Nothing, or an exploding thunk |
2022-01-09 04:41:28 +0100 | <EvanR> | or a hard freeze |
2022-01-09 04:42:00 +0100 | <xsperry> | lechner, can you paste a test case? (smallest compilable example). "putStrLn $ show error" is the same as "print error", btw |
2022-01-09 04:43:56 +0100 | <xsperry> | lechner, nm, Session.run returns IO, you can't use case with IO |
2022-01-09 04:44:16 +0100 | Hayek1 | (~xxx@rrcs-173-196-3-254.west.biz.rr.com) (Ping timeout: 256 seconds) |
2022-01-09 04:44:35 +0100 | <lechner> | xsperry: just trying to process the error from 'run' here and do nothing on 'Right' https://hackage.haskell.org/package/hasql-1.4.4/docs/Hasql-Session.html#t:QueryError |
2022-01-09 04:44:50 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
2022-01-09 04:45:01 +0100 | td_ | (~td@94.134.91.205) (Ping timeout: 240 seconds) |
2022-01-09 04:45:32 +0100 | <lechner> | could i use eitherResult <- .... followed by case eitherResult of ..... |
2022-01-09 04:45:33 +0100 | <yushyin> | Hash: if that's too much, haskell might be not for you. i have already >10GB in haskell deps |
2022-01-09 04:45:39 +0100 | <Hash> | HJeezus! |
2022-01-09 04:45:41 +0100 | <Hash> | Wow |
2022-01-09 04:45:54 +0100 | kramer2 | (~bc8147f2@cerf.good1.com) |
2022-01-09 04:46:11 +0100 | <xsperry> | lechner yes that should work |
2022-01-09 04:46:13 +0100 | <EvanR> | 10G, that's like 1/10 or 1/20 of a basic video game now xD |
2022-01-09 04:47:05 +0100 | td_ | (~td@muedsl-82-207-238-021.citykom.de) |
2022-01-09 04:47:19 +0100 | <EvanR> | :t case Left "!" of Right _ -> return (); Left _ -> return () |
2022-01-09 04:47:20 +0100 | <lambdabot> | Monad m => m () |
2022-01-09 04:47:31 +0100 | <EvanR> | lechner, maybe eitherResult is not what you think it is |
2022-01-09 04:47:37 +0100 | <lechner> | xsperry: is there something monadic lke Session.run ... >>= similar to what monochrome wrote? |
2022-01-09 04:48:10 +0100 | <Topsi> | right, the haskell dependencies downloaded by stack stored in C:\sr are 24GB for me |
2022-01-09 04:48:23 +0100 | <Hash> | Wow |
2022-01-09 04:48:25 +0100 | <lechner> | EvanR: i have some type confusion |
2022-01-09 04:48:27 +0100 | <Hash> | that's just so much. |
2022-01-09 04:48:36 +0100 | <xsperry> | lechner, do and <- are just syntax sugar for >>= |
2022-01-09 04:48:39 +0100 | <Hash> | I don't have that kind of space. I use Xmonad only |
2022-01-09 04:49:39 +0100 | sonny | (~sonny@bras-base-london1483w-grc-32-70-52-175-166.dsl.bell.ca) (Remote host closed the connection) |
2022-01-09 04:50:17 +0100 | <Topsi> | It accumulates over time |
2022-01-09 04:50:17 +0100 | sagax | (~sagax_nb@user/sagax) (Ping timeout: 240 seconds) |
2022-01-09 04:50:54 +0100 | <EvanR> | you can always clear the accumulate ghc stuf |
2022-01-09 04:50:59 +0100 | <kramer2> | lecher, what error are you getting? |
2022-01-09 04:51:00 +0100 | <Topsi> | There's no proper way to delete stuff. I either delete the GHCs installed by stack manually or remove the C:\sr folder by reinstalling stack every now and then. |
2022-01-09 04:51:10 +0100 | <Topsi> | i don't know how else to do it |
2022-01-09 04:51:17 +0100 | <EvanR> | as usual on linux, the proper way is to delete the relevant directory |
2022-01-09 04:51:23 +0100 | <EvanR> | and start over |
2022-01-09 04:51:37 +0100 | <yushyin> | Hash: that said, if you use xmonad, you will need a ghc and yes it will take about 1-2GB of your space. well, probably you could compile xmonad on system x and use only the binary on system y, but then you lose the possibility to quickly reconfigure something. |
2022-01-09 04:51:51 +0100 | <Hash> | Or switch to dwm. |
2022-01-09 04:51:55 +0100 | <lechner> | kramer2: Couldn't match expected type ‘IO (Either Session.QueryError ())’ |
2022-01-09 04:51:59 +0100 | <Hash> | But miss out the xmonad extention ecosystem |
2022-01-09 04:52:01 +0100 | <Hash> | :( |
2022-01-09 04:52:07 +0100 | <EvanR> | I used dwm for many years |
2022-01-09 04:52:12 +0100 | <kramer2> | lechner, it looks like you are still matching IO, no Either |
2022-01-09 04:52:17 +0100 | <EvanR> | I'm better now |
2022-01-09 04:52:20 +0100 | <kramer2> | Hash, I'm curious, what is the size of your hard drive? |
2022-01-09 04:52:23 +0100 | <lechner> | Hash: or use sway |
2022-01-09 04:52:29 +0100 | <Hash> | I dunno |
2022-01-09 04:52:31 +0100 | <Hash> | let's see |
2022-01-09 04:52:41 +0100 | <Hash> | /dev/sdd2 30G 22G 7.0G 76% / |
2022-01-09 04:52:46 +0100 | <Hash> | /dev/sdd3 41G 18G 22G 45% /home |
2022-01-09 04:53:10 +0100 | <Hash> | I just need to reinstall. |
2022-01-09 04:53:19 +0100 | <yushyin> | Hash: or any other window manager which doesn't require a whole compiler toolchain for some re-configuration |
2022-01-09 04:53:24 +0100 | <Hash> | over the years you install packages adn forget about them |
2022-01-09 04:53:29 +0100 | <Hash> | ligbs and dev packs and all |
2022-01-09 04:54:05 +0100 | <EvanR> | I can't imagine linux without a ghc |
2022-01-09 04:54:13 +0100 | <EvanR> | how do you even |
2022-01-09 04:54:16 +0100 | <lechner> | Hash: afaik xmonad will never talk wayland |
2022-01-09 04:54:23 +0100 | <Hash> | Whoc ares about wayland |
2022-01-09 04:54:26 +0100 | <Hash> | what is that anyway |
2022-01-09 04:54:32 +0100 | <Hash> | prometheus movie stuff? |
2022-01-09 04:54:40 +0100 | <Hash> | wayland. Stupid name. |
2022-01-09 04:54:57 +0100 | <kramer2> | to be honest, if you're not interested in haskell beyond xmonad, I can understand why needing >1GB of space might raise some eyebrows |
2022-01-09 04:55:01 +0100 | <Hash> | basic xorg window stuff is good |
2022-01-09 04:55:13 +0100 | <Hash> | Do you see my space? |
2022-01-09 04:55:19 +0100 | <Hash> | Not enough man |
2022-01-09 04:55:21 +0100 | <Hash> | :( |
2022-01-09 04:55:40 +0100 | <Hash> | Oh well.Oh well |
2022-01-09 04:55:44 +0100 | <Hash> | oh well it's what it is. |
2022-01-09 04:55:47 +0100 | <EvanR> | you'll have to delete some of your MP3s to make room for haskell |
2022-01-09 04:55:53 +0100 | <EvanR> | or bootlegs, or whatever |
2022-01-09 04:55:54 +0100 | <Hash> | No this is just / and /home |
2022-01-09 04:56:39 +0100 | <lechner> | or http://www.nongnu.org/ratpoison/ |
2022-01-09 04:56:55 +0100 | <Hash> | I have /media and /jorel and /kalel and /valel /zorel |
2022-01-09 04:57:03 +0100 | <Hash> | That's where my data is. |
2022-01-09 04:57:15 +0100 | <Hash> | I'm talking about stupid distro packagsges |
2022-01-09 05:01:07 +0100 | yauhsien_ | (~yauhsien@118-167-43-90.dynamic-ip.hinet.net) |
2022-01-09 05:01:07 +0100 | yauhsien | (~yauhsien@118-167-43-90.dynamic-ip.hinet.net) (Read error: Connection reset by peer) |
2022-01-09 05:05:05 +0100 | justIrresolute | (~justache@user/justache) (Remote host closed the connection) |
2022-01-09 05:06:03 +0100 | justIrresolute | (~justache@user/justache) |
2022-01-09 05:09:37 +0100 | shailangsa | (~shailangs@host86-185-98-37.range86-185.btcentralplus.com) |
2022-01-09 05:09:44 +0100 | <EvanR> | with ghcup you can sidestep stupid distro packages |
2022-01-09 05:12:02 +0100 | sonny | (~sonny@bras-base-london1483w-grc-32-70-52-175-166.dsl.bell.ca) |
2022-01-09 05:18:07 +0100 | Hayek1 | (~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) |
2022-01-09 05:23:12 +0100 | Hayek1 | (~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) (Ping timeout: 268 seconds) |
2022-01-09 05:25:02 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) (Quit: leaving) |
2022-01-09 05:31:57 +0100 | Jing | (~hedgehog@240e:390:7c53:a7e1:8890:34c2:e4a2:a79e) |
2022-01-09 05:34:32 +0100 | <EvanR> | Data.List.NonEmpty is cool |
2022-01-09 05:34:46 +0100 | <EvanR> | I don't hate it |
2022-01-09 05:46:40 +0100 | deadmarshal | (~deadmarsh@95.38.231.124) |
2022-01-09 05:46:54 +0100 | Deep-Thought | (~quantum@2001:8003:7937:cf01:485e:bf6c:57df:1e44) |
2022-01-09 05:47:28 +0100 | Midjak | (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) |
2022-01-09 05:49:39 +0100 | Deep-Thought | (~quantum@2001:8003:7937:cf01:485e:bf6c:57df:1e44) (Leaving) |
2022-01-09 05:52:07 +0100 | seer | (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) |
2022-01-09 05:52:16 +0100 | waleee | (~waleee@h-98-128-229-110.NA.cust.bahnhof.se) (Ping timeout: 256 seconds) |
2022-01-09 05:52:41 +0100 | <seer> | question about custom preludes: which one should I use? |
2022-01-09 05:52:43 +0100 | seer | Inst |
2022-01-09 05:54:23 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 256 seconds) |
2022-01-09 05:55:57 +0100 | sonny | (~sonny@bras-base-london1483w-grc-32-70-52-175-166.dsl.bell.ca) () |
2022-01-09 05:57:31 +0100 | <EvanR> | none of them probably, if you're unsure |
2022-01-09 05:59:34 +0100 | dsrt^ | (~dsrt@wsip-98-188-246-242.mc.at.cox.net) |
2022-01-09 06:02:13 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 240 seconds) |
2022-01-09 06:03:20 +0100 | kimjetwav | (~user@2607:fea8:2363:8f00:215b:2bd2:2b33:135e) |
2022-01-09 06:05:05 +0100 | justIrresolute | (~justache@user/justache) (Remote host closed the connection) |
2022-01-09 06:05:44 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) |
2022-01-09 06:06:03 +0100 | justIrresolute | (~justache@user/justache) |
2022-01-09 06:06:11 +0100 | Hayek1 | (~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) |
2022-01-09 06:07:41 +0100 | Topsi1 | (~Tobias@dyndsl-095-033-023-075.ewe-ip-backbone.de) |
2022-01-09 06:09:16 +0100 | Topsi | (~Tobias@dyndsl-095-033-089-163.ewe-ip-backbone.de) (Ping timeout: 256 seconds) |
2022-01-09 06:17:54 +0100 | kitzman | (~kitzman@user/dekenevs) (Quit: C-x C-c) |
2022-01-09 06:18:45 +0100 | kitzman | (~kitzman@user/dekenevs) |
2022-01-09 06:21:59 +0100 | user0 | (~aj@154.0.137.32) |
2022-01-09 06:22:06 +0100 | user0 | (~aj@154.0.137.32) () |
2022-01-09 06:22:19 +0100 | Jing | (~hedgehog@240e:390:7c53:a7e1:8890:34c2:e4a2:a79e) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-01-09 06:26:16 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-01-09 06:29:54 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2022-01-09 06:34:21 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-09 06:34:21 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-09 06:34:21 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-09 06:39:18 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-01-09 06:48:59 +0100 | <EvanR> | in client server jargon we have verbs like get (request data, not intending to have any other effect), put (here is some data, good luck. I'm not expecting anything else. fire and forget). But what do you call a request for data, but intend for some other effect. Such as a dequeue, bump a counter, move a pointer, at the same time |
2022-01-09 06:50:12 +0100 | <EvanR> | like to get the data you had to rip it out, leaving aftermath |
2022-01-09 06:51:49 +0100 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) |
2022-01-09 06:52:07 +0100 | <EvanR> | GetUpdate, SmashAndGrab, |
2022-01-09 06:53:25 +0100 | <EvanR> | Loot |
2022-01-09 07:12:35 +0100 | deadmarshal | (~deadmarsh@95.38.231.124) (Ping timeout: 256 seconds) |
2022-01-09 07:32:05 +0100 | aeka | (~aeka@user/hiruji) (Ping timeout: 268 seconds) |
2022-01-09 07:32:41 +0100 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2022-01-09 07:35:25 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-01-09 07:37:30 +0100 | aeka | (~aeka@user/hiruji) |
2022-01-09 07:43:25 +0100 | stef204 | (~stef204@user/stef204) (Ping timeout: 240 seconds) |
2022-01-09 07:44:54 +0100 | deadmarshal | (~deadmarsh@95.38.231.124) |
2022-01-09 07:49:01 +0100 | deadmarshal | (~deadmarsh@95.38.231.124) (Ping timeout: 240 seconds) |
2022-01-09 07:52:36 +0100 | YoungFrog | (~youngfrog@2a02:a03f:c21b:f900:f484:3278:789d:d6a5) (Remote host closed the connection) |
2022-01-09 07:52:56 +0100 | YoungFrog | (~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) |
2022-01-09 07:53:04 +0100 | yauhsien_ | (~yauhsien@118-167-43-90.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-01-09 07:53:36 +0100 | yauhsien | (~yauhsien@118-167-43-90.dynamic-ip.hinet.net) |
2022-01-09 07:58:21 +0100 | acidjnk | (~acidjnk@p200300d0c7271e2764e98499ffbb1b91.dip0.t-ipconnect.de) |
2022-01-09 07:58:22 +0100 | acidjnk_new3 | (~acidjnk@p200300d0c7271e2764e98499ffbb1b91.dip0.t-ipconnect.de) |
2022-01-09 08:03:42 +0100 | yauhsien | (~yauhsien@118-167-43-90.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-01-09 08:04:13 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 240 seconds) |
2022-01-09 08:04:16 +0100 | yauhsien | (~yauhsien@118-167-43-90.dynamic-ip.hinet.net) |
2022-01-09 08:10:34 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-01-09 08:12:28 +0100 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-01-09 08:14:19 +0100 | yauhsien | (~yauhsien@118-167-43-90.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-01-09 08:14:53 +0100 | yauhsien | (~yauhsien@118-167-43-90.dynamic-ip.hinet.net) |
2022-01-09 08:15:57 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 240 seconds) |
2022-01-09 08:19:53 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2022-01-09 08:20:25 +0100 | mvk | (~mvk@2607:fea8:5cdd:f000::45db) (Quit: Going elsewhere) |
2022-01-09 08:20:51 +0100 | mvk | (~mvk@2607:fea8:5cdd:f000::45db) |
2022-01-09 08:24:53 +0100 | little_mac | (~little_ma@c-24-127-188-93.hsd1.mi.comcast.net) (Remote host closed the connection) |
2022-01-09 08:24:56 +0100 | yauhsien | (~yauhsien@118-167-43-90.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-01-09 08:25:31 +0100 | yauhsien | (~yauhsien@118-167-43-90.dynamic-ip.hinet.net) |
2022-01-09 08:25:48 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) (Remote host closed the connection) |
2022-01-09 08:25:56 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) |
2022-01-09 08:30:24 +0100 | nhatanh02 | (~satori@123.24.172.30) |
2022-01-09 08:33:51 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-01-09 08:35:33 +0100 | yauhsien | (~yauhsien@118-167-43-90.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-01-09 08:36:08 +0100 | yauhsien | (~yauhsien@118-167-43-90.dynamic-ip.hinet.net) |
2022-01-09 08:38:02 +0100 | acidjnk_new | (~acidjnk@p200300d0c7271e27182831a202be7205.dip0.t-ipconnect.de) |
2022-01-09 08:38:32 +0100 | Brumaire | (~quassel@81-64-14-121.rev.numericable.fr) |
2022-01-09 08:39:25 +0100 | Guest49 | (~Guest49@98.47.16.37) |
2022-01-09 08:40:09 +0100 | Guest49 | (~Guest49@98.47.16.37) () |
2022-01-09 08:41:09 +0100 | Hayek1 | (~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) (Ping timeout: 268 seconds) |
2022-01-09 08:41:46 +0100 | acidjnk_new3 | (~acidjnk@p200300d0c7271e2764e98499ffbb1b91.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
2022-01-09 08:41:46 +0100 | acidjnk | (~acidjnk@p200300d0c7271e2764e98499ffbb1b91.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
2022-01-09 08:42:16 +0100 | Inst | (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 256 seconds) |
2022-01-09 08:42:47 +0100 | acidjnk | (~acidjnk@p200300d0c7271e27182831a202be7205.dip0.t-ipconnect.de) |
2022-01-09 08:44:11 +0100 | xmyst | (~xmyst@ip5f5ac363.dynamic.kabel-deutschland.de) |
2022-01-09 08:44:15 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.4) |
2022-01-09 08:46:11 +0100 | yauhsien | (~yauhsien@118-167-43-90.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-01-09 08:46:46 +0100 | yauhsien | (~yauhsien@118-167-43-90.dynamic-ip.hinet.net) |
2022-01-09 08:47:26 +0100 | acidjnk | (~acidjnk@p200300d0c7271e27182831a202be7205.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-01-09 08:47:26 +0100 | acidjnk_new | (~acidjnk@p200300d0c7271e27182831a202be7205.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-01-09 08:52:29 +0100 | <gentauro> | Hash: how many partitions do you have? Cos only 40 (ish) GB for home is pretty "small" |
2022-01-09 08:53:28 +0100 | <gentauro> | I mean, I just had to do some `cloning` of my NVMe cos the `/nix/store` was eating up all my space … |
2022-01-09 08:53:42 +0100 | Inst | (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) |
2022-01-09 08:53:58 +0100 | Inst | (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) (Read error: Connection reset by peer) |
2022-01-09 08:54:01 +0100 | gentauro | not the easiest task, but I was noting everything and I will probably throw a blogpost about it :) |
2022-01-09 08:56:48 +0100 | yauhsien | (~yauhsien@118-167-43-90.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-01-09 08:57:23 +0100 | yauhsien | (~yauhsien@118-167-43-90.dynamic-ip.hinet.net) |
2022-01-09 08:58:36 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) |
2022-01-09 09:00:31 +0100 | coolnickname | (uid531864@user/coolnickname) |
2022-01-09 09:07:09 +0100 | deadmarshal | (~deadmarsh@95.38.231.124) |
2022-01-09 09:07:25 +0100 | yauhsien | (~yauhsien@118-167-43-90.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-01-09 09:08:00 +0100 | yauhsien | (~yauhsien@118-167-43-90.dynamic-ip.hinet.net) |
2022-01-09 09:10:57 +0100 | Garbanzo | (~Garbanzo@2602:304:6eac:dc10::46) (Ping timeout: 240 seconds) |
2022-01-09 09:10:57 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 09:11:06 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 09:13:39 +0100 | <Hash> | gentauro: I'm college student, not many money |
2022-01-09 09:13:44 +0100 | <Hash> | gentauro: small disk |
2022-01-09 09:13:58 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2022-01-09 09:14:01 +0100 | <Hash> | 128gb ssd |
2022-01-09 09:14:48 +0100 | <Hash> | Yeah. |
2022-01-09 09:14:52 +0100 | <Hash> | This is weird. |
2022-01-09 09:14:59 +0100 | <Hash> | I have no idea what I was thinking |
2022-01-09 09:15:25 +0100 | <Hash> | https://i.imgur.com/ko5BgNn.png |
2022-01-09 09:15:39 +0100 | <Hash> | I don't know what on sdd4 |
2022-01-09 09:15:45 +0100 | <Hash> | and ... hunh. |
2022-01-09 09:16:23 +0100 | <Hash> | I could move /var out of / and into a sep partition and mount it. |
2022-01-09 09:16:48 +0100 | <Hash> | I really just need to ge tmore funds, get more disks, and stuff |
2022-01-09 09:18:02 +0100 | yauhsien | (~yauhsien@118-167-43-90.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-01-09 09:18:37 +0100 | yauhsien | (~yauhsien@118-167-43-90.dynamic-ip.hinet.net) |
2022-01-09 09:21:09 +0100 | Hayek1 | (~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) |
2022-01-09 09:25:33 +0100 | Hayek1 | (~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) (Ping timeout: 268 seconds) |
2022-01-09 09:28:39 +0100 | yauhsien | (~yauhsien@118-167-43-90.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-01-09 09:29:14 +0100 | yauhsien | (~yauhsien@118-167-43-90.dynamic-ip.hinet.net) |
2022-01-09 09:32:13 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 09:32:53 +0100 | xmyst | (~xmyst@ip5f5ac363.dynamic.kabel-deutschland.de) (Quit: Connection closed) |
2022-01-09 09:32:56 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 09:47:52 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-01-09 09:52:40 +0100 | coolnickname | (uid531864@user/coolnickname) () |
2022-01-09 09:54:07 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2022-01-09 09:56:09 +0100 | kramer2 | (~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Session timeout)) |
2022-01-09 10:00:08 +0100 | rednaZ[m] | (~r3dnazmat@2001:470:69fc:105::ba70) (Quit: You have been kicked for being idle) |
2022-01-09 10:00:08 +0100 | TomasJakl[m] | (~jaklttchn@2001:470:69fc:105::a42) (Quit: You have been kicked for being idle) |
2022-01-09 10:03:16 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Remote host closed the connection) |
2022-01-09 10:05:05 +0100 | justIrresolute | (~justache@user/justache) (Remote host closed the connection) |
2022-01-09 10:06:04 +0100 | justIrresolute | (~justache@user/justache) |
2022-01-09 10:06:29 +0100 | thevishy | (~Nishant@2405:201:f005:c007:40d9:4255:8f71:3678) |
2022-01-09 10:07:14 +0100 | remexre | (~remexre@user/remexre) (Remote host closed the connection) |
2022-01-09 10:07:29 +0100 | remexre | (~remexre@user/remexre) |
2022-01-09 10:10:55 +0100 | Hayek1 | (~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) |
2022-01-09 10:14:18 +0100 | max22- | (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr) |
2022-01-09 10:15:30 +0100 | Hayek1 | (~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) (Ping timeout: 268 seconds) |
2022-01-09 10:16:35 +0100 | notzmv | (~zmv@user/notzmv) |
2022-01-09 10:17:36 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2022-01-09 10:17:36 +0100 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2022-01-09 10:17:39 +0100 | allbery_b | geekosaur |
2022-01-09 10:34:49 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) |
2022-01-09 10:35:06 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
2022-01-09 10:36:43 +0100 | <[exa]> | Hash: what are you trying to achieve? 128GB SSD should be waaaaaaaaaaaaaay more than enough for any haskelling around, unless you like decide to build the whole stackage from scratch or so |
2022-01-09 10:39:49 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Ping timeout: 240 seconds) |
2022-01-09 10:44:28 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2022-01-09 10:45:38 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-01-09 10:48:28 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-01-09 10:53:01 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2022-01-09 10:53:24 +0100 | shailangsa | (~shailangs@host86-185-98-37.range86-185.btcentralplus.com) () |
2022-01-09 11:01:07 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 11:01:24 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 11:01:26 +0100 | Hayek1 | (~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) |
2022-01-09 11:01:26 +0100 | sprout_ | (~quassel@2a02:a467:ccd6:1:d9b7:23d6:79dd:2e64) |
2022-01-09 11:04:37 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:48c8:920f:83dd:ae34) (Ping timeout: 240 seconds) |
2022-01-09 11:05:25 +0100 | Hayek1 | (~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) (Ping timeout: 240 seconds) |
2022-01-09 11:06:48 +0100 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2022-01-09 11:12:28 +0100 | rito_ | (~rito_gh@45.112.243.206) |
2022-01-09 11:22:48 +0100 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2022-01-09 11:24:33 +0100 | Sgeo_ | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2022-01-09 11:26:02 +0100 | vglfr | (~vglfr@88.155.96.35) (Ping timeout: 256 seconds) |
2022-01-09 11:33:07 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) |
2022-01-09 11:33:21 +0100 | shailangsa | (~shailangs@host86-185-98-37.range86-185.btcentralplus.com) |
2022-01-09 11:34:47 +0100 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2022-01-09 11:36:14 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds) |
2022-01-09 11:37:33 +0100 | Lord_of_Life_ | Lord_of_Life |
2022-01-09 11:46:37 +0100 | razetime | (~quassel@49.207.213.63) (Ping timeout: 240 seconds) |
2022-01-09 11:49:11 +0100 | ircs | (~ircs@2-111-85-72-cable.dk.customer.tdc.net) |
2022-01-09 11:49:50 +0100 | Hayek1 | (~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) |
2022-01-09 11:50:08 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-09 11:52:20 +0100 | ircs | (~ircs@2-111-85-72-cable.dk.customer.tdc.net) (Read error: Connection reset by peer) |
2022-01-09 11:53:57 +0100 | Hayek1 | (~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) (Ping timeout: 240 seconds) |
2022-01-09 11:56:13 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) |
2022-01-09 11:56:52 +0100 | jakalx | (~jakalx@base.jakalx.net) () |
2022-01-09 12:00:17 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-01-09 12:01:28 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 12:01:49 +0100 | dsrt^ | (~dsrt@wsip-98-188-246-242.mc.at.cox.net) (Ping timeout: 240 seconds) |
2022-01-09 12:02:34 +0100 | dsrt^ | (~dsrt@wsip-98-188-246-242.mc.at.cox.net) |
2022-01-09 12:04:04 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-01-09 12:05:59 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2022-01-09 12:12:31 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 12:12:55 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 12:15:32 +0100 | cls | (~cls@chalk.lubutu.com) |
2022-01-09 12:16:27 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2022-01-09 12:19:37 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 12:19:43 +0100 | Guest3 | (~Guest3@88.220.154.34) (Ping timeout: 256 seconds) |
2022-01-09 12:20:22 +0100 | <cls> | This is a very newbie question, but I'm trying to cabal install ipa for https://hackage.haskell.org/package/ipa-0.3.1.1 and just get "there is no package named 'ipa'". I have run cabal update. Am I doing something wrong? |
2022-01-09 12:20:23 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 12:21:30 +0100 | srk | (~sorki@user/srk) (Remote host closed the connection) |
2022-01-09 12:21:30 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 12:21:49 +0100 | srk | (~sorki@user/srk) |
2022-01-09 12:22:38 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 12:30:17 +0100 | acidjnk | (~acidjnk@p200300d0c7271e27ecbeaa17067bd269.dip0.t-ipconnect.de) |
2022-01-09 12:30:17 +0100 | acidjnk_new | (~acidjnk@p200300d0c7271e27ecbeaa17067bd269.dip0.t-ipconnect.de) |
2022-01-09 12:31:40 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2022-01-09 12:33:17 +0100 | zer0bitz | (~zer0bitz@196.244.192.60) |
2022-01-09 12:33:27 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2022-01-09 12:35:20 +0100 | <geekosaur> | seems to work here |
2022-01-09 12:39:13 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 12:39:25 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 12:39:31 +0100 | <cls> | I think the issue was because I had an out of date version of GHC. Very out of date (7.10.3)! I've got a fresh install with GHCup and it seems to be installing now. |
2022-01-09 12:40:12 +0100 | <geekosaur> | ghc shouldn't affect finding the package. maybe you got a newer cabal with it? |
2022-01-09 12:40:26 +0100 | antony | (~The_viole@203.77.49.232) |
2022-01-09 12:40:39 +0100 | <cls> | Yes, it came with a new cabal as well |
2022-01-09 12:41:15 +0100 | razetime | (~quassel@49.207.213.63) |
2022-01-09 12:49:31 +0100 | jeffz` | jeffz |
2022-01-09 12:49:31 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 12:49:45 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2022-01-09 12:50:17 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 12:50:59 +0100 | razetime | (~quassel@49.207.213.63) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2022-01-09 12:51:36 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 256 seconds) |
2022-01-09 12:52:44 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 12:53:39 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 12:55:44 +0100 | Hayek1 | (~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) |
2022-01-09 12:55:45 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 12:56:13 +0100 | Jing | (~hedgehog@240e:390:7c53:a7e1:24aa:cde6:528:d0da) |
2022-01-09 12:56:54 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 13:00:09 +0100 | Hayek1 | (~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) (Ping timeout: 268 seconds) |
2022-01-09 13:03:49 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 13:04:58 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 13:09:15 +0100 | x88x88x | (~x88x88x@149.28.53.172) (Remote host closed the connection) |
2022-01-09 13:10:06 +0100 | x88x88x | (~x88x88x@149.28.53.172) |
2022-01-09 13:11:35 +0100 | yauhsien | (~yauhsien@118-167-43-90.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-01-09 13:12:01 +0100 | __monty__ | (~toonn@user/toonn) |
2022-01-09 13:12:10 +0100 | yauhsien | (~yauhsien@118-167-43-90.dynamic-ip.hinet.net) |
2022-01-09 13:12:39 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 13:13:28 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 13:15:25 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-01-09 13:17:21 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-01-09 13:21:03 +0100 | xkuru | (~xkuru@user/xkuru) |
2022-01-09 13:21:04 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 13:21:15 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-09 13:22:18 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 13:22:37 +0100 | talismanick | (~talismani@2601:644:8500:8350::256c) (Ping timeout: 240 seconds) |
2022-01-09 13:24:29 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 13:25:25 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2022-01-09 13:25:44 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 13:27:49 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 13:28:41 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 13:31:07 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 13:31:22 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 13:34:31 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-11.elisa-laajakaista.fi) (Ping timeout: 256 seconds) |
2022-01-09 13:35:47 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-01-09 13:35:48 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 13:37:06 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 13:38:51 +0100 | zaquest | (~notzaques@5.130.79.72) (Remote host closed the connection) |
2022-01-09 13:40:23 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2022-01-09 13:41:36 +0100 | yauhsien | (~yauhsien@118-167-43-90.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-01-09 13:42:11 +0100 | yauhsien | (~yauhsien@118-167-43-90.dynamic-ip.hinet.net) |
2022-01-09 13:42:38 +0100 | Hanicef | (~gustaf@81-229-9-108-no92.tbcn.telia.com) |
2022-01-09 13:43:49 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-01-09 13:49:49 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-16.elisa-laajakaista.fi) |
2022-01-09 13:52:49 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 13:53:31 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 13:53:57 +0100 | nhatanh02 | (~satori@123.24.172.30) (Ping timeout: 240 seconds) |
2022-01-09 13:55:23 +0100 | Hayek1 | (~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) |
2022-01-09 13:59:37 +0100 | Hayek1 | (~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) (Ping timeout: 240 seconds) |
2022-01-09 14:02:17 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 14:02:30 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 14:04:33 +0100 | max22- | (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr) (Ping timeout: 256 seconds) |
2022-01-09 14:06:58 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 14:07:37 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 14:10:43 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot) |
2022-01-09 14:10:45 +0100 | Jing | (~hedgehog@240e:390:7c53:a7e1:24aa:cde6:528:d0da) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-01-09 14:11:13 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) |
2022-01-09 14:11:55 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 14:12:04 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-09 14:12:04 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-09 14:12:04 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-09 14:12:05 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 14:13:17 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2022-01-09 14:14:21 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 14:14:32 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 14:16:09 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) |
2022-01-09 14:16:09 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 14:16:37 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2022-01-09 14:17:07 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 14:17:37 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2022-01-09 14:19:17 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 14:19:58 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 14:20:13 +0100 | Jing | (~hedgehog@240e:390:7c53:a7e1:7c3e:33e9:a263:3716) |
2022-01-09 14:22:13 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 14:22:53 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 14:24:57 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 14:25:37 +0100 | mstksg | (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 240 seconds) |
2022-01-09 14:25:42 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 14:27:11 +0100 | Hayek1 | (~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) |
2022-01-09 14:27:52 +0100 | mstksg | (~jle`@cpe-23-240-75-236.socal.res.rr.com) |
2022-01-09 14:28:23 +0100 | jackson99 | (~bc8147f2@cerf.good1.com) |
2022-01-09 14:30:13 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 14:30:23 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (Remote host closed the connection) |
2022-01-09 14:30:30 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 14:32:16 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-09 14:32:42 +0100 | SummerSonw | (~The_viole@203.77.49.232) (Quit: Leaving) |
2022-01-09 14:34:13 +0100 | Hayek1 | (~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) (Ping timeout: 240 seconds) |
2022-01-09 14:34:32 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Remote host closed the connection) |
2022-01-09 14:41:47 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480::41) |
2022-01-09 14:41:49 +0100 | xff0x | (~xff0x@2001:1a81:52d4:9900:80b8:248c:472c:34e) (Ping timeout: 240 seconds) |
2022-01-09 14:42:54 +0100 | xff0x | (~xff0x@2001:1a81:52d4:9900:4d46:915d:4480:7a51) |
2022-01-09 14:44:30 +0100 | x88x88x | (~x88x88x@149.28.53.172) (Quit: ZNC - https://znc.in) |
2022-01-09 14:52:53 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 14:53:28 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2022-01-09 14:54:02 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 14:55:21 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) |
2022-01-09 14:55:41 +0100 | son0p | (~ff@181.136.122.143) |
2022-01-09 15:00:37 +0100 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2022-01-09 15:01:03 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-01-09 15:02:13 +0100 | x88x88x | (~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb) |
2022-01-09 15:02:24 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2022-01-09 15:02:58 +0100 | CiaoSen | (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2022-01-09 15:05:11 +0100 | deadmarshal | (~deadmarsh@95.38.231.124) (Ping timeout: 256 seconds) |
2022-01-09 15:07:44 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 15:07:58 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 15:08:27 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) |
2022-01-09 15:09:15 +0100 | euandreh | (~euandreh@191.181.59.160) |
2022-01-09 15:12:37 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 15:12:37 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Ping timeout: 240 seconds) |
2022-01-09 15:13:19 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 15:14:36 +0100 | nhatanh02 | (~satori@123.24.172.30) |
2022-01-09 15:15:25 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 15:15:49 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (Ping timeout: 268 seconds) |
2022-01-09 15:15:57 +0100 | uam | (uid360535@id-360535.hampstead.irccloud.com) |
2022-01-09 15:16:49 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 15:18:07 +0100 | cemguresci | (~cemguresc@2001:a61:11ff:a001:b826:a072:7137:d00a) |
2022-01-09 15:18:12 +0100 | cemguresci | (~cemguresc@2001:a61:11ff:a001:b826:a072:7137:d00a) (Client Quit) |
2022-01-09 15:19:01 +0100 | vglfr | (~vglfr@88.155.96.35) (Read error: Connection reset by peer) |
2022-01-09 15:19:12 +0100 | vglfr | (~vglfr@88.155.96.35) |
2022-01-09 15:20:01 +0100 | Hayek1 | (~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) |
2022-01-09 15:21:30 +0100 | jackson99 | (~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Ping timeout)) |
2022-01-09 15:21:46 +0100 | jassob | (~jassob@h-155-4-71-72.A785.priv.bahnhof.se) (Ping timeout: 260 seconds) |
2022-01-09 15:22:12 +0100 | xsperry | (~xs@user/xsperry) (Remote host closed the connection) |
2022-01-09 15:22:13 +0100 | max22- | (~maxime@2a01cb088335980006a2e176d919440a.ipv6.abo.wanadoo.fr) |
2022-01-09 15:22:42 +0100 | jassob | (~jassob@h-155-4-71-72.A785.priv.bahnhof.se) |
2022-01-09 15:22:52 +0100 | Hanicef | (~gustaf@81-229-9-108-no92.tbcn.telia.com) (Quit: leaving) |
2022-01-09 15:24:29 +0100 | Hayek1 | (~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) (Ping timeout: 252 seconds) |
2022-01-09 15:28:37 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480::41) (Ping timeout: 240 seconds) |
2022-01-09 15:30:54 +0100 | Hayek1 | (~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) |
2022-01-09 15:33:40 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2022-01-09 15:34:39 +0100 | rito_ | (~rito_gh@45.112.243.206) (Ping timeout: 256 seconds) |
2022-01-09 15:39:14 +0100 | dsrt^ | (~dsrt@wsip-98-188-246-242.mc.at.cox.net) (Remote host closed the connection) |
2022-01-09 15:39:17 +0100 | zincy | (~zincy@host86-151-99-97.range86-151.btcentralplus.com) |
2022-01-09 15:40:07 +0100 | antony | (~The_viole@203.77.49.232) (Quit: Leaving) |
2022-01-09 15:41:42 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293) |
2022-01-09 15:41:47 +0100 | moshet | (~moshet@179.33.156.20) |
2022-01-09 15:42:44 +0100 | shapr | (~user@2601:7c0:c202:5190:6367:969d:31ac:68f) |
2022-01-09 15:43:01 +0100 | acidjnk | (~acidjnk@p200300d0c7271e27ecbeaa17067bd269.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-01-09 15:43:01 +0100 | acidjnk_new | (~acidjnk@p200300d0c7271e27ecbeaa17067bd269.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-01-09 15:43:25 +0100 | zincy | (~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Ping timeout: 240 seconds) |
2022-01-09 15:43:39 +0100 | skreli | (~skreli@cpe-72-134-91-230.natsow.res.rr.com) |
2022-01-09 15:44:21 +0100 | skreli | (~skreli@cpe-72-134-91-230.natsow.res.rr.com) (Quit: leaving) |
2022-01-09 15:45:16 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot) |
2022-01-09 15:45:40 +0100 | zincy | (~zincy@host86-151-99-97.range86-151.btcentralplus.com) |
2022-01-09 15:48:15 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2022-01-09 15:49:58 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2022-01-09 15:50:32 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) |
2022-01-09 15:50:48 +0100 | hud | (~hud@uwyo-129-72-161-67.uwyo.edu) |
2022-01-09 15:53:44 +0100 | <hud> | hey all, not sure if this is the right place to ask about build dependencies, if I run `cabal repl -b parsec` it |
2022-01-09 15:54:16 +0100 | <hud> | s able to find the package, but if I include that in parsec in `build-depends` of my .cabal file it cant be found |
2022-01-09 15:55:18 +0100 | <jneira[m]> | hmm it should, could you post the .cabal file? |
2022-01-09 15:55:19 +0100 | <[exa]> | just to be sure -- "if I include that _in parsec_ in build-depends" -- there's a parsec section? |
2022-01-09 15:55:29 +0100 | <[exa]> | +1 please pastebin |
2022-01-09 15:55:56 +0100 | <[exa]> | also preferably the error message |
2022-01-09 15:56:29 +0100 | <hud> | https://paste.tomsmeding.com/wCBuVd60 |
2022-01-09 15:56:46 +0100 | <hud> | oh I can add multiple files hold on |
2022-01-09 15:58:11 +0100 | <[exa]> | that looks m'kay, let's see the error :] |
2022-01-09 15:58:46 +0100 | <hud> | Oh no wait I think it's just saying its redundant - all good ! |
2022-01-09 15:59:59 +0100 | <hud> | https://paste.tomsmeding.com/woIFV49V for completion - all good |
2022-01-09 16:01:10 +0100 | <[exa]> | yeah it's telling you that you should write actual code using it :D |
2022-01-09 16:02:59 +0100 | zincy | (~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Ping timeout: 256 seconds) |
2022-01-09 16:03:41 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-09 16:03:41 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-09 16:03:41 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-09 16:04:36 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) |
2022-01-09 16:09:22 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Ping timeout: 256 seconds) |
2022-01-09 16:09:56 +0100 | euandreh | (~euandreh@191.181.59.160) (Ping timeout: 256 seconds) |
2022-01-09 16:11:36 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) |
2022-01-09 16:11:54 +0100 | Brumaire | (~quassel@81-64-14-121.rev.numericable.fr) (Read error: Connection reset by peer) |
2022-01-09 16:15:09 +0100 | nunggu | (~q@gateway/tor-sasl/nunggu) (Ping timeout: 276 seconds) |
2022-01-09 16:16:26 +0100 | burnsidesLlama | (~burnsides@dhcp168-013.wadham.ox.ac.uk) |
2022-01-09 16:16:54 +0100 | nunggu | (~q@gateway/tor-sasl/nunggu) |
2022-01-09 16:17:29 +0100 | aouestbillie | (~gallup@192-222-138-215.qc.cable.ebox.net) (Remote host closed the connection) |
2022-01-09 16:17:29 +0100 | ouestbillie | (~gallup@192-222-138-215.qc.cable.ebox.net) (Remote host closed the connection) |
2022-01-09 16:21:49 +0100 | ouestbillie | (~gallup@192-222-138-215.qc.cable.ebox.net) |
2022-01-09 16:23:04 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-01-09 16:23:33 +0100 | ensyde | (~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) |
2022-01-09 16:32:53 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) |
2022-01-09 16:34:40 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-01-09 16:34:56 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2022-01-09 16:35:49 +0100 | TonyStone | (~TonyStone@2603-7080-8607-c36a-9cdb-69bc-753b-1e50.res6.spectrum.com) (Remote host closed the connection) |
2022-01-09 16:36:57 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (Ping timeout: 240 seconds) |
2022-01-09 16:37:52 +0100 | xsperry | (~xs@user/xsperry) |
2022-01-09 16:40:34 +0100 | xb0o2 | (~xb0o2@user/xb0o2) |
2022-01-09 16:41:01 +0100 | Hayek1 | (~xxx@2603-8000-b401-6099-6db0-07e1-7146-9aa1.res6.spectrum.com) (Ping timeout: 240 seconds) |
2022-01-09 16:42:16 +0100 | stef204 | (~stef204@user/stef204) |
2022-01-09 16:43:57 +0100 | shapr | (~user@2601:7c0:c202:5190:6367:969d:31ac:68f) (Ping timeout: 240 seconds) |
2022-01-09 16:45:27 +0100 | <albet70> | why IOT does not exit? |
2022-01-09 16:45:39 +0100 | <Hecate> | albet70: what |
2022-01-09 16:45:44 +0100 | <Hecate> | what do you mean by IOT? |
2022-01-09 16:45:46 +0100 | <geekosaur> | how could it exist? |
2022-01-09 16:45:52 +0100 | <Hecate> | International Organisation of Truffles? |
2022-01-09 16:46:15 +0100 | <albet70> | like the other transfer |
2022-01-09 16:46:20 +0100 | <albet70> | MaybeT |
2022-01-09 16:47:12 +0100 | <hpc> | albet70: try writing it |
2022-01-09 16:47:36 +0100 | zaquest | (~notzaques@5.130.79.72) |
2022-01-09 16:47:40 +0100 | TonyStone | (~TonyStone@2603-7080-8607-c36a-9cdb-69bc-753b-1e50.res6.spectrum.com) |
2022-01-09 16:47:56 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:f755:55d9:216b:76f6) |
2022-01-09 16:48:34 +0100 | <albet70> | IOT m (IO a) |
2022-01-09 16:48:51 +0100 | <Hecate> | what :'') |
2022-01-09 16:49:59 +0100 | <Rembane> | International Truffles <3 |
2022-01-09 16:50:13 +0100 | <Rembane> | albet70: How many IOT could you layer on top of each other? |
2022-01-09 16:50:37 +0100 | <geekosaur> | and what would this accomplish? |
2022-01-09 16:50:53 +0100 | <albet70> | there's an evil term I think, Inner Orgasme of ... |
2022-01-09 16:50:55 +0100 | <geekosaur> | think also about things like ordering of I/O actions |
2022-01-09 16:51:20 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) |
2022-01-09 16:51:24 +0100 | <hpc> | also try not to accidentally imagine things like MaybeT IO while you're working it out ;) |
2022-01-09 16:51:40 +0100 | <geekosaur> | but "try writing it" I think meant try implementing something that would work as e.g. IOT (State Int a) |
2022-01-09 16:51:54 +0100 | <hpc> | IOT (State Int) a |
2022-01-09 16:52:02 +0100 | <hpc> | data IOT m a = ??? |
2022-01-09 16:52:02 +0100 | <geekosaur> | yeh, sorry |
2022-01-09 16:52:22 +0100 | <hpc> | instance MonadTrans IOT where ??? |
2022-01-09 16:52:29 +0100 | <hpc> | see if you can fill in those blanks |
2022-01-09 16:53:13 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-01-09 16:53:15 +0100 | <hpc> | for comparison, try filling in the same blanks for MaybeT, without looking at the existing definition |
2022-01-09 16:53:46 +0100 | <hpc> | or IdentityT if you like writing code that does nothing :D |
2022-01-09 16:54:12 +0100 | <albet70> | MaybeT m Maybe a |
2022-01-09 16:57:32 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2022-01-09 16:58:51 +0100 | <albet70> | f :: a -> Either a b; traverse f [a]; if that f return Left a, it will return Left a as result, so I wonder when f doing some IO, and how it break and return when IO failed |
2022-01-09 17:00:07 +0100 | Ollie[m] | (~ollieocha@2001:470:69fc:105::41a5) (Quit: You have been kicked for being idle) |
2022-01-09 17:00:12 +0100 | fsckskye[m] | (~kmatrixth@2001:470:69fc:105::1:3b2f) (Quit: You have been kicked for being idle) |
2022-01-09 17:00:17 +0100 | <albet70> | for example, f take input from that list and check the database with that input and it may fail |
2022-01-09 17:00:18 +0100 | AlainJourez[m] | (~sherekahn@2001:470:69fc:105::1:4a71) (Quit: You have been kicked for being idle) |
2022-01-09 17:00:31 +0100 | Ollie[m] | (~ollieocha@2001:470:69fc:105::41a5) |
2022-01-09 17:00:43 +0100 | fsckskye[m] | (~kmatrixth@2001:470:69fc:105::1:3b2f) |
2022-01-09 17:00:45 +0100 | fsckskye[m] | (~kmatrixth@2001:470:69fc:105::1:3b2f) () |
2022-01-09 17:00:55 +0100 | AlainJourez[m] | (~sherekahn@2001:470:69fc:105::1:4a71) |
2022-01-09 17:00:58 +0100 | <albet70> | when it failed how to break the next action |
2022-01-09 17:02:39 +0100 | <hpc> | :t traverse |
2022-01-09 17:02:40 +0100 | <lambdabot> | (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b) |
2022-01-09 17:03:27 +0100 | <hpc> | the effects of f will show up in the result |
2022-01-09 17:04:10 +0100 | <hpc> | since the result is (IO [b]), it just does all the (f a) stuff in sequence |
2022-01-09 17:04:32 +0100 | <hpc> | when t = [], it's just each element from start to end of the list |
2022-01-09 17:04:58 +0100 | <hpc> | for other Traversable types, it could be some more interesting ordering |
2022-01-09 17:08:03 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (Ping timeout: 268 seconds) |
2022-01-09 17:09:08 +0100 | <albet70> | "hpc :since the result is (IO [b]), it just does all the (f a) stuff in sequence", but when IO b failed, I hope it breaks the list and return, not to the end of the list |
2022-01-09 17:09:11 +0100 | YoungFrog | (~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in) |
2022-01-09 17:09:44 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) |
2022-01-09 17:10:30 +0100 | <hpc> | it will, if f fails in a way that short-circuits |
2022-01-09 17:10:34 +0100 | <albet70> | in other languages, do IO in a for statement, and use break or return to brea the list |
2022-01-09 17:10:46 +0100 | YoungFrog | (~youngfrog@2a02:a03f:c21b:f900:f89b:2c73:97b1:7ba3) |
2022-01-09 17:11:31 +0100 | <albet70> | but IO doesn't have the effect of short circuit |
2022-01-09 17:12:03 +0100 | <albet70> | Left a or Nothing can do short circuit |
2022-01-09 17:12:19 +0100 | Jing | (~hedgehog@240e:390:7c53:a7e1:7c3e:33e9:a263:3716) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-01-09 17:13:34 +0100 | <Rembane> | albet70: If you use throwIO IO can shortcircuit. |
2022-01-09 17:13:45 +0100 | <Rembane> | I wonder if this works... |
2022-01-09 17:13:56 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (Ping timeout: 252 seconds) |
2022-01-09 17:14:07 +0100 | <albet70> | "🟢 Rembane :albet70: If you use throwIO IO can shortcircuit.", that's raiseError in some languages |
2022-01-09 17:14:17 +0100 | geekosaur | wonders if spoon can do that |
2022-01-09 17:14:35 +0100 | <albet70> | what if f :: a -> IO b -> Either a b? |
2022-01-09 17:14:40 +0100 | <Rembane> | albet70: It is indeed. :) |
2022-01-09 17:16:13 +0100 | <Rembane> | > throwIO Overflow |
2022-01-09 17:16:15 +0100 | <lambdabot> | error: |
2022-01-09 17:16:15 +0100 | <lambdabot> | • No instance for (Typeable a0) |
2022-01-09 17:16:15 +0100 | <lambdabot> | arising from a use of ‘show_M87663382183998972258’ |
2022-01-09 17:16:17 +0100 | <Rembane> | Ach. |
2022-01-09 17:16:43 +0100 | <geekosaur> | % throwIO Overflow |
2022-01-09 17:16:43 +0100 | <yahb> | geekosaur: *** Exception: arithmetic overflow |
2022-01-09 17:17:26 +0100 | <albet70> | f :: a -> IO b -> Either a b; traverse f [a]; would this do the trick? if IO b failed, short circuit? |
2022-01-09 17:17:27 +0100 | <Rembane> | There we go. yahb > lambdabot |
2022-01-09 17:18:56 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) |
2022-01-09 17:19:43 +0100 | pragma- | (~chaos@user/pragmatic-chaos) |
2022-01-09 17:20:16 +0100 | Jing | (~hedgehog@240e:390:7c53:a7e1:3074:63b1:2e6b:fa59) |
2022-01-09 17:21:01 +0100 | kaph | (~kaph@net-2-38-107-19.cust.vodafonedsl.it) (Ping timeout: 240 seconds) |
2022-01-09 17:23:07 +0100 | <albet70> | can we do some IO in f :: a-> Either a b? |
2022-01-09 17:24:00 +0100 | <albet70> | in Either do notation , can we print something? |
2022-01-09 17:24:35 +0100 | <geekosaur> | no |
2022-01-09 17:25:27 +0100 | <albet70> | no the both? or only the last? |
2022-01-09 17:25:28 +0100 | <EvanR> | that's not purely functional, sorry |
2022-01-09 17:25:38 +0100 | <geekosaur> | no to both |
2022-01-09 17:25:42 +0100 | uam | (uid360535@id-360535.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2022-01-09 17:25:45 +0100 | <geekosaur> | do notation is not what enables I/O |
2022-01-09 17:25:51 +0100 | EvanR | points at the "purely functional" sign above the door |
2022-01-09 17:25:57 +0100 | <albet70> | and in EitherT? |
2022-01-09 17:26:12 +0100 | <geekosaur> | % putStrLn "hi" >> putStrLn "bye" >> return () |
2022-01-09 17:26:12 +0100 | <yahb> | geekosaur: hi; bye |
2022-01-09 17:26:29 +0100 | <EvanR> | ExceptT e IO |
2022-01-09 17:26:42 +0100 | <EvanR> | is a monad |
2022-01-09 17:26:51 +0100 | <EvanR> | it can do IO with liftIO |
2022-01-09 17:27:23 +0100 | <albet70> | but ExceptT can't do short circuit |
2022-01-09 17:27:33 +0100 | <EvanR> | that's what ExceptT ... does |
2022-01-09 17:27:59 +0100 | <EvanR> | it's basically EitherT |
2022-01-09 17:28:13 +0100 | <albet70> | can it? |
2022-01-09 17:28:22 +0100 | <EvanR> | it was just a branding issue back in the day |
2022-01-09 17:29:08 +0100 | <EvanR> | it's one of many ways to short circuit |
2022-01-09 17:29:21 +0100 | <EvanR> | cancel a computation early |
2022-01-09 17:29:43 +0100 | <albet70> | so f :: a -> EitherT a m b; traverse f [a]; would short circuit? |
2022-01-09 17:29:57 +0100 | <albet70> | EitherT a IO b |
2022-01-09 17:30:17 +0100 | <EvanR> | just saying I think ExceptT is more idiomatic now for that |
2022-01-09 17:30:33 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-01-09 17:30:45 +0100 | <EvanR> | and yes |
2022-01-09 17:31:19 +0100 | <EvanR> | but to break out of a for loop purposes there is probably a better way |
2022-01-09 17:36:10 +0100 | Jing | (~hedgehog@240e:390:7c53:a7e1:3074:63b1:2e6b:fa59) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-01-09 17:36:16 +0100 | <albet70> | > let f x = do { liftIO print x; if (x>3) then EithertT Left x else return x } in traverse f [1..6] |
2022-01-09 17:36:17 +0100 | <lambdabot> | error: |
2022-01-09 17:36:17 +0100 | <lambdabot> | Data constructor not in scope: |
2022-01-09 17:36:17 +0100 | <lambdabot> | EithertT :: (a1 -> Either a1 b0) -> b1 -> m b1 |
2022-01-09 17:36:36 +0100 | <EvanR> | :k ExceptT |
2022-01-09 17:36:37 +0100 | <lambdabot> | * -> (* -> *) -> * -> * |
2022-01-09 17:37:37 +0100 | moshet | (~moshet@179.33.156.20) (Ping timeout: 256 seconds) |
2022-01-09 17:37:37 +0100 | <EvanR> | :t runExceptT |
2022-01-09 17:37:38 +0100 | <lambdabot> | ExceptT e m a -> m (Either e a) |
2022-01-09 17:38:31 +0100 | <EvanR> | 😎 |
2022-01-09 17:38:44 +0100 | <albet70> | in Either, how the 'return x' know it suppose to be Left a or Right a? |
2022-01-09 17:38:58 +0100 | <EvanR> | convention says Right is pure |
2022-01-09 17:39:15 +0100 | moshet | (~moshet@179.33.156.20) |
2022-01-09 17:39:28 +0100 | <EvanR> | Left is an effect |
2022-01-09 17:39:32 +0100 | <albet70> | "EvanR :convention says Right is pure", so Left isn't pure? |
2022-01-09 17:39:43 +0100 | <EvanR> | Left is interpreted as an effect |
2022-01-09 17:39:56 +0100 | <EvanR> | namely, short circuit |
2022-01-09 17:40:03 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-01-09 17:41:20 +0100 | <EvanR> | by pure I meant the API, pure :: a -> Either e a |
2022-01-09 17:41:33 +0100 | <EvanR> | which is the same as return |
2022-01-09 17:41:43 +0100 | <albet70> | EvanR the notorious Cont can do short circuit, right? |
2022-01-09 17:42:38 +0100 | <EvanR> | CPS can do short circuit, and Cont lets you compose CPS programs |
2022-01-09 17:43:02 +0100 | <EvanR> | if you don't want to do it manually |
2022-01-09 17:43:39 +0100 | <EvanR> | either way, black magic |
2022-01-09 17:44:17 +0100 | vysn | (~vysn@user/vysn) (Ping timeout: 240 seconds) |
2022-01-09 17:44:35 +0100 | <albet70> | black magic in haskell, not in others? |
2022-01-09 17:44:40 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) |
2022-01-09 17:44:48 +0100 | <EvanR> | not really a haskell thing |
2022-01-09 17:44:53 +0100 | <albet70> | or related to lazy strategy |
2022-01-09 17:45:15 +0100 | <EvanR> | continuations is (was?) a big deal in lisps |
2022-01-09 17:45:39 +0100 | <EvanR> | rather, using them in non trivial ways |
2022-01-09 17:46:10 +0100 | <EvanR> | control flow shenanigans |
2022-01-09 17:46:21 +0100 | <albet70> | but in haskell in Cont, capture the fixed point can do loop, this depends on lazy strategy, other languages can't do ir |
2022-01-09 17:46:27 +0100 | <albet70> | do it |
2022-01-09 17:46:43 +0100 | <EvanR> | by itself, just lazy evaluation lets you do many things, Cont or not |
2022-01-09 17:47:03 +0100 | <EvanR> | CPS or not |
2022-01-09 17:48:07 +0100 | <albet70> | the funny thing is lisp use macro to do capture continuation thing |
2022-01-09 17:48:14 +0100 | <albet70> | not the function |
2022-01-09 17:49:09 +0100 | <albet70> | and only a few languages support macro |
2022-01-09 17:49:44 +0100 | <EvanR> | all languages support C preprocessor xD |
2022-01-09 17:49:59 +0100 | <EvanR> | enjoy |
2022-01-09 17:51:58 +0100 | <albet70> | hehe it sounds like all languages can turn to machine languages or assembly languages |
2022-01-09 17:55:03 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-01-09 17:55:59 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-01-09 17:57:44 +0100 | <EvanR> | myLoop k = do{ tired <- ... work work work ...; if tired then k else myLoop k } |
2022-01-09 18:02:07 +0100 | <albet70> | "EvanR :myLoop k = do{ tired <- ... work work work ...; if tired then k else myLoop k }", myLoop k :: ? |
2022-01-09 18:02:19 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (Ping timeout: 268 seconds) |
2022-01-09 18:03:38 +0100 | Franciman | (~Franciman@mx1.fracta.dev) |
2022-01-09 18:03:40 +0100 | Franciman | (~Franciman@mx1.fracta.dev) (WeeChat 3.4) |
2022-01-09 18:04:36 +0100 | <EvanR> | :t fix \myLoop k -> do { tired <- return False; if tired then k else myLoop k } |
2022-01-09 18:04:36 +0100 | <lambdabot> | error: |
2022-01-09 18:04:36 +0100 | <lambdabot> | Unexpected lambda expression in function application: |
2022-01-09 18:04:36 +0100 | <lambdabot> | \ myLoop k |
2022-01-09 18:04:45 +0100 | <EvanR> | :t fix $ \myLoop k -> do { tired <- return False; if tired then k else myLoop k } |
2022-01-09 18:04:46 +0100 | <lambdabot> | Monad m => m b -> m b |
2022-01-09 18:05:04 +0100 | <EvanR> | k : Monad m => m b |
2022-01-09 18:06:35 +0100 | <EvanR> | k breaks out of the loop |
2022-01-09 18:12:27 +0100 | shapr | (~user@2601:7c0:c202:5190:232c:3331:7d0c:8370) |
2022-01-09 18:12:36 +0100 | kaph | (~kaph@net-2-38-107-19.cust.vodafonedsl.it) |
2022-01-09 18:16:21 +0100 | <albet70> | fix depends lazy strategy, can u do it in python or js? |
2022-01-09 18:16:50 +0100 | <EvanR> | not a fix thing |
2022-01-09 18:16:59 +0100 | <hpc> | you can write fix for functions, but not for other types of data |
2022-01-09 18:17:07 +0100 | <hpc> | you can do the myLoop thing, but not |
2022-01-09 18:17:10 +0100 | <hpc> | > fix (1:) |
2022-01-09 18:17:12 +0100 | <lambdabot> | [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1... |
2022-01-09 18:17:20 +0100 | <EvanR> | :t let myLoop k = do { tired <- return False; if tired then k else myLoop k } in myLoop |
2022-01-09 18:17:21 +0100 | <lambdabot> | Monad m => m b -> m b |
2022-01-09 18:17:29 +0100 | <EvanR> | no you can't do that in javascript |
2022-01-09 18:18:49 +0100 | <EvanR> | how to do things in javascript is a whole nother channel |
2022-01-09 18:20:17 +0100 | thevishy | (~Nishant@2405:201:f005:c007:40d9:4255:8f71:3678) (Quit: Leaving) |
2022-01-09 18:20:42 +0100 | zincy | (~zincy@host86-151-99-97.range86-151.btcentralplus.com) |
2022-01-09 18:24:57 +0100 | zincy | (~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Ping timeout: 240 seconds) |
2022-01-09 18:25:18 +0100 | <int-e> | EvanR: may I suggest blink >> myLoop k for the last bit ;) |
2022-01-09 18:26:02 +0100 | <EvanR> | what meme is this |
2022-01-09 18:26:16 +0100 | <[itchyjunk]> | https://bpa.st/2O4A |
2022-01-09 18:26:43 +0100 | <[itchyjunk]> | Almost everything i am writing seems to involve writing a helper function then composing it with one of the functions in question :x |
2022-01-09 18:27:22 +0100 | <EvanR> | if you're lucky the helper function is a composition of existing functions |
2022-01-09 18:27:28 +0100 | <int-e> | [itchyjunk]: \x xs -> xs ++ [x] <-- you don't have to name your little helpers |
2022-01-09 18:27:53 +0100 | s2k | (~textual@122.172.234.134) |
2022-01-09 18:27:53 +0100 | <[itchyjunk]> | ah right, i keep forgetting i can do that |
2022-01-09 18:27:54 +0100 | <int-e> | now... can we do that with foldr without making it quadratic time? :-P |
2022-01-09 18:28:17 +0100 | <[itchyjunk]> | Hopefully the answer is no (or maybe yes if you are not me). |
2022-01-09 18:28:37 +0100 | econo | (uid147250@user/econo) |
2022-01-09 18:28:50 +0100 | <EvanR> | foldr can do anything |
2022-01-09 18:28:51 +0100 | jackson99 | (~bc8147f2@cerf.good1.com) |
2022-01-09 18:28:55 +0100 | <int-e> | (somewhat hard, it's essentially the "implement foldl in terms of foldr" exercise, and that involves picking the right return type for the foldr) |
2022-01-09 18:28:59 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-01-09 18:29:10 +0100 | <EvanR> | because that is the only way to access a list, it turns out |
2022-01-09 18:29:15 +0100 | <[itchyjunk]> | can it be applied to itself? answer is probably yet but i don't think i ma ready for it |
2022-01-09 18:29:36 +0100 | <jackson99> | [itchyjunk] you will have an easier time implementing reverse with foldl |
2022-01-09 18:29:36 +0100 | <[itchyjunk]> | hmm how do you mean that's the only way to access a list? :o |
2022-01-09 18:30:01 +0100 | <[itchyjunk]> | jackson99, yeah i think since foldr gave an identity, same thing with foldl might return a reverse function? |
2022-01-09 18:30:08 +0100 | <[itchyjunk]> | foldl (:) [] xs ? |
2022-01-09 18:30:13 +0100 | <jackson99> | close |
2022-01-09 18:30:16 +0100 | <[itchyjunk]> | :< |
2022-01-09 18:30:21 +0100 | <jackson99> | you just have to massage (:) so that types check |
2022-01-09 18:30:28 +0100 | <[itchyjunk]> | hmmm |
2022-01-09 18:30:31 +0100 | <jackson99> | :t foldl |
2022-01-09 18:30:32 +0100 | <lambdabot> | Foldable t => (b -> a -> b) -> b -> t a -> b |
2022-01-09 18:31:19 +0100 | <jackson99> | accumulator (list in your case) is the first argument, element of the list is the second argument |
2022-01-09 18:32:03 +0100 | zincy | (~zincy@host86-151-99-97.range86-151.btcentralplus.com) |
2022-01-09 18:32:24 +0100 | <[itchyjunk]> | ah i see |
2022-01-09 18:34:13 +0100 | pragma- | (~chaos@user/pragmatic-chaos) (Bye!) |
2022-01-09 18:34:48 +0100 | <[itchyjunk]> | wait `foldl (:) [] xs` where lets say xs = [1..5] would be (:) applies to 5 and [] so `(:) 5 []` right? |
2022-01-09 18:35:07 +0100 | <EvanR> | :t foldl (:) [] [1..5] |
2022-01-09 18:35:08 +0100 | <lambdabot> | error: |
2022-01-09 18:35:08 +0100 | <lambdabot> | • Occurs check: cannot construct the infinite type: a ~ [a] |
2022-01-09 18:35:08 +0100 | <lambdabot> | Expected type: [a] -> [a] -> [a] |
2022-01-09 18:35:09 +0100 | <EvanR> | bzzzz |
2022-01-09 18:35:39 +0100 | <[itchyjunk]> | :t (:) |
2022-01-09 18:35:40 +0100 | <lambdabot> | a -> [a] -> [a] |
2022-01-09 18:35:53 +0100 | <EvanR> | first arg to foldl visitor is the accumulator |
2022-01-09 18:36:14 +0100 | <EvanR> | which should be a reversed list |
2022-01-09 18:36:33 +0100 | zincy | (~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Ping timeout: 256 seconds) |
2022-01-09 18:36:57 +0100 | <jackson99> | > foldl _ [] [] |
2022-01-09 18:37:00 +0100 | <lambdabot> | error: |
2022-01-09 18:37:02 +0100 | <lambdabot> | • Found hole: _ :: [a] -> a0 -> [a] |
2022-01-09 18:37:04 +0100 | <lambdabot> | Where: ‘a0’ is an ambiguous type variable |
2022-01-09 18:37:10 +0100 | <[itchyjunk]> | oh `foldr f base list` is `f lastElement base` but for `foldl f base list` its `f base lastElement` ? |
2022-01-09 18:37:20 +0100 | <jackson99> | can you write that function? [a] -> a -> [a] |
2022-01-09 18:37:23 +0100 | <jackson99> | using (:) |
2022-01-09 18:37:55 +0100 | <jackson99> | [itchyjunk] yes. base is usually called accumulator |
2022-01-09 18:38:21 +0100 | s2k | (~textual@122.172.234.134) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-01-09 18:38:52 +0100 | <EvanR> | no, foldl f base list becomes f everythingDone [] |
2022-01-09 18:39:00 +0100 | <EvanR> | base is buried in a pile of computation by that point |
2022-01-09 18:39:18 +0100 | <jackson99> | it is base on first call |
2022-01-09 18:39:42 +0100 | <EvanR> | in foldl' yes |
2022-01-09 18:40:06 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds) |
2022-01-09 18:41:02 +0100 | <EvanR> | everythingDone is the reversed list in this case |
2022-01-09 18:41:28 +0100 | <EvanR> | the 'first call' never happened yet |
2022-01-09 18:42:05 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-01-09 18:43:05 +0100 | <jackson99> | I'm not sure all this is helpful to someone trying to write [a] -> a -> [a] function |
2022-01-09 18:43:57 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (Ping timeout: 240 seconds) |
2022-01-09 18:43:59 +0100 | <EvanR> | well foldl f base list becoming f base LastElement is wrong |
2022-01-09 18:44:17 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-01-09 18:44:20 +0100 | <EvanR> | at least |
2022-01-09 18:45:09 +0100 | <[itchyjunk]> | hmm, foldl takes the second argument and first element of the list so in `foldl (go2) [] [1..5]`, i take [] and 1 and does `go2 [] x` where go2 xs x = x : xs |
2022-01-09 18:45:13 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2022-01-09 18:45:18 +0100 | aplainze1akind | (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
2022-01-09 18:45:49 +0100 | <EvanR> | yeah |
2022-01-09 18:45:53 +0100 | <[itchyjunk]> | 1:[] -> 2:1:[] |
2022-01-09 18:45:54 +0100 | <[itchyjunk]> | hmmm |
2022-01-09 18:46:11 +0100 | <jackson99> | > let go2 xs x = x : xs in foldl go2 [] [1..5] |
2022-01-09 18:46:13 +0100 | <lambdabot> | [5,4,3,2,1] |
2022-01-09 18:46:19 +0100 | <jackson99> | we have a function for this btw |
2022-01-09 18:46:21 +0100 | <jackson99> | @src flip |
2022-01-09 18:46:21 +0100 | <lambdabot> | flip f x y = f y x |
2022-01-09 18:46:21 +0100 | <[itchyjunk]> | ahh my code had a typo |
2022-01-09 18:46:27 +0100 | <[itchyjunk]> | i wrote foldr instead of foldl |
2022-01-09 18:46:39 +0100 | <jackson99> | > foldl (flip (:)) [1..5] |
2022-01-09 18:46:41 +0100 | <lambdabot> | <[Integer] -> [Integer]> |
2022-01-09 18:46:46 +0100 | <jackson99> | > foldl (flip (:)) [] [1..5] |
2022-01-09 18:46:47 +0100 | <lambdabot> | [5,4,3,2,1] |
2022-01-09 18:46:48 +0100 | <EvanR> | foldl and foldr are similarly named, but wildly different |
2022-01-09 18:47:00 +0100 | <EvanR> | don't put them in the same drawer in your mind xD |
2022-01-09 18:47:09 +0100 | <[itchyjunk]> | https://bpa.st/DC5A |
2022-01-09 18:47:20 +0100 | <[itchyjunk]> | Yes, this is very trippy. |
2022-01-09 18:47:25 +0100 | zincy | (~zincy@host86-151-99-97.range86-151.btcentralplus.com) |
2022-01-09 18:47:52 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-01-09 18:48:10 +0100 | <EvanR> | in general it helps to figure out a way to write out intermediate steps of a lazy computation |
2022-01-09 18:48:14 +0100 | <EvanR> | then you can visualize what's going on |
2022-01-09 18:48:58 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2022-01-09 18:49:16 +0100 | <EvanR> | foldl (flip (:)) [] [1,2,3,4,5] is the first step |
2022-01-09 18:49:20 +0100 | <EvanR> | or zeroth step |
2022-01-09 18:49:25 +0100 | <EvanR> | then |
2022-01-09 18:49:28 +0100 | <polyphem> | [itchyjunk] : foldr op nil xs substitutes (:) with op and [] with nil in xs , think that way |
2022-01-09 18:50:58 +0100 | <[itchyjunk]> | hmm |
2022-01-09 18:50:59 +0100 | <EvanR> | foldl (flip (:)) (1:[]) [2,3,4,5] is the next step |
2022-01-09 18:51:09 +0100 | <EvanR> | see |
2022-01-09 18:51:18 +0100 | <[itchyjunk]> | oh flip is a real function? hmmmm |
2022-01-09 18:51:21 +0100 | <EvanR> | yes |
2022-01-09 18:51:24 +0100 | <c_wraith> | I don't think that way. I think about how on non-empty lists, foldr reduces to a call to f, while foldl reduces to a call to foldl. That's the key difference to me. |
2022-01-09 18:51:37 +0100 | <[itchyjunk]> | thought you were using as a placeholder for the idea lol |
2022-01-09 18:52:11 +0100 | <EvanR> | an example of skipping the helper function by using existing functions and putting them together |
2022-01-09 18:52:24 +0100 | <jackson99> | itchyjunk, you don't have to name every trivial function btw, foldl (\acc x -> x : acc) would work too |
2022-01-09 18:52:27 +0100 | <EvanR> | which you can only do after learning the "existing" vocab |
2022-01-09 18:52:27 +0100 | SomeoneElse | (~SomeoneEl@c-24-34-241-188.hsd1.ma.comcast.net) |
2022-01-09 18:52:57 +0100 | <jackson99> | or just flip, as was mentioned several times above |
2022-01-09 18:53:45 +0100 | <polyphem> | foldr (+) 0 (1:2:3:[]) == 1+2+3+0 |
2022-01-09 18:54:17 +0100 | <EvanR> | [itchyjunk], did you see my two steps above? if you go ahead and write out all 5 (6?) steps I hope it's very clear and beautiful! |
2022-01-09 18:54:52 +0100 | <jackson99> | > foldr (+) z [a,b,c,d] |
2022-01-09 18:54:53 +0100 | <lambdabot> | a + (b + (c + (d + z))) |
2022-01-09 18:54:56 +0100 | <jackson99> | > foldl (+) z [a,b,c,d] |
2022-01-09 18:54:57 +0100 | <lambdabot> | z + a + b + c + d |
2022-01-09 18:55:14 +0100 | SomeoneElse | (~SomeoneEl@c-24-34-241-188.hsd1.ma.comcast.net) () |
2022-01-09 18:55:24 +0100 | <EvanR> | the final form of folding Exprs kind of loses something |
2022-01-09 18:55:26 +0100 | deadmarshal | (~deadmarsh@95.38.231.124) |
2022-01-09 18:56:14 +0100 | <jackson99> | hmm, probably easier to visualize: |
2022-01-09 18:56:17 +0100 | <jackson99> | > foldr f z [a,b,c,d] |
2022-01-09 18:56:19 +0100 | <lambdabot> | f a (f b (f c (f d z))) |
2022-01-09 18:56:21 +0100 | <jackson99> | > foldl f z [a,b,c,d] |
2022-01-09 18:56:22 +0100 | <lambdabot> | f (f (f (f z a) b) c) d |
2022-01-09 18:56:52 +0100 | <[itchyjunk]> | yes i can just barely follow along the notation but i think it makes sense |
2022-01-09 18:57:04 +0100 | <EvanR> | my notation was literally haskell expressions xD |
2022-01-09 18:57:08 +0100 | <EvanR> | of your example |
2022-01-09 18:58:01 +0100 | <[itchyjunk]> | right! |
2022-01-09 18:58:52 +0100 | kimjetwav | (~user@2607:fea8:2363:8f00:215b:2bd2:2b33:135e) (Remote host closed the connection) |
2022-01-09 18:59:00 +0100 | <sofviic[m]> | foldr = 'accumulates' starting from the right |
2022-01-09 18:59:00 +0100 | <sofviic[m]> | foldl = 'accumulates' starting from the left |
2022-01-09 18:59:09 +0100 | <EvanR> | oof... |
2022-01-09 18:59:09 +0100 | kimjetwav | (~user@2607:fea8:2363:8f00:1b40:b56a:3751:6306) |
2022-01-09 18:59:22 +0100 | ouestbillie | (~gallup@192-222-138-215.qc.cable.ebox.net) (Ping timeout: 256 seconds) |
2022-01-09 18:59:56 +0100 | <polyphem> | [itchyjunk]: heres a fun tal about intuition for list folds : https://www.youtube.com/watch?v=t9pxo7L8mS0 |
2022-01-09 19:00:06 +0100 | <polyphem> | *talk* |
2022-01-09 19:01:25 +0100 | zincy | (~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Ping timeout: 240 seconds) |
2022-01-09 19:03:03 +0100 | <[itchyjunk]> | Hm there are conferences where there are talks just about fold? interesting! |
2022-01-09 19:04:23 +0100 | <EvanR> | well, the idea of folding things goes beyond looping through a list |
2022-01-09 19:04:33 +0100 | <EvanR> | IT'S KIND OF A BIG DEAL |
2022-01-09 19:04:38 +0100 | <[itchyjunk]> | ah |
2022-01-09 19:06:47 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-01-09 19:07:38 +0100 | kimjetwav | (~user@2607:fea8:2363:8f00:1b40:b56a:3751:6306) (Remote host closed the connection) |
2022-01-09 19:07:41 +0100 | CiaoSen | (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
2022-01-09 19:07:55 +0100 | kimjetwav | (~user@2607:fea8:2363:8f00:62f3:c8e:2d83:a34f) |
2022-01-09 19:10:48 +0100 | dyeplexer | (~dyeplexer@user/dyeplexer) |
2022-01-09 19:15:01 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) |
2022-01-09 19:15:09 +0100 | jgeerds | (~jgeerds@55d4bbed.access.ecotel.net) |
2022-01-09 19:15:14 +0100 | zer0bitz | (~zer0bitz@196.244.192.60) (Ping timeout: 256 seconds) |
2022-01-09 19:15:24 +0100 | johnw | (~johnw@2607:f6f0:3004:1:c8b4:50ff:fef8:6bf0) |
2022-01-09 19:18:57 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (Ping timeout: 240 seconds) |
2022-01-09 19:24:18 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-01-09 19:24:22 +0100 | rito_ | (~rito_gh@45.112.243.149) |
2022-01-09 19:25:48 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-09 19:25:48 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-09 19:25:48 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-09 19:29:47 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-01-09 19:33:47 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-01-09 19:36:44 +0100 | <[itchyjunk]> | "" is an empty string right? |
2022-01-09 19:36:55 +0100 | <[itchyjunk]> | Is that the best way to talk about nil case of a string? |
2022-01-09 19:36:56 +0100 | <geekosaur> | yes |
2022-01-09 19:37:06 +0100 | <geekosaur> | what is "nil case"? |
2022-01-09 19:37:10 +0100 | <monochrom> | It is one of the many best ways. |
2022-01-09 19:37:21 +0100 | <geekosaur> | also, since String is [Char], |
2022-01-09 19:37:28 +0100 | <geekosaur> | > [] :: String |
2022-01-09 19:37:30 +0100 | <lambdabot> | "" |
2022-01-09 19:37:44 +0100 | <EvanR> | it's literally the empty string (list) |
2022-01-09 19:38:50 +0100 | <[itchyjunk]> | hmm |
2022-01-09 19:39:50 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-01-09 19:40:23 +0100 | <EvanR> | probably falls in the same mindblowing category of tech such as 'zero' and 'no op' |
2022-01-09 19:40:29 +0100 | dyeplexer | (~dyeplexer@user/dyeplexer) (Remote host closed the connection) |
2022-01-09 19:41:56 +0100 | <EvanR> | https://en.wikipedia.org/wiki/Zero-ohm_link |
2022-01-09 19:42:03 +0100 | <monochrom> | Nah in this case it is the surprise that since String = [Char], list syntax works. |
2022-01-09 19:42:48 +0100 | CiaoSen | (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2022-01-09 19:43:32 +0100 | <EvanR> | yeah I kind of wouldn't complain if String became an abstract type and was not a list |
2022-01-09 19:44:31 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-09 19:44:31 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-09 19:44:31 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-09 19:44:46 +0100 | <monochrom> | Performance police complains that String is not an abstract type. >:) |
2022-01-09 19:44:48 +0100 | <jackson99> | I wouldn't complain if it became alias for Text |
2022-01-09 19:44:49 +0100 | <EvanR> | though decades of code would probably complain |
2022-01-09 19:46:03 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-01-09 19:48:00 +0100 | <johnw> | or just make lazy Text available through the Prelude |
2022-01-09 19:48:20 +0100 | <johnw> | I never use String, but it means importing and enabling OverloadingStrings everywhere, all the time |
2022-01-09 19:48:31 +0100 | <johnw> | I should make a macro for that |
2022-01-09 19:48:51 +0100 | <EvanR> | standard pile of imports everywhere is another story |
2022-01-09 19:49:00 +0100 | Jupy7er | (~Jupy7er@2001:d08:e3:b1:dd4e:c9da:9c60:5d27) |
2022-01-09 19:49:40 +0100 | Jupy7er | (~Jupy7er@2001:d08:e3:b1:dd4e:c9da:9c60:5d27) (Client Quit) |
2022-01-09 19:49:48 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-01-09 19:49:51 +0100 | <johnw> | I wish I could manage language features in another Haskell module (not cabal) so that I could import that in and have everything. Project preludes. |
2022-01-09 19:52:42 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) |
2022-01-09 19:56:28 +0100 | little_mac | (~little_ma@2601:410:4300:3ce0:54ff:c767:ef1d:433e) |
2022-01-09 19:57:07 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-01-09 19:58:53 +0100 | kimjetwav | (~user@2607:fea8:2363:8f00:62f3:c8e:2d83:a34f) (Remote host closed the connection) |
2022-01-09 20:00:17 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-09 20:00:17 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-09 20:00:17 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-09 20:03:53 +0100 | max22- | (~maxime@2a01cb088335980006a2e176d919440a.ipv6.abo.wanadoo.fr) (Ping timeout: 252 seconds) |
2022-01-09 20:04:37 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:8d43:554e:d62c:915d) (Ping timeout: 240 seconds) |
2022-01-09 20:05:27 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) |
2022-01-09 20:08:12 +0100 | AlexNoo | (~AlexNoo@178.34.162.219) (Read error: Connection reset by peer) |
2022-01-09 20:08:56 +0100 | Topsi1 | (~Tobias@dyndsl-095-033-023-075.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
2022-01-09 20:10:12 +0100 | deadmarshal | (~deadmarsh@95.38.231.124) (Ping timeout: 256 seconds) |
2022-01-09 20:10:19 +0100 | s2k | (~textual@122.172.234.134) |
2022-01-09 20:12:41 +0100 | AlexNoo | (~AlexNoo@178.34.162.219) |
2022-01-09 20:15:23 +0100 | <[itchyjunk]> | I have done confused myself again |
2022-01-09 20:15:44 +0100 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) |
2022-01-09 20:16:44 +0100 | <[itchyjunk]> | If i want to take two string and remove every char in second that is also present in one, is my base case take a char and a string and remove that char from the string? |
2022-01-09 20:16:50 +0100 | <[itchyjunk]> | i think so, right? |
2022-01-09 20:16:59 +0100 | kimjetwav | (~user@2607:fea8:2363:8f00:62f3:c8e:2d83:a34f) |
2022-01-09 20:17:08 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-01-09 20:17:15 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-01-09 20:17:18 +0100 | <[itchyjunk]> | ah, i think i have solved that case actually |
2022-01-09 20:17:19 +0100 | <[itchyjunk]> | https://bpa.st/7ETQ |
2022-01-09 20:17:48 +0100 | <[itchyjunk]> | i think i just need to tweak my blah so it can take a string and i can recurse through stuff |
2022-01-09 20:20:15 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (Ping timeout: 256 seconds) |
2022-01-09 20:20:55 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) |
2022-01-09 20:21:17 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2022-01-09 20:21:25 +0100 | hololeap | (~hololeap@user/hololeap) |
2022-01-09 20:22:42 +0100 | <[exa]> | iteratee_: sounds like a combination of 'filter' and 'elem' |
2022-01-09 20:23:42 +0100 | <[exa]> | oh sorry, misfired highlight. Originally to [itchyjunk] ^ |
2022-01-09 20:23:53 +0100 | <hololeap> | anyone have any idea how to run LogicT branches in parallel? |
2022-01-09 20:24:09 +0100 | <[itchyjunk]> | hmm, well i asks me to use foldr to solve it ;x |
2022-01-09 20:24:18 +0100 | <hololeap> | this is what I tried, but I get nothing but fizzled sparks: parChoice s = runEval . fmap choice . parList s |
2022-01-09 20:25:03 +0100 | <[exa]> | hololeap: is that even possible given there are cuts and everything? |
2022-01-09 20:25:13 +0100 | <hololeap> | I have no idea :/ |
2022-01-09 20:26:04 +0100 | <EvanR> | [itchyjunk], did you write filter already using foldr |
2022-01-09 20:26:30 +0100 | <EvanR> | if so, you technically used foldr xD |
2022-01-09 20:26:33 +0100 | <[exa]> | there's the "fair conjunction" and "fair disjunction" combinators that iirc don't go well with parallel |
2022-01-09 20:27:36 +0100 | <[itchyjunk]> | I have not written filter already using foldr (filter at all) |
2022-01-09 20:28:00 +0100 | <EvanR> | oh well, |
2022-01-09 20:28:03 +0100 | <[itchyjunk]> | I should maybe do some filter stuff, but i think i can solve this problem :x i'll look at filter in near (far?) future |
2022-01-09 20:28:25 +0100 | <EvanR> | it sounds like it's doing a lot at once |
2022-01-09 20:28:54 +0100 | <hololeap> | [exa]: my idea was that each branch (in this case) is equally likely to return a result, so have them run in parallel and return the first success |
2022-01-09 20:28:56 +0100 | <EvanR> | since there are two lists I'm not sure you can do with only 1 foldr |
2022-01-09 20:29:36 +0100 | <[exa]> | hololeap: what if it backtracks outside the parallelizable area (restarting your parallel spawner)? |
2022-01-09 20:29:56 +0100 | <[exa]> | anyway my view is pretty much naive on this but I expect trouble :D |
2022-01-09 20:30:09 +0100 | <hololeap> | that's fine. any feedback is welcome |
2022-01-09 20:30:41 +0100 | <hololeap> | I'm also very new to the parallel side of haskell |
2022-01-09 20:30:41 +0100 | <[exa]> | perhaps manually running a few logicTs using a normal parallel strategy would suffice with speed and prevent the possible weirdness? |
2022-01-09 20:31:02 +0100 | max22- | (~maxime@2a01cb0883359800fc4f47b740d6e929.ipv6.abo.wanadoo.fr) |
2022-01-09 20:32:30 +0100 | <hololeap> | I'll keep reading/thinking about it |
2022-01-09 20:33:06 +0100 | <[exa]> | if you know all branches, you can just "ping" them with `par` a bit in advance before the branches, and then run the branches normally |
2022-01-09 20:33:34 +0100 | <[exa]> | *before the branching |
2022-01-09 20:33:57 +0100 | <hololeap> | I thought that was what my code did |
2022-01-09 20:35:28 +0100 | <hololeap> | choice is from parser-combinators, btw: https://hackage.haskell.org/package/parser-combinators-1.3.0/docs/Control-Monad-Combinators.html#v… |
2022-01-09 20:36:27 +0100 | <hololeap> | oh, asum is more canonical |
2022-01-09 20:36:38 +0100 | <hololeap> | same thing though |
2022-01-09 20:36:44 +0100 | <[itchyjunk]> | I am trying to understand this error at the bottom of this paste : https://bpa.st/LEVQ |
2022-01-09 20:37:05 +0100 | <[exa]> | hololeap: what's the type after `fmap choice` ? |
2022-01-09 20:37:26 +0100 | <hololeap> | parChoice :: forall m a. Alternative m => Strategy (m a) -> [m a] -> m a |
2022-01-09 20:37:31 +0100 | <[exa]> | [itchyjunk]: likely too much parens around ++ |
2022-01-09 20:37:53 +0100 | <[itchyjunk]> | hmm |
2022-01-09 20:38:06 +0100 | <hololeap> | so it's Eval (m a) |
2022-01-09 20:38:12 +0100 | <[exa]> | [itchyjunk]: likely no parens in that line are necessary |
2022-01-09 20:38:19 +0100 | <[exa]> | except for the patternmatch |
2022-01-09 20:38:37 +0100 | <[itchyjunk]> | i was getting ome error without the parens too :< |
2022-01-09 20:39:02 +0100 | <[itchyjunk]> | oh.. |
2022-01-09 20:39:13 +0100 | <[itchyjunk]> | the (++) is no good too? |
2022-01-09 20:39:14 +0100 | <[exa]> | perhaps you want `:` instd of `++` |
2022-01-09 20:39:27 +0100 | <[exa]> | because you're adding a single element from the left, yeah? |
2022-01-09 20:39:32 +0100 | <[itchyjunk]> | I originally had : but my blah returns a list right? |
2022-01-09 20:39:43 +0100 | <[itchyjunk]> | returns a string |
2022-01-09 20:40:07 +0100 | <[exa]> | hololeap: anyway I would expect the stuff to expand to something like: branch1val `par` branch2val `par` branch2val `par` LogicT something |
2022-01-09 20:40:35 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-01-09 20:40:51 +0100 | <[exa]> | [itchyjunk]: why does it return a string? |
2022-01-09 20:41:05 +0100 | <[exa]> | maybe we should put a proper name on the blah |
2022-01-09 20:41:27 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-01-09 20:41:29 +0100 | <[exa]> | what is it supposed to do actually? |
2022-01-09 20:41:31 +0100 | <[itchyjunk]> | blah takes a char c and a string s and removes all occurance of c from s and returns a string |
2022-01-09 20:42:04 +0100 | <[exa]> | it can't because it doesn't recurse |
2022-01-09 20:42:15 +0100 | <hololeap> | [itchyjunk]: the issue is that you have parens around ++ |
2022-01-09 20:42:28 +0100 | <hololeap> | `(blah x y ys) (++) (go xs y ys)` is very different than `(blah x y ys) ++ (go xs y ys)` |
2022-01-09 20:42:42 +0100 | <[exa]> | yap ^ |
2022-01-09 20:42:54 +0100 | <[itchyjunk]> | [exa], blah is working fine, i test it with myRmv |
2022-01-09 20:43:10 +0100 | <[itchyjunk]> | oh, myRmv takes a char and a string and removes the char from the string |
2022-01-09 20:43:19 +0100 | <[itchyjunk]> | blah is a helper function for myRmv :< |
2022-01-09 20:43:26 +0100 | <[itchyjunk]> | wait, maybe i see the issue |
2022-01-09 20:43:37 +0100 | <[itchyjunk]> | hololeap, right, i removed the ()'s and now it compiles |
2022-01-09 20:43:42 +0100 | <[itchyjunk]> | but I am getting some logical error |
2022-01-09 20:44:14 +0100 | <[exa]> | so blah is `prefixUnlessEqual` or something? |
2022-01-09 20:45:47 +0100 | <[itchyjunk]> | I don't know what that is :x. my `myRmv "apple" 'a'` returns "pple" |
2022-01-09 20:46:12 +0100 | <EvanR> | not exactly a strenuous test |
2022-01-09 20:46:15 +0100 | <[itchyjunk]> | in case of `myRemove` i want `myRemove "apple" "ap"` to return "le" |
2022-01-09 20:46:22 +0100 | remexre | (~remexre@user/remexre) (Remote host closed the connection) |
2022-01-09 20:46:35 +0100 | <EvanR> | what about "apapalaea" 'a' |
2022-01-09 20:46:36 +0100 | <[itchyjunk]> | I am getting a "non exhaustive patters for go" as an error currently |
2022-01-09 20:46:37 +0100 | remexre | (~remexre@user/remexre) |
2022-01-09 20:46:45 +0100 | <[itchyjunk]> | it reutnrs pple |
2022-01-09 20:46:52 +0100 | <EvanR> | cool |
2022-01-09 20:47:04 +0100 | <[itchyjunk]> | *Main> myRmv "apapalaea" 'a' |
2022-01-09 20:47:04 +0100 | <[itchyjunk]> | "pple" |
2022-01-09 20:47:20 +0100 | <[itchyjunk]> | This is why i am thinking my issue is with the go and/or myRemove function |
2022-01-09 20:47:47 +0100 | <[itchyjunk]> | Maybe i am just missing some base case i need to address |
2022-01-09 20:47:49 +0100 | <int-e> | > "applesauce" \\ "cause" |
2022-01-09 20:47:51 +0100 | <lambdabot> | "pplae" |
2022-01-09 20:47:51 +0100 | <hololeap> | [itchyjunk]: you'll have to scan the first list for every letter in the second list. your blah function really should have the signature: blah :: String -> Char -> String -> String |
2022-01-09 20:48:03 +0100 | <[itchyjunk]> | "*** Exception: myRemove.hs:8:1-42: Non-exhaustive patterns in function go |
2022-01-09 20:48:12 +0100 | <int-e> | oh right, that does this odd multiset difference thing |
2022-01-09 20:48:34 +0100 | <[itchyjunk]> | hololeap, that's my `go` signature |
2022-01-09 20:49:03 +0100 | <hololeap> | true, but I fail to see your point |
2022-01-09 20:49:21 +0100 | <[exa]> | [itchyjunk]: `go` can't handle the end case with empty list |
2022-01-09 20:50:02 +0100 | <[itchyjunk]> | hmm go gets 2 lists and hmmmmm |
2022-01-09 20:50:16 +0100 | [itchyjunk] | can't seem to handle the case with empty list either |
2022-01-09 20:50:57 +0100 | <[itchyjunk]> | ah |
2022-01-09 20:52:43 +0100 | <[exa]> | [itchyjunk]: what about doing it the other way, running through the string and allowing letters through only if they are not in the list of forbidden letters? |
2022-01-09 20:52:57 +0100 | <[exa]> | (sounds a bit more like foldr to me) |
2022-01-09 20:53:06 +0100 | <hololeap> | hopefully this isn't too close to giving away the answer, but |
2022-01-09 20:53:11 +0100 | <hololeap> | > blah :: String -> Char -> String -> String ; blah s0 c s = if any (== c) s0 then s else c:s |
2022-01-09 20:53:12 +0100 | <lambdabot> | <hint>:1:44: error: parse error on input ‘;’ |
2022-01-09 20:53:19 +0100 | <hololeap> | % blah :: String -> Char -> String -> String ; blah s0 c s = if any (== c) s0 then s else c:s |
2022-01-09 20:53:20 +0100 | <yahb> | hololeap: |
2022-01-09 20:53:28 +0100 | <EvanR> | if you write filter with foldr, and elems with foldr, and combine them, you technically used foldr |
2022-01-09 20:53:33 +0100 | <EvanR> | er, elem |
2022-01-09 20:53:38 +0100 | <EvanR> | :t elem |
2022-01-09 20:53:39 +0100 | <lambdabot> | (Foldable t, Eq a) => a -> t a -> Bool |
2022-01-09 20:53:42 +0100 | <EvanR> | bah |
2022-01-09 20:53:46 +0100 | <[exa]> | it's very foldy, yes |
2022-01-09 20:54:02 +0100 | <geekosaur> | % :t elem @[] |
2022-01-09 20:54:02 +0100 | <yahb> | geekosaur: Eq a => a -> [a] -> Bool |
2022-01-09 20:54:17 +0100 | <[exa]> | [itchyjunk]: if I get the code correctly, the thing you are doing now is kinda headed towards foldl |
2022-01-09 20:55:05 +0100 | <[itchyjunk]> | hmm |
2022-01-09 20:56:12 +0100 | <[itchyjunk]> | go [] y ys = y:ys |
2022-01-09 20:56:27 +0100 | <[itchyjunk]> | if the list of things to removee is empty, just accumulate y into the accumulator, no? |
2022-01-09 20:56:40 +0100 | nhatanh02 | (~satori@123.24.172.30) (Ping timeout: 256 seconds) |
2022-01-09 20:56:42 +0100 | <hololeap> | aren't you supposed to use foldr? |
2022-01-09 20:56:57 +0100 | <[itchyjunk]> | yes i am using foldr |
2022-01-09 20:57:48 +0100 | <EvanR> | you're using recursion |
2022-01-09 20:58:01 +0100 | <EvanR> | maybe the problem should have said, use foldr and not recursion |
2022-01-09 20:58:10 +0100 | <[exa]> | +1 ^ |
2022-01-09 20:58:15 +0100 | <[itchyjunk]> | https://bpa.st/PWZA |
2022-01-09 20:58:19 +0100 | <hololeap> | % foldr (:) "" "abcd" |
2022-01-09 20:58:19 +0100 | <yahb> | hololeap: "abcd" |
2022-01-09 20:58:28 +0100 | <[itchyjunk]> | oh i should be doing this without recursion? |
2022-01-09 20:58:34 +0100 | <hololeap> | foldr is already building the list back in the correct direction |
2022-01-09 20:58:35 +0100 | <[exa]> | likely |
2022-01-09 20:58:35 +0100 | <EvanR> | foldr is all you need |
2022-01-09 20:58:37 +0100 | ouestbillie | (~gallup@142.169.33.81) |
2022-01-09 20:58:41 +0100 | <[itchyjunk]> | hmmmmmmmmmmmmmmmmmmmmmmmmmmmmm |
2022-01-09 20:58:49 +0100 | <[itchyjunk]> | maybe i will just start over then |
2022-01-09 20:58:54 +0100 | <EvanR> | though likely to only 1 foldr |
2022-01-09 20:58:58 +0100 | <EvanR> | NOT only 1 |
2022-01-09 20:59:16 +0100 | ouestbillie | (~gallup@142.169.33.81) (Client Quit) |
2022-01-09 20:59:25 +0100 | moshet | (~moshet@179.33.156.20) (Ping timeout: 240 seconds) |
2022-01-09 20:59:33 +0100 | ouestbillie | (~gallup@142.169.33.81) |
2022-01-09 20:59:53 +0100 | <[itchyjunk]> | yup, this is too convoluted for my own good. From scratch! |
2022-01-09 21:00:03 +0100 | <[exa]> | [itchyjunk]: if you get "ap" and "apple", imagine the problem as solving a small instance ('a':"pple") and deciding whether to return the whole thing or just continue with the result of processing "pple" |
2022-01-09 21:01:33 +0100 | <[itchyjunk]> | well i wanna take 'a' from "ap" and go through each char of "apple" and see if there is a 'a' in that list. then do the same with 'p' i think? |
2022-01-09 21:01:43 +0100 | <[exa]> | that's foldl |
2022-01-09 21:01:46 +0100 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Ping timeout: 268 seconds) |
2022-01-09 21:01:49 +0100 | <[itchyjunk]> | @_@ |
2022-01-09 21:01:59 +0100 | <[exa]> | because you can't produce the result by tiny bits |
2022-01-09 21:02:03 +0100 | <[itchyjunk]> | hmmm |
2022-01-09 21:02:16 +0100 | <[exa]> | do it the other way, take 'a' from apple and decide if you can send it to output or not |
2022-01-09 21:03:01 +0100 | <[itchyjunk]> | interesting.. guess i don't really understand foldr vs foldl very well. okay, get 'a' from "apple" and make a decision. i'll try this |
2022-01-09 21:03:16 +0100 | <EvanR> | "see if x is in list" with foldr is fine |
2022-01-09 21:03:28 +0100 | <EvanR> | then you can cancel early if it is |
2022-01-09 21:03:38 +0100 | <hololeap> | foldr naturally builds the new list in the correct direction. you only have to use (:), not (++) |
2022-01-09 21:04:24 +0100 | <[exa]> | the question is "can you produce partial output"? with recursing over the string, you can decide that "l" will be a part of output before processing the final "l". With recursing over the forbidden characters, you are never sure your output isn't going to get erased by the next forbidden character |
2022-01-09 21:04:43 +0100 | <[exa]> | * the final "e" |
2022-01-09 21:05:10 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-01-09 21:05:21 +0100 | <hololeap> | [itchyjunk]: for starters try to implement filter with foldr. that will get you most of the way to your answer |
2022-01-09 21:05:25 +0100 | <hololeap> | :t filter |
2022-01-09 21:05:26 +0100 | <lambdabot> | (a -> Bool) -> [a] -> [a] |
2022-01-09 21:05:35 +0100 | juhp | (~juhp@128.106.188.82) (Ping timeout: 256 seconds) |
2022-01-09 21:05:46 +0100 | <[itchyjunk]> | oh okay. implement filter with foldr it is then |
2022-01-09 21:06:31 +0100 | <EvanR> | someone was asking if the answer to a Bool question can return partial output? xD |
2022-01-09 21:07:00 +0100 | <[itchyjunk]> | Maybe true / Maybe false |
2022-01-09 21:07:07 +0100 | <EvanR> | file not found |
2022-01-09 21:07:13 +0100 | <hpc> | EvanR: :D |
2022-01-09 21:07:49 +0100 | <[exa]> | data Bool' = False | True | :¯\_(ツ)_/¯ |
2022-01-09 21:07:50 +0100 | juhp | (~juhp@128.106.188.82) |
2022-01-09 21:09:21 +0100 | <hpc> | fun fact, https://thedailywtf.com/articles/What_Is_Truth_0x3f_ is 17 years old |
2022-01-09 21:10:41 +0100 | ouestbillie | (~gallup@142.169.33.81) (Read error: Connection reset by peer) |
2022-01-09 21:14:15 +0100 | kronicma1 | (user76545@neotame.csclub.uwaterloo.ca) (Ping timeout: 250 seconds) |
2022-01-09 21:14:44 +0100 | <EvanR> | old enough to die for your country but not old enough to drink |
2022-01-09 21:14:50 +0100 | <EvanR> | sorry wrong channel |
2022-01-09 21:15:34 +0100 | ouestbillie | (~gallup@modemcable053.204-20-96.mc.videotron.ca) |
2022-01-09 21:15:57 +0100 | kronicma1 | (user27604@neotame.csclub.uwaterloo.ca) |
2022-01-09 21:16:37 +0100 | roboguy | (~roboguy@user/roboguy) |
2022-01-09 21:17:04 +0100 | <[itchyjunk]> | It seems to work? https://bpa.st/C4UQ |
2022-01-09 21:17:17 +0100 | <[itchyjunk]> | wait |
2022-01-09 21:17:27 +0100 | <[itchyjunk]> | wth, i never used foldr.. |
2022-01-09 21:17:32 +0100 | <[itchyjunk]> | what am i doing? xD |
2022-01-09 21:17:46 +0100 | <[exa]> | [itchyjunk]: yeah now transform to foldr |
2022-01-09 21:17:49 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2022-01-09 21:18:55 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-01-09 21:19:17 +0100 | <EvanR> | you can basically write any function on List with foldr |
2022-01-09 21:20:29 +0100 | <hpc> | not just basically, you actually can |
2022-01-09 21:24:38 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-01-09 21:24:52 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-09 21:24:52 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-09 21:24:52 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-09 21:27:56 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-01-09 21:31:14 +0100 | Guest80 | (~Guest80@p200300d5572443000b6ab41968a4cb33.dip0.t-ipconnect.de) |
2022-01-09 21:31:30 +0100 | <[itchyjunk]> | when i implement myFoldFilter using foldr, myFoldFilter :: (a -> Bool) -> [a] -> [a] right? |
2022-01-09 21:31:50 +0100 | <[itchyjunk]> | the signature my the filter function made with foldr would be the same? |
2022-01-09 21:33:44 +0100 | <polyphem> | [itchyjunk]: yes |
2022-01-09 21:34:19 +0100 | <EvanR> | same store front, different back office |
2022-01-09 21:34:27 +0100 | ouestbil1ie | (~gallup@142.169.33.81) |
2022-01-09 21:34:36 +0100 | <[itchyjunk]> | lol |
2022-01-09 21:34:55 +0100 | <ephemient> | > let f a k (b:bs) = (a, b) : k bs; f _ _ _ = [] in foldr f (const []) ['a'..] [1..] -- just experimenting out of curiosity. if there's a way to define `f` in terms of `foldr` it's not obvious to me |
2022-01-09 21:34:56 +0100 | <lambdabot> | [('a',1),('b',2),('c',3),('d',4),('e',5),('f',6),('g',7),('h',8),('i',9),('j... |
2022-01-09 21:35:03 +0100 | <[itchyjunk]> | i need to massage the (a -> Bool) to soemthing that works with (a -> b -> b) |
2022-01-09 21:35:39 +0100 | s2k | (~textual@122.172.234.134) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-01-09 21:35:49 +0100 | <EvanR> | or just us the (a -> Bool) in the lambda |
2022-01-09 21:35:53 +0100 | <EvanR> | use |
2022-01-09 21:36:09 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-01-09 21:36:40 +0100 | Guest80 | (~Guest80@p200300d5572443000b6ab41968a4cb33.dip0.t-ipconnect.de) (Quit: Client closed) |
2022-01-09 21:39:10 +0100 | <EvanR> | style question |
2022-01-09 21:39:38 +0100 | ouestbillie | (~gallup@modemcable053.204-20-96.mc.videotron.ca) (Quit: Lost terminal) |
2022-01-09 21:39:45 +0100 | <EvanR> | according to my flawless proof and understand of this algorithm, the list returned by my IO action will be empty. If it isn't, something is very wrong. So |
2022-01-09 21:39:56 +0100 | <EvanR> | also there's a warning for ignoring the result in do notation |
2022-01-09 21:40:30 +0100 | <EvanR> | do { [] <- myAction; ... carry on } -- if I do this, I appease the warning and dare my proof and understanding to be right. Good idea? |
2022-01-09 21:40:50 +0100 | <geekosaur> | probably a good idea to test that understanding, yes |
2022-01-09 21:40:52 +0100 | <EvanR> | or what's another way to deal with it |
2022-01-09 21:41:08 +0100 | <geekosaur> | although I might prefer to capture the output and print what I got if it wasn't empty |
2022-01-09 21:41:12 +0100 | nattiestnate | (~nate@2001:448a:20a0:4134:25e:715f:d637:5263) |
2022-01-09 21:41:25 +0100 | <geekosaur> | help me figure out what I got wrong |
2022-01-09 21:41:28 +0100 | <EvanR> | ah |
2022-01-09 21:42:15 +0100 | <int-e> | > let f a k = fst . foldr (\b ~(_, bs) -> ((a, b) : k bs, b : bs)) ([],[]) in foldr f (const []) ['a'..] [1..] -- ephemient |
2022-01-09 21:42:17 +0100 | <lambdabot> | [('a',1),('b',2),('c',3),('d',4),('e',5),('f',6),('g',7),('h',8),('i',9),('j... |
2022-01-09 21:42:28 +0100 | nattiestnate | (~nate@2001:448a:20a0:4134:25e:715f:d637:5263) (Client Quit) |
2022-01-09 21:42:31 +0100 | <int-e> | ephemient: it's quite awkward though |
2022-01-09 21:42:47 +0100 | <EvanR> | I've had advice in the past to not do something like this, so the program has a chance of continuing on despite some horrible error having happened (in writing the code) |
2022-01-09 21:43:10 +0100 | <geekosaur> | nowhere in there did I hear "is a good idea" with respect to writing everything with foldr :) |
2022-01-09 21:43:29 +0100 | koalillo | (~koalillo@2a0c:5a81:b804:9900:6f90:e8ce:c737:204c) |
2022-01-09 21:43:45 +0100 | <ephemient> | ah, the fst lets you select between the cases |
2022-01-09 21:43:49 +0100 | <int-e> | ephemient: and if you add a few more tweaks the code is likely to explode |
2022-01-09 21:43:50 +0100 | <ephemient> | that is pretty awkward |
2022-01-09 21:43:53 +0100 | <geekosaur> | EvanR, maybe. but too often ime that kind of logic is the logic of dynamic languages that silently deliver garbage |
2022-01-09 21:44:16 +0100 | ouestbil1ie | (~gallup@142.169.33.81) (Ping timeout: 256 seconds) |
2022-01-09 21:45:10 +0100 | <int-e> | ephemient: note also the loss of sharing on `bs` (which becomes relevant if k actually uses it) |
2022-01-09 21:45:22 +0100 | <EvanR> | also, I wonder where "let it crash" fits into this |
2022-01-09 21:45:48 +0100 | <c_wraith> | "let it crash" is "we won't prevent garbage, but at least we won't propagate it" |
2022-01-09 21:46:30 +0100 | <EvanR> | this is kind of like, "not only let it crash, cause it to crash more" |
2022-01-09 21:47:54 +0100 | <hpc> | sometimes the most correct thing to do is be as wrong as possible |
2022-01-09 21:47:59 +0100 | <EvanR> | lol |
2022-01-09 21:48:01 +0100 | Garbanzo | (~Garbanzo@2602:304:6eac:dc10::46) |
2022-01-09 21:48:06 +0100 | acidjnk | (~acidjnk@p200300d0c7271e945c697a298a149d84.dip0.t-ipconnect.de) |
2022-01-09 21:48:06 +0100 | acidjnk_new | (~acidjnk@p200300d0c7271e945c697a298a149d84.dip0.t-ipconnect.de) |
2022-01-09 21:48:58 +0100 | ft | (~ft@shell.chaostreff-dortmund.de) (Quit: leaving) |
2022-01-09 21:49:11 +0100 | ft | (~ft@shell.chaostreff-dortmund.de) |
2022-01-09 21:49:15 +0100 | <[exa]> | ah the good old full-scale crashes, absolute units of crashage. |
2022-01-09 21:50:12 +0100 | <hololeap> | [itchyjunk]: you'll need to use an if-then-else statement using your (a -> Bool) and the given a to get a -> [a] -> [a] |
2022-01-09 21:50:29 +0100 | <Hecate> | I deeply dislike MonadFail |
2022-01-09 21:51:12 +0100 | <EvanR> | oh ... this is MonadFail territory now, I forgot |
2022-01-09 21:51:19 +0100 | <c_wraith> | I'm happy with MonadFail as much better solution to pattern-match failures than putting "fail" in monad was |
2022-01-09 21:51:49 +0100 | <Hecate> | c_wraith: which instance of MonadFail do you use? |
2022-01-09 21:51:55 +0100 | <Hecate> | (I also deeply dislike fail) |
2022-01-09 21:52:22 +0100 | <c_wraith> | Mostly IO's, but I get some value out of []'s |
2022-01-09 21:55:10 +0100 | <Hecate> | c_wraith: any reason why you don't directly raise exceptions or empty lists? |
2022-01-09 21:55:41 +0100 | <c_wraith> | because the whole point of using a library is to not rewrite its code |
2022-01-09 21:59:03 +0100 | <ephemient> | myIOActionReturningHopefullyNullList >>= unless <$> null <*> fail . show -- ugly but it'll show the list in the IO exception… |
2022-01-09 21:59:11 +0100 | zincy | (~zincy@host86-151-99-97.range86-151.btcentralplus.com) |
2022-01-09 21:59:23 +0100 | <int-e> | > let foo :: (a -> b) -> [a] -> [b]; foo f [] = []; foo f (a:as) = f a : (foo (\a -> (f a, f a)) as >>= \(a,b) -> [a,b]) |
2022-01-09 21:59:25 +0100 | <lambdabot> | <no location info>: error: |
2022-01-09 21:59:25 +0100 | <lambdabot> | not an expression: ‘let foo :: (a -> b) -> [a] -> [b]; foo f [] = []; fo... |
2022-01-09 21:59:32 +0100 | <int-e> | > let foo :: (a -> b) -> [a] -> [b]; foo f [] = []; foo f (a:as) = f a : (foo (\a -> (f a, f a)) as >>= \(a,b) -> [a,b]) in foo id [1..4] |
2022-01-09 21:59:34 +0100 | <lambdabot> | [1,2,2,3,3,3,3,4,4,4,4,4,4,4,4] |
2022-01-09 22:00:22 +0100 | <int-e> | ephemient: ^^ another thing that will be awkward with foldr (because the type of f changes in the recursive calls) |
2022-01-09 22:00:55 +0100 | <int-e> | though one can probably make it work with an existential |
2022-01-09 22:01:52 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-01-09 22:02:33 +0100 | hololeap_ | (~hololeap@user/hololeap) |
2022-01-09 22:04:12 +0100 | hololeap | (~hololeap@user/hololeap) (Ping timeout: 276 seconds) |
2022-01-09 22:04:33 +0100 | hololeap_ | hololeap |
2022-01-09 22:04:40 +0100 | <hololeap> | it looks like my earlier question is a subset of how you can run multiple computations in parallel and only return the first one that completes. does anyone know? I'm skimming Marlow's book and I don't see it |
2022-01-09 22:05:23 +0100 | <Rembane> | hololeap: Doesn't the async library have a function for that? I might be misremembering. |
2022-01-09 22:05:32 +0100 | <c_wraith> | race handles two computations |
2022-01-09 22:05:51 +0100 | <c_wraith> | to handle multiples, you'd need to fold it |
2022-01-09 22:05:53 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2022-01-09 22:06:23 +0100 | <hololeap> | uh, yeah but can I run each computation using race on multiple cores? |
2022-01-09 22:06:49 +0100 | <c_wraith> | if you're using the threaded RTS with an approprate -N command line argument |
2022-01-09 22:06:53 +0100 | <EvanR> | if all the computations racing should agree in the sense of definedness there's lub |
2022-01-09 22:06:57 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) (Remote host closed the connection) |
2022-01-09 22:07:23 +0100 | coot | (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) |
2022-01-09 22:09:27 +0100 | <[itchyjunk]> | wait i think the solution just came to me |
2022-01-09 22:09:39 +0100 | koalillo | (~koalillo@2a0c:5a81:b804:9900:6f90:e8ce:c737:204c) () |
2022-01-09 22:09:47 +0100 | <[itchyjunk]> | is this a solution to implementing filter with foldr ? https://bpa.st/CPTA |
2022-01-09 22:09:55 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-01-09 22:10:00 +0100 | <hololeap> | EvanR: this is what I'm finding. is this it? https://hackage.haskell.org/package/ghc-8.10.2/docs/Demand.html#v:lubDmd |
2022-01-09 22:11:51 +0100 | coot | (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Remote host closed the connection) |
2022-01-09 22:12:01 +0100 | <hololeap> | [itchyjunk]: sort of, but you're missing whatever comes after "else" in the go function |
2022-01-09 22:12:13 +0100 | coot | (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) |
2022-01-09 22:12:33 +0100 | <EvanR> | https://hackage.haskell.org/package/lub |
2022-01-09 22:12:44 +0100 | <[itchyjunk]> | oh wtf |
2022-01-09 22:12:48 +0100 | <[itchyjunk]> | it was supposed to be else xs |
2022-01-09 22:12:50 +0100 | <[itchyjunk]> | :< |
2022-01-09 22:12:57 +0100 | <hololeap> | then yes, that is correct |
2022-01-09 22:13:41 +0100 | <[itchyjunk]> | https://bpa.st/HDDQ |
2022-01-09 22:13:44 +0100 | <[itchyjunk]> | ah okay |
2022-01-09 22:14:09 +0100 | coot | (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Remote host closed the connection) |
2022-01-09 22:14:34 +0100 | coot | (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) |
2022-01-09 22:17:08 +0100 | rito_ | (~rito_gh@45.112.243.149) (Quit: Leaving) |
2022-01-09 22:18:00 +0100 | <hololeap> | EvanR: that looks interesting, although I'm not sure how to use it. (fib 10) `lub` (fib 999999999) -- I would want both computations to run in parallel and hopefully return (fib 10) |
2022-01-09 22:18:18 +0100 | <EvanR> | yeah no, lub is for when the values agree |
2022-01-09 22:18:48 +0100 | <EvanR> | rather, having a common "definedness upper bound", those two don't |
2022-01-09 22:19:32 +0100 | <EvanR> | in Async there are combinators for racing many threads |
2022-01-09 22:19:36 +0100 | <hololeap> | ok, so something using race from async then |
2022-01-09 22:22:01 +0100 | <hololeap> | but that introduces the IO monad. no way to do this on pure computations without IO coming in?? |
2022-01-09 22:22:28 +0100 | <int-e> | @let data T a b = T { unT :: forall b'. (a -> b') -> ([b'] -> [b]) -> [b] } |
2022-01-09 22:22:29 +0100 | <lambdabot> | Defined. |
2022-01-09 22:22:36 +0100 | <int-e> | > let aux a (T as) = T (\f r -> as (\a -> (f a, f a)) (r . (f a :) . (>>= \(a,b) -> [a,b]))) in unT (foldr aux (T (\_ r -> r [])) [1..4]) id id |
2022-01-09 22:22:37 +0100 | <lambdabot> | [1,2,2,3,3,3,3,4,4,4,4,4,4,4,4] |
2022-01-09 22:23:00 +0100 | <int-e> | (tricky) |
2022-01-09 22:23:15 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-01-09 22:24:03 +0100 | <hololeap> | is there an ST version of race? |
2022-01-09 22:24:58 +0100 | <EvanR> | you can use unsafePerformIO to do the race of threads doing a pure computation |
2022-01-09 22:24:59 +0100 | <int-e> | there's unsafeIOToST... and it is unsafe |
2022-01-09 22:25:34 +0100 | <EvanR> | though |
2022-01-09 22:25:38 +0100 | <EvanR> | the whole thing is not pure is it |
2022-01-09 22:25:43 +0100 | geekosaur | is wondering if that even makes sense |
2022-01-09 22:25:51 +0100 | <EvanR> | you "hope" fib 10 comes back, but there's no guaratantee |
2022-01-09 22:25:56 +0100 | <EvanR> | guarantee |
2022-01-09 22:26:17 +0100 | <EvanR> | it depends on real world circumstances |
2022-01-09 22:27:44 +0100 | roboguy | (~roboguy@user/roboguy) () |
2022-01-09 22:28:17 +0100 | <hololeap> | yeah I suppose it's getting into nondeterminism since it's unclear which one will come back first |
2022-01-09 22:29:40 +0100 | <hololeap> | so I guess IO actually makes sense here |
2022-01-09 22:29:44 +0100 | <EvanR> | that's why lub is cool because you can explain why it's still valid to race the threads xD |
2022-01-09 22:29:50 +0100 | <EvanR> | purely |
2022-01-09 22:30:55 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-01-09 22:31:11 +0100 | <hololeap> | the idea was to parallelize the branches of LogicT, where all successes from any branch are considered equal, and it just returns the first one it finds |
2022-01-09 22:32:01 +0100 | <EvanR> | if you can arrange for all results to be equal, then the referential transparency cops won't notice you |
2022-01-09 22:32:24 +0100 | <EvanR> | doing unsafePerformIO |
2022-01-09 22:32:26 +0100 | <EvanR> | hopefully |
2022-01-09 22:33:12 +0100 | <hololeap> | I think in this case any successes will actually be identical |
2022-01-09 22:33:46 +0100 | <hololeap> | I'm actually just playing around with this using 2021's AoC day 8 problem for practice |
2022-01-09 22:35:16 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-01-09 22:35:19 +0100 | HotblackDesiato | (~HotblackD@gateway/tor-sasl/hotblackdesiato) |
2022-01-09 22:36:44 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2022-01-09 22:38:02 +0100 | <hololeap> | for instance if I get the input "ag" then I know this corresponds to the digit 1, but I don't know if 'a' corresponds to the 'c' segment and 'g' corresponds to the 'f' segment, or vice versa. since both have equal weight, why not run both in parallel and see which one finds an answer first |
2022-01-09 22:38:08 +0100 | sonny | (~sonny@bras-base-london1483w-grc-32-70-52-175-166.dsl.bell.ca) |
2022-01-09 22:39:01 +0100 | <sonny> | how do you use a parameter in a function defintion inside a lambda definition? foo bar = foldl \(bar x y z -> ...) ... |
2022-01-09 22:39:54 +0100 | Pickchea | (~private@user/pickchea) |
2022-01-09 22:40:02 +0100 | Pickchea | (~private@user/pickchea) (Remote host closed the connection) |
2022-01-09 22:40:18 +0100 | <jackson99> | just use it, without putting it in the argument list |
2022-01-09 22:40:37 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293) (Ping timeout: 240 seconds) |
2022-01-09 22:42:33 +0100 | <hololeap> | EvanR: now if my two branches are guaranteed to find the same value, but one may find it faster than the other, is that a good time to use lub? |
2022-01-09 22:43:24 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3) |
2022-01-09 22:44:04 +0100 | <jackson99> | > let mymap f xs = foldr (\x acc -> f x : acc) [] xs in mymap (*10) [1..5] -- sonny |
2022-01-09 22:44:06 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-01-09 22:44:06 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-01-09 22:44:06 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-01-09 22:44:06 +0100 | <lambdabot> | [10,20,30,40,50] |
2022-01-09 22:44:29 +0100 | <sonny> | thanks |
2022-01-09 22:44:37 +0100 | zmt00 | (~zmt00@user/zmt00) (Ping timeout: 240 seconds) |
2022-01-09 22:45:17 +0100 | zincy | (~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Remote host closed the connection) |
2022-01-09 22:45:57 +0100 | shapr | (~user@2601:7c0:c202:5190:232c:3331:7d0c:8370) (Ping timeout: 240 seconds) |
2022-01-09 22:47:43 +0100 | <hololeap> | @hoogle unamb -- ok this explains it a little better |
2022-01-09 22:47:44 +0100 | <lambdabot> | Prelude undefined :: forall (r :: RuntimeRep) . forall (a :: TYPE r) . HasCallStack => a |
2022-01-09 22:47:44 +0100 | <lambdabot> | Control.Exception.Base absentSumFieldError :: a |
2022-01-09 22:47:44 +0100 | <lambdabot> | Text.Printf errorShortFormat :: a |
2022-01-09 22:48:03 +0100 | <hololeap> | s/hoogle/hackage |
2022-01-09 22:48:11 +0100 | <hololeap> | @hackage unamb |
2022-01-09 22:48:11 +0100 | <lambdabot> | https://hackage.haskell.org/package/unamb |
2022-01-09 22:48:37 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2022-01-09 22:52:59 +0100 | <sonny> | is it actually possible to implement filter with fold? |
2022-01-09 22:53:47 +0100 | <jackson99> | sure |
2022-01-09 22:54:06 +0100 | <sonny> | I'm stumped because I can't think of some identity elment with : |
2022-01-09 22:54:42 +0100 | <dolio> | Identity element? |
2022-01-09 22:54:51 +0100 | <geekosaur> | you're just passing on xs instead of prepending an element to it (bool, or if-then-else) |
2022-01-09 22:54:54 +0100 | <sonny> | well some zero operation |
2022-01-09 22:55:09 +0100 | <jackson99> | it is a small change to the mymap I pasted above |
2022-01-09 22:55:20 +0100 | <geekosaur> | and no, (:) doesn;t have a left identity |
2022-01-09 22:55:44 +0100 | <geekosaur> | it's a constructor, it always constructs a value |
2022-01-09 22:55:57 +0100 | mvk | (~mvk@2607:fea8:5cdd:f000::45db) (Ping timeout: 240 seconds) |
2022-01-09 22:56:07 +0100 | <sonny> | so it's not possible with foldl, but with foldr |
2022-01-09 22:56:21 +0100 | <sonny> | I was trying with foldl |
2022-01-09 22:56:24 +0100 | modnar | (~quassel@162.195.88.254) |
2022-01-09 22:56:47 +0100 | <geekosaur> | note thatyou can build foldl with foldr but not the reverse |
2022-01-09 22:58:23 +0100 | <hololeap> | % :t \f -> foldl (\s c -> if f c then s ++ [c] else s) [] |
2022-01-09 22:58:23 +0100 | <yahb> | hololeap: Foldable t => (a -> Bool) -> t a -> [a] |
2022-01-09 22:59:04 +0100 | <hololeap> | it's possible but probably not as efficient |
2022-01-09 23:00:39 +0100 | <sonny> | ok, I really need to figure out cons and lists |
2022-01-09 23:00:41 +0100 | mvk | (~mvk@2607:fea8:5cdd:f000::45db) |
2022-01-09 23:01:14 +0100 | <sonny> | I think I sorta get fold |
2022-01-09 23:02:02 +0100 | <hololeap> | foldr is a natural outgrowth of how lists are constructed. foldr (:) [] == id |
2022-01-09 23:03:00 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Remote host closed the connection) |
2022-01-09 23:03:13 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2022-01-09 23:04:01 +0100 | <hololeap> | :t toList -- which is why you can convert any Foldable to a list |
2022-01-09 23:04:02 +0100 | <lambdabot> | Foldable t => t a -> [a] |
2022-01-09 23:06:53 +0100 | <sonny> | hololeap: [] is the second argument right? |
2022-01-09 23:07:43 +0100 | machinedgod | (~machinedg@24.105.81.50) (Quit: Lost terminal) |
2022-01-09 23:07:44 +0100 | <sonny> | yes very useful observation `foldr (:) [] == id` |
2022-01-09 23:08:08 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2022-01-09 23:10:31 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-01-09 23:10:36 +0100 | <sonny> | filter p = foldr (\x acc -> if p x then x:acc else acc) [] |
2022-01-09 23:11:00 +0100 | <sonny> | I never get this much confidence elsewhere :D |
2022-01-09 23:11:46 +0100 | <hololeap> | well, technically, foldr (:) [] == toList |
2022-01-09 23:12:06 +0100 | <geekosaur> | these days :) |
2022-01-09 23:12:08 +0100 | <sonny> | I just read id as identity |
2022-01-09 23:12:33 +0100 | <geekosaur> | sometimes I wonder if Foldable is all it's cracked up to be, and not just because of that tuple instance |
2022-01-09 23:12:42 +0100 | <ephemient> | could also be foldr (\x -> if p x then (x:) else id) [] |
2022-01-09 23:12:50 +0100 | <hololeap> | and toList == id, if we're specializing the Foldable to be [] |
2022-01-09 23:13:06 +0100 | xff0x | (~xff0x@2001:1a81:52d4:9900:4d46:915d:4480:7a51) (Remote host closed the connection) |
2022-01-09 23:13:23 +0100 | xff0x | (~xff0x@2001:1a81:52d4:9900:5627:62b8:c837:dd4a) |
2022-01-09 23:13:30 +0100 | <sonny> | ephemient: where's id from? |
2022-01-09 23:13:39 +0100 | <geekosaur> | @index id |
2022-01-09 23:13:39 +0100 | <lambdabot> | Control.Category, Data.Function, Prelude |
2022-01-09 23:13:40 +0100 | <ephemient> | :t id |
2022-01-09 23:13:41 +0100 | <lambdabot> | a -> a |
2022-01-09 23:13:46 +0100 | <sonny> | oh |
2022-01-09 23:14:23 +0100 | <sonny> | is that typical haskell code? |
2022-01-09 23:14:26 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2022-01-09 23:14:26 +0100 | timCF | (~timCF@m91-129-100-224.cust.tele2.ee) |
2022-01-09 23:14:37 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2022-01-09 23:14:37 +0100 | <jackson99> | @src id |
2022-01-09 23:14:37 +0100 | <lambdabot> | id x = x |
2022-01-09 23:14:51 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2022-01-09 23:14:58 +0100 | <sonny> | it's kinda magic when defined with the section :P |
2022-01-09 23:15:56 +0100 | <timCF> | Hello! Want to ask a question, which haskell build infrastructure is better - provided in nixpkgs or haskell.nix by IOHK and why? |
2022-01-09 23:16:57 +0100 | <geekosaur> | how about oen that doesn't involve nix at all? |
2022-01-09 23:18:23 +0100 | Inst | (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) |
2022-01-09 23:18:42 +0100 | <timCF> | I've used stack for a long time, but nix is kinda cool to manage external binary deps for building and testing |
2022-01-09 23:21:02 +0100 | <geekosaur> | "cool" for a thing with nightmarish tentacles… |
2022-01-09 23:21:34 +0100 | <geekosaur> | sorry, that thing just has too many moving pieces and sharp edges |
2022-01-09 23:21:42 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2022-01-09 23:23:03 +0100 | <timCF> | No worries) If it was perfect, i've not asked which one of two is better |
2022-01-09 23:23:27 +0100 | <sm> | there was a recent discussion of this on reddit. IIRC nixpkgs was easier for just installing haskell things, haskell.nix is more powerful for fine grained haskell project building |
2022-01-09 23:24:53 +0100 | <geekosaur> | I also don't like something that will silently consume gigabytes of space unless I remember to gc it every so often — but not too often as I may need to roll back an update |
2022-01-09 23:29:12 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:c0bf:721a:fdec:b791) |
2022-01-09 23:29:33 +0100 | <sonny> | reverse = foldl (flip (:)) [] -- why does it have to be flipped? |
2022-01-09 23:30:11 +0100 | ouestbillie | (~gallup@192-222-138-215.qc.cable.ebox.net) |
2022-01-09 23:30:27 +0100 | <hololeap> | because foldl takes (b -> a -> b) as opposed to (a -> b -> b) |
2022-01-09 23:30:37 +0100 | BrokenClutch | (~pioneer@2804:d41:c292:6c00:33d8:d2f1:d8af:153e) |
2022-01-09 23:31:26 +0100 | <geekosaur> | > foldl f z [a,b,c] |
2022-01-09 23:31:27 +0100 | <lambdabot> | f (f (f z a) b) c |
2022-01-09 23:31:28 +0100 | sonny | tries to parse the signature |
2022-01-09 23:31:39 +0100 | <geekosaur> | > foldr f z [a,b,c] |
2022-01-09 23:31:41 +0100 | <lambdabot> | f a (f b (f c z)) |
2022-01-09 23:31:52 +0100 | deadmarshal | (~deadmarsh@95.38.231.124) |
2022-01-09 23:32:24 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2022-01-09 23:32:42 +0100 | shapr | (~user@2601:7c0:c202:5190:ed4f:33d2:c7d1:3eb) |
2022-01-09 23:32:56 +0100 | <jackson99> | position of the current element and accumulator arguments are flipped in function accepted by foldr vs foldl |
2022-01-09 23:33:45 +0100 | <sonny> | ok, I'm just gonna guess it's defined differently in scheme. I'm comparing them and I got lost |
2022-01-09 23:34:24 +0100 | <geekosaur> | yes, many languages make different decisions. look at the unrolling of the folds I asked the bot for to see why haskell defines it the way it does |
2022-01-09 23:34:43 +0100 | <geekosaur> | (it's basically a matter of associativity) |
2022-01-09 23:35:55 +0100 | <sonny> | associativity is order? don't remember |
2022-01-09 23:36:17 +0100 | <BrokenClutch> | Is it? I think it's the same definition |
2022-01-09 23:36:28 +0100 | deadmarshal | (~deadmarsh@95.38.231.124) (Ping timeout: 256 seconds) |
2022-01-09 23:36:57 +0100 | <geekosaur> | associativity is left vs. right, is a * b * c the same as (a * b) * c or is it a * (b * c) |
2022-01-09 23:37:03 +0100 | <geekosaur> | for some operator * |
2022-01-09 23:38:04 +0100 | <geekosaur> | so foldl is a left-associative fold, foldr a right-associative fold |
2022-01-09 23:38:23 +0100 | <geekosaur> | lists are right-associative, which is why foldr is effectively an identity for lists |
2022-01-09 23:38:37 +0100 | <sonny> | BrokenClutch: you can check here https://srfi.schemers.org/srfi-1/srfi-1.html#FoldUnfoldMap |
2022-01-09 23:39:33 +0100 | <ephemient> | it's clearer to see with an infix function: foldr (+) z [a, b, c] = a + (b + (c + z)), foldl (+) z [a, b, c] = ((z + a) + b) + c |
2022-01-09 23:41:31 +0100 | <sonny> | ok, I'll come back later. My brain is fried |
2022-01-09 23:41:34 +0100 | <jackson99> | and even clearer if the function is -, because then you will get different result |
2022-01-09 23:43:15 +0100 | sonny | (~sonny@bras-base-london1483w-grc-32-70-52-175-166.dsl.bell.ca) (Remote host closed the connection) |
2022-01-09 23:43:34 +0100 | sonny | (~sonny@bras-base-london1483w-grc-32-70-52-175-166.dsl.bell.ca) |
2022-01-09 23:48:13 +0100 | <sonny> | geekosaur: so they wanted to avoid (f (f (f z a) b) c)? |
2022-01-09 23:50:31 +0100 | <geekosaur> | I don't quite understand the question |
2022-01-09 23:50:35 +0100 | qrpnxz | (abc4f95c31@user/qrpnxz) |
2022-01-09 23:50:59 +0100 | <geekosaur> | My point is that (:) right-associates and doesn't take its parameters in the left-associative order |
2022-01-09 23:51:02 +0100 | <sonny> | just thinking about the order |
2022-01-09 23:51:25 +0100 | <geekosaur> | some things are naturally left-associative, some aren't |
2022-01-09 23:52:17 +0100 | <geekosaur> | so Foldable gives us foldr and foldl, but also foldMap which is allowed to associate naturally for the Foldable in question iirc |
2022-01-09 23:52:55 +0100 | <geekosaur> | (:) is also asymmetric, which is another part of the problem |
2022-01-09 23:53:15 +0100 | <geekosaur> | it doesn't take the same type on both sides, so it doesn't "re-associate" cleanly |
2022-01-09 23:53:32 +0100 | <geekosaur> | something like (+) can associate either way |
2022-01-09 23:54:22 +0100 | <sonny> | yeah |