Logs on 2022-04-25 (liberachat/#haskell)
| 00:03:18 | × | stackdroid18 quits (~stackdroi@user/stackdroid) (Quit: hasta la vista... tchau!) |
| 00:09:52 | × | lagash quits (lagash@lagash.shelltalk.net) (Remote host closed the connection) |
| 00:09:59 | × | jhagborg_ quits (~jhagborg@068-187-237-099.res.spectrum.com) (Ping timeout: 240 seconds) |
| 00:10:17 | → | lagash joins (lagash@lagash.shelltalk.net) |
| 00:10:35 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 260 seconds) |
| 00:11:12 | × | xff0x_ quits (~xff0x@om126158190036.30.openmobile.ne.jp) (Read error: Connection reset by peer) |
| 00:11:38 | → | fryguybob joins (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) |
| 00:11:43 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 00:12:09 | × | alp_ quits (~alp@user/alp) (Ping timeout: 248 seconds) |
| 00:17:03 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 00:17:03 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 00:17:03 | → | wroathe joins (~wroathe@user/wroathe) |
| 00:23:51 | → | littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 00:24:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 00:26:03 | × | zyklotomic quits (~ethan@res380d-128-61-82-178.res.gatech.edu) (Ping timeout: 276 seconds) |
| 00:26:33 | → | vysn joins (~vysn@user/vysn) |
| 00:27:29 | → | zyklotomic joins (~ethan@res388d-128-61-92-250.res.gatech.edu) |
| 00:28:05 | × | tommd quits (~tommd@97-120-41-123.ptld.qwest.net) (Ping timeout: 256 seconds) |
| 00:35:30 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 272 seconds) |
| 00:46:31 | → | euandreh joins (~euandreh@2804:14c:33:9fe5:2165:73d6:1630:f174) |
| 00:50:52 | × | shailangsa quits (~shailangs@host86-186-142-63.range86-186.btcentralplus.com) (Ping timeout: 250 seconds) |
| 00:51:48 | × | epolanski quits (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
| 00:58:23 | <napping> | Is there any common name for a function like zipWith max? |
| 01:04:05 | <napping> | Especially one that makes sense for containers like Vector a |
| 01:04:19 | → | trillp joins (~trillp@144.202.69.165) |
| 01:05:45 | → | xff0x_ joins (~xff0x@125x102x200x106.ap125.ftth.ucom.ne.jp) |
| 01:09:15 | × | vicfred quits (~vicfred@user/vicfred) (Quit: Leaving) |
| 01:11:13 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:13:25 | × | oxide quits (~lambda@user/oxide) (Quit: oxide) |
| 01:13:29 | → | lifter joins (~lifter@2600:1702:37d0:4310:83f:3332:e039:3515) |
| 01:15:16 | ← | trillp parts (~trillp@144.202.69.165) (WeeChat 3.4.1) |
| 01:16:16 | × | Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
| 01:17:12 | × | xkuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
| 01:17:19 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:18:52 | <lifter> | I noticed that in GHCi ":kind HigherKinded" where "type HigherKinded a = a Int" spits out "HigherKinded :: (* -> k) -> k". Can somebody tell me why there is the letter "k" there and what it means? This is the first time I've seen anything other than asterisks here. |
| 01:22:12 | × | Hiring quits (~Hiring@31.222.238.38) (Ping timeout: 252 seconds) |
| 01:24:07 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 240 seconds) |
| 01:24:46 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 01:25:19 | × | mmhat quits (~mmh@55d4c572.access.ecotel.net) (Ping timeout: 256 seconds) |
| 01:25:23 | → | andrey_ joins (~andrey@p5b1652a4.dip0.t-ipconnect.de) |
| 01:27:39 | × | andrey quits (~andrey@p200300dbcf4488004d3181a4567cdd4f.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 01:28:01 | <napping> | That's a kind variable. HigherKinded (,) Int would have kind * -> *, still needing another type to fully apply the (,) type constructor |
| 01:29:07 | <napping> | data and newtype can only make things that end in -> *, so you only see kind variables for those types if you're doing something fancy in the arguments |
| 01:32:18 | → | shailangsa joins (~shailangs@host86-186-127-233.range86-186.btcentralplus.com) |
| 01:34:34 | <lifter> | Woah... So is that to say that the "a" in "type HigherKinded a = a Int" could be kind "* ->*"? |
| 01:34:42 | → | leungbk joins (~user@2603-8000-1201-2dd2-6818-c5f7-371a-1f6b.res6.spectrum.com) |
| 01:37:56 | → | mmhat joins (~mmh@55d4c973.access.ecotel.net) |
| 01:39:44 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 01:40:05 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 246 seconds) |
| 01:40:39 | × | shiraeeshi quits (~shiraeesh@109.166.57.76) (Ping timeout: 240 seconds) |
| 01:44:46 | <dragestil> | Is there any text about haskell-language-server architecture and how it works with ghc? |
| 01:45:18 | <lifter> | I guess we could say that in the case of "HigherKinded (,)", the kind of "HigherKinded" is "(* -> * -> *) -> * -> *". That's amazing! |
| 01:45:45 | → | whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com) |
| 01:57:13 | → | tommd joins (~tommd@97-120-41-123.ptld.qwest.net) |
| 01:58:43 | → | redb joins (~nmh@136.49.49.211) |
| 01:59:35 | → | cdman joins (~dcm@27.2.218.12) |
| 01:59:35 | × | cdman quits (~dcm@27.2.218.12) (Changing host) |
| 01:59:35 | → | cdman joins (~dcm@user/dmc/x-4369397) |
| 02:03:56 | × | lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 02:05:38 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 246 seconds) |
| 02:08:03 | → | redb joins (~nmh@136.49.49.211) |
| 02:09:44 | × | Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Quit: Leaving) |
| 02:12:19 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 240 seconds) |
| 02:15:36 | → | redb joins (~nmh@136.49.49.211) |
| 02:16:12 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 02:19:13 | → | lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
| 02:19:15 | → | kimjetwav joins (~user@2607:fea8:2362:b400:5885:9431:ca89:9663) |
| 02:19:19 | × | lifter quits (~lifter@2600:1702:37d0:4310:83f:3332:e039:3515) () |
| 02:19:39 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 240 seconds) |
| 02:23:03 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:23:03 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 02:23:03 | finn_elija | is now known as FinnElija |
| 02:23:13 | → | redb joins (~nmh@136.49.49.211) |
| 02:25:04 | × | zyklotomic quits (~ethan@res388d-128-61-92-250.res.gatech.edu) (Ping timeout: 272 seconds) |
| 02:25:10 | × | mmhat quits (~mmh@55d4c973.access.ecotel.net) (Quit: WeeChat 3.5) |
| 02:26:47 | → | zyklotomic joins (~ethan@r4-128-61-93-82.res.gatech.edu) |
| 02:27:43 | → | byorgey joins (~byorgey@155.138.238.211) |
| 02:28:14 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 272 seconds) |
| 02:28:43 | → | redb joins (~nmh@136.49.49.211) |
| 02:32:58 | → | deadmarshal_ joins (~deadmarsh@95.38.113.114) |
| 02:32:59 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 240 seconds) |
| 02:33:14 | <hololeap> | exarkun: does haskell-language-server work in the project dir? |
| 02:33:30 | <hololeap> | (the 'haskell-language-server' executable with no arguments) |
| 02:35:18 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 02:35:40 | × | leungbk quits (~user@2603-8000-1201-2dd2-6818-c5f7-371a-1f6b.res6.spectrum.com) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.1)) |
| 02:35:48 | × | vysn quits (~vysn@user/vysn) (Ping timeout: 240 seconds) |
| 02:36:33 | → | redb joins (~nmh@136.49.49.211) |
| 02:37:19 | × | deadmarshal_ quits (~deadmarsh@95.38.113.114) (Ping timeout: 240 seconds) |
| 02:38:39 | × | td_ quits (~td@muedsl-82-207-238-135.citykom.de) (Ping timeout: 276 seconds) |
| 02:40:08 | → | td_ joins (~td@94.134.91.109) |
| 02:40:31 | → | jhagborg_ joins (~jhagborg@068-187-237-099.res.spectrum.com) |
| 02:41:35 | jhagborg_ | is now known as jhagborg |
| 02:42:48 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Ping timeout: 272 seconds) |
| 02:49:43 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection) |
| 02:55:02 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 03:05:57 | → | kaph joins (~kaph@151.47.212.202) |
| 03:10:23 | × | jhagborg quits (~jhagborg@068-187-237-099.res.spectrum.com) (Ping timeout: 246 seconds) |
| 03:12:23 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 03:15:35 | → | jhagborg joins (~jhagborg@068-187-237-099.res.spectrum.com) |
| 03:21:26 | × | tommd quits (~tommd@97-120-41-123.ptld.qwest.net) (Ping timeout: 272 seconds) |
| 03:21:32 | → | dons joins (~dons@user/dons) |
| 03:23:36 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 03:32:11 | → | frost joins (~frost@user/frost) |
| 03:41:04 | × | littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 03:44:14 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 272 seconds) |
| 03:47:41 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 03:50:28 | × | kaph quits (~kaph@151.47.212.202) (Read error: Connection reset by peer) |
| 03:51:04 | → | kaph joins (~kaph@ba-19-145-149.service.infuturo.it) |
| 03:55:38 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 272 seconds) |
| 03:55:59 | → | mbuf joins (~Shakthi@122.174.215.164) |
| 03:58:41 | → | redb joins (~nmh@136.49.49.211) |
| 03:59:31 | → | lbseale joins (~ep1ctetus@user/ep1ctetus) |
| 03:59:58 | × | lbseale quits (~ep1ctetus@user/ep1ctetus) (Client Quit) |
| 04:01:56 | → | deadmarshal_ joins (~deadmarsh@95.38.113.114) |
| 04:09:39 | × | jhagborg quits (~jhagborg@068-187-237-099.res.spectrum.com) (Ping timeout: 240 seconds) |
| 04:12:20 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 246 seconds) |
| 04:12:26 | → | notzmv joins (~zmv@user/notzmv) |
| 04:13:57 | × | zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection) |
| 04:15:15 | → | zaquest joins (~notzaques@5.130.79.72) |
| 04:15:16 | × | ralu1 quits (~ralu@static.211.245.203.116.clients.your-server.de) (Ping timeout: 272 seconds) |
| 04:15:22 | → | hsw joins (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) |
| 04:20:53 | × | notzmv quits (~zmv@user/notzmv) (Remote host closed the connection) |
| 04:28:55 | × | juri_ quits (~juri@178.63.35.222) (Ping timeout: 256 seconds) |
| 04:32:53 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 04:32:59 | × | motherfsck quits (~motherfsc@user/motherfsck) (Quit: quit) |
| 04:35:26 | × | bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 246 seconds) |
| 04:36:19 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
| 04:39:07 | × | dsrt^ quits (~dsrt@50.227.69.228) (Ping timeout: 256 seconds) |
| 04:44:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 04:47:21 | × | kaph quits (~kaph@ba-19-145-149.service.infuturo.it) (Ping timeout: 276 seconds) |
| 04:48:09 | → | titibandit joins (~titibandi@xdsl-89-0-37-242.nc.de) |
| 04:50:39 | × | napping quits (~brandon@209-181-225-137.mpls.qwest.net) (Quit: leaving) |
| 04:54:42 | → | jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 04:55:05 | → | notzmv joins (~zmv@user/notzmv) |
| 04:59:14 | <jonathanx> | I've started to use lenses, and I'm wondering if there's a lens-like thingy for accessing/updating the elements of a collection (without being able to modify the order of them) |
| 05:01:56 | <shachaf> | Yes, there are all sorts of such things. |
| 05:04:40 | × | deadmarshal_ quits (~deadmarsh@95.38.113.114) (Ping timeout: 272 seconds) |
| 05:05:31 | → | benin joins (~benin@183.82.204.110) |
| 05:10:16 | × | phma quits (~phma@2001:5b0:212a:9cb8:383f:bd93:eb4e:975d) (Read error: Connection reset by peer) |
| 05:10:40 | <jonathanx> | Okay, can you name a few? :D |
| 05:12:16 | <shachaf> | Maybe you can name something you're trying to do instead. |
| 05:12:23 | <shachaf> | Or look up e.g. "traversal", I guess. |
| 05:13:34 | → | dostoevsky7 joins (~5c42c5384@user/dostoevsky) |
| 05:14:13 | → | phma joins (~phma@25.sub-174-212-102.myvzw.com) |
| 05:14:59 | × | dostoevsky quits (~5c42c5384@user/dostoevsky) (Ping timeout: 240 seconds) |
| 05:14:59 | dostoevsky7 | is now known as dostoevsky |
| 05:16:18 | → | ralu1 joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 05:18:22 | <energizer> | i heard `permutations` can be written as `foldr (concatMap . inserts) [[]]`. how does that work? |
| 05:18:45 | → | phma_ joins (~phma@2001:5b0:212a:9cb8:c177:4ec8:e751:fbba) |
| 05:19:21 | × | phma quits (~phma@25.sub-174-212-102.myvzw.com) (Ping timeout: 256 seconds) |
| 05:21:35 | <jonathanx> | shachaf: that looks like it. Sorry for the unclear question, I'm in orientation mode atm so I don't have a lot of lens-terminology down |
| 05:26:25 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 05:30:28 | → | michalz joins (~michalz@185.246.204.107) |
| 05:39:49 | × | tdammers quits (~tdammers@77.109.72.177.res.static.edpnet.net) (Ping timeout: 240 seconds) |
| 05:46:14 | phma_ | is now known as phma |
| 05:49:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 05:52:26 | → | nate1 joins (~nate@98.45.169.16) |
| 05:55:38 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 05:57:07 | → | _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl) |
| 05:57:14 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::c90f) (Ping timeout: 250 seconds) |
| 05:57:19 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds) |
| 05:59:50 | × | titibandit quits (~titibandi@xdsl-89-0-37-242.nc.de) (Remote host closed the connection) |
| 06:05:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 06:06:15 | → | shiraeeshi joins (~shiraeesh@109.166.57.76) |
| 06:07:40 | <hololeap> | energizer: what is 'inserts'? |
| 06:08:09 | → | vysn joins (~vysn@user/vysn) |
| 06:09:02 | <energizer> | hololeap: takes x,xs and inserts x into each position |
| 06:11:02 | <hololeap> | it just fills xs with x over and over? like `inserts x xs = const x <$> xs` |
| 06:11:13 | <int-e> | foldr (\x -> concatMap (inserts x)) <-- one extra point may help here |
| 06:12:00 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 06:12:02 | <energizer> | no, in between, like inserts 99 [1,2,3] is [[99 1 2 3] [1 99 2 3] ... |
| 06:13:12 | → | neurocyte8614492 joins (~neurocyte@IP-185189141186.dynamic.medianet-world.de) |
| 06:13:12 | × | neurocyte8614492 quits (~neurocyte@IP-185189141186.dynamic.medianet-world.de) (Changing host) |
| 06:13:12 | → | neurocyte8614492 joins (~neurocyte@user/neurocyte) |
| 06:13:40 | <int-e> | > let inserts x [] = [[x]]; inserts x (y:ys) = (x:y:ys) : map (y:) (inserts x ys) in foldr (concatMap . inserts) [[]] [1,2,3] |
| 06:13:41 | <lambdabot> | [[1,2,3],[2,1,3],[2,3,1],[1,3,2],[3,1,2],[3,2,1]] |
| 06:13:45 | → | arjun joins (~arjun@user/arjun) |
| 06:13:53 | <arjun> | https://pastebin.com/v7H7Frwh |
| 06:14:06 | <arjun> | what's up with the type error here |
| 06:14:34 | <arjun> | it should be the same type, it just seems to expect the fully qualified version or somethin |
| 06:14:59 | <hololeap> | well that's a whole different thing, int-e, still kudos on coming up with that so fast |
| 06:15:28 | <hololeap> | I mean, that's obviously the 'permutations' function, but that's not what they said the definition is |
| 06:15:59 | <int-e> | Well, that's the thing that makes `foldr (concatMap . inserts) [[]]` work |
| 06:16:02 | int-e | shrugs |
| 06:16:25 | <hololeap> | I see what you're saying |
| 06:16:48 | <int-e> | I'll agree that "takes x,xs and inserts x into each position" is ambiguous. |
| 06:17:30 | × | joo-_ quits (~joo-_@fsf/member/joo--) (Ping timeout: 272 seconds) |
| 06:18:55 | → | joo-_ joins (~joo-_@87-49-146-179-mobile.dk.customer.tdc.net) |
| 06:18:55 | × | joo-_ quits (~joo-_@87-49-146-179-mobile.dk.customer.tdc.net) (Changing host) |
| 06:18:55 | → | joo-_ joins (~joo-_@fsf/member/joo--) |
| 06:19:14 | <int-e> | arjun: well it looks like you have two different versions of streaming-0.2.3.1 ... that's not supposed to happen. But (as far as I can see) we can't diagonose how it happened from the information given. |
| 06:20:13 | <arjun> | int-e: ugh |
| 06:20:14 | → | dextaa4 joins (~dextaa@user/dextaa) |
| 06:20:20 | <arjun> | thanks for the hint |
| 06:20:31 | <arjun> | guess i'd reinstall the deps |
| 06:21:06 | <arjun> | i used cabal install --env . --lib streaming streaming-utils first |
| 06:21:28 | <arjun> | to work in a throwaway file |
| 06:21:47 | → | coot joins (~coot@213.134.190.95) |
| 06:21:50 | <arjun> | then a day or two later same but installed streaming-bytestring |
| 06:22:26 | <arjun> | correction: i installed streaming-utils a day later too, not originally |
| 06:23:23 | <shiraeeshi> | sounds like an example of cabal hell that I heard is no longer a problem |
| 06:24:31 | <sclv> | its not because you can just edit or delete the env file |
| 06:24:51 | <arjun> | int-e, nuked the env file and did the cabal installs again, seems to work this time |
| 06:25:10 | <sclv> | but also you can just use a cabal project and not deal with env files and then this is managed for you |
| 06:25:14 | <[Leary]> | > let inserts x [] = [[x]]; inserts x (y:ys) = (x:y:ys) : map (y:) (inserts x ys) in foldr (\x ps -> do p <- ps; inserts x p) [[]] [1,2,3] |
| 06:25:16 | <lambdabot> | [[1,2,3],[2,1,3],[2,3,1],[1,3,2],[3,1,2],[3,2,1]] |
| 06:25:33 | <[Leary]> | energizer: This is equivalent, and much more self-explanatory. |
| 06:25:56 | <arjun> | sclv, it was for a throwaway file, got lazy to make a cabal project |
| 06:28:42 | × | _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection) |
| 06:29:56 | <shiraeeshi> | I'm reading the "Thinking Functionally with Haskell" book |
| 06:30:23 | <shiraeeshi> | there is a section called "Analyzing time" |
| 06:31:15 | → | dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be) |
| 06:31:51 | <shiraeeshi> | and it's not clear to me how the math works out |
| 06:32:54 | <hololeap> | you'll have to give examples since we don't all own the book |
| 06:33:27 | <shiraeeshi> | it's about calculating time complexity of recursive functions |
| 06:33:44 | <shiraeeshi> | there are 3 examples |
| 06:34:21 | <shiraeeshi> | but let's start with this: https://paste.tomsmeding.com/yD6Nl6Ch |
| 06:34:53 | <shiraeeshi> | it talks about Θ (big theta) |
| 06:35:34 | <shiraeeshi> | and says that "sum from 1 to n of j" is Θ(n^2) |
| 06:36:09 | <shiraeeshi> | and "sum from 1 to n of j^2" is Θ(n^3) |
| 06:37:10 | <shiraeeshi> | I wonder if there's a typo in the book |
| 06:37:28 | <hololeap> | I think it's saying that if each iteration of recursion costs Θ(n^2), you can sum it by the number of iterations. I could be wrong. I'm not sure about the second one |
| 06:37:38 | <shiraeeshi> | it seems to me that "sum from 1 to n of j" is linear and should be Θ(n) |
| 06:38:13 | → | acidjnk joins (~acidjnk@p200300d0c73b4554ec7e8ddc2cd32bc3.dip0.t-ipconnect.de) |
| 06:39:30 | <hololeap> | or is it just trying to describe Θ-notation in general? |
| 06:40:09 | <shiraeeshi> | hololeap, do you mean that if you have a computation that costs Θ(n) and then you invoke it in a cycle, then it becomes Θ(n^2) ? |
| 06:41:17 | <shiraeeshi> | and if you wrap cycles in cycles then it increments the power of n inside of Θ(n^x) |
| 06:42:42 | <shiraeeshi> | and then the book moves on to the first example: |
| 06:42:51 | <hololeap> | possibly? that could be what they're trying to say, but "The main use of Θ-notation is to hide constants" makes it sound like they're trying to show how to simplify things. it's hard to know without context |
| 06:43:08 | <shiraeeshi> | With that behind us, we give three examples of how to analyse the running time of |
| 06:43:08 | <shiraeeshi> | a computation. Consider first the following two definitions of concat: |
| 06:43:20 | <shiraeeshi> | concat xss = foldr (++) [] xss |
| 06:43:28 | <shiraeeshi> | concat' xss = foldl (++) [] xss |
| 06:43:55 | → | fendor joins (~fendor@178.115.54.135.wireless.dyn.drei.com) |
| 06:44:09 | <shiraeeshi> | and then it shows how to calculate time complexities for those two functions |
| 06:45:26 | <shiraeeshi> | the T notation is described at the beginning of the section |
| 06:45:42 | <int-e> | shiraeeshi: the *value* of "sum for j from 1 to n of j" is Θ(n^2) |
| 06:45:43 | <shiraeeshi> | Given the definition of a function f we will write T(f)(n) to denote an asymptotic |
| 06:45:43 | <shiraeeshi> | estimate of the number of reduction steps required to evaluate f on an argument of |
| 06:45:44 | <shiraeeshi> | ‘size’ n in the worst case. |
| 06:45:57 | <int-e> | you can compute it faster than that |
| 06:47:01 | <shiraeeshi> | int-e, you mean by using a formula of a sum of an arithmetic progression? |
| 06:47:38 | <int-e> | shiraeeshi: yes. or a crude approximation like (n/2)^2 <= [that sum] <= n^2 |
| 06:48:01 | <hololeap> | oh, that's what they're saying. I've never seen big-Θ outside of measuring algorithms, so it's weird to see it like that |
| 06:48:50 | <shiraeeshi> | I don't know how important that sentence is. it could be the key to my misunderstanding, or it could be an unimportant detail |
| 06:49:56 | <int-e> | hololeap: O(f(n)) and friends are classes of functions. Those functions /can/ measure time or space, but they don't have to. |
| 06:50:31 | <hololeap> | that's fair |
| 06:51:16 | <int-e> | (It's a bit more complicated than that; there's an implicit limit attached to this (n goes to infinity, in complexity analysis; in calculus, people use stuff like O(x^n) where x approaches 0; the rest of the definitions carry over)) |
| 06:51:43 | → | jerry99 joins (~bc8147f2@cerf.good1.com) |
| 06:51:45 | × | jerry99 quits (~bc8147f2@cerf.good1.com) (Read error: Connection reset by peer) |
| 06:52:39 | <shiraeeshi> | oh, I think I get it now |
| 06:52:59 | <shiraeeshi> | so it talks about value of the sum, not its complexity |
| 06:55:43 | → | jerry99 joins (~330f617c@cerf.good1.com) |
| 06:58:48 | <hololeap> | right, I also thought it was trying to say that summing something cost Θ(n^2) time, but what int-e said makes sense |
| 06:59:18 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 272 seconds) |
| 06:59:30 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 07:01:54 | → | jerry98 joins (~330f25e8@cerf.good1.com) |
| 07:01:57 | <hololeap> | so if each step of a recursive algorithm was (<previous steps> + <current step>), we would say it is Θ(n^2) time |
| 07:02:05 | × | jerry99 quits (~330f617c@cerf.good1.com) (Killed (NickServ (GHOST command used by jerry98!~330f25e8@cerf.good1.com))) |
| 07:02:15 | jerry98 | is now known as jerry99 |
| 07:03:18 | <shiraeeshi> | here is a first example: https://paste.tomsmeding.com/Fq31Nlnm |
| 07:03:40 | <abastro[m]> | Mathematical definition hehe |
| 07:03:44 | <shiraeeshi> | (perhaps I should make a screenshot) |
| 07:04:28 | <shiraeeshi> | it computes time complexities for two definitions of concat, one using foldr and another using foldl |
| 07:05:45 | <abastro[m]> | foldr is faster because of (++)'s property right |
| 07:06:09 | → | alp_ joins (~alp@user/alp) |
| 07:06:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 07:06:43 | <hololeap> | make some screenshots and paste a link. I hope you're not writing all that out |
| 07:07:25 | <shiraeeshi> | I was just copypasting from the book, okay I'll make a screenshot |
| 07:09:07 | → | chele joins (~chele@user/chele) |
| 07:10:36 | <hololeap> | intuitively, if you are appending from the right out you only have to walk the current leftmost list, whereas if you go the other way you have to walk your entire results so far each time |
| 07:11:55 | <hololeap> | appending means walking the list to find the end, and then attaching the next list to it, which is O(1), but only once you have found the end |
| 07:13:12 | × | arjun quits (~arjun@user/arjun) (Read error: Connection reset by peer) |
| 07:14:38 | <hololeap> | hopefully that makes sense |
| 07:14:40 | → | mmhat joins (~mmh@55d4c973.access.ecotel.net) |
| 07:14:45 | <hololeap> | foldr starts from the right, conceptually, and appends the new list with the accumulation. `new ++ accum` |
| 07:15:19 | <hololeap> | whereas, going the other way, `accum + new`, means you have to walk the growing `accum` each time |
| 07:15:19 | <shiraeeshi> | example 1: https://imgur.com/a/nt1EhsI and https://imgur.com/a/n87LvSH |
| 07:19:08 | → | briandaed joins (~briandaed@109.95.142.93.r.toneticgroup.pl) |
| 07:19:10 | <hololeap> | foldl ends up being (<previous steps> + <current step>) for each iteration, because you have to walk back over the previous results each time, so it ends up being Θ(n^2) time, like you showed in your first paste (https://paste.tomsmeding.com/yD6Nl6Ch) |
| 07:19:27 | → | abastro joins (~abab9579@192.249.26.175) |
| 07:21:07 | <shiraeeshi> | so, given that foldr is defined like this |
| 07:21:14 | <shiraeeshi> | foldr f z [] = z |
| 07:21:22 | <shiraeeshi> | foldr f z (x:xs) = x `f` foldr f z xs |
| 07:21:49 | <hololeap> | `f` here is (++) |
| 07:21:59 | → | dsrt^ joins (~dsrt@50.227.69.228) |
| 07:22:06 | <hololeap> | the expensive part of (++) is walking the first list |
| 07:22:06 | <shiraeeshi> | the "T(foldr (++) [])(0, n) = Θ(1)" part is obvious |
| 07:22:45 | <hololeap> | once it walks the first list, appending the second one is Θ(1) |
| 07:23:07 | <hololeap> | so here the order matters. walking the shorter list each time is key, and that is what foldr does |
| 07:23:43 | → | MajorBiscuit joins (~MajorBisc@86-88-79-148.fixed.kpn.net) |
| 07:23:55 | <shiraeeshi> | now for the recursive case it says |
| 07:23:57 | <shiraeeshi> | T(foldr (++) [])(m+1, n) = T(++)(n, mn) + T(foldr (++) [])(m, n) |
| 07:24:21 | <shiraeeshi> | "The estimate T(++)(n, mn) arises because a list of length n is concatenated with a |
| 07:24:22 | <shiraeeshi> | list of length mn." |
| 07:26:22 | <shiraeeshi> | and then it says: "Since T(++)(n, m) = Θ(n), we obtain" |
| 07:26:25 | <shiraeeshi> | T(foldr (++) [])(m, n) = sum(for k = 0 to m) Θ(n) = Θ(mn) |
| 07:27:50 | → | Major_Biscuit joins (~MajorBisc@c-001-021-011.client.tudelft.eduvpn.nl) |
| 07:28:02 | <shiraeeshi> | so, as you said, you repeat m times a computation that costs Θ(n) and you get Θ(mn) |
| 07:28:50 | <shiraeeshi> | but foldl case is trickier |
| 07:29:56 | <shiraeeshi> | given that foldl is defined as |
| 07:29:58 | <shiraeeshi> | foldl f z [] = z |
| 07:29:58 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 07:30:20 | <shiraeeshi> | foldl f z (x:xs) = let z' = z `f` x in foldl f z' xs |
| 07:30:39 | × | MajorBiscuit quits (~MajorBisc@86-88-79-148.fixed.kpn.net) (Ping timeout: 240 seconds) |
| 07:31:32 | <shiraeeshi> | here is a formula for a recursive case: |
| 07:31:34 | <shiraeeshi> | T(foldl (++))(k, m+1, n) = T(++)(k, n) + T(foldl (++))(k+n, m, n) |
| 07:31:47 | <shiraeeshi> | and it says |
| 07:31:50 | <shiraeeshi> | "The additional argument k refers to the length of the accumulated list in the second |
| 07:31:51 | <shiraeeshi> | argument of foldl." |
| 07:33:18 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 07:33:32 | <shiraeeshi> | "This time we obtain" |
| 07:33:34 | <shiraeeshi> | T(foldl (++))(k, m, n) = sum(for j = 0 to m-1) Θ(k + jn) = Θ(k + (m^2)*n) |
| 07:33:59 | → | merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
| 07:35:10 | <shiraeeshi> | and then it throws away k |
| 07:35:20 | <hololeap> | k is a constant |
| 07:35:33 | <shiraeeshi> | and we're left with Θ((m^2)*n) |
| 07:36:38 | <shiraeeshi> | it's not completely clear to me how (m^2)*n appears |
| 07:36:58 | <hololeap> | they did some algebraic trickery to get the second equation |
| 07:37:34 | × | dextaa4 quits (~dextaa@user/dextaa) (Remote host closed the connection) |
| 07:37:58 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 07:38:12 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 07:38:21 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 07:38:25 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:b886:3eb2:a21d:c1a7) |
| 07:38:49 | <hololeap> | honestly, I'd say write the author if the answer doesn't become clear in a page or two |
| 07:39:01 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Client Quit) |
| 07:39:38 | <shiraeeshi> | so I guess if you have "jn" inside of big theta and j goes from 0 to m-1, then it becomes "(m^2)*n" |
| 07:40:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 07:40:12 | <hololeap> | I don't know how big theta got on the left side of the equation, but I'm really not the person to ask, tbh |
| 07:41:01 | <hololeap> | oh, nvm, I didn't read it correctly, but still |
| 07:41:06 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 07:41:08 | <shiraeeshi> | wait, it's a sum of big thetas |
| 07:42:27 | <shiraeeshi> | so, you have a sum of Θ(jn) and j goes from 0 to m-1, and that sum gives you Θ((m^2)*n) |
| 07:43:17 | × | tv quits (~tv@user/tv) (Ping timeout: 256 seconds) |
| 07:44:38 | <hololeap> | I think I'm missing the key part about how to reduce a recursive function like that. I've seen it before, but I don't remember it |
| 07:47:13 | <hololeap> | T(foldl (++))(k, m+1, n) = T(++)(k, n) + T(foldl (++))(k+n, m, n) |
| 07:47:16 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 07:47:19 | <hololeap> | transforms to |
| 07:47:26 | <hololeap> | T(foldl (++))(k, m, n) = sum(for j = 0 to m-1) Θ(k + jn) |
| 07:47:30 | <hololeap> | somehow |
| 07:48:47 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 07:49:43 | × | shriekingnoise quits (~shrieking@201.231.16.156) (Quit: Quit) |
| 07:51:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 07:51:57 | <shiraeeshi> | yeah, that's the most unclear part right now |
| 07:52:04 | × | abastro quits (~abab9579@192.249.26.175) (Remote host closed the connection) |
| 07:52:48 | <shiraeeshi> | (because I think (m^2)*n is just a sum of an arithmetic progression) |
| 07:57:02 | → | mikoto-chan joins (~mikoto-ch@84.199.144.235) |
| 08:00:25 | → | juri_ joins (~juri@178.63.35.222) |
| 08:00:36 | <shiraeeshi> | I'm going to came back with this question later |
| 08:02:09 | <tomsmeding> | hololeap: didn't follow the whole discussion, but what you just posted seems to be just this? https://paste.tomsmeding.com/sBX3Sdyz |
| 08:02:14 | → | gurkenglas joins (~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de) |
| 08:02:56 | <hololeap> | it was shiraeeshi's question |
| 08:03:27 | <tomsmeding> | the "transforms to ... somehow" |
| 08:03:41 | <shiraeeshi> | let me take a look |
| 08:05:52 | → | kuribas joins (~user@ptr-17d51epkc6cunhibcd0.18120a2.ip6.access.telenet.be) |
| 08:07:25 | <shiraeeshi> | oh, so that's how it works |
| 08:09:04 | → | Pickchea joins (~private@user/pickchea) |
| 08:09:31 | <tomsmeding> | there's also something called the Master Theorem (obnoxious name; https://en.wikipedia.org/wiki/Master_theorem_(analysis_of_algorithms) ) but for this particular thing you don't need that |
| 08:12:38 | → | dextaa4 joins (~dextaa@user/dextaa) |
| 08:12:46 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 08:13:14 | <[exa]> | shiraeeshi: btw I recall I've been solving the very same equation with someone here like 3 weeks ago, you might find something in the logs |
| 08:14:15 | <shiraeeshi> | [exa], ok, gonna take a look some time |
| 08:14:27 | <[exa]> | tomsmeding: we tend to call it a "cookbook theorem" because you just need to remind yourself the definition everytime :D |
| 08:14:31 | <shiraeeshi> | [exa], did you work out other examples? |
| 08:14:43 | <tomsmeding> | [exa]: lol true enough |
| 08:14:52 | → | jgeerds joins (~jgeerds@d53604b0.access.ecotel.net) |
| 08:15:26 | <shiraeeshi> | [exa], what definition? |
| 08:15:48 | <tomsmeding> | of the master theorem, presumably |
| 08:16:17 | <shiraeeshi> | I'm trying to find a definition in the wikipedia article |
| 08:17:40 | <tomsmeding> | shiraeeshi: if T(n) = a T(n/b) + f(n), then depending on the asymptotic behaviour of f, as shown in the "Condition on..." column in the table, the theorem gives a bound on T, as shown in the "Master Theorem bound" column in the table |
| 08:18:18 | → | tv joins (~tv@user/tv) |
| 08:18:44 | <shiraeeshi> | let me wrap my head around it |
| 08:19:28 | <tomsmeding> | (where c_crit is defined above the table) |
| 08:21:41 | <tomsmeding> | (note: there are f that fall between the cracks between the cases; for example if f(n) = Theta(n^{c_crit} log(sqrt(n)), it fits in none of the cases if I'm not mistaken) |
| 08:21:55 | <tomsmeding> | with extra ) |
| 08:22:16 | <tomsmeding> | oh no of course not |
| 08:22:32 | <tomsmeding> | eh I seem to remember it doesn't strictly cover all f's, exercise to the reader :p |
| 08:22:52 | → | Hiring joins (~Hiring@31.222.238.38) |
| 08:23:06 | → | ubert joins (~Thunderbi@p200300ecdf15886161bde835a28140c8.dip0.t-ipconnect.de) |
| 08:23:48 | <shiraeeshi> | at this point my brain refuses to make sense of all those runes in the article |
| 08:24:37 | <shiraeeshi> | but the "Analyzing time" section in the book doesn't mention the Master Theorem, so I guess it's not needed to understand examples from that section |
| 08:25:01 | <shiraeeshi> | so I think I can put the theorem aside for some time |
| 08:25:33 | <tomsmeding> | right |
| 08:29:04 | <shiraeeshi> | I'm going to try to apply the trick that tomsmeding showed to other examples from the section |
| 08:31:00 | → | tdammers joins (~tdammers@77.109.72.118.res.static.edpnet.net) |
| 08:33:05 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 08:34:56 | × | coot quits (~coot@213.134.190.95) (Ping timeout: 272 seconds) |
| 08:35:10 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 08:39:43 | → | abastro joins (~abab9579@192.249.26.175) |
| 08:48:32 | × | abastro quits (~abab9579@192.249.26.175) (Remote host closed the connection) |
| 08:52:02 | → | CiaoSen joins (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 09:00:06 | × | aviladev[m] quits (~aviladevm@2001:470:69fc:105::1:cbc7) (Quit: You have been kicked for being idle) |
| 09:02:45 | → | vodage joins (~vodage@118.201.231.83) |
| 09:07:04 | × | neurocyte8614492 quits (~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat) |
| 09:12:02 | × | vodage quits (~vodage@118.201.231.83) (Quit: WeeChat 3.4.1) |
| 09:12:43 | × | jerry99 quits (~330f25e8@cerf.good1.com) (Quit: CGI:IRC (Ping timeout)) |
| 09:12:53 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 09:13:58 | → | jerry99 joins (~330f7c14@cerf.good1.com) |
| 09:14:07 | → | vodage joins (~vodage@118.201.231.83) |
| 09:21:37 | → | neurocyte8614492 joins (~neurocyte@IP-185189141186.dynamic.medianet-world.de) |
| 09:21:37 | × | neurocyte8614492 quits (~neurocyte@IP-185189141186.dynamic.medianet-world.de) (Changing host) |
| 09:21:37 | → | neurocyte8614492 joins (~neurocyte@user/neurocyte) |
| 09:24:45 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.4.1) |
| 09:26:23 | → | jespada_ joins (~jespada@146.70.119.10) |
| 09:28:19 | <[exa]> | shiraeeshi: by the "definition" I basically meant the table that says what the theorem does |
| 09:28:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 09:28:48 | × | jespada quits (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) (Ping timeout: 276 seconds) |
| 09:28:51 | <[exa]> | shiraeeshi: btw what precise section of the book are you at now? (if you can pls link the online version) |
| 09:30:42 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 09:31:34 | × | dsrt^ quits (~dsrt@50.227.69.228) (Remote host closed the connection) |
| 09:34:06 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 09:35:24 | × | whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 09:35:34 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 09:35:38 | → | Midjak joins (~Midjak@82.66.147.146) |
| 09:36:14 | <shiraeeshi> | [exa]: chapter 7 "Efficiency", section 7.4 "Analyzing time" |
| 09:36:31 | <shiraeeshi> | I don't have a link to an online version, but you can download it from b-ok |
| 09:36:32 | → | xkuru joins (~xkuru@user/xkuru) |
| 09:37:41 | <[exa]> | turns out I've got a PDF right in ~ |
| 09:38:32 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds) |
| 09:38:59 | <[exa]> | ok one thing that is just wrong there is the "not bothering about the constants involved" |
| 09:39:31 | → | abastro joins (~abab9579@192.249.26.175) |
| 09:41:18 | <[exa]> | for example, sum [1..n] == (n * (n-1)) / 2 == (n^2 / 2) - (n/2) |
| 09:41:47 | <[exa]> | and they say the sum is equal to Θ(n^2), hiding the constant, but (n/2) is far from being a constant :] |
| 09:42:55 | <[exa]> | the easier view is to imagine "if n is sufficiently big, all other terms except for a multiplicative constant are completely negligible" |
| 09:43:42 | <shiraeeshi> | you mean the term that is exponentiated to the largest power? |
| 09:44:01 | <[exa]> | yes, usually it's the "biggest" term |
| 09:44:03 | → | cosimone joins (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) |
| 09:44:21 | <[exa]> | for n=1 million, the n/2 is literally 1000000x smaller than n^2/2 |
| 09:45:47 | <shiraeeshi> | I think it has something to do with the way they define big theta |
| 09:45:53 | <[exa]> | yes, the rigorous definition of Θ is similar to the limit, I use this: |
| 09:45:57 | <shiraeeshi> | they give the definition earlier in the book |
| 09:46:20 | <shiraeeshi> | there exists some K, so that x - K < [something] < x + K |
| 09:46:49 | <shiraeeshi> | so you can write it as Θ(x) |
| 09:48:08 | <[exa]> | you say that `f` belongs to complexity class `Θ(term)` if there exist constants n0, α and β (greater than 0) so that for all n>n0, α*term(n) ≤ f(n) ≤ β*term(n) |
| 09:48:22 | <abastro> | IT |
| 09:48:41 | <shiraeeshi> | no, wait, it's about two constants C1 and C2 so that C1*x <= [something] <= C2*x |
| 09:48:45 | <abastro> | It's the fastest increasing term |
| 09:49:02 | <[exa]> | I'd that works for our Θ(n^2) and sum [1..n] with constants say n0=10000, α=0.3, β=0.8 |
| 09:49:25 | <abastro> | C1 * f(x) <= target <= C2 * f(x) for sufficiently big x. |
| 09:49:39 | → | anomal joins (~anomal@87.227.196.109) |
| 09:49:44 | <abastro> | Oh exa already said that. Meh |
| 09:49:50 | <[exa]> | if you\d say that the sum function belongs to Θ(n), eventually for sufficiently large `n`, the function `n^2` would get greater than the β-multiply of the term |
| 09:50:02 | <abastro> | Anyway it comes from math limit |
| 09:50:05 | <[exa]> | same for say Θ(n^2.1) |
| 09:50:31 | <abastro> | IIRC this forms some sort of equivalence class (or perhaps not) |
| 09:50:52 | <[exa]> | abastro: yes |
| 09:51:05 | <[exa]> | (a bit complicated though once you jump to ugly details) |
| 09:51:13 | <abastro> | Where Θ(n^k) for each k is in separate equivalence classes |
| 09:51:30 | <abastro> | Yea I mostly mean the ugly details when I said "im not sure" |
| 09:52:26 | × | notzmv quits (~zmv@user/notzmv) (Read error: Connection reset by peer) |
| 09:52:45 | <[exa]> | the other complicated piece in the book is the T notation |
| 09:53:41 | <[exa]> | T(function)(list of input sizes)=... says "the asymptotic time needed for a function to complete on input sizes is ..." |
| 09:55:32 | <[exa]> | the work there is afaik correct, but it's far from obvious; the author is good at following the scheme "just rewrite the function definitions to obvious partial time complexities and then apply _some_ math to get a direct formula", but for newcomers this separation is not very visible (esp. if they need to guess the _some_ math based on heuristics) |
| 09:55:38 | × | abastro quits (~abab9579@192.249.26.175) (Remote host closed the connection) |
| 09:56:27 | × | gpncarl quits (~gpncarl@222.249.231.3) (Ping timeout: 256 seconds) |
| 09:59:54 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 10:00:03 | → | abastro joins (~abab9579@192.249.26.175) |
| 10:01:23 | <abastro[m]> | Clever of author |
| 10:01:38 | <shiraeeshi> | is the rest of the book like that too? |
| 10:02:10 | <shiraeeshi> | or is this section a particularly dense part of the book? |
| 10:03:06 | <shiraeeshi> | the chapter before that section were more or less clear |
| 10:03:11 | <shiraeeshi> | *chapters |
| 10:03:42 | <jerry99> | style question: what do you think about doing x <- pure (computeNewValue x) over let x' = computeNewValue x? |
| 10:04:26 | <jerry99> | it prevents potential bug of using x instead of x' |
| 10:04:47 | × | xff0x_ quits (~xff0x@125x102x200x106.ap125.ftth.ucom.ne.jp) (Ping timeout: 246 seconds) |
| 10:06:59 | × | jespada_ quits (~jespada@146.70.119.10) (Ping timeout: 240 seconds) |
| 10:09:39 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 10:10:03 | × | merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
| 10:10:15 | × | acidjnk quits (~acidjnk@p200300d0c73b4554ec7e8ddc2cd32bc3.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 10:10:46 | → | jonathanx_ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 10:12:53 | → | dhil joins (~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net) |
| 10:13:00 | × | jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 276 seconds) |
| 10:13:33 | → | jespada joins (~jespada@146.70.119.92) |
| 10:14:06 | → | acidjnk joins (~acidjnk@p200300d0c73b455469ba8f1e402628de.dip0.t-ipconnect.de) |
| 10:14:59 | × | CiaoSen quits (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 10:16:04 | <shiraeeshi> | the book actually showed how to apply induction when proving some equations |
| 10:16:52 | <shiraeeshi> | and the fact that they expressed m+1 case in terms of m case hints that you should apply the similar technique |
| 10:17:13 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 10:17:25 | <shiraeeshi> | but I couldn't put all the pieces together without some help |
| 10:17:41 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 10:18:06 | × | abastro quits (~abab9579@192.249.26.175) (Read error: Connection reset by peer) |
| 10:19:23 | → | abastro joins (~abab9579@192.249.26.175) |
| 10:37:51 | → | Core4993 joins (~Core4993@2408:8409:1880:1f0d:4019:afff:fee9:16cc) |
| 10:39:42 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds) |
| 10:40:59 | × | Major_Biscuit quits (~MajorBisc@c-001-021-011.client.tudelft.eduvpn.nl) (Ping timeout: 240 seconds) |
| 10:41:46 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 10:48:07 | → | kaskal joins (~kaskal@2001:4bb8:2e0:b5bd:e3c0:d71b:f32:84d8) |
| 10:48:08 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 10:49:05 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 10:52:38 | → | CiaoSen joins (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 10:53:33 | <[exa]> | shiraeeshi: the rest of the book should not depend too much on it, the point is that somehow this is kinda instinctive for everyone in CS (not really hard though), you just need to jump over the cliff at some point |
| 10:54:15 | × | Core4993 quits (~Core4993@2408:8409:1880:1f0d:4019:afff:fee9:16cc) (Read error: Connection reset by peer) |
| 10:54:29 | → | Core4993 joins (~Core4993@222.249.231.6) |
| 10:54:31 | <[exa]> | jerry99: I'd make a special name for `pure.computeNewValue` that explicitly looks like the 'x' is really changing |
| 10:55:15 | <[exa]> | other than that, preventing unwanted recursion is a good goal I'd guess, esp. if the codebase would contain a lot of such places |
| 10:55:55 | <[exa]> | shiraeeshi: (that said, getting some help with this is usually expected, esp. if you're not a math geek) |
| 10:58:36 | [exa] | just realized that "jump over the cliff" doesn't translate well to english as an idiom |
| 11:04:25 | × | sprout quits (~quassel@2a02-a467-ccd6-1-5483-9565-9dfd-ed25.fixed6.kpn.net) (Ping timeout: 248 seconds) |
| 11:14:10 | → | Guest55 joins (~Guest55@82.210.152.104) |
| 11:14:43 | <Guest55> | hello. Can you review this? https://www.mathworks.com/matlabcentral/fileexchange/110550-lu-decomposition-doolittle-crout |
| 11:16:52 | → | sprout joins (~quassel@2a02-a45f-f170-1-814e-302e-b3b3-1d39.fixed6.kpn.net) |
| 11:16:56 | <[exa]> | Guest55: that's matlab? how's that relevant to haskell? |
| 11:17:14 | <Guest55> | it is relevant to math |
| 11:17:45 | <Guest55> | and if you want, do you know a way to implement LU in haskell as fast as that code? |
| 11:18:04 | × | neurocyte8614492 quits (~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat) |
| 11:18:35 | <[exa]> | you can run it from any blas library without much effort |
| 11:18:41 | <Guest55> | I tested it, and on a matrix 500x500, it runs on 0.2835 secs |
| 11:18:46 | <[exa]> | the library name is literally `blas`, see https://hackage.haskell.org/package/blas |
| 11:18:49 | <Guest55> | on intel core 2 duo |
| 11:19:05 | <Guest55> | indeed, but this has only 2 lines of code |
| 11:19:11 | <Guest55> | it is comparable? |
| 11:19:12 | → | gpncarl joins (~gpncarl@210.12.195.5) |
| 11:19:19 | → | Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net) |
| 11:19:20 | <[exa]> | so does the blas call I'd say |
| 11:19:35 | <Guest55> | oh, so i've got blas speed under my nails |
| 11:19:51 | → | neurocyte8614492 joins (~neurocyte@IP-185189141186.dynamic.medianet-world.de) |
| 11:19:51 | × | neurocyte8614492 quits (~neurocyte@IP-185189141186.dynamic.medianet-world.de) (Changing host) |
| 11:19:51 | → | neurocyte8614492 joins (~neurocyte@user/neurocyte) |
| 11:20:03 | <Guest55> | i was just asking for an opinion about code |
| 11:21:10 | <[exa]> | not sure, I can't open it |
| 11:21:17 | <[exa]> | perhaps if you could pastebin it |
| 11:21:22 | → | arjun joins (~user@user/arjun) |
| 11:21:32 | <Guest55> | sure |
| 11:21:50 | <Guest55> | for starters, git repo: https://github.com/antonpuiu/Numerical-Methods/commit/c588d0727f78e0c7f6464b1b542c2611f7729e8f |
| 11:22:32 | × | jgeerds quits (~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 248 seconds) |
| 11:22:54 | <Guest55> | https://pastebin.com/mViH9CXv |
| 11:23:08 | <Guest55> | that's crout |
| 11:23:18 | <[exa]> | nah, it's matlab |
| 11:23:31 | <[exa]> | mathematically it might be sound but you may visit ##math for that |
| 11:23:34 | <Guest55> | this is doolittle |
| 11:23:35 | <Guest55> | https://pastebin.com/PChrwHy5 |
| 11:23:41 | <[exa]> | similar for programming and #matlab |
| 11:23:49 | <Guest55> | indeed, i tried on both but no activity |
| 11:23:52 | <[exa]> | :( |
| 11:24:25 | <[exa]> | better remove the commented-out code and add source commentary to actually make the purpose and everything super-visible (<- general programming advice) |
| 11:24:27 | × | sprout quits (~quassel@2a02-a45f-f170-1-814e-302e-b3b3-1d39.fixed6.kpn.net) (Ping timeout: 240 seconds) |
| 11:24:44 | <Guest55> | that is just to check the time values |
| 11:24:47 | <[exa]> | I spot half of my mistakes when trying to make sense of the code the second time when documenting it for others |
| 11:25:17 | <Guest55> | https://github.com/antonpuiu/Numerical-Methods/blob/main/octave/lu/doolittle.m |
| 11:25:32 | <Guest55> | that commit was just to highlight the time difference |
| 11:26:12 | → | sprout joins (~quassel@2a02-a45f-f170-1-814e-302e-b3b3-1d39.fixed6.kpn.net) |
| 11:26:35 | <Guest55> | first version, altought vectorized for the sum, ran on 9.ish seconds, the second version 0.28 |
| 11:26:42 | × | neurocyte8614492 quits (~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat) |
| 11:27:27 | <Guest55> | in this case i don't feel the need to document this code, considering the fact that it is optimized |
| 11:28:09 | → | __monty__ joins (~toonn@user/toonn) |
| 11:28:54 | <Guest55> | and it is just a script in octave ^.^ |
| 11:28:55 | × | acidjnk quits (~acidjnk@p200300d0c73b455469ba8f1e402628de.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 11:29:19 | → | acidjnk joins (~acidjnk@p200300d0c73b45545c9eacfd1d8aac0e.dip0.t-ipconnect.de) |
| 11:31:39 | × | zyklotomic quits (~ethan@r4-128-61-93-82.res.gatech.edu) (Ping timeout: 256 seconds) |
| 11:33:18 | → | zyklotomic joins (~ethan@res380d-128-61-87-152.res.gatech.edu) |
| 11:35:37 | × | mikoto-chan quits (~mikoto-ch@84.199.144.235) (Ping timeout: 256 seconds) |
| 11:36:20 | <Guest55> | and there is still room for improvement: https://pastebin.com/z0XrwCXm |
| 11:36:35 | × | acidjnk quits (~acidjnk@p200300d0c73b45545c9eacfd1d8aac0e.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 11:38:45 | → | xff0x_ joins (~xff0x@om126158170114.30.openmobile.ne.jp) |
| 11:39:50 | → | merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
| 11:45:46 | → | mikoto-chan joins (~mikoto-ch@84.199.144.235) |
| 11:51:02 | × | Guest55 quits (~Guest55@82.210.152.104) (Ping timeout: 252 seconds) |
| 11:52:08 | → | Guest55 joins (~Guest55@82.210.152.104) |
| 11:52:22 | × | Guest55 quits (~Guest55@82.210.152.104) (Client Quit) |
| 11:53:30 | × | teddyc quits (theodorc@cassarossa.samfundet.no) (Quit: WeeChat 3.0) |
| 11:55:37 | → | Major_Biscuit joins (~MajorBisc@145.94.235.5) |
| 11:58:52 | × | tv quits (~tv@user/tv) (Ping timeout: 272 seconds) |
| 11:59:25 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 256 seconds) |
| 12:02:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 12:08:19 | → | teddyc joins (theodorc@cassarossa.samfundet.no) |
| 12:10:25 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 12:12:04 | → | tv joins (~tv@user/tv) |
| 12:13:54 | × | hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection) |
| 12:19:32 | → | hololeap joins (~hololeap@user/hololeap) |
| 12:23:45 | → | lbseale joins (~ep1ctetus@user/ep1ctetus) |
| 12:23:48 | × | lbseale quits (~ep1ctetus@user/ep1ctetus) (Client Quit) |
| 12:29:34 | → | vorpuni joins (~pvorp@2001:861:3881:c690:aeec:dab5:81df:c256) |
| 12:36:34 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 12:39:04 | → | deadmarshal_ joins (~deadmarsh@95.38.113.114) |
| 12:40:13 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
| 12:40:53 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds) |
| 12:41:55 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 12:47:00 | × | briandaed quits (~briandaed@109.95.142.93.r.toneticgroup.pl) (Ping timeout: 272 seconds) |
| 12:50:22 | × | xff0x_ quits (~xff0x@om126158170114.30.openmobile.ne.jp) (Read error: Connection reset by peer) |
| 12:50:58 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Quit: leaving) |
| 12:51:19 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 12:52:15 | → | briandaed joins (~briandaed@109.95.142.93.r.toneticgroup.pl) |
| 12:58:08 | × | frost quits (~frost@user/frost) (Ping timeout: 252 seconds) |
| 12:59:54 | → | coot joins (~coot@213.134.190.95) |
| 13:01:07 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 13:01:11 | × | deadmarshal_ quits (~deadmarsh@95.38.113.114) (Ping timeout: 246 seconds) |
| 13:04:01 | × | shiraeeshi quits (~shiraeesh@109.166.57.76) (Ping timeout: 256 seconds) |
| 13:06:38 | × | mikoto-chan quits (~mikoto-ch@84.199.144.235) (Ping timeout: 272 seconds) |
| 13:08:31 | × | sprout quits (~quassel@2a02-a45f-f170-1-814e-302e-b3b3-1d39.fixed6.kpn.net) (Ping timeout: 260 seconds) |
| 13:10:11 | → | frost joins (~frost@user/frost) |
| 13:11:52 | × | renzhi quits (~xp@2607:fa49:6500:b100::1d4a) (Ping timeout: 248 seconds) |
| 13:12:19 | × | vysn quits (~vysn@user/vysn) (Ping timeout: 240 seconds) |
| 13:12:31 | → | Core4993_ joins (~Core4993@2408:8409:1880:1f0d:4019:afff:fee9:16cc) |
| 13:13:59 | × | Core4993 quits (~Core4993@222.249.231.6) (Ping timeout: 240 seconds) |
| 13:16:25 | → | xff0x_ joins (~xff0x@om126158204045.30.openmobile.ne.jp) |
| 13:17:30 | × | Core4993_ quits (~Core4993@2408:8409:1880:1f0d:4019:afff:fee9:16cc) (Quit: CoreIRC for Android - www.coreirc.com) |
| 13:17:50 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 13:25:06 | → | renzhi joins (~xp@2607:fa49:6500:b100::19a0) |
| 13:28:00 | → | zebrag joins (~chris@user/zebrag) |
| 13:32:15 | → | EvanR_ joins (~EvanR@user/evanr) |
| 13:32:49 | → | jgeerds joins (~jgeerds@d53604b0.access.ecotel.net) |
| 13:33:32 | × | EvanR quits (~EvanR@user/evanr) (Ping timeout: 250 seconds) |
| 13:36:18 | → | titibandit joins (~thibaut@2a00:8a60:c000:1:8a13:bf74:b2:8d47) |
| 13:36:40 | → | deadmarshal_ joins (~deadmarsh@95.38.113.114) |
| 13:37:15 | → | leeb joins (~leeb@KD106155000251.au-net.ne.jp) |
| 13:39:25 | ← | titibandit parts (~thibaut@2a00:8a60:c000:1:8a13:bf74:b2:8d47) () |
| 13:40:36 | → | sprout joins (~quassel@77-169-234-124.fixed.kpn.net) |
| 13:41:05 | × | deadmarshal_ quits (~deadmarsh@95.38.113.114) (Ping timeout: 246 seconds) |
| 13:45:56 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 13:47:09 | → | void joins (~vodage@118.201.231.83) |
| 13:48:42 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 13:50:20 | × | vodage quits (~vodage@118.201.231.83) (Ping timeout: 272 seconds) |
| 13:50:32 | → | void1 joins (~vodage@118.201.231.83) |
| 13:53:55 | → | void2 joins (~vodage@118.201.231.83) |
| 13:54:00 | × | void quits (~vodage@118.201.231.83) (Ping timeout: 276 seconds) |
| 13:54:21 | → | Pickchea joins (~private@user/pickchea) |
| 13:55:23 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 13:56:39 | × | void1 quits (~vodage@118.201.231.83) (Ping timeout: 240 seconds) |
| 14:00:34 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 14:03:33 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 14:09:14 | × | dextaa4 quits (~dextaa@user/dextaa) (Remote host closed the connection) |
| 14:11:03 | → | acidjnk joins (~acidjnk@p200300d0c73b45549932693d78c3d853.dip0.t-ipconnect.de) |
| 14:14:39 | ← | leeb parts (~leeb@KD106155000251.au-net.ne.jp) (WeeChat 3.2.1) |
| 14:17:38 | × | gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 14:18:04 | × | frost quits (~frost@user/frost) (Ping timeout: 252 seconds) |
| 14:18:20 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 14:19:11 | × | caubert quits (~caubert@136.244.111.235) (Quit: WeeChat 3.4) |
| 14:19:21 | → | void3 joins (~vodage@118.201.231.83) |
| 14:19:29 | → | caubert joins (~caubert@136.244.111.235) |
| 14:22:07 | × | void2 quits (~vodage@118.201.231.83) (Ping timeout: 240 seconds) |
| 14:22:44 | → | void4 joins (~vodage@118.201.231.83) |
| 14:23:54 | × | abastro quits (~abab9579@192.249.26.175) (Ping timeout: 276 seconds) |
| 14:25:19 | × | void3 quits (~vodage@118.201.231.83) (Ping timeout: 240 seconds) |
| 14:26:39 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 240 seconds) |
| 14:27:19 | × | dhil quits (~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net) (Ping timeout: 256 seconds) |
| 14:27:34 | → | zer0bitz joins (~zer0bitz@2001:2003:f444:8f00:90b9:bbad:a877:920a) |
| 14:33:03 | → | void joins (~vodage@118.201.231.83) |
| 14:34:41 | × | briandaed quits (~briandaed@109.95.142.93.r.toneticgroup.pl) (Ping timeout: 256 seconds) |
| 14:35:01 | → | szkl joins (uid110435@id-110435.uxbridge.irccloud.com) |
| 14:35:36 | × | void4 quits (~vodage@118.201.231.83) (Ping timeout: 276 seconds) |
| 14:36:37 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 14:38:24 | → | void1 joins (~vodage@118.201.231.83) |
| 14:38:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 14:39:55 | → | briandaed joins (~briandaed@109.95.142.93.r.toneticgroup.pl) |
| 14:41:17 | × | void quits (~vodage@118.201.231.83) (Ping timeout: 246 seconds) |
| 14:43:45 | → | void2 joins (~vodage@118.201.231.83) |
| 14:44:42 | → | vysn joins (~vysn@user/vysn) |
| 14:45:44 | × | acidjnk quits (~acidjnk@p200300d0c73b45549932693d78c3d853.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
| 14:45:49 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 14:46:59 | × | void1 quits (~vodage@118.201.231.83) (Ping timeout: 260 seconds) |
| 14:52:03 | × | lagash quits (lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in) |
| 14:53:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 14:53:28 | × | cdman quits (~dcm@user/dmc/x-4369397) (Quit: Leaving) |
| 14:54:51 | × | briandaed quits (~briandaed@109.95.142.93.r.toneticgroup.pl) (Quit: leaving) |
| 14:54:59 | → | briandaed joins (~briandaed@109.95.142.93.r.toneticgroup.pl) |
| 14:56:07 | × | mud quits (~mud@user/kadoban) (Ping timeout: 240 seconds) |
| 14:56:19 | → | mud joins (~mud@user/kadoban) |
| 14:56:39 | → | lagash joins (lagash@lagash.shelltalk.net) |
| 14:58:11 | → | void3 joins (~vodage@118.201.231.83) |
| 14:58:26 | × | merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
| 15:00:11 | → | coot joins (~coot@213.134.190.95) |
| 15:01:27 | × | void2 quits (~vodage@118.201.231.83) (Ping timeout: 260 seconds) |
| 15:01:52 | → | shriekingnoise joins (~shrieking@201.231.16.156) |
| 15:03:20 | × | briandaed quits (~briandaed@109.95.142.93.r.toneticgroup.pl) (Ping timeout: 246 seconds) |
| 15:05:14 | → | tremon joins (~tremon@83-84-18-241.cable.dynamic.v4.ziggo.nl) |
| 15:05:34 | → | void4 joins (~vodage@118.201.231.83) |
| 15:05:56 | <void4> | nick vodage |
| 15:06:10 | void4 | is now known as vodage |
| 15:06:22 | × | vodage quits (~vodage@118.201.231.83) (Client Quit) |
| 15:06:27 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:b886:3eb2:a21d:c1a7) (Quit: WeeChat 2.8) |
| 15:07:19 | → | geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca) |
| 15:08:35 | × | void3 quits (~vodage@118.201.231.83) (Ping timeout: 246 seconds) |
| 15:08:41 | → | briandaed joins (~briandaed@109.95.142.93.r.toneticgroup.pl) |
| 15:09:30 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 272 seconds) |
| 15:11:01 | → | kadobanana joins (~mud@user/kadoban) |
| 15:11:02 | × | mud quits (~mud@user/kadoban) (Ping timeout: 250 seconds) |
| 15:16:03 | × | kadobanana quits (~mud@user/kadoban) (Read error: Connection reset by peer) |
| 15:16:28 | → | kadobanana joins (~mud@user/kadoban) |
| 15:22:03 | × | jerry99 quits (~330f7c14@cerf.good1.com) (Quit: CGI:IRC (Session timeout)) |
| 15:23:32 | × | kadobanana quits (~mud@user/kadoban) (Remote host closed the connection) |
| 15:23:57 | × | xff0x_ quits (~xff0x@om126158204045.30.openmobile.ne.jp) (Read error: Connection reset by peer) |
| 15:23:57 | → | kadobanana joins (~mud@user/kadoban) |
| 15:24:15 | × | anomal quits (~anomal@87.227.196.109) (Remote host closed the connection) |
| 15:27:14 | → | merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
| 15:31:39 | × | merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
| 15:32:59 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 15:33:59 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 15:35:32 | × | ccntrq quits (~Thunderbi@2a01:e34:eccb:b060:b841:3aa3:64b1:7cea) (Quit: ccntrq) |
| 15:44:06 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 15:45:58 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 15:47:11 | × | CiaoSen quits (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 15:49:55 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 15:50:26 | → | kaph joins (~kaph@net-2-42-128-49.cust.vodafonedsl.it) |
| 15:51:18 | × | Major_Biscuit quits (~MajorBisc@145.94.235.5) (Ping timeout: 272 seconds) |
| 15:51:59 | × | kaph quits (~kaph@net-2-42-128-49.cust.vodafonedsl.it) (Remote host closed the connection) |
| 15:52:35 | → | kaph joins (~kaph@net-2-42-128-49.cust.vodafonedsl.it) |
| 15:52:59 | × | kaph quits (~kaph@net-2-42-128-49.cust.vodafonedsl.it) (Max SendQ exceeded) |
| 15:53:04 | × | azimut_ quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
| 15:54:33 | → | kaph joins (~kaph@net-2-42-128-49.cust.vodafonedsl.it) |
| 15:55:03 | × | kaph quits (~kaph@net-2-42-128-49.cust.vodafonedsl.it) (Remote host closed the connection) |
| 15:58:18 | → | merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
| 15:58:25 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::aa1d) |
| 15:59:06 | × | geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Remote host closed the connection) |
| 16:03:13 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 16:05:36 | → | Major_Biscuit joins (~MajorBisc@145.94.235.5) |
| 16:07:03 | × | briandaed quits (~briandaed@109.95.142.93.r.toneticgroup.pl) (Ping timeout: 256 seconds) |
| 16:07:16 | × | Midjak quits (~Midjak@82.66.147.146) (Read error: Connection reset by peer) |
| 16:07:37 | → | geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca) |
| 16:11:37 | <Sgeo> | Is there a list somewhere of every optics encoding people are known to have experimented with? |
| 16:12:38 | × | synthmeat quits (~synthmeat@user/synthmeat) (Remote host closed the connection) |
| 16:12:55 | → | synthmeat joins (~synthmeat@user/synthmeat) |
| 16:12:59 | × | synthmeat quits (~synthmeat@user/synthmeat) (Client Quit) |
| 16:13:25 | → | briandaed joins (~briandaed@109.95.142.93.r.toneticgroup.pl) |
| 16:14:25 | → | dextaa4 joins (~dextaa@user/dextaa) |
| 16:17:33 | <[exa]> | Sgeo: recent papers have pretty good overviews (e.g. https://arxiv.org/pdf/2001.07488.pdf) but I doubt there will be an exhaustive list |
| 16:18:03 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 16:19:24 | <Sgeo> | Thank you |
| 16:19:31 | <[exa]> | otoh I guess there ain't gonna be much diversity-- there's the functor (Laarhoven) encoding, profunctor encoding, optics-style encoding that doesn't compose as functions, and the rest is probably going to be similar to most |
| 16:19:51 | <[exa]> | s/most/these/ |
| 16:21:10 | → | synthmeat joins (~synthmeat@user/synthmeat) |
| 16:21:13 | × | zyklotomic quits (~ethan@res380d-128-61-87-152.res.gatech.edu) (Ping timeout: 256 seconds) |
| 16:21:32 | <[exa]> | also, as usual with computers, there's infinitely many indiscernible encodings |
| 16:21:35 | <[exa]> | :] |
| 16:22:46 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 16:23:01 | <Sgeo> | If I don't care about don't compose as functions, are there versions of that that do have a composition operator across different optics? |
| 16:23:29 | → | zyklotomic joins (~ethan@r4-128-61-94-122.res.gatech.edu) |
| 16:23:49 | <c_wraith> | the optics package does, though it requires the ecosystem be closed to make it work |
| 16:23:56 | <c_wraith> | @hackage optics |
| 16:23:56 | <lambdabot> | https://hackage.haskell.org/package/optics |
| 16:24:23 | <tdammers> | [exa]: not literally infinite, it's a finite machine after all |
| 16:25:01 | <[exa]> | tdammers: I shall build a bigger computer and break your logicks |
| 16:25:20 | <tdammers> | [exa]: I'm looking forward to seeing your infinitely big computer. |
| 16:25:31 | <c_wraith> | Sgeo: look at the fancy type here: https://hackage.haskell.org/package/optics-core-0.4.1/docs/Optics-Optic.html#v:-37- |
| 16:25:38 | [exa] | hopes the universe won't run out too soon! |
| 16:27:14 | <Andrew> | Universe :: () |
| 16:27:18 | <Andrew> | s/U/u/ |
| 16:28:26 | <[exa]> | ._. |
| 16:29:01 | <tdammers> | time for a dependently typed universe |
| 16:30:22 | → | vicfred joins (~vicfred@user/vicfred) |
| 16:31:59 | × | dextaa4 quits (~dextaa@user/dextaa) (Read error: Connection reset by peer) |
| 16:33:15 | × | merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 276 seconds) |
| 16:33:54 | → | dextaa4 joins (~dextaa@user/dextaa) |
| 16:37:29 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 16:39:04 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 16:39:41 | nf | is now known as ncf |
| 16:41:22 | <EvanR_> | that's like there aren't infinite numbers because any given number is finite |
| 16:41:45 | <EvanR_> | I guess there are those who troll such statements hard |
| 16:44:06 | EvanR_ | is now known as EvanR |
| 16:46:03 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 16:49:09 | → | thyriaen joins (~thyriaen@ip5f5af2d7.dynamic.kabel-deutschland.de) |
| 16:49:34 | × | szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 16:56:21 | × | jespada quits (~jespada@146.70.119.92) (Ping timeout: 256 seconds) |
| 16:56:48 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 16:57:34 | → | deadmarshal_ joins (~deadmarsh@95.38.113.114) |
| 17:00:37 | → | jespada joins (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) |
| 17:02:19 | × | deadmarshal_ quits (~deadmarsh@95.38.113.114) (Ping timeout: 260 seconds) |
| 17:02:34 | × | cosimone quits (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) (Remote host closed the connection) |
| 17:03:01 | → | econo joins (uid147250@user/econo) |
| 17:03:14 | → | cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) |
| 17:06:06 | → | jespada_ joins (~jespada@146.70.119.92) |
| 17:06:59 | × | jespada quits (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) (Ping timeout: 260 seconds) |
| 17:10:31 | × | troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 256 seconds) |
| 17:12:22 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds) |
| 17:12:47 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 17:18:14 | <monochrom> | It is not easy to design an experiment that refutes a claim of "my computer is infinitely big". |
| 17:19:57 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 17:20:06 | → | deadmarshal_ joins (~deadmarsh@95.38.113.114) |
| 17:21:33 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 17:22:17 | × | dextaa4 quits (~dextaa@user/dextaa) (Read error: Connection reset by peer) |
| 17:23:01 | × | benin quits (~benin@183.82.204.110) (Quit: The Lounge - https://thelounge.chat) |
| 17:23:08 | × | Major_Biscuit quits (~MajorBisc@145.94.235.5) (Ping timeout: 272 seconds) |
| 17:24:30 | → | dextaa4 joins (~dextaa@user/dextaa) |
| 17:25:10 | → | kaph joins (~kaph@net-2-42-128-49.cust.vodafonedsl.it) |
| 17:26:18 | <tdammers> | monochrom: refuting the claim is easy. proving it may take a while. |
| 17:26:40 | → | coot joins (~coot@213.134.190.95) |
| 17:30:37 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 17:31:15 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 17:32:16 | <Hecate> | monochrom: it's actually very easy. Allocate a thousand billion terabyte of RAM |
| 17:33:38 | <exarkun> | That can only demonstrate that you have an /allocator/ with a finite limit (or fail to demonstrate it). |
| 17:33:51 | <[exa]> | Hecate: I have them allocated. What do I do now? |
| 17:34:05 | <exarkun> | I think I would use a gravitational gradient measurement instrument. |
| 17:34:19 | <exarkun> | An infinitely large computer is bound to have a measurable impact on the local spacetime continuum. |
| 17:34:39 | <[exa]> | exarkun: good point, I'd say even a total impact |
| 17:34:55 | <[exa]> | (unless the computer is elongated in one direction) |
| 17:35:42 | <geekosaur> | remember that ghc allocates several TB without committing it :) |
| 17:36:10 | <arjun> | Aren't we all inside a computer already? |
| 17:36:38 | × | sprout quits (~quassel@77-169-234-124.fixed.kpn.net) (Ping timeout: 246 seconds) |
| 17:37:02 | <arjun> | games like GTA have in-game mini-games, we have in-game computers |
| 17:37:16 | → | Midjak joins (~Midjak@82.66.147.146) |
| 17:37:50 | <EvanR> | exarkun, if the computer was spread out, say clumped into galaxies and clusters spanning the entire universe |
| 17:37:56 | <EvanR> | should work, not sure |
| 17:38:13 | <exarkun> | EvanR: The universe doesn't even have infinite mass though |
| 17:38:33 | <exarkun> | I think this infinitely big computer might just be incompatible with our current understanding of physics. |
| 17:38:42 | <EvanR> | ambiguity between talking about the ENTIRE universe and the limited observable universe detected |
| 17:39:28 | <EvanR> | but you're right there's a noticable effect on spacetime |
| 17:39:38 | × | mbuf quits (~Shakthi@122.174.215.164) (Quit: Leaving) |
| 17:39:48 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::aa1d) (Ping timeout: 240 seconds) |
| 17:39:55 | [exa] | . o O (the surprise when you observe the whole universe and it generates a few next chunks as in minecraft) |
| 17:39:57 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:41:42 | <monochrom> | Hecate: Hrm you're right, I got this thing flipped heh. |
| 17:43:45 | <EvanR> | need a malloc that reacts to overallocation by blocking until amazon ships you more ram |
| 17:44:06 | <exarkun> | malloc() can succeed and place the order in the background |
| 17:44:12 | <exarkun> | only need to block when the page is written to |
| 17:44:16 | <EvanR> | yeah, that |
| 17:44:33 | <exarkun> | (this makes the implementation _much_ more realistic ...) |
| 17:44:56 | <Hecate> | [exa]: commit to it then ;) |
| 17:46:11 | × | vysn quits (~vysn@user/vysn) (Ping timeout: 260 seconds) |
| 17:48:16 | → | romesrf joins (~romes@185.5.8.134) |
| 17:49:43 | → | sprout joins (~quassel@2a02-a467-ccd6-1-c2b-6618-4046-f43a.fixed6.kpn.net) |
| 17:50:15 | → | whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com) |
| 18:01:12 | → | jhagborg joins (~jhagborg@068-187-237-099.res.spectrum.com) |
| 18:05:25 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 18:06:06 | × | alp_ quits (~alp@user/alp) (Remote host closed the connection) |
| 18:06:25 | → | alp_ joins (~alp@user/alp) |
| 18:07:00 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 18:07:49 | × | alp_ quits (~alp@user/alp) (Remote host closed the connection) |
| 18:08:09 | → | alp_ joins (~alp@user/alp) |
| 18:11:55 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 18:14:46 | <tdammers> | minecraft worlds are finite though |
| 18:17:57 | <EvanR> | thanks microsoft |
| 18:18:27 | <EvanR> | they put an invisible wall very much closer than previous hard limits |
| 18:18:39 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 18:23:38 | <[exa]> | microsoft finitists!!!1 |
| 18:26:32 | × | deadmarshal_ quits (~deadmarsh@95.38.113.114) (Ping timeout: 248 seconds) |
| 18:26:39 | <tdammers> | flat earth confirmed |
| 18:32:37 | × | geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Remote host closed the connection) |
| 18:37:52 | → | troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua) |
| 18:40:09 | × | thyriaen quits (~thyriaen@ip5f5af2d7.dynamic.kabel-deutschland.de) (Quit: Leaving) |
| 18:40:41 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 246 seconds) |
| 18:40:45 | → | caef^ joins (~caef@50.227.69.228) |
| 18:43:52 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:44:10 | → | geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca) |
| 18:49:49 | → | anomal joins (~anomal@87.227.196.109) |
| 18:52:46 | × | arjun quits (~user@user/arjun) (Remote host closed the connection) |
| 18:56:16 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 18:59:39 | × | geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Remote host closed the connection) |
| 19:00:00 | × | ubert quits (~Thunderbi@p200300ecdf15886161bde835a28140c8.dip0.t-ipconnect.de) (Quit: ubert) |
| 19:00:20 | → | ubert joins (~Thunderbi@p200300ecdf15886161bde835a28140c8.dip0.t-ipconnect.de) |
| 19:00:53 | × | jhagborg quits (~jhagborg@068-187-237-099.res.spectrum.com) (Remote host closed the connection) |
| 19:01:12 | → | jhagborg joins (~jhagborg@068-187-237-099.res.spectrum.com) |
| 19:01:18 | × | romesrf quits (~romes@185.5.8.134) (Ping timeout: 272 seconds) |
| 19:02:42 | → | xaotuk joins (~sasha@109.245.225.166) |
| 19:02:51 | × | ubert quits (~Thunderbi@p200300ecdf15886161bde835a28140c8.dip0.t-ipconnect.de) (Client Quit) |
| 19:03:10 | → | ubert joins (~Thunderbi@p200300ecdf15886161bde835a28140c8.dip0.t-ipconnect.de) |
| 19:07:14 | → | zincy joins (~zincy@2a00:23c8:970c:4801:51f:ae2a:2368:1dfb) |
| 19:07:31 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 19:07:43 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:11:31 | × | kuribas quits (~user@ptr-17d51epkc6cunhibcd0.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
| 19:12:30 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 276 seconds) |
| 19:13:19 | × | coot quits (~coot@213.134.190.95) (Ping timeout: 240 seconds) |
| 19:15:41 | × | caef^ quits (~caef@50.227.69.228) (Remote host closed the connection) |
| 19:16:46 | → | slack1256 joins (~slack1256@191.126.227.203) |
| 19:17:26 | × | briandaed quits (~briandaed@109.95.142.93.r.toneticgroup.pl) (Quit: Lost terminal) |
| 19:18:05 | <slack1256> | I am currently losing a politically battle at the company for using haskell on the future ;_; . |
| 19:18:17 | <slack1256> | Like I am the middle of the reunion now. |
| 19:18:45 | <exarkun> | slack1256: what's the alternative |
| 19:18:54 | → | coot joins (~coot@213.134.190.95) |
| 19:19:09 | <slack1256> | The main argument is that is difficult to hire. But I am sure the recruiter are searching only in linkedin, but not using reddit nor -cafe. |
| 19:19:33 | <tdammers> | well, haskellers *are* difficult to find, especially if you need a lot of them on short notice |
| 19:19:51 | <tdammers> | whether you should ever run a company such that you need a lot of developers on a short notice is another discussion of course |
| 19:20:48 | <EvanR> | new shipment of java coders coming up |
| 19:22:57 | → | geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca) |
| 19:23:44 | <tdammers> | "the last batch was faulty, we had to return them. they kept babbling about 'scah-lah' and 'funk-shernal proh-cramming' and such" |
| 19:23:59 | AlexZenon_2 | is now known as AlexZenon |
| 19:25:34 | → | dhil joins (~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net) |
| 19:26:24 | <slack1256> | This sounds like BS to me. There are a bunch of guys here, on reddit and -cafe that are willing to get a work using haskell on production. I am pretty sure it is caused by where they are searching. How would I test this hypotesis ethically? |
| 19:27:03 | <tdammers> | find a $10M research grant, hire them all |
| 19:27:15 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 19:28:10 | → | Pickchea joins (~private@user/pickchea) |
| 19:28:38 | <slack1256> | The other complain is that there is no `wreq` for http2. |
| 19:28:55 | <slack1256> | There is a Client module on a Kazu's library, but it is not ergonomic. |
| 19:29:01 | × | ncf quits (~n@monade.li) (Quit: Fairfarren.) |
| 19:29:11 | → | nf joins (~n@monade.li) |
| 19:29:32 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 19:29:51 | nf | is now known as ncf |
| 19:31:03 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
| 19:31:04 | <dolio> | Maybe you have a different idea of 'hard to hire.' |
| 19:31:59 | <slack1256> | Maybe... |
| 19:33:00 | <dolio> | Like, if you want to treat your programmers as disposable cogs, there are orders of magnitude more people using trendier languages to try to 'make money in tech,' or whatever. |
| 19:35:06 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 19:36:33 | → | acidjnk joins (~acidjnk@p200300d0c73b45549932693d78c3d853.dip0.t-ipconnect.de) |
| 19:36:39 | × | vorpuni quits (~pvorp@2001:861:3881:c690:aeec:dab5:81df:c256) (Ping timeout: 240 seconds) |
| 19:38:08 | × | redb quits (~nmh@136.49.49.211) (Read error: Connection reset by peer) |
| 19:38:14 | → | merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
| 19:38:21 | <slack1256> | BTW, do you guys use http2 as a client on any of your programs? What do you use or do? |
| 19:40:25 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:41:00 | → | shiraeeshi joins (~shiraeesh@109.166.57.88) |
| 19:41:13 | → | laolmtdea^ joins (~laolmtdea@50.227.69.228) |
| 19:41:16 | → | sw4n joins (~sw4n@cpe-104-228-16-7.nycap.res.rr.com) |
| 19:42:01 | → | liz joins (~liz@host109-151-125-217.range109-151.btcentralplus.com) |
| 19:42:48 | → | redb joins (~nmh@136.49.49.211) |
| 19:49:38 | × | sw4n quits (~sw4n@cpe-104-228-16-7.nycap.res.rr.com) (Remote host closed the connection) |
| 19:49:56 | → | sw4n joins (~sw4n@cpe-104-228-16-7.nycap.res.rr.com) |
| 19:50:08 | × | shriekingnoise quits (~shrieking@201.231.16.156) (Quit: Quit) |
| 19:53:00 | × | sw4n quits (~sw4n@cpe-104-228-16-7.nycap.res.rr.com) (Remote host closed the connection) |
| 19:53:23 | → | zeenk joins (~zeenk@2a02:2f0e:7713:b01:9f0b:5fe0:531e:9cf6) |
| 19:54:52 | × | dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.5) |
| 19:57:06 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 19:57:49 | → | zeenk2 joins (~zeenk@82.79.126.41) |
| 19:57:54 | × | zeenk quits (~zeenk@2a02:2f0e:7713:b01:9f0b:5fe0:531e:9cf6) (Ping timeout: 250 seconds) |
| 20:00:55 | × | kaph quits (~kaph@net-2-42-128-49.cust.vodafonedsl.it) (Read error: Connection reset by peer) |
| 20:00:59 | × | alp_ quits (~alp@user/alp) (Ping timeout: 240 seconds) |
| 20:01:09 | → | kaph joins (~kaph@net-2-42-128-49.cust.vodafonedsl.it) |
| 20:04:24 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 20:04:54 | → | qhong joins (~qhong@rescomp-21-400677.stanford.edu) |
| 20:04:57 | → | pavonia joins (~user@user/siracusa) |
| 20:05:20 | × | zincy quits (~zincy@2a00:23c8:970c:4801:51f:ae2a:2368:1dfb) (Remote host closed the connection) |
| 20:07:08 | × | merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
| 20:10:22 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:11:13 | <hololeap> | http/1.1 gang |
| 20:12:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 20:12:17 | <hololeap> | I don't know the difference, tbh |
| 20:12:36 | → | shriekingnoise joins (~shrieking@201.231.16.156) |
| 20:13:05 | × | troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 246 seconds) |
| 20:13:13 | <exarkun> | I hear http3 is coming any minute now anyway |
| 20:15:01 | <sclv> | there are a couple http2 clients in haskell and building a wreq-like interface over them wouldn’t be hard |
| 20:15:35 | <sclv> | but also grpc is the only thing i know of that requires http2 and there are libraries specifically for that |
| 20:16:50 | <sclv> | vis a vis the other stuff its not “hard to hire” 2 or 3 at a time at all. But if you want 20 or so at once its a different story — but again, who wants that!? |
| 20:17:17 | → | coot joins (~coot@213.134.190.95) |
| 20:17:57 | <exarkun> | "hard" and "easy" are not intrinsic to the task, anyway. it is no doubt easier for some people/orgs to hire haskell programmers than it is for other people/orgs. |
| 20:21:06 | → | fendor_ joins (~fendor@178.165.165.71.wireless.dyn.drei.com) |
| 20:22:54 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 20:24:00 | × | fendor quits (~fendor@178.115.54.135.wireless.dyn.drei.com) (Ping timeout: 276 seconds) |
| 20:24:56 | × | jgeerds quits (~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 248 seconds) |
| 20:25:08 | × | AkechiShiro quits (~licht@user/akechishiro) (Quit: WeeChat 3.2.1) |
| 20:25:44 | → | AkechiShiro joins (~licht@user/akechishiro) |
| 20:27:00 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 20:27:09 | × | redb quits (~nmh@136.49.49.211) (Ping timeout: 256 seconds) |
| 20:28:56 | → | redb joins (~nmh@136.49.49.211) |
| 20:30:31 | → | zincy joins (~zincy@2a00:23c8:970c:4801:51f:ae2a:2368:1dfb) |
| 20:30:42 | <slack1256> | sclv: There is also apple APN stuff. That is http2 only AFAIK. |
| 20:30:52 | → | zeenk joins (~zeenk@2a02:2f0e:7603:9c01:4e89:6ef1:76e9:3685) |
| 20:31:52 | × | zeenk2 quits (~zeenk@82.79.126.41) (Ping timeout: 272 seconds) |
| 20:32:04 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
| 20:32:22 | <sclv> | interesting! I didn’t know |
| 20:33:11 | <sclv> | apparently the final cutover was march 31 |
| 20:35:03 | → | hololeap joins (~hololeap@user/hololeap) |
| 20:38:43 | <slack1256> | cutover? |
| 20:40:11 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:41:04 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
| 20:41:33 | × | vicfred quits (~vicfred@user/vicfred) (Quit: Leaving) |
| 20:42:14 | <geekosaur> | https://developer.apple.com/news/?id=c88acm2b |
| 20:43:04 | → | mshiraeeshi joins (~shiraeesh@46.34.207.121) |
| 20:45:10 | × | shiraeeshi quits (~shiraeesh@109.166.57.88) (Ping timeout: 272 seconds) |
| 20:48:37 | <slack1256> | Oh, thanks geekosaur. |
| 20:49:12 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 20:52:01 | × | zer0bitz quits (~zer0bitz@2001:2003:f444:8f00:90b9:bbad:a877:920a) (Read error: Connection reset by peer) |
| 20:52:20 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 20:53:20 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 20:55:09 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 20:58:03 | → | troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua) |
| 21:02:59 | × | ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 21:03:27 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 21:05:03 | × | dextaa4 quits (~dextaa@user/dextaa) (Read error: Connection reset by peer) |
| 21:05:32 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 21:06:28 | → | dextaa4 joins (~dextaa@user/dextaa) |
| 21:07:11 | × | zincy quits (~zincy@2a00:23c8:970c:4801:51f:ae2a:2368:1dfb) (Remote host closed the connection) |
| 21:08:57 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 21:09:51 | × | dextaa4 quits (~dextaa@user/dextaa) (Read error: Connection reset by peer) |
| 21:12:03 | → | dextaa4 joins (~dextaa@user/dextaa) |
| 21:16:22 | → | stackdroid18 joins (14094@user/stackdroid) |
| 21:17:28 | × | laolmtdea^ quits (~laolmtdea@50.227.69.228) (Ping timeout: 272 seconds) |
| 21:21:01 | × | Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
| 21:23:18 | → | Bulby[m] joins (~bulbyvrma@2001:470:69fc:105::1:fe0a) |
| 21:23:53 | <Bulby[m]> | anyone have any idea how to read named pipes (i.e. things created w/ mkfifo) |
| 21:25:00 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::aa1d) |
| 21:27:18 | <Bulby[m]> | https://github.com/TheDrawingCoder-Gamer/haskell-status/blob/fifo/app/Status/Plugins/FIFOPipe.hs this crashes with an eof error when the pipe is written to |
| 21:28:03 | <geekosaur> | they're tricky. there must be a writer first, and when that writer disconnects the pipe is dead. safest is to always open it read-write so it's always got both a writer and a reader, and use a protocol to indicate end of message |
| 21:28:20 | <geekosaur> | if this is not what you want, perhaps you want an AF_LOCAL socket instead |
| 21:28:22 | <monochrom> | :( |
| 21:28:53 | <Bulby[m]> | i will only be reading; external programs will write |
| 21:29:53 | <geekosaur> | I'm telling you how they work, not how you would like them to work |
| 21:30:02 | <Bulby[m]> | 😭 |
| 21:30:09 | <geekosaur> | open it O_RDWR |
| 21:30:23 | <geekosaur> | or use a socket instead |
| 21:30:32 | <geekosaur> | FIFOs don't work thye way people always want them to |
| 21:31:07 | <Bulby[m]> | how would a socket work. I want it to be able to be written to from the CLI so my sway config can write to it |
| 21:31:57 | <exarkun> | some shells can make socket connections |
| 21:32:16 | <exarkun> | or, that's not what you meant is it |
| 21:32:17 | <Bulby[m]> | ☹️ |
| 21:32:20 | → | alp_ joins (~alp@user/alp) |
| 21:32:29 | <exarkun> | why can't your CLI program open a socket and connect somewhere? |
| 21:32:44 | <monochrom> | Perhaps up the game and do dbus thingies... |
| 21:32:48 | <Bulby[m]> | wym? |
| 21:32:57 | <sm> | life is too short. Write numbered files in a directory. 🤪 |
| 21:33:26 | × | cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection) |
| 21:34:06 | <Bulby[m]> | I want my sway config to be able to update the data, as it does it wob |
| 21:34:35 | <monochrom> | exarkun: Probably a third-party program expects to just open(filename...) which may be incompatible if filename is a local socket. But I haven't checked. |
| 21:34:44 | <Bulby[m]> | `https://github.com/TheDrawingCoder-Gamer/haskell-status/blob/fifo/app/Status/Plugins/FIFOPipe.hs` |
| 21:34:44 | <Bulby[m]> | wai |
| 21:34:49 | <Bulby[m]> | oh i always forget yanking |
| 21:35:01 | <Bulby[m]> | `bindsym XF86AudioLowerVolume exec pamixer -ud 2 && pamixer --get-volume > $WOBSOCK` |
| 21:35:21 | <exarkun> | there's always socat |
| 21:35:29 | <exarkun> | your-program-writes-to-stdout | socat ... |
| 21:35:41 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 246 seconds) |
| 21:35:45 | <Bulby[m]> | it should handle multiple sockets |
| 21:36:05 | <monochrom> | Interesting. |
| 21:36:09 | <exarkun> | I can play the moving-goalposts game as well as anybody, but it happens to be dinner time now. |
| 21:36:38 | <monochrom> | Heh "but exarkun but I'm on Windows!" |
| 21:37:06 | <jhagborg> | Bulby[m], what is the goal here? You want some existing process (sway?) to be able to send a message to your program? |
| 21:37:15 | <monochrom> | Although I feel that this is not so much moving goalpost as "I want, gimme". |
| 21:37:17 | <Bulby[m]> | yes |
| 21:37:58 | × | michalz quits (~michalz@185.246.204.107) (Remote host closed the connection) |
| 21:38:02 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:38:03 | <jhagborg> | What interface does sway expect? Can you give it arbitrary commands? A filename? A dbus address? |
| 21:38:13 | <Bulby[m]> | sway can run bash commands, so a CLI way from a different process is what I want |
| 21:38:26 | <Bulby[m]> | bash commands? |
| 21:38:27 | ← | malinoskj290 parts (~malinoskj@48.170-avail-pool-cc.sccoast.net) (malinoskj2 has left.) |
| 21:38:30 | <Bulby[m]> | just shell commands |
| 21:38:59 | × | [Leary] quits (~Leary]@122-58-90-96-vdsl.sparkbb.co.nz) (Remote host closed the connection) |
| 21:39:25 | <jhagborg> | Ok, then you can do pretty much anything, but either a socket or dbus sounds good to me. |
| 21:39:50 | <Bulby[m]> | ok... so how would the socket interface work on the sway side |
| 21:40:04 | → | [Leary] joins (~Leary]@122-58-90-96-vdsl.sparkbb.co.nz) |
| 21:40:15 | <jhagborg> | From the command line, you can run echo, piped into socat |
| 21:40:45 | <Bulby[m]> | what libs would I use for sockets |
| 21:40:59 | × | cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds) |
| 21:41:27 | → | cheater joins (~Username@user/cheater) |
| 21:41:45 | × | ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec) |
| 21:42:00 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 276 seconds) |
| 21:43:29 | <jhagborg> | I'm not sure... likely something in `unix`? |
| 21:43:49 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 21:44:01 | <monochrom> | network, and use AF_UNIX |
| 21:44:04 | × | slack1256 quits (~slack1256@191.126.227.203) (Ping timeout: 272 seconds) |
| 21:44:44 | × | ec quits (~ec@gateway/tor-sasl/ec) (Client Quit) |
| 21:44:55 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 21:44:58 | × | dextaa4 quits (~dextaa@user/dextaa) (Remote host closed the connection) |
| 21:45:04 | <monochrom> | I think the unix package doesn't have the socket API. |
| 21:45:16 | <Bulby[m]> | it does not |
| 21:47:32 | <jhagborg> | dbus is another option. it's a bit higher-level than sockets. it has support in the `dbus` package |
| 21:48:12 | <jhagborg> | you can call it from cli with dbus-send |
| 21:48:45 | <jhagborg> | I would go with that, so I don't have to think about marshalling arguments myself |
| 21:49:19 | × | troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 256 seconds) |
| 21:49:21 | <monochrom> | geekosaur: Hrm, I'm reading a linux book, supposedly opening a fifo for read-only is safe, it just blocks until someone else opens for writing... |
| 21:49:36 | <geekosaur> | yes. what happens when the writer closes? |
| 21:49:55 | <geekosaur> | (answer: you get eof, and nobody else can open for write) |
| 21:52:38 | → | malinoskj290 joins (~malinoskj@48.170-avail-pool-cc.sccoast.net) |
| 21:53:02 | → | coot joins (~coot@213.134.190.95) |
| 21:55:37 | → | segfaultfizzbuzz joins (~segfaultf@135-180-12-202.fiber.dynamic.sonic.net) |
| 21:56:25 | <monochrom> | Supposedly a server could go "if eof then I close too and open again"... |
| 21:56:54 | <jhagborg> | Bulby[m], if what you're writing is a user or system daemon, and you're going to run it with systemd, there is some nice integration with dbus... for example, you can have your application only start up once sway tries to call it. or you can consider your software not "ready" until it claims a dbus name |
| 21:57:07 | → | ub joins (~Thunderbi@p548c8d44.dip0.t-ipconnect.de) |
| 21:57:09 | <monochrom> | However, given that no packet boundary is guaranteed, it is still a good idea to make your own delimiter. |
| 21:57:25 | × | zeenk quits (~zeenk@2a02:2f0e:7603:9c01:4e89:6ef1:76e9:3685) (Quit: Konversation terminated!) |
| 21:57:28 | <jhagborg> | monochrom, that sounds like there could be a race condition |
| 21:57:36 | → | vicfred joins (~vicfred@user/vicfred) |
| 21:57:43 | × | ubert quits (~Thunderbi@p200300ecdf15886161bde835a28140c8.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 21:57:44 | ub | is now known as ubert |
| 21:57:55 | <jhagborg> | what if the client sends multiple requests quickly? |
| 21:58:16 | <Bulby[m]> | it's meant for my status bar |
| 21:58:20 | <Bulby[m]> | so the latest one will be taken |
| 21:58:26 | <monochrom> | Very possibly in this application it's overkill to worry about that. |
| 21:59:27 | <monochrom> | But I'm OK with this stance: Since you need your own delimiter convention anyway, why not have the server open(... RDWR) and be done with it. |
| 22:01:07 | <jhagborg> | anyway, my point is that using d-bus is probably less new code, and you don't have to worry about those types of details. |
| 22:01:30 | × | xaotuk quits (~sasha@109.245.225.166) (Ping timeout: 276 seconds) |
| 22:01:35 | <jhagborg> | it is less portable, but if you're targeting a standard gnu/linux desktop, that's not an issue |
| 22:01:56 | <monochrom> | Maybe I should teach dbus to my students too... (summer term begins in 2 weeks!) |
| 22:04:32 | × | mmhat quits (~mmh@55d4c973.access.ecotel.net) (Quit: WeeChat 3.5) |
| 22:06:08 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds) |
| 22:06:23 | × | jhagborg quits (~jhagborg@068-187-237-099.res.spectrum.com) (Remote host closed the connection) |
| 22:06:43 | → | jhagborg joins (~jhagborg@068-187-237-099.res.spectrum.com) |
| 22:09:29 | × | orcus quits (~orcus@user/brprice) (Ping timeout: 248 seconds) |
| 22:10:12 | × | dispater quits (~dispater@user/brprice) (Quit: ZNC 1.8.2 - https://znc.in) |
| 22:10:20 | → | xff0x_ joins (~xff0x@om126158204045.30.openmobile.ne.jp) |
| 22:10:30 | → | dispater joins (~dispater@user/brprice) |
| 22:11:32 | → | orcus joins (~orcus@user/brprice) |
| 22:18:51 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 22:21:49 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 22:25:54 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 22:29:12 | × | acidjnk quits (~acidjnk@p200300d0c73b45549932693d78c3d853.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
| 22:31:41 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 22:32:12 | <[itchyjunk]> | Got a noob question. why does `let a = blah` work but `let A = blah` give me a `Not in scope: data constructor 'A'` ? |
| 22:32:20 | <[itchyjunk]> | i thought variable names could start with A right? |
| 22:33:06 | <geekosaur> | nope, uppercase first letter is always a constructor |
| 22:33:16 | <[itchyjunk]> | ah doh |
| 22:33:27 | <geekosaur> | and `let A = blah` attempts to pattern match `blah` against the constructor `A` |
| 22:33:42 | <[itchyjunk]> | makes sense |
| 22:34:28 | <geekosaur> | (this is useful to extract a value, for example) |
| 22:36:21 | × | mshiraeeshi quits (~shiraeesh@46.34.207.121) (Ping timeout: 256 seconds) |
| 22:36:56 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 250 seconds) |
| 22:39:19 | × | aeka quits (~aeka@user/hiruji) (Ping timeout: 240 seconds) |
| 22:39:54 | → | aeka joins (~aeka@user/hiruji) |
| 22:40:19 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:44:28 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 22:46:05 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 22:46:35 | × | zmt00 quits (~zmt00@user/zmt00) (Quit: Leaving) |
| 22:46:50 | → | zmt00 joins (~zmt00@user/zmt00) |
| 22:51:25 | × | segfaultfizzbuzz quits (~segfaultf@135-180-12-202.fiber.dynamic.sonic.net) (Quit: segfaultfizzbuzz) |
| 22:52:18 | → | slaydr joins (~slaydr@193.19.109.224) |
| 22:53:14 | × | aeka quits (~aeka@user/hiruji) (Quit: ZNC 1.8.2 - https://znc.in) |
| 22:56:11 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Ping timeout: 256 seconds) |
| 22:58:37 | <[itchyjunk]> | I seem to not recall how : works. Say i have `a = [1,2,3]` and i want [[1,2,3],[]]. `[a]` does give me `[[1,2,3]]` which is partially what i want. but `[a] : []` gives me [[a]] basically |
| 22:59:23 | <geekosaur> | :t (:) |
| 22:59:25 | <lambdabot> | a -> [a] -> [a] |
| 22:59:52 | <geekosaur> | > let a = [1,2,3] in a:[] |
| 22:59:54 | <lambdabot> | [[1,2,3]] |
| 23:00:03 | <geekosaur> | > let a = [1,2,3] in [a]:[] |
| 23:00:08 | <lambdabot> | [[[1,2,3]]] |
| 23:00:40 | <geekosaur> | > let a = [1,2,3] in a:[[]]:[] |
| 23:00:42 | <lambdabot> | error: |
| 23:00:42 | <lambdabot> | • No instance for (Num [()]) arising from a use of ‘e_1123’ |
| 23:00:42 | <lambdabot> | • In the expression: e_1123 |
| 23:01:08 | <[itchyjunk]> | ahh i had the type signature opposite in my head i think |
| 23:01:43 | <[itchyjunk]> | :x yup that seems to be my issue |
| 23:06:47 | <[itchyjunk]> | I might have over complicated this as per usual |
| 23:07:09 | <[itchyjunk]> | So given a = [1,2,3], i wanted [[],[1],[2],[3]] which i got with |
| 23:07:30 | <[itchyjunk]> | [] : [x | x <- [x | x <- [[x] | x<-a]]] |
| 23:07:48 | <[itchyjunk]> | i can also get [[],[1,2,3]], but i can't seem to combine these :x |
| 23:08:21 | <[itchyjunk]> | to get `[[],[1],[2],[3],[1,2,3]]` |
| 23:11:39 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 240 seconds) |
| 23:11:57 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 23:13:16 | <Cale> | [itchyjunk]: You don't want the 2-element subsets? |
| 23:13:42 | <[itchyjunk]> | i do :D |
| 23:13:53 | <[itchyjunk]> | eventually haha |
| 23:14:26 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Quit: leaving) |
| 23:14:36 | <[itchyjunk]> | [[x,y] | x<-a, y<-a] gives me something very close (just have to pick the unique ones) |
| 23:14:49 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 23:15:14 | <[itchyjunk]> | this might not be a good approach at all for writing out powersets though :x |
| 23:15:46 | <dons> | morning all |
| 23:15:50 | <geekosaur> | o/ |
| 23:16:32 | <Cale> | [itchyjunk]: Every sublist of (x:xs) either contains x or it doesn't. In either case, what follows is a sublist of xs |
| 23:18:22 | <[itchyjunk]> | hmm |
| 23:18:45 | <[itchyjunk]> | the first part makes sense. every sublist of (x:xs) either contains x or it doesn't |
| 23:22:42 | <[itchyjunk]> | So i suppose a recursion is being hinted at. i'll think about this some more |
| 23:23:19 | → | jgeerds joins (~jgeerds@d53604b0.access.ecotel.net) |
| 23:23:21 | <Zemyla> | Isn't there a oneliner that uses foldrM and [False, True]? |
| 23:23:23 | → | mshiraeeshi joins (~shiraeesh@46.34.207.121) |
| 23:24:57 | <[itchyjunk]> | :O |
| 23:25:20 | <[itchyjunk]> | does it include binary representation of numbers and bit shifting? |
| 23:25:30 | <[Leary]> | There's quite a cute version with a regular foldr, though the element order isn't ideal. |
| 23:25:33 | <[itchyjunk]> | if so, someone told me about that technique but it was a bit over my head |
| 23:25:49 | <Zemyla> | :t filterM $ const [False, True] |
| 23:25:50 | <lambdabot> | [b] -> [[b]] |
| 23:26:09 | <[itchyjunk]> | hmmm |
| 23:26:27 | <Zemyla> | > filterM (const [False, True]) [1,2,3] |
| 23:26:29 | <lambdabot> | [[],[3],[2],[2,3],[1],[1,3],[1,2],[1,2,3]] |
| 23:26:40 | <[itchyjunk]> | hmmmmmmm |
| 23:27:28 | × | lisq quits (~quassel@lis.moe) (Quit: lisq) |
| 23:27:55 | → | lis joins (~quassel@lis.moe) |
| 23:28:12 | lis | is now known as lisq |
| 23:29:05 | → | deadmarshal_ joins (~deadmarsh@95.38.115.70) |
| 23:30:04 | × | lagash quits (lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in) |
| 23:33:17 | × | deadmarshal_ quits (~deadmarsh@95.38.115.70) (Ping timeout: 246 seconds) |
| 23:33:17 | <[itchyjunk]> | ha, not quite. Need more thinking. https://bpa.st/COWA |
| 23:33:35 | × | kilolympus quits (~kilolympu@31.205.200.235) (Ping timeout: 256 seconds) |
| 23:34:43 | × | dhil quits (~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net) (Ping timeout: 256 seconds) |
| 23:35:16 | × | machinedgod quits (~machinedg@24.105.81.50) (Remote host closed the connection) |
| 23:35:17 | → | lagash joins (lagash@lagash.shelltalk.net) |
| 23:36:16 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 23:37:39 | <EvanR> | what are you trying to do, get all the subsequences? |
| 23:38:10 | <[itchyjunk]> | yes, given some finite set, produce its powerset :x |
| 23:38:15 | <EvanR> | don't try this with [0..] |
| 23:38:44 | <[itchyjunk]> | yeah i've tried things with the infinite lists in the past and regretted it |
| 23:39:40 | → | aeka joins (~aeka@user/hiruji) |
| 23:39:53 | <monochrom> | That "clearly" will just give you [[a], [b], [c]] |
| 23:40:10 | <monochrom> | OK, [[a], [b], [c], []] |
| 23:40:40 | × | aeka quits (~aeka@user/hiruji) (Client Quit) |
| 23:40:45 | <EvanR> | also, don't use this |
| 23:40:51 | <EvanR> | :t subsequences |
| 23:40:52 | <lambdabot> | [a] -> [[a]] |
| 23:40:58 | <monochrom> | I don't know, I would think with induction proofs: ... |
| 23:41:04 | × | ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 23:41:18 | <[itchyjunk]> | yes i tested it. i need to take take (x:xs), produce all subsets of xs, then add x to one copy of it and not the other maybe |
| 23:41:19 | <monochrom> | Suppose someone calls me with myPowerSet [a,b,c]. |
| 23:41:42 | <EvanR> | [itchyjunk], sounds like a winner |
| 23:41:48 | <[itchyjunk]> | hmmmmm |
| 23:42:13 | <monochrom> | By induction hypothesis, I can just assume that the recursive call myPowerSet [b,c] works correctly. Let's say it returns [[b,c], [b], [c], []]. |
| 23:43:01 | <monochrom> | So my only job is to bridge the gap between [[b,c], [b], [c], []] and some kind of [[a,b,c], [a,b], [a,c], [a], [b,c], [b], [c], []] |
| 23:43:38 | <monochrom> | The order is negotiable. You get my point. |
| 23:44:34 | <monochrom> | The nice thing though is you notice how half of it is just [b,c], [b], [c], [] again, straight from the recursive call, and how the other half is just "add a to everyone". |
| 23:44:58 | <[itchyjunk]> | hmm i do notice that |
| 23:45:35 | <EvanR> | to find all subsequences of [0..] just get all subsequences of [1..], assuming that works, prepend 0 to one copy of it not the other. Why does this fail? xD |
| 23:46:56 | × | tabemann quits (~travisb@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection) |
| 23:49:17 | → | tabemann joins (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) |
| 23:49:24 | <EvanR> | to have a chance of productivity, output the one with 0 first |
| 23:51:56 | → | slack1256 joins (~slack1256@186.11.81.160) |
| 23:54:47 | × | jgeerds quits (~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 240 seconds) |
| 23:55:18 | <whatsupdoc> | Just checking, are y'all still worshipping haskell? |
| 23:57:17 | × | slack1256 quits (~slack1256@186.11.81.160) (Remote host closed the connection) |
| 23:57:19 | <[itchyjunk]> | i tried worshipping a rock in the park but that didn't give me a powerset given some finite set |
| 23:57:49 | <EvanR> | your rock probably needed more ram to run GHC |
| 23:58:12 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
| 23:58:32 | <Bulby[m]> | have you tried a raspberry pi zero? |
| 23:58:47 | <[itchyjunk]> | didn't find that in the park :x |
| 23:59:10 | <EvanR> | a few decades too early for that |
| 23:59:12 | <Bulby[m]> | try using sticks as attena |
| 23:59:22 | → | alx741 joins (~alx741@host-181-198-243-150.netlife.ec) |
| 23:59:55 | <monochrom> | I heard that Pringles cans make great antennas for wifi |
All times are in UTC on 2022-04-25.