Logs on 2022-05-15 (liberachat/#haskell)
| 00:02:11 | × | king_gs quits (~Thunderbi@187.201.105.54) (Ping timeout: 252 seconds) |
| 00:04:52 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 00:06:40 | <sm> | int-e: FYI, haskell-links now pulls the @where db hourly |
| 00:07:53 | × | alp_ quits (~alp@user/alp) (Ping timeout: 248 seconds) |
| 00:11:11 | <statusbot1> | Maintenance update: Hackage is going offline for maintenance. -- http://status.haskell.org/pages/maintenance/537c07b0cf1fad5830000093/628040783a56b10533f94f5e |
| 00:11:20 | <sm> | I might keep tags/votes/edits in overlay file(s). Those edits could be replayed/merged back to lambdabot periodically, if wanted |
| 00:16:36 | <statusbot1> | Maintenance update: Hackage is back up. -- http://status.haskell.org/pages/maintenance/537c07b0cf1fad5830000093/628040783a56b10533f94f5e |
| 00:21:55 | → | king_gs joins (~Thunderbi@187.201.105.54) |
| 00:22:09 | → | dostoevsky0 joins (~5c42c5384@user/dostoevsky) |
| 00:23:25 | × | dostoevsky quits (~5c42c5384@user/dostoevsky) (Read error: Connection reset by peer) |
| 00:23:25 | dostoevsky0 | is now known as dostoevsky |
| 00:23:33 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 00:23:55 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit) |
| 00:32:57 | × | Cale quits (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) (Read error: Connection reset by peer) |
| 00:40:16 | → | Cale joins (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) |
| 00:40:57 | × | king_gs quits (~Thunderbi@187.201.105.54) (Read error: Connection reset by peer) |
| 00:43:35 | → | king_gs joins (~Thunderbi@2806:103e:29:da71:ba86:4e28:3521:b634) |
| 00:45:24 | → | alp_ joins (~alp@user/alp) |
| 00:46:19 | → | gpncarl joins (~gpncarl@120.244.220.69) |
| 00:47:50 | × | gurkenglas quits (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
| 00:50:30 | × | king_gs quits (~Thunderbi@2806:103e:29:da71:ba86:4e28:3521:b634) (Ping timeout: 260 seconds) |
| 00:51:05 | × | gpncarl quits (~gpncarl@120.244.220.69) (Ping timeout: 260 seconds) |
| 00:56:11 | <Guest57> | dolio nvm I found out |
| 00:56:42 | × | alp_ quits (~alp@user/alp) (Remote host closed the connection) |
| 00:57:02 | → | alp_ joins (~alp@user/alp) |
| 00:59:21 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 00:59:21 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 00:59:21 | → | wroathe joins (~wroathe@user/wroathe) |
| 01:02:17 | × | alp_ quits (~alp@user/alp) (Ping timeout: 248 seconds) |
| 01:06:14 | → | Polo joins (~Polo@user/polo) |
| 01:13:47 | Polo | is now known as schmoe |
| 01:18:00 | × | Guest57 quits (~Guest57@69-174-160-103.iplwin75.metronetinc.net) (Quit: Client closed) |
| 01:18:13 | × | schmoe quits (~Polo@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 01:19:08 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds) |
| 01:19:39 | → | no-n joins (sid524992@smol/hors) |
| 01:22:41 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 01:22:50 | → | Polo joins (~Polo@user/polo) |
| 01:26:09 | → | dzdcnfzd joins (~dzdcnfzd@pool-108-54-250-165.nycmny.fios.verizon.net) |
| 01:30:44 | × | Polo quits (~Polo@user/polo) (Ping timeout: 248 seconds) |
| 01:30:45 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 260 seconds) |
| 01:31:48 | × | flinner quits (~flinner@user/flinner) (Quit: Using Circe, the loveliest of all IRC clients) |
| 01:42:43 | <dzdcnfzd> | I have a Tasty test suite. I'm trying to add a custom flag to my program which I'll pass into my tests, but I'm getting errors because Tasty's main function tries to parse my flag and doesn't recognize it. Does anyone know how I'm supposed to get around this? |
| 01:43:09 | × | euandreh quits (~euandreh@2804:14c:33:9fe5:2165:73d6:1630:f174) (Quit: WeeChat 3.5) |
| 01:43:38 | → | dostoevsky6 joins (~5c42c5384@user/dostoevsky) |
| 01:44:51 | × | dostoevsky quits (~5c42c5384@user/dostoevsky) (Read error: Connection reset by peer) |
| 01:44:51 | dostoevsky6 | is now known as dostoevsky |
| 01:48:27 | → | andrey_ joins (~andrey@p200300dbcf3e23005cb23a11d813ffaf.dip0.t-ipconnect.de) |
| 01:51:05 | × | andrey__ quits (~andrey@p508d51c7.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 01:52:10 | × | jiribenes quits (~jiribenes@rosa.jiribenes.com) (Ping timeout: 250 seconds) |
| 01:55:43 | <sm> | I added ghc-guide, cabal-guide, stack-guide to @where; if no-one objects, I will remove the old "userguide" spelling |
| 01:57:57 | <sm> | @where+ userguide |
| 01:57:57 | <lambdabot> | It is forgotten. |
| 01:59:43 | <shachaf> | Maybe have it mention the other guides instead? |
| 02:03:43 | <sm> | shachaf: have userguide name all the known guides ? sure, be my guest |
| 02:03:49 | × | sander quits (~sander@user/sander) (Quit: So long! :)) |
| 02:04:19 | <sm> | I'm using a web ui that makes them easy to find, so I'm concentrating more on individual links |
| 02:05:41 | × | stackdroid18 quits (14094@user/stackdroid) (Quit: Lost terminal) |
| 02:06:25 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 02:06:25 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:06:25 | finn_elija | is now known as FinnElija |
| 02:06:58 | × | abiss27 quits (~abiss27@user/abiss) (Quit: hasta la vista... tchau!) |
| 02:07:50 | → | stackdroid18 joins (14094@user/stackdroid) |
| 02:08:46 | × | stackdroid18 quits (14094@user/stackdroid) (Client Quit) |
| 02:12:08 | → | sander joins (~sander@user/sander) |
| 02:15:06 | × | roconnor quits (~roconnor@coq/roconnor) (Quit: Konversation terminated!) |
| 02:20:17 | → | Polo joins (~Polo@user/polo) |
| 02:21:24 | × | Polo quits (~Polo@user/polo) (Client Quit) |
| 02:25:05 | × | Topsi quits (~Topsi@95.33.20.255) (Read error: Connection reset by peer) |
| 02:35:18 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 02:40:11 | → | vicfred joins (~vicfred@user/vicfred) |
| 02:42:26 | <dzdcnfzd> | https://github.com/UnkindPartition/tasty/issues/228 |
| 02:42:51 | <dzdcnfzd> | I guess it's impossible to use Tasty with command line options if your TestTree is constructed using IO |
| 02:42:56 | <dzdcnfzd> | This is sad |
| 02:43:08 | × | Kaiepi quits (~Kaiepi@156.34.47.253) (Ping timeout: 260 seconds) |
| 02:43:28 | × | terrorjack quits (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat) |
| 02:44:44 | → | terrorjack joins (~terrorjac@2a01:4f8:1c1e:509a::1) |
| 02:47:27 | × | Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Quit: Leaving) |
| 02:51:49 | → | Polo joins (~Polo@user/polo) |
| 02:51:55 | Polo | is now known as schmoe |
| 02:53:32 | × | whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 02:54:18 | × | schmoe quits (~Polo@user/polo) (Client Quit) |
| 03:09:17 | → | dostoevsky9 joins (~5c42c5384@user/dostoevsky) |
| 03:10:37 | × | dostoevsky quits (~5c42c5384@user/dostoevsky) (Read error: Connection reset by peer) |
| 03:10:37 | dostoevsky9 | is now known as dostoevsky |
| 03:11:23 | → | yauhsien joins (~yauhsien@61-231-42-187.dynamic-ip.hinet.net) |
| 03:24:52 | → | hiredman joins (~hiredman@frontier1.downey.family) |
| 03:30:54 | <dsal> | dzdcnfzd: unsafePerformIO isn't always terrible, but I've run into a variety of these kinds of annoyances in test frameworks. In particular, the hspec stuff we're using at work doesn't have useful hooks for certain types of initializations and we end up using unsafePerformIO (but down to like, one now… used to be a ton of them for no good reason). |
| 03:39:34 | → | gpncarl joins (~gpncarl@120.244.220.69) |
| 03:53:26 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Read error: Connection reset by peer) |
| 03:57:50 | × | gpncarl quits (~gpncarl@120.244.220.69) (Ping timeout: 240 seconds) |
| 04:03:18 | × | kaph_ quits (~kaph@net-2-42-128-205.cust.vodafonedsl.it) (Read error: Connection reset by peer) |
| 04:09:39 | × | hamishmack_ quits (sid389057@id-389057.hampstead.irccloud.com) () |
| 04:10:21 | → | hamishmack_ joins (sid389057@id-389057.hampstead.irccloud.com) |
| 04:10:38 | × | yauhsien quits (~yauhsien@61-231-42-187.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
| 04:13:21 | hamishmack_ | is now known as hamishmack |
| 04:24:51 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 04:31:23 | × | zebrag quits (~chris@user/zebrag) (Read error: Connection reset by peer) |
| 04:35:28 | → | frost joins (~frost@user/frost) |
| 04:40:19 | → | nate1 joins (~nate@98.45.169.16) |
| 04:44:55 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 04:45:38 | × | frost quits (~frost@user/frost) (Quit: Ping timeout (120 seconds)) |
| 04:49:35 | × | cyphase quits (~cyphase@user/cyphase) (Ping timeout: 256 seconds) |
| 04:51:41 | → | frost joins (~frost@user/frost) |
| 04:57:29 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 248 seconds) |
| 05:00:10 | × | Benzi-Junior quits (~BenziJuni@dsl-149-64-179.hive.is) (Ping timeout: 240 seconds) |
| 05:04:36 | × | xkuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
| 05:09:10 | → | xkuru joins (~xkuru@user/xkuru) |
| 05:10:28 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 248 seconds) |
| 05:28:27 | → | bilegeek joins (~bilegeek@2600:1008:b047:7868:8343:8573:5cc1:560a) |
| 05:29:46 | → | gpncarl joins (~gpncarl@120.244.220.69) |
| 05:33:14 | → | dostoevsky3 joins (~5c42c5384@user/dostoevsky) |
| 05:33:56 | → | coot joins (~coot@213.134.190.95) |
| 05:34:17 | × | gpncarl quits (~gpncarl@120.244.220.69) (Ping timeout: 248 seconds) |
| 05:34:28 | × | dostoevsky quits (~5c42c5384@user/dostoevsky) (Ping timeout: 248 seconds) |
| 05:34:28 | dostoevsky3 | is now known as dostoevsky |
| 05:38:04 | → | Polo joins (~Polo@user/polo) |
| 05:39:34 | × | asivitz quits (uid178348@id-178348.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
| 05:39:40 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 05:41:23 | × | sympt quits (~sympt@193.37.33.20) (Remote host closed the connection) |
| 05:42:41 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 05:46:27 | → | sympt joins (~sympt@193.37.33.20) |
| 05:47:30 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 05:48:01 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Client Quit) |
| 05:48:48 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 05:50:22 | × | sympt quits (~sympt@193.37.33.20) (Remote host closed the connection) |
| 05:52:18 | → | sympt joins (~sympt@193.37.33.20) |
| 05:54:22 | × | Polo quits (~Polo@user/polo) (Read error: Connection reset by peer) |
| 05:55:04 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
| 05:57:12 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 06:00:34 | × | sympt quits (~sympt@193.37.33.20) (Remote host closed the connection) |
| 06:02:31 | → | sympt joins (~sympt@193.37.33.20) |
| 06:05:02 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 06:12:58 | → | dostoevsky0 joins (~5c42c5384@user/dostoevsky) |
| 06:14:39 | × | dostoevsky quits (~5c42c5384@user/dostoevsky) (Read error: Connection reset by peer) |
| 06:14:39 | dostoevsky0 | is now known as dostoevsky |
| 06:17:07 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 06:18:20 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Ping timeout: 260 seconds) |
| 06:19:55 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 06:21:08 | → | coot joins (~coot@213.134.190.95) |
| 06:28:24 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 06:28:42 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 06:36:51 | × | dostoevsky quits (~5c42c5384@user/dostoevsky) (Quit: bye ~) |
| 06:37:40 | → | Polo joins (~Polo@user/polo) |
| 06:39:43 | → | dostoevsky joins (~5c42c5384@user/dostoevsky) |
| 06:43:58 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 06:44:31 | × | dzdcnfzd quits (~dzdcnfzd@pool-108-54-250-165.nycmny.fios.verizon.net) (Quit: Client closed) |
| 06:48:17 | × | Polo quits (~Polo@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 06:48:24 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 248 seconds) |
| 06:49:18 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 06:52:24 | × | abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Read error: Connection reset by peer) |
| 06:57:27 | × | jargon quits (~jargon@174-22-206-112.phnx.qwest.net) (Remote host closed the connection) |
| 06:59:30 | → | dostoevsky6 joins (~5c42c5384@user/dostoevsky) |
| 07:00:50 | × | dostoevsky quits (~5c42c5384@user/dostoevsky) (Ping timeout: 240 seconds) |
| 07:00:51 | dostoevsky6 | is now known as dostoevsky |
| 07:01:27 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 276 seconds) |
| 07:02:28 | → | MoC joins (~moc@user/moc) |
| 07:02:33 | → | dibblego joins (~dibblego@122-199-1-30.ip4.superloop.com) |
| 07:02:33 | × | dibblego quits (~dibblego@122-199-1-30.ip4.superloop.com) (Changing host) |
| 07:02:33 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 07:07:45 | → | king_gs joins (~Thunderbi@187.201.97.18) |
| 07:10:19 | × | king_gs quits (~Thunderbi@187.201.97.18) (Client Quit) |
| 07:11:38 | → | dostoevsky1 joins (~5c42c5384@user/dostoevsky) |
| 07:13:10 | × | dostoevsky quits (~5c42c5384@user/dostoevsky) (Ping timeout: 240 seconds) |
| 07:13:10 | dostoevsky1 | is now known as dostoevsky |
| 07:14:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 07:19:50 | → | xaotuk joins (~sasha@87.116.181.151) |
| 07:21:11 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 07:21:30 | → | acidjnk joins (~acidjnk@p200300d0c7068b96511328d5b9114591.dip0.t-ipconnect.de) |
| 07:23:16 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 07:23:52 | → | Tuplanolla joins (~Tuplanoll@91-159-68-39.elisa-laajakaista.fi) |
| 07:30:00 | × | xaotuk quits (~sasha@87.116.181.151) (Ping timeout: 248 seconds) |
| 07:33:33 | → | yauhsien joins (~yauhsien@61-231-42-187.dynamic-ip.hinet.net) |
| 07:35:02 | → | amongas666[m] joins (~amongas66@2001:470:69fc:105::2:fea) |
| 07:43:20 | <amongas666[m]> | hello |
| 07:43:47 | → | xaotuk joins (~sasha@net44-38-245-109.mbb.telenor.rs) |
| 07:45:53 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 07:47:28 | <amongas666[m]> | @help |
| 07:47:29 | <lambdabot> | help <command>. Ask for help for <command>. Try 'list' for all commands |
| 07:47:58 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 07:49:07 | → | kaph joins (~kaph@net-2-42-128-205.cust.vodafonedsl.it) |
| 07:49:56 | <amongas666[m]> | :pl \n -> [z|x<-[2..n],z<-map(x^)[2..n],z<n,(==)=<<reverse$show z,z>9] |
| 07:50:25 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
| 07:50:28 | <amongas666[m]> | @pl \n -> [z|x<-[2..n],z<-map(x^)[2..n],z<n,(==)=<<reverse$show z,z>9] |
| 07:50:28 | <lambdabot> | ap ((:) . ((z | x) <-) . enumFromTo 2) (ap ((:) . (z <-) . map (x ^) . enumFromTo 2) ((: [(==) =<< reverse $ show z, z > 9]) . (z <))) |
| 07:54:56 | → | Kaiepi joins (~Kaiepi@156.34.47.253) |
| 08:00:26 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 08:03:25 | <amongas666[m]> | @pl \p (a,b) (c,d) -> (a*d+b*c-a*c,a*c+b*d) |
| 08:03:28 | <lambdabot> | const (uncurry (flip flip snd . (ap .) . flip flip fst . ((.) .) . ap (ap . (liftM2 (liftM2 (,)) .) . ap (flip . (liftM2 (flip . ((-) .)) .) . (. (*)) . (.) . flip . ((+) .) . (*)) (*)) ((. (*)) . |
| 08:03:28 | <lambdabot> | flip . (((.) . (+)) .) . (*)))) |
| 08:03:58 | <tomsmeding> | amongas666[m]: http://pointfree.io/ |
| 08:03:59 | × | dostoevsky quits (~5c42c5384@user/dostoevsky) (Ping timeout: 240 seconds) |
| 08:04:36 | <tomsmeding> | it seems it misparsed that list comprehension :p |
| 08:04:50 | <tomsmeding> | <- and | are parsed as operators but aren't |
| 08:05:12 | <amongas666[m]> | tomsmeding: thanks |
| 08:05:44 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 08:06:18 | <[Leary]> | @compose pl undo [z|x<-[2..n],z<-map(x^)[2..n],z<n,(==)=<<reverse$show z,z>9] |
| 08:06:19 | <lambdabot> | flip (liftM2 if' (< n) (flip (ap (if' . ((==) =<< reverse) . show) (flip (liftM2 if' (> 9) return) [])) [])) [] =<< flip map [2..n] . (^) =<< [2..n] |
| 08:06:50 | <[Leary]> | A workable trick. |
| 08:06:50 | <tomsmeding> | TIL @compose |
| 08:08:36 | <jackdk> | Can a mac user check if hackage search is busted? it works for me on my GNU/Linux laptop but Axman6 reports trouble with mobile safari |
| 08:09:23 | <tomsmeding> | jackdk: getting this on my firefox linux box: Error with Hackage server: Unexpected content-type: For this resource the content-type was expected to be application/json, rather than multipart/form-data; boundary=---------------------------211408870538557291113223259920 |
| 08:09:37 | <tomsmeding> | seems it's indeed broken |
| 08:09:43 | × | yauhsien quits (~yauhsien@61-231-42-187.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 08:10:35 | <jackdk> | I'm on the road, any chance someone can at least log an issue? Please and thank you. |
| 08:11:00 | → | yauhsien joins (~yauhsien@61-231-42-187.dynamic-ip.hinet.net) |
| 08:12:13 | <tomsmeding> | jackdk: I've asked in #hackage |
| 08:15:27 | × | yauhsien quits (~yauhsien@61-231-42-187.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
| 08:20:55 | → | christiansen joins (~christian@83-95-137-75-dynamic.dk.customer.tdc.net) |
| 08:21:25 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 08:22:34 | → | nate1 joins (~nate@98.45.169.16) |
| 08:24:25 | × | bilegeek quits (~bilegeek@2600:1008:b047:7868:8343:8573:5cc1:560a) (Quit: Leaving) |
| 08:25:18 | → | king_gs joins (~Thunderbi@2806:103e:29:5eb8:48de:d3eb:9d44:3d55) |
| 08:26:56 | → | CiaoSen joins (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 08:26:59 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
| 08:27:59 | → | odnes joins (~odnes@5-203-216-219.pat.nym.cosmote.net) |
| 08:29:15 | × | CiaoSen quits (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Client Quit) |
| 08:35:16 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 248 seconds) |
| 08:35:47 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 08:37:47 | → | Midjak joins (~Midjak@82.66.147.146) |
| 08:48:28 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 08:49:21 | × | sympt quits (~sympt@193.37.33.20) (Changing host) |
| 08:49:21 | → | sympt joins (~sympt@user/sympt) |
| 08:52:58 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 08:55:09 | → | _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl) |
| 08:55:37 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 09:02:59 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 240 seconds) |
| 09:04:31 | × | odnes quits (~odnes@5-203-216-219.pat.nym.cosmote.net) (Remote host closed the connection) |
| 09:04:50 | → | odnes joins (~odnes@5-203-216-219.pat.nym.cosmote.net) |
| 09:15:28 | → | Polo joins (~Polo@user/polo) |
| 09:15:53 | × | xkuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
| 09:16:33 | × | Polo quits (~Polo@user/polo) (Client Quit) |
| 09:18:08 | × | Batzy quits (~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 09:18:31 | → | Batzy joins (~quassel@user/batzy) |
| 09:18:38 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 09:22:05 | × | Batzy quits (~quassel@user/batzy) (Client Quit) |
| 09:23:08 | → | Batzy joins (~quassel@user/batzy) |
| 09:40:53 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 09:45:01 | → | Polo joins (~Polo@user/polo) |
| 09:46:25 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 09:47:23 | × | acidjnk quits (~acidjnk@p200300d0c7068b96511328d5b9114591.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 09:53:29 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 09:55:12 | → | love-linux joins (~aaa@182.253.151.149) |
| 09:56:45 | × | king_gs quits (~Thunderbi@2806:103e:29:5eb8:48de:d3eb:9d44:3d55) (Quit: king_gs) |
| 09:57:16 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 09:57:59 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 09:59:57 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 10:00:07 | → | coot joins (~coot@213.134.190.95) |
| 10:01:09 | × | Polo quits (~Polo@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 10:04:48 | × | phma quits (~phma@2001:5b0:211f:6928:8569:9a3:f6e6:2945) (Read error: Connection reset by peer) |
| 10:05:01 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 10:05:41 | → | phma joins (~phma@host-67-44-208-139.hnremote.net) |
| 10:09:45 | → | ubert joins (~Thunderbi@p200300cd8f286500acdce0bbd2853fcd.dip0.t-ipconnect.de) |
| 10:10:29 | × | ubert quits (~Thunderbi@p200300cd8f286500acdce0bbd2853fcd.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 10:10:37 | → | ub joins (~Thunderbi@p5dd19b2c.dip0.t-ipconnect.de) |
| 10:12:55 | ub | is now known as ubert |
| 10:14:29 | × | zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection) |
| 10:19:19 | × | ubert quits (~Thunderbi@p5dd19b2c.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 10:22:11 | × | causal quits (~user@50.35.83.177) (Quit: WeeChat 3.5) |
| 10:22:14 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 10:24:25 | → | ubert joins (~Thunderbi@p5dd19b2c.dip0.t-ipconnect.de) |
| 10:25:07 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 10:32:57 | → | coot joins (~coot@213.134.190.95) |
| 10:33:38 | × | odnes quits (~odnes@5-203-216-219.pat.nym.cosmote.net) (Remote host closed the connection) |
| 10:35:23 | × | ubert quits (~Thunderbi@p5dd19b2c.dip0.t-ipconnect.de) (Quit: ubert) |
| 10:37:13 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
| 10:40:23 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 10:40:32 | → | zer0bitz joins (~zer0bitz@2001:2003:f444:8f00:4826:893f:cf94:1ccb) |
| 10:43:32 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 10:44:22 | → | acidjnk joins (~acidjnk@p200300d0c7068b968155b6e67aa5654c.dip0.t-ipconnect.de) |
| 10:46:45 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 10:46:56 | → | chomwitt joins (~chomwitt@2a02:587:dc21:9e00:a5cf:4aa7:c02f:9451) |
| 10:52:43 | → | dhil joins (~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net) |
| 10:53:44 | → | gpncarl joins (~gpncarl@120.244.220.69) |
| 10:54:40 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 10:54:48 | × | Clint quits (~Clint@user/clint) (Ping timeout: 248 seconds) |
| 10:55:19 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds) |
| 10:57:25 | Lord_of_Life_ | is now known as Lord_of_Life |
| 10:57:32 | → | cyphase joins (~cyphase@user/cyphase) |
| 10:58:20 | × | gpncarl quits (~gpncarl@120.244.220.69) (Ping timeout: 260 seconds) |
| 11:00:31 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 11:04:02 | × | kaph quits (~kaph@net-2-42-128-205.cust.vodafonedsl.it) (Read error: Connection reset by peer) |
| 11:04:14 | → | kaph joins (~kaph@net-2-42-128-205.cust.vodafonedsl.it) |
| 11:08:20 | → | jollygood2 joins (www-data@2607:5300:60:8be::1) |
| 11:08:45 | → | kayprish joins (~kayprish@cable-188-2-151-210.dynamic.sbb.rs) |
| 11:08:50 | × | kayprish quits (~kayprish@cable-188-2-151-210.dynamic.sbb.rs) (Remote host closed the connection) |
| 11:11:46 | → | ubert joins (~Thunderbi@p200300cd8f286500acdce0bbd2853fcd.dip0.t-ipconnect.de) |
| 11:16:27 | → | zer0bitz_ joins (~zer0bitz@2001:2003:f444:8f00:312d:d371:2ac4:b717) |
| 11:17:24 | × | zer0bitz quits (~zer0bitz@2001:2003:f444:8f00:4826:893f:cf94:1ccb) (Ping timeout: 248 seconds) |
| 11:17:41 | → | gurkenglas joins (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) |
| 11:23:40 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 11:25:56 | × | acidjnk quits (~acidjnk@p200300d0c7068b968155b6e67aa5654c.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
| 11:28:30 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 11:30:43 | → | jolandr joins (~Guest14@user/jolandr) |
| 11:41:33 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 11:41:53 | → | retropikzel joins (9d1a4f9f46@2604:bf00:561:2000::ce) |
| 11:45:16 | <jolandr> | What is the go-to package for using protobuf + gRPC in Haskell? proto-lens seems nice but doesn't offer all the functionality (ie. services) and gRPC-haskell seems outdated or simply doesn't work for me :'( |
| 11:47:23 | × | MoC quits (~moc@user/moc) (Quit: Konversation terminated!) |
| 11:48:08 | × | dhil quits (~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net) (Ping timeout: 248 seconds) |
| 11:48:10 | × | yaroot quits (~yaroot@134.27.31.150.dy.iij4u.or.jp) (Remote host closed the connection) |
| 11:48:43 | → | yaroot joins (~yaroot@134.27.31.150.dy.iij4u.or.jp) |
| 11:52:56 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.) |
| 11:54:21 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 11:54:50 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Quit: Leaving) |
| 11:55:02 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 11:56:43 | × | ubert quits (~Thunderbi@p200300cd8f286500acdce0bbd2853fcd.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 11:56:52 | × | love-linux quits (~aaa@182.253.151.149) (Read error: Connection reset by peer) |
| 11:57:19 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 11:59:14 | → | ubert joins (~Thunderbi@p5dd19b2c.dip0.t-ipconnect.de) |
| 11:59:30 | × | ubert quits (~Thunderbi@p5dd19b2c.dip0.t-ipconnect.de) (Client Quit) |
| 11:59:51 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
| 12:00:07 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 12:08:37 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 12:18:05 | × | xaotuk quits (~sasha@net44-38-245-109.mbb.telenor.rs) (Ping timeout: 252 seconds) |
| 12:18:29 | → | xaotuk joins (~sasha@net44-38-245-109.mbb.telenor.rs) |
| 12:18:34 | × | kilolympus quits (~kilolympu@31.205.200.235) (Quit: See you later! :)) |
| 12:19:32 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 12:21:06 | → | Guest40 joins (~Guest40@117.97.135.91) |
| 12:22:57 | → | jco joins (~jco@90-228-194-139-no542.tbcn.telia.com) |
| 12:23:30 | × | Guest40 quits (~Guest40@117.97.135.91) (Client Quit) |
| 12:23:59 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 12:26:39 | × | xaotuk quits (~sasha@net44-38-245-109.mbb.telenor.rs) (Ping timeout: 240 seconds) |
| 12:28:44 | → | enko4457 joins (~enko4457@117.97.135.91) |
| 12:35:09 | → | fef joins (~thedawn@user/thedawn) |
| 12:35:49 | → | Clint joins (~Clint@user/clint) |
| 12:46:58 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 12:48:32 | → | kilolympus joins (~kilolympu@31.205.200.235) |
| 12:49:45 | <Axman6> | anyone familiar with the zippers package? I'm wondering if it's possible to push something into the context to the left or right of the current location - assuming a pretty normal list zipper, I want to be able to so something like lushr x (Z xs foc ys) = (Z xs x (f:ys)) if my current context is a list |
| 12:50:26 | <Axman6> | higher level is, if I'm focused somehwere inside a document, and I'm somewhere where there's a list of things I'm focused within, I want to add to that context |
| 12:51:59 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 12:55:35 | × | waleee quits (~waleee@h-155-4-221-82.NA.cust.bahnhof.se) (Ping timeout: 260 seconds) |
| 12:56:10 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 12:59:59 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 13:04:40 | <geekosaur> | tree zipper, instead of just a list? |
| 13:15:50 | × | chomwitt quits (~chomwitt@2a02:587:dc21:9e00:a5cf:4aa7:c02f:9451) (Ping timeout: 252 seconds) |
| 13:17:27 | × | yaroot quits (~yaroot@134.27.31.150.dy.iij4u.or.jp) (Ping timeout: 240 seconds) |
| 13:17:35 | → | yaroot joins (~yaroot@2409:12:ac0:2300:680e:dbff:fe1e:4953) |
| 13:20:13 | → | Benzi-Junior joins (~BenziJuni@88-149-64-179.du.xdsl.is) |
| 13:22:21 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 13:24:14 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 13:24:34 | × | enko4457 quits (~enko4457@117.97.135.91) (Quit: Client closed) |
| 13:28:46 | → | zaquest joins (~notzaques@5.130.79.72) |
| 13:31:54 | → | Vajb joins (~Vajb@2001:999:400:9bc1:d5dd:7e53:33b:56) |
| 13:32:55 | → | govertsnovert joins (~govertsno@46.246.41.174) |
| 13:35:18 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 13:36:47 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 13:49:01 | × | son0p quits (~ff@181.136.122.143) (Remote host closed the connection) |
| 13:58:43 | × | govertsnovert quits (~govertsno@46.246.41.174) (Remote host closed the connection) |
| 14:17:06 | → | govertsnovert joins (~govertsno@46.246.41.166) |
| 14:18:30 | <govertsnovert> | Hi All. Trying to wrap my head around performance: How can Data.Map.insert be O(log n) if Data.Map.Map is immutable? Why isn't it at least O(n) ? (need to go through all the elements to copy them) . |
| 14:19:34 | <[exa]> | govertsnovert: it doesn't reallocate the whole map |
| 14:20:28 | <[exa]> | govertsnovert: if you know how binary search trees look like, on an insert you actually need to reallocate only the path from the root to the insert point, the rest stays the same and can be reused |
| 14:21:25 | × | mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 14:22:09 | <[exa]> | (There's even a whole research area about functional data structures that try to optimize this behavior. You might have heard about zippers and finger trees.) |
| 14:23:02 | → | mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
| 14:27:47 | <govertsnovert> | yeh i've ran into finger trees, but not zippers. and yes, I can see how one can reuse most of the structure. Thank you. In general, how does one navigate the various performance impacts of "things" in haskell? As an example, hackage's page on Data.Array has no info on how costly the // operator is. |
| 14:27:47 | × | Vajb quits (~Vajb@2001:999:400:9bc1:d5dd:7e53:33b:56) (Read error: Connection reset by peer) |
| 14:28:00 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 14:29:20 | <geekosaur> | documenting that is relatively recent, whereas nobody's touched the array package's docs in years |
| 14:29:31 | <govertsnovert> | i remember reading somewhere that although // _could_ be implemented as a partial copy (only de? re? reference the elements that changed) it' somplemented as a full copy. (And thus has a profile of O(n+m) is guess? |
| 14:29:39 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 14:29:50 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 14:29:50 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 14:29:50 | → | wroathe joins (~wroathe@user/wroathe) |
| 14:29:52 | → | gpncarl joins (~gpncarl@120.244.220.69) |
| 14:31:02 | <[exa]> | govertsnovert: usually looking at the source from hackage answers that pretty fast. In this case it looks like the problem gets converted to unsafeReplace |
| 14:31:05 | <geekosaur> | Array has to make a tradeoff: it could do accounting per element but that slows garbage collection noticeably, or it could do accounting over the whole array which is wasteful. the current solution is that array elements are grouped into "cards" and mutations are tracked per "card" |
| 14:32:09 | → | chomwitt joins (~chomwitt@2a02:587:dc21:9e00:5530:2656:4793:d635) |
| 14:34:03 | <govertsnovert> | so the general answer is "read the source, and ask around." ? (I'm fine with that. I'm used to that. ) |
| 14:38:48 | <[exa]> | Like, packages _should_ document complexity of performance-critical stuff that is not very obvious, but there is some variability in what authors consider to be "obvious" :D |
| 14:39:37 | <geekosaur> | and sometimes such documentation is misleading because laziness figures into it |
| 14:41:46 | <geekosaur> | and then there's https://hackage.haskell.org/package/xmonad-0.17.0/docs/XMonad-StackSet.html#v:focusUp where there's a general case and an exceptional one |
| 14:43:11 | geekosaur | wonders if that should be updated so the variables match, you have to know how the StackSet is used to know that "w" is referring to "a" |
| 14:43:19 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
| 14:43:30 | × | gpncarl quits (~gpncarl@120.244.220.69) (Ping timeout: 260 seconds) |
| 14:45:12 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 14:45:12 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 14:45:12 | → | wroathe joins (~wroathe@user/wroathe) |
| 14:49:20 | × | rburkholder quits (~blurb@96.45.2.121) (Remote host closed the connection) |
| 14:53:26 | → | ober_ joins (~ober@c-24-61-80-158.hsd1.ma.comcast.net) |
| 14:54:43 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 15:02:36 | → | ober__ joins (~ober@c-24-61-80-158.hsd1.ma.comcast.net) |
| 15:02:49 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 15:03:12 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 15:03:19 | × | govertsnovert quits (~govertsno@46.246.41.166) (Remote host closed the connection) |
| 15:04:23 | × | wroathe quits (~wroathe@user/wroathe) (Quit: Lost terminal) |
| 15:04:46 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
| 15:05:30 | × | ober_ quits (~ober@c-24-61-80-158.hsd1.ma.comcast.net) (Ping timeout: 240 seconds) |
| 15:07:05 | → | ober_ joins (~ober@c-24-61-80-158.hsd1.ma.comcast.net) |
| 15:08:02 | × | christiansen quits (~christian@83-95-137-75-dynamic.dk.customer.tdc.net) (Ping timeout: 252 seconds) |
| 15:09:41 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 15:09:45 | × | ober__ quits (~ober@c-24-61-80-158.hsd1.ma.comcast.net) (Ping timeout: 260 seconds) |
| 15:09:55 | → | ober__ joins (~ober@c-24-61-80-158.hsd1.ma.comcast.net) |
| 15:11:21 | × | ober_ quits (~ober@c-24-61-80-158.hsd1.ma.comcast.net) (Ping timeout: 248 seconds) |
| 15:13:06 | → | ober_ joins (~ober@c-24-61-80-158.hsd1.ma.comcast.net) |
| 15:14:52 | → | sabry joins (~sabry@197.37.135.141) |
| 15:15:35 | × | ober__ quits (~ober@c-24-61-80-158.hsd1.ma.comcast.net) (Ping timeout: 260 seconds) |
| 15:16:37 | → | ober__ joins (~ober@c-24-61-80-158.hsd1.ma.comcast.net) |
| 15:16:51 | × | frost quits (~frost@user/frost) (Quit: Client closed) |
| 15:17:23 | × | ober_ quits (~ober@c-24-61-80-158.hsd1.ma.comcast.net) (Ping timeout: 252 seconds) |
| 15:18:42 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 15:19:21 | × | gurkenglas quits (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Read error: Connection reset by peer) |
| 15:19:35 | → | ober_ joins (~ober@c-24-61-80-158.hsd1.ma.comcast.net) |
| 15:20:36 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 15:20:54 | → | gurkenglas joins (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) |
| 15:22:20 | × | ober__ quits (~ober@c-24-61-80-158.hsd1.ma.comcast.net) (Ping timeout: 252 seconds) |
| 15:23:06 | → | ober__ joins (~ober@c-24-61-80-158.hsd1.ma.comcast.net) |
| 15:25:33 | × | ober_ quits (~ober@c-24-61-80-158.hsd1.ma.comcast.net) (Ping timeout: 260 seconds) |
| 15:27:12 | → | yauhsien joins (~yauhsien@61-231-42-187.dynamic-ip.hinet.net) |
| 15:28:25 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 15:29:05 | → | ober_ joins (~ober@c-24-61-80-158.hsd1.ma.comcast.net) |
| 15:31:58 | × | ober__ quits (~ober@c-24-61-80-158.hsd1.ma.comcast.net) (Ping timeout: 260 seconds) |
| 15:34:36 | → | ober__ joins (~ober@c-24-61-80-158.hsd1.ma.comcast.net) |
| 15:37:08 | × | ober_ quits (~ober@c-24-61-80-158.hsd1.ma.comcast.net) (Ping timeout: 248 seconds) |
| 15:39:05 | → | ober_ joins (~ober@c-24-61-80-158.hsd1.ma.comcast.net) |
| 15:39:15 | → | Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net) |
| 15:41:24 | × | ober__ quits (~ober@c-24-61-80-158.hsd1.ma.comcast.net) (Ping timeout: 248 seconds) |
| 15:44:13 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 15:48:35 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 15:49:39 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 15:52:33 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 15:54:32 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
| 15:55:53 | × | Kaiepi quits (~Kaiepi@156.34.47.253) (Ping timeout: 252 seconds) |
| 16:02:05 | → | gpncarl joins (~gpncarl@120.244.220.69) |
| 16:06:46 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 16:07:21 | × | yauhsien quits (~yauhsien@61-231-42-187.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 16:09:42 | → | yauhsien joins (~yauhsien@61-231-42-187.dynamic-ip.hinet.net) |
| 16:11:11 | → | janus39 joins (~janus@84-107-171-239.cable.dynamic.v4.ziggo.nl) |
| 16:12:03 | × | janus39 quits (~janus@84-107-171-239.cable.dynamic.v4.ziggo.nl) (Client Quit) |
| 16:15:55 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 16:17:09 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 16:17:25 | × | gpncarl quits (~gpncarl@120.244.220.69) (Ping timeout: 260 seconds) |
| 16:18:19 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 16:24:41 | × | yauhsien quits (~yauhsien@61-231-42-187.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 16:24:43 | × | jollygood2 quits (www-data@2607:5300:60:8be::1) (Quit: CGI:IRC (Session timeout)) |
| 16:25:30 | → | yauhsien joins (~yauhsien@61-231-42-187.dynamic-ip.hinet.net) |
| 16:27:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 16:28:57 | × | ober_ quits (~ober@c-24-61-80-158.hsd1.ma.comcast.net) (Quit: Leaving) |
| 16:29:11 | → | Kaiepi joins (~Kaiepi@156.34.47.253) |
| 16:30:10 | × | yauhsien quits (~yauhsien@61-231-42-187.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
| 16:36:32 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 16:39:34 | → | econo joins (uid147250@user/econo) |
| 16:41:55 | → | dhil joins (~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net) |
| 16:42:20 | × | dhil quits (~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net) (Client Quit) |
| 16:49:43 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:49:45 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 16:53:43 | → | Guest57 joins (~Guest57@69-174-160-103.iplwin75.metronetinc.net) |
| 16:55:23 | × | fjmorazan quits (~quassel@user/fjmorazan) (Quit: fjmorazan) |
| 16:55:39 | → | fjmorazan joins (~quassel@user/fjmorazan) |
| 17:00:13 | × | fjmorazan quits (~quassel@user/fjmorazan) (Client Quit) |
| 17:00:52 | → | fjmorazan joins (~quassel@user/fjmorazan) |
| 17:00:59 | × | Kaiepi quits (~Kaiepi@156.34.47.253) (Remote host closed the connection) |
| 17:01:23 | → | Kaiepi joins (~Kaiepi@156.34.47.253) |
| 17:03:45 | → | nate1 joins (~nate@98.45.169.16) |
| 17:04:11 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 17:12:41 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 17:13:27 | <Guest57> | How would I post my code for critique? |
| 17:14:00 | <geekosaur> | paste.tomsmeding.com, gist.github.com, or some other good pastebin |
| 17:14:47 | <geekosaur> | where good preferably includes support for narrowing in on a range of lines, etc. |
| 17:15:12 | <Guest57> | and link it? or copy and paste the result |
| 17:15:55 | <hpc> | link the url here |
| 17:16:07 | <Guest57> | okay thanks |
| 17:16:15 | <Guest57> | https://paste.tomsmeding.com/mdUv4Wo5 |
| 17:16:16 | <hpc> | https://paste.tomsmeding.com/L8bIedEW |
| 17:17:31 | <Guest57> | Haskell's my first programming language, and I'm excited to have solved my first "difficult" problem |
| 17:19:30 | → | MoC joins (~moc@user/moc) |
| 17:19:52 | <[exa]> | Guest57: great! actually the subset sum problem _is_ computationally hard :] |
| 17:21:11 | → | fendor joins (~fendor@178.115.57.232.wireless.dyn.drei.com) |
| 17:21:38 | → | dzdcnfzd joins (~dzdcnfzd@pool-108-54-250-165.nycmny.fios.verizon.net) |
| 17:21:42 | <hpc> | tupleCombinations can be made a little bit nicer |
| 17:21:51 | <[exa]> | some minor improvements: you can shorten `tupleAdd = uncurry (+)` and `if x==True` is basically the same as `if x` |
| 17:21:52 | <hpc> | tupleCombinations list = tupleCombinations' list list where ... |
| 17:22:21 | <Guest57> | what does uncurry do? |
| 17:22:23 | <hpc> | boolListToPointer can probably be named better - it finds the index of the first True in the list |
| 17:22:26 | <hpc> | :t uncurry |
| 17:22:27 | <lambdabot> | (a -> b -> c) -> (a, b) -> c |
| 17:22:27 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 17:22:37 | <hpc> | makes a function take a tuple instead of two arguments |
| 17:22:39 | <[exa]> | Guest57: converts a 2param function to a function that works on 2-tuple |
| 17:23:12 | <hpc> | in fact, boolListToPointer can take the thing you are searching for as a parameter |
| 17:23:19 | <hpc> | and then you can name it indexOf or something like that |
| 17:23:40 | <hpc> | indexOf "abc" 'c' = 2, and such |
| 17:23:48 | <hpc> | and then you can indexOf someList True |
| 17:25:17 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 17:25:31 | <[exa]> | Guest57: btw should the program work with any _set_ or just _pairs_ of the numbers? |
| 17:25:46 | <Guest57> | What would be your advice for fixing up the tupleCombinations function? |
| 17:26:05 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
| 17:26:29 | <statusbot1> | Maintenance update: hackage downtime for small update -- http://status.haskell.org/pages/maintenance/537c07b0cf1fad5830000093/6281372eaa012605343fa6fd |
| 17:26:56 | <dsal> | :t liftA2 (,) |
| 17:26:57 | <lambdabot> | Applicative f => f a -> f b -> f (a, b) |
| 17:27:14 | <dsal> | > liftA2 (,) [1,2,3] [4,5] |
| 17:27:16 | <lambdabot> | [(1,4),(1,5),(2,4),(2,5),(3,4),(3,5)] |
| 17:28:13 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 17:29:56 | × | MoC quits (~moc@user/moc) (Ping timeout: 252 seconds) |
| 17:30:00 | <Guest57> | [exa] just pairs |
| 17:30:11 | <[exa]> | Guest57: one nice way to generate the pairs is with list comprehensions, say [(a,b) | (a,bs) <- list, b <- bs] |
| 17:30:41 | <[exa]> | oh whoops, I meant (a:bs) |
| 17:30:50 | <statusbot1> | Maintenance update: Upgrade completed. -- http://status.haskell.org/pages/maintenance/537c07b0cf1fad5830000093/6281372eaa012605343fa6fd |
| 17:31:59 | <dsal> | I don't quite understand `tupleCombinations [a, b] [a2, b2] = (a, b) : []` -- it's not clear to me what you're trying to do here. |
| 17:33:33 | <Guest57> | dsal if there are only two numbers left in the second list, then all combinations have been tried |
| 17:33:56 | <Guest57> | my code is really messy though and even I don't understand how it works completely |
| 17:34:10 | → | jmd_ joins (~jmdaemon@user/jmdaemon) |
| 17:34:27 | <dsal> | I've seen far worse code. I just don't quite understand what you're trying to do. :) |
| 17:34:51 | <shapr> | whoa, statusbot1 is handy, when did that show up? |
| 17:34:53 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 252 seconds) |
| 17:34:53 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 252 seconds) |
| 17:35:00 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
| 17:36:02 | <geekosaur> | it's been around for several years, it just doesn't have much to say |
| 17:37:43 | → | nate1 joins (~nate@98.45.169.16) |
| 17:38:39 | <dmj`> | has anyone written haskell98 w/ bnfc |
| 17:41:14 | <Guest57> | so an example would be [1,2,3] [1,2,3] -> (1, 2) : tupleCombinations [1,3] [1,2,3] then because it's a two list it would hit the second argument -> (1,2) : (1,3) : tupleCombinations [2,3] [2,3] then it would hit the third argument and produce (2,3) : [] and finish the program |
| 17:41:22 | <Guest57> | I don't know if that helps or not |
| 17:43:03 | <[exa]> | Guest57: I guess it removes some unnecessary checks |
| 17:43:17 | <Guest57> | good or bad code? |
| 17:43:59 | <Guest57> | at least compared to similar pattern match implementations |
| 17:44:43 | <[exa]> | yeah, the point is that you can use a bit of builtin functions and tools that you probably don't know about to shorten it up a lot |
| 17:45:05 | <[exa]> | (or list comprehensions, as I hinted above, except with an error) |
| 17:45:15 | <[exa]> | let's try these 2: |
| 17:45:20 | <[exa]> | > tails [1,2,3,4] |
| 17:45:22 | <lambdabot> | [[1,2,3,4],[2,3,4],[3,4],[4],[]] |
| 17:45:55 | <[exa]> | > map (\x -> (1,x)) [2,3,4] |
| 17:45:57 | <lambdabot> | [(1,2),(1,3),(1,4)] |
| 17:47:38 | <[exa]> | (to get tails, you may need to import Data.List) |
| 17:47:56 | <Guest57> | I was also wondering if there is any way to skip the list of Bools step |
| 17:48:03 | <Guest57> | any better way to do that |
| 17:48:10 | <Guest57> | is seems wasteful to me |
| 17:48:13 | <[exa]> | yes, I'd use filter |
| 17:48:33 | <Guest57> | ok |
| 17:49:28 | <[exa]> | filter out the tuples that don't sum to the number that you want, and from that you either get `[]` if there's no such pair, or `(your_result:_)` |
| 17:51:12 | → | MoC joins (~moc@user/moc) |
| 17:51:48 | × | dzdcnfzd quits (~dzdcnfzd@pool-108-54-250-165.nycmny.fios.verizon.net) (Quit: Client closed) |
| 17:51:54 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 17:52:31 | <[exa]> | dmj`: wow if you meant the BNCF grammar&parser tool, that looks cool |
| 17:52:49 | <dmj`> | [exa]: yea! v. cool project indeed |
| 17:53:45 | → | abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
| 17:57:39 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 17:59:27 | <tomsmeding> | statusbot1 is cool |
| 18:01:34 | × | fef quits (~thedawn@user/thedawn) (Ping timeout: 240 seconds) |
| 18:05:10 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 18:08:46 | <[exa]> | dmj`: I'm still searching for a kinda good lexer generator that could do labels, this is close but still not there. But thanks for mentioning it, helps a lot with another project :] |
| 18:08:58 | → | kenran joins (~kenran@200116b82bb59000f68574e202d22e91.dip.versatel-1u1.de) |
| 18:17:37 | → | zincy joins (~zincy@2a00:23c8:970c:4801:18b4:9d3:33e8:26e3) |
| 18:18:10 | × | abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
| 18:19:48 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 248 seconds) |
| 18:21:17 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 18:21:47 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
| 18:22:35 | → | nate1 joins (~nate@98.45.169.16) |
| 18:27:35 | <dmj`> | [exa]: what do you mean labels, bnfc does use alex, which is very good imo |
| 18:30:16 | × | urdh quits (~urdh@user/urdh) (Quit: Boom!) |
| 18:31:27 | <[exa]> | hm actually it could work |
| 18:31:45 | × | fendor quits (~fendor@178.115.57.232.wireless.dyn.drei.com) (Remote host closed the connection) |
| 18:31:55 | <[exa]> | I also kinda wanted to let the users write their own lexers and load them into the program without recompiling, but well, screw that |
| 18:33:35 | → | causal joins (~user@50.35.83.177) |
| 18:34:55 | → | urdh joins (~urdh@h88-129-148-132.cust.a3fiber.se) |
| 18:34:55 | × | urdh quits (~urdh@h88-129-148-132.cust.a3fiber.se) (Changing host) |
| 18:34:55 | → | urdh joins (~urdh@user/urdh) |
| 18:38:42 | <dmj`> | [exa]: their own lexers ay? what kind of project is this |
| 18:39:11 | <dsal> | Guest57: I generally recommend people avoiding Bool as much as possible. You surely don't need a list of them. |
| 18:39:14 | <dsal> | :t find |
| 18:39:15 | <lambdabot> | Foldable t => (a -> Bool) -> t a -> Maybe a |
| 18:39:29 | <dsal> | ^ That's a slightly better shape to do something similar. |
| 18:41:33 | × | dcoutts__ quits (~duncan@host213-122-143-140.range213-122.btcentralplus.com) (Ping timeout: 260 seconds) |
| 18:41:51 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 18:42:55 | <dsal> | Guest57: Not sure if people pointed this out to you, but it's best to avoid partial functions like `(!!)` and having `error` and such. |
| 18:43:22 | → | dcoutts__ joins (~duncan@host213-122-143-140.range213-122.btcentralplus.com) |
| 18:45:24 | <dsal> | If you have a function that takes a list `[a]`, how many results are possible? Exactly one? Then the result should be `a`. Zero or one? `Maybe a`. Zero or more? `[a]`. At least one? `NonEmpty a` |
| 18:46:11 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 18:47:30 | × | dcoutts__ quits (~duncan@host213-122-143-140.range213-122.btcentralplus.com) (Ping timeout: 240 seconds) |
| 18:48:51 | ← | _73 parts (~user@pool-108-49-252-36.bstnma.fios.verizon.net) (ERC 5.4 (IRC client for GNU Emacs 28.1)) |
| 18:51:54 | → | michalz joins (~michalz@185.246.204.104) |
| 18:52:52 | <Guest57> | dsal I'll make sure to write that down, thanks |
| 18:55:52 | <[exa]> | dmj`: mergetool that doesn't explode on code reformats etc |
| 18:56:52 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 19:03:23 | <dmj`> | [exa]: that's a pretty cool idea |
| 19:04:06 | <dmj`> | [exa]: I was thinking of making a process monitoring tool that could understand systemD units, was multiplatform, etc. Like docker-compose but no docker images, just bare metal. |
| 19:04:36 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 19:04:52 | <dmj`> | with colored output ofc |
| 19:05:14 | × | Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
| 19:05:42 | <geekosaur> | multiplatform will change your mind very quickly :) |
| 19:06:05 | <[exa]> | "multiplatform" vs "systemd" ah yes |
| 19:06:13 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Quit: mikoto-chan) |
| 19:06:27 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 19:06:42 | <[exa]> | systemd has some kind of programmatic output where it reports its complete internal state, right? |
| 19:06:56 | <geekosaur> | even ignoring that (there are equivalents on both os x and windows, after all, they're just even harder to handle quasiportably than the rest of it) |
| 19:07:37 | <geekosaur> | and then on macs there's the question of how you count mach vs. xinu processes, beyond launchd units |
| 19:10:38 | <dmj`> | the unix package has some cross platform stuff and there's Win32, to be clear, I'm not advocating building an init system, everything would be user land. Just gets annoying re-running tests in a docker-compose setup because you have to rebuild images and that is no fun. |
| 19:11:09 | <geekosaur> | (and I think windows has similar issues, there's an internal level beyond merely SYSTEM) |
| 19:11:34 | → | stackdroid18 joins (14094@user/stackdroid) |
| 19:12:31 | × | zincy quits (~zincy@2a00:23c8:970c:4801:18b4:9d3:33e8:26e3) (Remote host closed the connection) |
| 19:13:03 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
| 19:13:55 | <dmj`> | [exa]: yea, you can list all units w/ systemctl, and then journalctl -u name -f is like tailing on the logs |
| 19:17:25 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:19:41 | → | coot joins (~coot@213.134.190.95) |
| 19:20:06 | → | nattiestnate joins (~nate@202.138.250.53) |
| 19:20:49 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 19:28:13 | × | ix quits (~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe) (Ping timeout: 260 seconds) |
| 19:28:42 | × | mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 19:30:38 | → | nate1 joins (~nate@98.45.169.16) |
| 19:31:00 | → | ix joins (~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe) |
| 19:32:26 | → | dcoutts__ joins (~duncan@185.201.60.217) |
| 19:35:17 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:42:45 | × | jco quits (~jco@90-228-194-139-no542.tbcn.telia.com) (Ping timeout: 260 seconds) |
| 19:46:50 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 19:47:01 | → | pavonia joins (~user@user/siracusa) |
| 19:47:48 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 248 seconds) |
| 19:48:41 | → | ccntrq joins (~Thunderbi@dynamic-046-114-166-012.46.114.pool.telefonica.de) |
| 19:50:23 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 260 seconds) |
| 19:51:24 | × | _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection) |
| 19:51:46 | → | ubert joins (~Thunderbi@p200300ecdf1588eeec30bba7413e2c9e.dip0.t-ipconnect.de) |
| 19:52:04 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 248 seconds) |
| 19:58:36 | → | Pickchea joins (~private@user/pickchea) |
| 20:00:08 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 20:00:30 | → | xkuru joins (~xkuru@user/xkuru) |
| 20:01:10 | × | ccntrq quits (~Thunderbi@dynamic-046-114-166-012.46.114.pool.telefonica.de) (Remote host closed the connection) |
| 20:02:39 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:03:12 | → | acidjnk joins (~acidjnk@p200300d0c7068b96c1e16b2c2fcc66e6.dip0.t-ipconnect.de) |
| 20:11:02 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 20:11:32 | × | ubert quits (~Thunderbi@p200300ecdf1588eeec30bba7413e2c9e.dip0.t-ipconnect.de) (Quit: ubert) |
| 20:14:15 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 20:14:23 | × | Guest57 quits (~Guest57@69-174-160-103.iplwin75.metronetinc.net) (Quit: Client closed) |
| 20:14:36 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 20:15:41 | → | jgeerds joins (~jgeerds@d53604b0.access.ecotel.net) |
| 20:20:52 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 248 seconds) |
| 20:21:34 | × | stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds) |
| 20:22:59 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 20:23:00 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 20:24:42 | → | Kaipei joins (~Kaiepi@156.34.47.253) |
| 20:27:48 | × | Kaiepi quits (~Kaiepi@156.34.47.253) (Ping timeout: 248 seconds) |
| 20:28:34 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
| 20:28:38 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 20:31:01 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 20:31:47 | × | dcoutts__ quits (~duncan@185.201.60.217) (Ping timeout: 240 seconds) |
| 20:36:09 | × | michalz quits (~michalz@185.246.204.104) (Remote host closed the connection) |
| 20:36:32 | → | caef^ joins (~nehsou@128-092-160-234.biz.spectrum.com) |
| 20:38:54 | × | kenran quits (~kenran@200116b82bb59000f68574e202d22e91.dip.versatel-1u1.de) (Quit: WeeChat info:version) |
| 20:39:04 | × | Kaipei quits (~Kaiepi@156.34.47.253) (Remote host closed the connection) |
| 20:39:30 | → | Kaipei joins (~Kaiepi@156.34.47.253) |
| 20:42:22 | → | mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
| 20:47:34 | → | DNH joins (~DNH@2a02:8109:b740:2c4:c07a:8e6d:1ea3:2216) |
| 20:48:00 | → | zebrag joins (~chris@user/zebrag) |
| 20:48:45 | × | mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 20:51:10 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 20:53:58 | → | xaotuk joins (~sasha@net110-38-245-109.mbb.telenor.rs) |
| 20:54:38 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 20:55:18 | → | flupe joins (~baboum@176-172-101-165.abo.bbox.fr) |
| 20:55:58 | → | euandreh joins (~euandreh@2804:14c:33:9fe5:2165:73d6:1630:f174) |
| 20:56:21 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 20:56:55 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 20:59:33 | × | gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 21:00:16 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 21:00:35 | × | merijn quits (~merijn@c-001-001-002.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds) |
| 21:05:06 | → | mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
| 21:07:48 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 21:07:51 | → | Simon52 joins (~Simon@ipbcc036f5.dynamic.kabel-deutschland.de) |
| 21:09:22 | <Simon52> | Hey guys, does anybody have an idea why that " inhalt = inhalt ++ (dWort ++ " " ++ bWort ++ "\n")" brings me a parse error? |
| 21:09:23 | <Simon52> | import System.IO |
| 21:09:23 | <Simon52> | main :: IO() |
| 21:09:24 | <Simon52> | main = do |
| 21:09:24 | <Simon52> | let fullText = "" |
| 21:09:25 | <Simon52> | putStrLn "Deutsches Wort:" |
| 21:09:25 | <Simon52> | dWort <- getLine |
| 21:09:26 | <Simon52> | if null dWort |
| 21:09:26 | <Simon52> | then return () |
| 21:09:27 | <Simon52> | else do |
| 21:09:27 | <Simon52> | putStrLn "Bairisches Wort:" |
| 21:09:28 | <Simon52> | bWort <- getLine |
| 21:09:28 | <Simon52> | if null bWort |
| 21:09:29 | <Simon52> | then return () |
| 21:09:29 | <Simon52> | else do |
| 21:09:30 | <Simon52> | putStrLn ("'" ++ dWort ++ "'" ++ " heisst auf Bairisch " ++ "'" ++ bWort ++ "'") |
| 21:09:30 | <Simon52> | leseGriff <- openFile "woerterbuch.txt" ReadMode |
| 21:09:31 | <Simon52> | inhalt <- hGetContents leseGriff |
| 21:10:12 | → | Guest24 joins (~Guest24@2601:407:c680:3410:68f3:fd0d:4e98:9595) |
| 21:10:24 | <monochrom> | Ugh Simon52 please use a paste bin. Here: |
| 21:10:25 | <Simon52> | I also would have handeled it differently, but I cannot figure out how to declare a string variable in that do-loop without it causing an error |
| 21:10:28 | <monochrom> | @where paste |
| 21:10:28 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
| 21:10:57 | <Simon52> | Thanks, here it is: https://paste.tomsmeding.com/5814MPmc |
| 21:11:29 | → | andrey joins (~andrey@p200300dbcf47c200eee061049814fce3.dip0.t-ipconnect.de) |
| 21:12:27 | × | Guest24 quits (~Guest24@2601:407:c680:3410:68f3:fd0d:4e98:9595) (Client Quit) |
| 21:12:35 | <geekosaur> | you might want to use `when` instead of those if-then-else-s |
| 21:12:36 | <monochrom> | I don't know how to explain "why" except "var = expr" is simply not a thing in do-notation. |
| 21:12:40 | → | Guest24 joins (~Guest24@2601:407:c680:3410:68f3:fd0d:4e98:9595) |
| 21:12:47 | × | andrey_ quits (~andrey@p200300dbcf3e23005cb23a11d813ffaf.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 21:12:56 | → | abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
| 21:13:14 | <Simon52> | monochrom how to solve it instead of that? |
| 21:13:16 | <geekosaur> | there is no such thing as a "variable" in Haskell; you can't assign like that, the closest you get is <- (which is actually doing something else; see >>=) |
| 21:13:36 | <geekosaur> | there is let but you still can't change a value that way |
| 21:13:47 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
| 21:14:01 | × | sabry quits (~sabry@197.37.135.141) (Quit: Client closed) |
| 21:14:12 | <Simon52> | Ohh, now it seems to work (with let inhalt ...) |
| 21:14:31 | <monochrom> | In do-notation there is a provision for "let var = expr" but just like the rest of Haskell it is not "update the variable" it is rather giving a name to a value. You will have no luck with "let inhalt = inhalt ++ ..." either. Choose a new name. |
| 21:14:45 | <geekosaur> | typically if I were doing that I'd do something like https://paste.tomsmeding.com/mEA68sDg |
| 21:15:14 | <geekosaur> | alternately I'd rearrange things so I could fmap the change over the readFile |
| 21:15:49 | → | Rookie joins (~Rookie@2601:407:c680:3410:68f3:fd0d:4e98:9595) |
| 21:16:30 | <monochrom> | By the same logic, the inhalt="" and fullText="" at the beginning are dumb. |
| 21:16:32 | × | Rookie quits (~Rookie@2601:407:c680:3410:68f3:fd0d:4e98:9595) (Client Quit) |
| 21:16:49 | <Simon52> | Yeah, you are right, I removed them |
| 21:16:55 | ← | Guest24 parts (~Guest24@2601:407:c680:3410:68f3:fd0d:4e98:9595) () |
| 21:17:03 | → | dcoutts joins (~duncan@host86-187-173-90.range86-187.btcentralplus.com) |
| 21:17:10 | <Simon52> | But that's the way it might would have worked in Java |
| 21:17:22 | <Simon52> | But here things are different 😅 |
| 21:17:42 | <Simon52> | Thanks for the input geekosaur |
| 21:18:00 | → | rookiedoo joins (~rookiedoo@2601:407:c680:3410:68f3:fd0d:4e98:9595) |
| 21:18:05 | <Simon52> | What can I use instead of ReadMode? EditMode? |
| 21:19:40 | <geekosaur> | changing the file mode won't help here |
| 21:19:55 | <geekosaur> | Java has mutable values. Haskell doesn't |
| 21:20:23 | × | m1dnight quits (~christoph@78.22.9.5) (Ping timeout: 252 seconds) |
| 21:20:24 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Ping timeout: 248 seconds) |
| 21:21:07 | × | mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 21:21:12 | <Simon52> | *** Exception: woerterbuch.txt: openFile: resource busy (file is locked) |
| 21:21:46 | → | m1dnight joins (~christoph@78-22-9-5.access.telenet.be) |
| 21:21:47 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
| 21:21:52 | <rookiedoo> | Does anyone have a suggestion on the best way to get in touch with devs who are able to build cardano defi apps? |
| 21:23:36 | <geekosaur> | oh. that's because hGetContents is lazy. you need to force the read, generally by using seq |
| 21:23:44 | <monochrom> | This is going to be a mess. hGetContents does lazy I/O, you have much less control on when the reading happens and when the file is closed. (No, code order does nothing.) |
| 21:23:52 | <Simon52> | geekosaur What does using seq mean? |
| 21:23:57 | <geekosaur> | :t seq |
| 21:23:58 | <lambdabot> | a -> b -> b |
| 21:23:59 | <monochrom> | The simplest way out is: Are you OK with writing to a different file? |
| 21:24:27 | <Simon52> | monochrom You mean creating a new one? |
| 21:24:32 | <monochrom> | Yes. |
| 21:24:33 | <geekosaur> | seq promises that when its second argument is evaluated, so is its first |
| 21:24:41 | <geekosaur> | but what monochrom is saying is easier |
| 21:24:44 | <Simon52> | And overwriting the old one? Sure. Should have the name woerberbuch.txt |
| 21:25:07 | <Simon52> | woerterbuch.txt, perdon |
| 21:25:13 | × | jmd_ quits (~jmdaemon@user/jmdaemon) (Ping timeout: 248 seconds) |
| 21:25:38 | <geekosaur> | the real way around it if you must keep the same name is to switch to strict I/O instead, since lazy I/O is a bit of a wart and hard to make behave |
| 21:26:14 | → | mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
| 21:27:01 | <Simon52> | So I have to add a string consisting of two strings to the same file for every loop of the main method as long as the user wants. |
| 21:27:02 | <Simon52> | How to handle that best? |
| 21:29:28 | × | glguy quits (x@libera/staff/glguy) (Read error: Connection reset by peer) |
| 21:30:17 | × | zer0bitz_ quits (~zer0bitz@2001:2003:f444:8f00:312d:d371:2ac4:b717) (Ping timeout: 252 seconds) |
| 21:30:27 | → | glguy joins (x@libera/staff/glguy) |
| 21:31:15 | × | mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 260 seconds) |
| 21:31:46 | × | kmein quits (~weechat@user/kmein) (Quit: ciao kakao) |
| 21:32:34 | → | govertsnovert joins (~govertsno@ip69-17-229-66.vif.net) |
| 21:33:24 | × | xaotuk quits (~sasha@net110-38-245-109.mbb.telenor.rs) (Ping timeout: 248 seconds) |
| 21:33:44 | → | kmein joins (~weechat@user/kmein) |
| 21:34:13 | × | govertsnovert quits (~govertsno@ip69-17-229-66.vif.net) (Quit: Leaving...) |
| 21:38:29 | <Simon52> | Why won't it work like that? https://paste.tomsmeding.com/njPB0ps0 |
| 21:38:51 | <Simon52> | I get *** Exception: ./woerterbuch.txt: openFile: resource busy (file is locked) |
| 21:39:07 | <monochrom> | What we said. |
| 21:39:19 | <monochrom> | readFile is as lazy as hGetContents. |
| 21:39:25 | × | MoC quits (~moc@user/moc) (Quit: Konversation terminated!) |
| 21:40:05 | <Simon52> | Hmm. You suggested to overwrite the file? How would I do that? |
| 21:40:22 | <monochrom> | No, I suggested writing to a different file. |
| 21:40:41 | <Simon52> | And each do-iteration would require a different file? |
| 21:40:43 | <monochrom> | I seriously don't understand how that became "overwrite the original file". |
| 21:41:36 | <Simon52> | Sorry for the misinterpretation! |
| 21:44:48 | × | Simon52 quits (~Simon@ipbcc036f5.dynamic.kabel-deutschland.de) (Quit: Client closed) |
| 21:48:46 | → | mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
| 21:49:14 | <monochrom> | This is just appending new data to a file, independent of existing data in the file. So just use appendFile, don't even read. |
| 21:51:45 | × | nattiestnate quits (~nate@202.138.250.53) (Quit: WeeChat 3.5) |
| 21:55:33 | → | nate1 joins (~nate@98.45.169.16) |
| 21:56:55 | → | merijn joins (~merijn@c-001-001-002.client.esciencecenter.eduvpn.nl) |
| 21:59:28 | → | tafama joins (~tafa@user/tafa) |
| 21:59:49 | × | tafa quits (~tafa@user/tafa) (Read error: Connection reset by peer) |
| 22:00:36 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 248 seconds) |
| 22:02:30 | <maerwald> | fresh student writing variables in Deutsch |
| 22:03:09 | → | xaotuk joins (~sasha@net110-38-245-109.mbb.telenor.rs) |
| 22:04:30 | × | juri_ quits (~juri@178.63.35.222) (Ping timeout: 260 seconds) |
| 22:07:20 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:07:35 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
| 22:09:54 | → | jollygood2 joins (www-data@2607:5300:60:8be::1) |
| 22:10:12 | × | flupe quits (~baboum@176-172-101-165.abo.bbox.fr) (Ping timeout: 248 seconds) |
| 22:10:27 | → | flupe joins (~baboum@radon.sbi.re) |
| 22:10:54 | × | jolandr quits (~Guest14@user/jolandr) (Ping timeout: 252 seconds) |
| 22:12:06 | × | dcoutts quits (~duncan@host86-187-173-90.range86-187.btcentralplus.com) (Remote host closed the connection) |
| 22:18:59 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 22:19:47 | × | xaotuk quits (~sasha@net110-38-245-109.mbb.telenor.rs) (Ping timeout: 252 seconds) |
| 22:21:24 | × | flupe quits (~baboum@radon.sbi.re) (Ping timeout: 248 seconds) |
| 22:23:14 | × | rookiedoo quits (~rookiedoo@2601:407:c680:3410:68f3:fd0d:4e98:9595) (Quit: Client closed) |
| 22:23:46 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:26:46 | × | sympt quits (~sympt@user/sympt) (Quit: The Lounge - https://thelounge.chat) |
| 22:27:58 | → | dcoutts joins (~duncan@host86-187-173-90.range86-187.btcentralplus.com) |
| 22:29:43 | → | sympt joins (~sympt@user/sympt) |
| 22:32:35 | → | nate1 joins (~nate@98.45.169.16) |
| 22:33:08 | × | acidjnk quits (~acidjnk@p200300d0c7068b96c1e16b2c2fcc66e6.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 22:33:22 | × | Tuplanolla quits (~Tuplanoll@91-159-68-39.elisa-laajakaista.fi) (Quit: Leaving.) |
| 22:37:26 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds) |
| 22:46:49 | × | xff0x quits (~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 248 seconds) |
| 22:47:39 | × | chomwitt quits (~chomwitt@2a02:587:dc21:9e00:5530:2656:4793:d635) (Ping timeout: 240 seconds) |
| 22:50:08 | → | sieben joins (~user@ip68-12-103-253.ok.ok.cox.net) |
| 23:00:32 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 246 seconds) |
| 23:01:24 | × | cyphase quits (~cyphase@user/cyphase) (Ping timeout: 248 seconds) |
| 23:05:11 | <cdsmith> | I'm getting the warning "The record update foo { bar = exp } with type Foo is ambiguous. This will not be supported by DuplicateRecordFields in future releases of GHC." How should this be disambiguated? I've tried adding every type annotation I can think of without success... |
| 23:06:24 | → | cyphase joins (~cyphase@user/cyphase) |
| 23:07:07 | <monochrom> | Is Foo a parametrized type? That would happen. |
| 23:07:41 | <cdsmith> | Yeah, something like `data Foo f = Foo { ..., bar :: f SomeType }` |
| 23:07:54 | <cdsmith> | This is a type-changing record update |
| 23:08:00 | <monochrom> | If the type annotation uses a type variable too, you need ScopedTypeVariables and some forall's at an outer scope. |
| 23:08:28 | <cdsmith> | No, the type annotations don't use type variables. I know the concrete types at the point where this code occurs. |
| 23:08:30 | <maerwald> | and then run into simplified subsumption? :> |
| 23:08:54 | <cdsmith> | Specifically, I am converting a `Foo TVar` into a `Foo Identity` |
| 23:09:01 | → | xff0x joins (~xff0x@b133147.ppp.asahi-net.or.jp) |
| 23:09:20 | <monochrom> | Hrm. Maybe ignore the warning... :) |
| 23:09:40 | <cdsmith> | It specifically says it's going to break my code in future GHC versions, though. :) |
| 23:09:55 | <monochrom> | Do you also use DuplicateRecordFields? |
| 23:10:00 | <cdsmith> | Yes |
| 23:10:42 | <cdsmith> | yeah, `bar` is definitely a duplicate field name. There is also another type with a field called `bar`. I am using DuplicateRecordFields and NoFieldSelectors |
| 23:10:42 | <monochrom> | I am not sure how it's ambiguous in the first place... |
| 23:10:45 | → | flupe joins (~baboum@bes60-h02-176-172-101-165.dsl.sta.abo.bbox.fr) |
| 23:11:37 | <monochrom> | or therefore exactly what will be unsupported in the future... |
| 23:12:53 | <cdsmith> | Yeah, I'm not sure either. I'd be happy to add any annotation to tell GHC which `bar` field this is. I just am failing to successfully tell it. |
| 23:14:39 | <cdsmith> | I guess I'll take your advice and disable the warning. |
| 23:21:32 | × | DNH quits (~DNH@2a02:8109:b740:2c4:c07a:8e6d:1ea3:2216) (Quit: Textual IRC Client: www.textualapp.com) |
| 23:27:50 | × | sieben quits (~user@ip68-12-103-253.ok.ok.cox.net) (Quit: ERC (IRC client for Emacs 26.3)) |
| 23:29:21 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 23:33:43 | → | melas joins (~melas@172.77.31.247) |
| 23:35:02 | × | shapr quits (~user@pool-173-73-44-186.washdc.fios.verizon.net) (Remote host closed the connection) |
| 23:35:06 | <jackdk> | Sounds like the GHC issue tracker should be told about this |
| 23:35:15 | <melas> | Hello! I'm trying to wrap my head around lambda calculus and haskell. I'm playing with this. A "map2D" function, and I'm trying to write the lambda calculus that would represent it. I don't think I have it right though because it doesn't seem to reduce right. Can you tell me what I'm doing wrong here? Thank you!: |
| 23:35:27 | <melas> | (\f1 xs -> map f1 xs) . (\f2 ys -> map f2 ys) |
| 23:35:34 | <melas> | (λx.yzx)(λm.ynm) |
| 23:36:39 | → | shapr joins (~user@pool-173-73-44-186.washdc.fios.verizon.net) |
| 23:37:04 | <geekosaur> | that will actually be difficult, since (a) there's no simple way to represent a list in untyped LC, therefore (b) there's no simple way to write "map" in untyped LC |
| 23:38:17 | <geekosaur> | the useful part of lambda calculus with respect to Haskell is that both do reductions the same way. the less than useful part is trying to actually translate Haskell to untyped or simply typed lambda calculus, unless you stick to the parts of Haskell that are representable in those |
| 23:39:16 | <jackdk> | Is anyone aware of any good helper libraries for writing GHC plugins? e.g., libraries of optics for working with syntax trees etc |
| 23:40:50 | × | flupe quits (~baboum@bes60-h02-176-172-101-165.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds) |
| 23:46:31 | <melas> | Could we do it ignoring what map actually is? i.e. just think of it as anything "x" |
| 23:46:51 | <melas> | I'm trying to figure out the reduction, not the inner workings of the functions themselves, if t6hat makes sense |
| 23:47:05 | → | nate1 joins (~nate@98.45.169.16) |
| 23:47:32 | <geekosaur> | only if you pass map in as a parameter |
| 23:48:26 | <geekosaur> | lambda calculus is … not real smart, shall we say |
| 23:49:28 | → | flupe joins (~baboum@176-172-101-165.abo.bbox.fr) |
| 23:49:39 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
| 23:50:25 | × | sympt quits (~sympt@user/sympt) (Read error: Connection reset by peer) |
| 23:50:57 | <jackdk> | I think rather than thinking of an LC, manually reducing your lambda expressions as if they were haskell may be good practice. Let me prepare a paste |
| 23:51:10 | <geekosaur> | probably |
| 23:51:37 | <geekosaur> | anyway your most likely direct problem is it looks to me like you're trying to represent function composition as function application, which doesn't work |
| 23:51:39 | × | nate1 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
| 23:51:57 | → | sympt joins (~sympt@user/sympt) |
| 23:52:25 | × | Cale quits (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) (Ping timeout: 260 seconds) |
| 23:53:18 | → | Cale joins (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) |
| 23:55:23 | <jackdk> | @src (.) |
| 23:55:23 | <melas> | Ah, I see what you mean. That's probably why I'm not understanding it |
| 23:55:23 | <lambdabot> | (f . g) x = f (g x) |
| 23:55:31 | <geekosaur> | function composition (the (.) operator) is λf.λg.λx.f(g(x)) |
| 23:57:35 | <melas> | So instead of using (.) could we use LC to reduce this?: |
| 23:57:36 | <melas> | map2D = (\x -> (\f1 xs -> map f1 xs) ((\f2 ys -> map f2 ys) x)) |
| 23:58:24 | <melas> | My end goal here is to make sure I understand how functions are applied in which order |
| 23:58:50 | × | flupe quits (~baboum@176-172-101-165.abo.bbox.fr) (Ping timeout: 260 seconds) |
| 23:59:12 | <geekosaur> | here I think jackdk's approach will be more fruitful |
| 23:59:32 | × | jgeerds quits (~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 248 seconds) |
| 23:59:33 | <melas> | I guess I naively imagined I could use LC on any function |
| 23:59:55 | <jackdk> | This is an expansion of your first question. I would try each step by hand, checking whether what you have makes sense (order can vary a little) https://www.irccloud.com/pastebin/D6zq8QVp/map-of-map.hs |
All times are in UTC on 2022-05-15.