2023-10-22 00:00:04 +0200 | cpressey | (~cpressey@host-92-21-194-169.as13285.net) (Quit: Client closed) |
2023-10-22 00:01:00 +0200 | <tomsmeding> | Unicorn_Princess: `readFile file >>= (return . fixContents) >>= writeFile file` ? |
2023-10-22 00:01:36 +0200 | <Unicorn_Princess> | yeah that works, but return is ugly there :P |
2023-10-22 00:04:52 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 00:05:31 +0200 | <Unicorn_Princess> | hmmm, it's midnight here, i better put away arrows for now |
2023-10-22 00:08:15 +0200 | <Inst> | `readFile file >>= writeFile file . fixContents |
2023-10-22 00:09:43 +0200 | <Unicorn_Princess> | gross. loses the left-to-right flow of data |
2023-10-22 00:10:02 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 272 seconds) |
2023-10-22 00:10:04 +0200 | <Inst> | you can verticalize it |
2023-10-22 00:10:08 +0200 | <Inst> | readFile |
2023-10-22 00:10:14 +0200 | <Inst> | >>= writeFile file . fixContents |
2023-10-22 00:10:29 +0200 | <Unicorn_Princess> | i prefer the version with <&> for now |
2023-10-22 00:11:11 +0200 | <Inst> | also, tbh, having to use different pure and monadic chaining operators isn't necessarily a bad thing, because they help give hints as to what the functions do |
2023-10-22 00:11:25 +0200 | <geekosaur> | ^ |
2023-10-22 00:12:32 +0200 | <Inst> | arguably foo =<< bar is less smelly than foo(bar()) because you at least have annotations to point out what's effectful and what's not |
2023-10-22 00:13:06 +0200 | <Inst> | as well as indicate an order of effects |
2023-10-22 00:14:09 +0200 | <Inst> | i'm incredibly depressed, just put together my first game of life, and it's mesmerizing :( |
2023-10-22 00:14:21 +0200 | <Inst> | but missing so many features! |
2023-10-22 00:15:47 +0200 | falafel | (~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 255 seconds) |
2023-10-22 00:16:15 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 00:19:55 +0200 | acidjnk_new | (~acidjnk@p200300d6e72b93737dc6e69178877b3f.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2023-10-22 00:20:48 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 260 seconds) |
2023-10-22 00:21:38 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 00:26:08 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 255 seconds) |
2023-10-22 00:30:41 +0200 | <EvanR> | to uniformize and potentially make it harder to understand you can use <=< everywhere |
2023-10-22 00:31:08 +0200 | Square | (~Square@user/square) (Ping timeout: 248 seconds) |
2023-10-22 00:32:27 +0200 | jargon | (~jargon@174-22-221-150.phnx.qwest.net) (Remote host closed the connection) |
2023-10-22 00:32:42 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 00:33:10 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Ping timeout: 256 seconds) |
2023-10-22 00:35:02 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2023-10-22 00:37:13 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 255 seconds) |
2023-10-22 00:37:24 +0200 | Vajb | (~Vajb@207.61.167.122) |
2023-10-22 00:38:18 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 00:40:33 +0200 | sm | (~sm@plaintextaccounting/sm) (Quit: sm) |
2023-10-22 00:41:26 +0200 | Inst | (~Inst@120.244.192.250) (Ping timeout: 255 seconds) |
2023-10-22 00:43:04 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 255 seconds) |
2023-10-22 00:44:05 +0200 | Vajb | (~Vajb@207.61.167.122) (Ping timeout: 240 seconds) |
2023-10-22 00:45:35 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-10-22 01:02:46 +0200 | Alleria | (~JohnGalt@user/alleria) |
2023-10-22 01:02:50 +0200 | dy_ | dy |
2023-10-22 01:03:00 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2023-10-22 01:03:06 +0200 | dy | (sid3438@id-3438.helmsley.irccloud.com) (Changing host) |
2023-10-22 01:03:06 +0200 | dy | (sid3438@user/dy) |
2023-10-22 01:05:33 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 01:05:47 +0200 | migas4 | (~migas@astra4961.startdedicated.net) |
2023-10-22 01:10:22 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 255 seconds) |
2023-10-22 01:11:17 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 01:13:57 +0200 | <probie> | Why not use `(.)` from Control.Category everywhere (along with `Control.Arrow`) |
2023-10-22 01:14:07 +0200 | <probie> | runKleisli (Kleisli (writeFile file) . arr fixContents . Kleisli readFile) file |
2023-10-22 01:15:09 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.) |
2023-10-22 01:15:12 +0200 | migas9 | (~migas@static.140.65.63.178.clients.your-server.de) (Quit: The Lounge - https://thelounge.github.io) |
2023-10-22 01:15:27 +0200 | <probie> | (which I guess is morally `>=>` or `<=<` everywhere) |
2023-10-22 01:15:34 +0200 | migas9 | (~migas@static.140.65.63.178.clients.your-server.de) |
2023-10-22 01:16:05 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 255 seconds) |
2023-10-22 01:16:52 +0200 | <EvanR> | yeah basically, that's even more uniform and more confusing xD |
2023-10-22 01:17:18 +0200 | <EvanR> | different categories at different places in the line of code |
2023-10-22 01:18:16 +0200 | <Unicorn_Princess> | is it just me or is the haskell LSP incredibly janky? on emacs with lsp-haskell, it seems to work, like, 30% of the time :| |
2023-10-22 01:22:08 +0200 | Vajb | (~Vajb@207.61.167.122) |
2023-10-22 01:27:21 +0200 | arahael | (~arahael@119-18-2-212.771202.syd.nbn.aussiebb.net) |
2023-10-22 01:27:35 +0200 | target_i | (~target_i@217.175.14.39) (Quit: leaving) |
2023-10-22 01:32:38 +0200 | <geekosaur> | works well for me but I use VSCode |
2023-10-22 01:33:45 +0200 | <Unicorn_Princess> | what does vscode use under the hood for haskell? |
2023-10-22 01:34:08 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 01:34:22 +0200 | <geekosaur> | it uses the same LSP but has its own built-in LSP support code rather than the LSP support library emacs uses |
2023-10-22 01:34:29 +0200 | <geekosaur> | which might be a bit dubious |
2023-10-22 01:35:10 +0200 | <Unicorn_Princess> | hm. iirc the lsp for rust felt very solid in emacs, which uses the same (i think?) glue code... |
2023-10-22 01:35:42 +0200 | <Unicorn_Princess> | ah no there are some specialized packages in-between. hm |
2023-10-22 01:36:31 +0200 | <Unicorn_Princess> | maybe tomorrow. goodnight |
2023-10-22 01:36:40 +0200 | <geekosaur> | yeh, it uses lsp-rust-servcer instead of lsp-mode |
2023-10-22 01:36:49 +0200 | <Unicorn_Princess> | wait what |
2023-10-22 01:37:20 +0200 | <Unicorn_Princess> | i only have rustic in my emacs init file for rust |
2023-10-22 01:37:22 +0200 | <probie> | In my experience, most of the headaches come from hls, since it's rather picky about what GHC versions its used with. I haven't had too many problems with `lsp-mode` itself |
2023-10-22 01:38:13 +0200 | <geekosaur> | there's a separate one for rustic, yeh |
2023-10-22 01:38:32 +0200 | <Unicorn_Princess> | nah it's too late for this rabbit hole. goodnight! |
2023-10-22 01:38:49 +0200 | nickiminjaj | (~nickiminj@user/laxhh) (Read error: Connection reset by peer) |
2023-10-22 01:38:51 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving) |
2023-10-22 01:39:21 +0200 | <geekosaur> | I have more trouble with rust-analyzer in vscode, for some reason it insists my xmonad config dir needs a cargo config file |
2023-10-22 01:39:48 +0200 | <geekosaur> | (no, my rust stuff isn't even on the same drive, idiot) |
2023-10-22 01:40:39 +0200 | nickiminjaj | (~nickiminj@188.146.126.78) |
2023-10-22 01:40:39 +0200 | nickiminjaj | (~nickiminj@188.146.126.78) (Changing host) |
2023-10-22 01:40:39 +0200 | nickiminjaj | (~nickiminj@user/laxhh) |
2023-10-22 01:44:07 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 264 seconds) |
2023-10-22 01:49:07 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-10-22 01:53:53 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
2023-10-22 02:01:46 +0200 | pavonia | (~user@user/siracusa) |
2023-10-22 02:03:04 +0200 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-10-22 02:06:16 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-10-22 02:06:51 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds) |
2023-10-22 02:10:14 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit) |
2023-10-22 02:12:48 +0200 | Vajb | (~Vajb@207.61.167.122) (Ping timeout: 260 seconds) |
2023-10-22 02:24:25 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 02:28:40 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 255 seconds) |
2023-10-22 02:35:22 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 02:40:03 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 255 seconds) |
2023-10-22 02:40:37 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 02:45:11 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 255 seconds) |
2023-10-22 02:51:32 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 02:54:54 +0200 | elkcl | (~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru) (Ping timeout: 255 seconds) |
2023-10-22 02:55:05 +0200 | elkcl | (~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru) |
2023-10-22 02:56:07 +0200 | waleee | (~waleee@2001:9b0:21c:e600:f2f3:f744:435d:137c) (Ping timeout: 264 seconds) |
2023-10-22 02:56:07 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 255 seconds) |
2023-10-22 02:57:14 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 02:58:21 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2023-10-22 02:58:22 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds) |
2023-10-22 03:00:12 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2023-10-22 03:02:10 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 252 seconds) |
2023-10-22 03:08:10 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 03:09:46 +0200 | hrberg | (~quassel@171.79-160-161.customer.lyse.net) (Remote host closed the connection) |
2023-10-22 03:09:58 +0200 | otto_s | (~user@p5b044cbd.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2023-10-22 03:11:01 +0200 | hrberg | (~quassel@171.79-160-161.customer.lyse.net) |
2023-10-22 03:11:33 +0200 | otto_s | (~user@p4ff27d6b.dip0.t-ipconnect.de) |
2023-10-22 03:12:54 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 258 seconds) |
2023-10-22 03:19:13 +0200 | xff0x | (~xff0x@ai101218.d.east.v6connect.net) (Ping timeout: 252 seconds) |
2023-10-22 03:19:14 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 03:21:21 +0200 | xff0x | (~xff0x@178.255.149.135) |
2023-10-22 03:28:14 +0200 | Typedfern | (~Typedfern@220.red-83-37-25.dynamicip.rima-tde.net) (Ping timeout: 258 seconds) |
2023-10-22 03:29:01 +0200 | Typedfern | (~Typedfern@220.red-83-37-25.dynamicip.rima-tde.net) |
2023-10-22 03:36:44 +0200 | xff0x | (~xff0x@178.255.149.135) (Ping timeout: 245 seconds) |
2023-10-22 03:38:33 +0200 | xff0x | (~xff0x@2405:6580:b080:900:6ad:7a7d:8b93:6038) |
2023-10-22 03:42:48 +0200 | arahael | (~arahael@119-18-2-212.771202.syd.nbn.aussiebb.net) (Ping timeout: 258 seconds) |
2023-10-22 03:45:23 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
2023-10-22 03:47:30 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
2023-10-22 03:52:20 +0200 | xff0x | (~xff0x@2405:6580:b080:900:6ad:7a7d:8b93:6038) (Ping timeout: 272 seconds) |
2023-10-22 03:52:43 +0200 | xff0x | (~xff0x@ai101218.d.east.v6connect.net) |
2023-10-22 04:15:21 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2023-10-22 04:15:21 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2023-10-22 04:15:21 +0200 | finn_elija | FinnElija |
2023-10-22 04:16:52 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-10-22 04:21:54 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 258 seconds) |
2023-10-22 04:23:40 +0200 | johnw | (~johnw@69.62.242.138) (Quit: ZNC - http://znc.in) |
2023-10-22 04:30:39 +0200 | td_ | (~td@i5387091E.versanet.de) (Ping timeout: 240 seconds) |
2023-10-22 04:32:41 +0200 | td_ | (~td@i53870939.versanet.de) |
2023-10-22 04:43:01 +0200 | Friendship | (~Friendshi@user/Friendship) |
2023-10-22 04:54:41 +0200 | arahael | (~arahael@119-18-2-212.771202.syd.nbn.aussiebb.net) |
2023-10-22 04:57:36 +0200 | Vajb | (~Vajb@207.61.167.122) |
2023-10-22 04:59:34 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-10-22 05:03:55 +0200 | sm | (~sm@plaintextaccounting/sm) (Ping timeout: 255 seconds) |
2023-10-22 05:15:02 +0200 | aforemny | (~aforemny@i59F516CF.versanet.de) |
2023-10-22 05:15:56 +0200 | aforemny_ | (~aforemny@i59F516C8.versanet.de) (Ping timeout: 272 seconds) |
2023-10-22 05:25:50 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2023-10-22 05:30:57 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-10-22 05:38:06 +0200 | sm | (~sm@plaintextaccounting/sm) (Ping timeout: 272 seconds) |
2023-10-22 05:52:32 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-10-22 05:59:08 +0200 | sm | (~sm@plaintextaccounting/sm) (Ping timeout: 248 seconds) |
2023-10-22 06:09:27 +0200 | Fischmiep | (~Fischmiep@user/Fischmiep) (Ping timeout: 240 seconds) |
2023-10-22 06:11:28 +0200 | Fischmiep | (~Fischmiep@user/Fischmiep) |
2023-10-22 06:11:39 +0200 | johnw | (~johnw@69.62.242.138) |
2023-10-22 06:21:16 +0200 | Fischmiep | (~Fischmiep@user/Fischmiep) (Ping timeout: 252 seconds) |
2023-10-22 06:26:26 +0200 | Vajb | (~Vajb@207.61.167.122) (Ping timeout: 260 seconds) |
2023-10-22 06:28:40 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-10-22 06:35:05 +0200 | sm | (~sm@plaintextaccounting/sm) (Ping timeout: 240 seconds) |
2023-10-22 06:45:32 +0200 | qqq | (~qqq@92.43.167.61) |
2023-10-22 06:51:38 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-10-22 06:53:49 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-10-22 06:56:17 +0200 | sm | (~sm@plaintextaccounting/sm) (Ping timeout: 255 seconds) |
2023-10-22 06:58:41 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 258 seconds) |
2023-10-22 07:00:23 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-10-22 07:09:02 +0200 | sm | (~sm@plaintextaccounting/sm) (Ping timeout: 258 seconds) |
2023-10-22 07:11:28 +0200 | rosco | (~rosco@yp-150-69.tm.net.my) |
2023-10-22 07:14:22 +0200 | Alleria | (~JohnGalt@user/alleria) (Read error: Connection reset by peer) |
2023-10-22 07:16:04 +0200 | Alleria | (~JohnGalt@user/alleria) |
2023-10-22 07:23:05 +0200 | rgw | (~R@2605:a601:a0df:5600:5007:462b:c57d:9381) (Read error: Connection reset by peer) |
2023-10-22 07:25:14 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-10-22 07:29:43 +0200 | sm | (~sm@plaintextaccounting/sm) (Ping timeout: 255 seconds) |
2023-10-22 07:31:18 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds) |
2023-10-22 07:33:08 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2023-10-22 07:40:31 +0200 | Lycurgus | (~georg@user/Lycurgus) |
2023-10-22 07:41:46 +0200 | Lycurgus | (~georg@user/Lycurgus) (Client Quit) |
2023-10-22 07:54:34 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-10-22 08:03:23 +0200 | sm | (~sm@plaintextaccounting/sm) (Ping timeout: 260 seconds) |
2023-10-22 08:07:38 +0200 | Fischmiep | (~Fischmiep@user/Fischmiep) |
2023-10-22 08:10:31 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 264 seconds) |
2023-10-22 08:19:43 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-10-22 08:23:06 +0200 | vglfr | (~vglfr@88.155.246.162) |
2023-10-22 08:24:16 +0200 | sm | (~sm@plaintextaccounting/sm) (Ping timeout: 260 seconds) |
2023-10-22 08:26:22 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-10-22 08:26:25 +0200 | Fischmiep | (~Fischmiep@user/Fischmiep) (Ping timeout: 255 seconds) |
2023-10-22 08:29:17 +0200 | Fischmiep | (~Fischmiep@user/Fischmiep) |
2023-10-22 08:34:50 +0200 | sm | (~sm@plaintextaccounting/sm) (Ping timeout: 255 seconds) |
2023-10-22 08:36:32 +0200 | vglfr | (~vglfr@88.155.246.162) (Remote host closed the connection) |
2023-10-22 08:37:27 +0200 | vglfr | (~vglfr@88.155.246.162) |
2023-10-22 08:51:28 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-10-22 08:56:20 +0200 | sm | (~sm@plaintextaccounting/sm) (Ping timeout: 272 seconds) |
2023-10-22 09:01:25 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-10-22 09:02:21 +0200 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2023-10-22 09:06:22 +0200 | nek0 | (~nek0@2a01:4f8:222:2b41::12) (Quit: The Lounge - https://thelounge.chat) |
2023-10-22 09:10:05 +0200 | sm | (~sm@plaintextaccounting/sm) (Ping timeout: 240 seconds) |
2023-10-22 09:14:26 +0200 | fendor | (~fendor@2a02:8388:1640:be00:aab:1226:f274:5021) |
2023-10-22 09:20:19 +0200 | gmg | (~user@user/gehmehgeh) |
2023-10-22 09:27:51 +0200 | Fischmiep | (~Fischmiep@user/Fischmiep) (Ping timeout: 260 seconds) |
2023-10-22 09:34:55 +0200 | Pickchea | (~private@user/pickchea) |
2023-10-22 09:35:43 +0200 | todi | (~todi@p4fd1a3e6.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
2023-10-22 09:41:47 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-10-22 09:42:04 +0200 | acidjnk_new | (~acidjnk@p200300d6e72b938125cc9ae0c91bfe8f.dip0.t-ipconnect.de) |
2023-10-22 09:42:27 +0200 | Jackneill | (~Jackneill@20014C4E1E0E6F004BDEA8A1DAB424C0.dsl.pool.telekom.hu) |
2023-10-22 09:44:21 +0200 | vglfr | (~vglfr@88.155.246.162) (Read error: Connection reset by peer) |
2023-10-22 09:44:42 +0200 | vglfr | (vglfr@gateway/vpn/protonvpn/vglfr) |
2023-10-22 09:47:52 +0200 | cpressey | (~cpressey@host-2-102-12-88.as13285.net) |
2023-10-22 09:48:27 +0200 | sm | (~sm@plaintextaccounting/sm) (Ping timeout: 255 seconds) |
2023-10-22 09:53:54 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-10-22 09:54:18 +0200 | Square | (~Square@user/square) |
2023-10-22 09:58:29 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:49ec:9442:e7af:3828) (Remote host closed the connection) |
2023-10-22 09:59:39 +0200 | todi | (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
2023-10-22 10:00:09 +0200 | vglfr | (vglfr@gateway/vpn/protonvpn/vglfr) (Ping timeout: 255 seconds) |
2023-10-22 10:02:48 +0200 | Inst | (~Inst@120.244.192.250) |
2023-10-22 10:03:37 +0200 | dcoutts | (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 255 seconds) |
2023-10-22 10:03:47 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-10-22 10:06:41 +0200 | tzh | (~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz) |
2023-10-22 10:11:10 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-10-22 10:11:30 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
2023-10-22 10:11:34 +0200 | phma | (phma@2001:5b0:210d:e0f8:4b17:f518:800e:b47e) (Read error: Connection reset by peer) |
2023-10-22 10:11:51 +0200 | sm | (~sm@plaintextaccounting/sm) (Ping timeout: 240 seconds) |
2023-10-22 10:12:22 +0200 | phma | (~phma@host-67-44-208-184.hnremote.net) |
2023-10-22 10:13:49 +0200 | vglfr | (~vglfr@88.155.246.162) |
2023-10-22 10:19:55 +0200 | notzmv | (~zmv@user/notzmv) |
2023-10-22 10:30:33 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:49ec:9442:e7af:3828) |
2023-10-22 10:42:47 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-10-22 10:47:16 +0200 | sm | (~sm@plaintextaccounting/sm) (Ping timeout: 255 seconds) |
2023-10-22 10:48:17 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
2023-10-22 10:49:19 +0200 | sm | (~sm@plaintextaccounting/sm) |
2023-10-22 10:51:52 +0200 | absence | (torgeihe@hildring.pvv.ntnu.no) (Ping timeout: 252 seconds) |
2023-10-22 10:55:07 +0200 | Fischmiep | (~Fischmiep@user/Fischmiep) |
2023-10-22 10:55:19 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-10-22 10:55:36 +0200 | Fischmiep | (~Fischmiep@user/Fischmiep) (Remote host closed the connection) |
2023-10-22 10:57:25 +0200 | absence | (torgeihe@hildring.pvv.ntnu.no) |
2023-10-22 10:58:08 +0200 | <Inst> | EvanR: defaulting to >=> seems saner, no? Do notation is written effectively in (&), it implies a forward order of effects and computation. |
2023-10-22 11:00:00 +0200 | <probie> | :t (>=>) |
2023-10-22 11:00:01 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
2023-10-22 11:00:02 +0200 | <lambdabot> | Monad m => (a -> m b) -> (b -> m c) -> a -> m c |
2023-10-22 11:05:52 +0200 | harveypwca | (~harveypwc@2601:246:c280:6a90:837d:db39:3eea:f7db) |
2023-10-22 11:06:48 +0200 | <probie> | Inst: I'm not sure mirroring do notation is a strong argument. If you want do notation, then use do notation, if you don't want it, why try and mirror it? |
2023-10-22 11:07:44 +0200 | sm | (~sm@plaintextaccounting/sm) (Ping timeout: 255 seconds) |
2023-10-22 11:08:06 +0200 | dibblego | (~dibblego@haskell/developer/dibblego) (Ping timeout: 255 seconds) |
2023-10-22 11:10:08 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) |
2023-10-22 11:10:17 +0200 | <Inst> | Because I like hybrid do notation, i.e, direct use of bind etc in do notation, use of where to define subfunctions, etc |
2023-10-22 11:10:39 +0200 | <Inst> | the idea is that the do level is specification of your algorithm, whereas the direct binds / wheres are implementation. |
2023-10-22 11:11:44 +0200 | dibblego | (~dibblego@122-199-1-93.ip4.superloop.au) |
2023-10-22 11:11:44 +0200 | dibblego | (~dibblego@122-199-1-93.ip4.superloop.au) (Changing host) |
2023-10-22 11:11:44 +0200 | dibblego | (~dibblego@haskell/developer/dibblego) |
2023-10-22 11:18:13 +0200 | oo_miguel | (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) |
2023-10-22 11:25:13 +0200 | ubert1 | (~Thunderbi@77.119.202.255.wireless.dyn.drei.com) |
2023-10-22 11:26:17 +0200 | ubert | (~Thunderbi@91.141.58.4.wireless.dyn.drei.com) (Ping timeout: 255 seconds) |
2023-10-22 11:26:17 +0200 | ubert1 | ubert |
2023-10-22 11:32:39 +0200 | <Inst> | just curious, playing with my toy conway, but I have it set so it forkIOs (I know it's smelly, I just forget why) a display loop |
2023-10-22 11:33:16 +0200 | <Inst> | the rest of the program getLines, and then dies |
2023-10-22 11:33:44 +0200 | <Inst> | Is this the only way to do it? |
2023-10-22 11:34:08 +0200 | <cpressey> | Inst: Is hybrid do notation "a thing" or is it just something you personally like? I can't recall many examples of seeing it (then again I don't send a lot of time reading Haskell code that's out there) |
2023-10-22 11:34:21 +0200 | <Inst> | cpressey, for instance, in Cabal |
2023-10-22 11:34:25 +0200 | <Rembane> | Inst: Do you have a minimum example of the crash? |
2023-10-22 11:34:55 +0200 | <Inst> | cabal install, rather |
2023-10-22 11:34:57 +0200 | <Inst> | what crash? |
2023-10-22 11:35:11 +0200 | <Inst> | die is an IO action in System.Exit |
2023-10-22 11:36:44 +0200 | <Inst> | Check out main |
2023-10-22 11:36:45 +0200 | <Inst> | https://github.com/haskell/cabal/blob/master/cabal-install/src/Distribution/Client/Main.hs |
2023-10-22 11:36:55 +0200 | <Inst> | cabal codebase is probalby not the best example, but it exists |
2023-10-22 11:37:22 +0200 | <Inst> | check out main, and how mainWorker is called |
2023-10-22 11:37:50 +0200 | <Inst> | I'd rather write |
2023-10-22 11:37:51 +0200 | <Inst> | mainWorker =<< (++ args1) <$> expandResponse args0 |
2023-10-22 11:38:19 +0200 | <Inst> | as expandResponse args0 <&> (<> args1) >>= mainWorker, though |
2023-10-22 11:38:50 +0200 | <Inst> | or even (<> args1) <$> expandResponse args0 >>= mainWorker |
2023-10-22 11:39:48 +0200 | <Inst> | expandResponse args0 >>= mainWorker . (<> args1) |
2023-10-22 11:40:47 +0200 | <Inst> | mainWorker . (<> args1) =<< expandResponse args0 is probably the best for what's being expressed, though |
2023-10-22 11:43:36 +0200 | <rosco> | Hello, I can't seem to install brick using cabal install brick, it "cannot build the executables because they are marked as buildable = False" |
2023-10-22 11:44:02 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) |
2023-10-22 11:44:24 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2023-10-22 11:44:49 +0200 | <probie> | In your favourite C-syntax language with effects all over the place, you'd get `mainWorker(append(expandResponse(args0), args1))`, so it's at least not particularly unusual to have `mainWorker` first |
2023-10-22 11:45:04 +0200 | <Rembane> | rosco: IIRC brick doesn't have any executables, what are you going to use it for? |
2023-10-22 11:48:07 +0200 | <rosco> | Rembane: my bad, the executables are demos that are not built by default. I managed to get it installed using the --lib flag. |
2023-10-22 11:48:40 +0200 | <Rembane> | rosco: Good stuff! |
2023-10-22 12:00:33 +0200 | isekaijin | (~user@user/isekaijin) |
2023-10-22 12:00:47 +0200 | waleee | (~waleee@2001:9b0:21c:e600:f2f3:f744:435d:137c) |
2023-10-22 12:00:58 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2023-10-22 12:02:44 +0200 | Inst | (~Inst@120.244.192.250) (Ping timeout: 255 seconds) |
2023-10-22 12:07:33 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer) |
2023-10-22 12:08:07 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) |
2023-10-22 12:08:51 +0200 | Fischmiep | (~Fischmiep@user/Fischmiep) |
2023-10-22 12:14:20 +0200 | vglfr | (~vglfr@88.155.246.162) (Read error: Connection reset by peer) |
2023-10-22 12:15:22 +0200 | Inst | (~Inst@120.244.192.250) |
2023-10-22 12:17:18 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
2023-10-22 12:18:32 +0200 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2023-10-22 12:19:21 +0200 | gmg | (~user@user/gehmehgeh) |
2023-10-22 12:26:36 +0200 | CiaoSen | (~Jura@2a05:5800:2be:1b00:664b:f0ff:fe37:9ef) |
2023-10-22 12:32:18 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:49ec:9442:e7af:3828) (Ping timeout: 272 seconds) |
2023-10-22 12:33:38 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer) |
2023-10-22 12:34:20 +0200 | nickiminjaj | (~nickiminj@user/laxhh) (Read error: Connection reset by peer) |
2023-10-22 12:34:33 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) |
2023-10-22 12:34:43 +0200 | nickiminjaj | (~nickiminj@188.146.126.78) |
2023-10-22 12:34:43 +0200 | nickiminjaj | (~nickiminj@188.146.126.78) (Changing host) |
2023-10-22 12:34:43 +0200 | nickiminjaj | (~nickiminj@user/laxhh) |
2023-10-22 12:41:22 +0200 | <tomsmeding> | rosco: advice: _never_ use 'cabal install --lib' unless you know precisely what that does and that is really what you want |
2023-10-22 12:41:25 +0200 | <tomsmeding> | it does something unexpected |
2023-10-22 12:42:02 +0200 | <tomsmeding> | do you want to use the brick library in one of your own haskell programs? Or do you want to try out the demos? |
2023-10-22 12:43:18 +0200 | <tomsmeding> | rosco: if you want to install the demo executables, try 'cabal install brick -f demos' |
2023-10-22 12:43:56 +0200 | <tomsmeding> | that turns on the 'demos' flag, which, as you can see at https://hackage.haskell.org/package/brick under the Automatic Flags folder (you need to click to open it), enables the demo executable components |
2023-10-22 12:46:10 +0200 | <tomsmeding> | with 'cabal install --lib' you didn't get the demos, you just built the library and registered it to be available when you run 'ghc' or 'ghci' outside of a cabal project (if I'm not mistaken). This sounds like a useful thing, but it's not: it's useful for now, but you cannot easily _unregister_ something here. So any time you want to install a new version, or something that's incompatible with |
2023-10-22 12:46:10 +0200 | <tomsmeding> | this library, everything will break |
2023-10-22 12:46:52 +0200 | <tomsmeding> | the way to work with haskell libraries, these days, is to create a project, i.e. a <project>.cabal file, and work inside that project |
2023-10-22 12:47:05 +0200 | <tomsmeding> | then you can declaratively add dependencies and cabal will arrange things so that the right things are available |
2023-10-22 12:47:23 +0200 | <Inst> | if you're lazy, you can use a cabal header in a Haskell file, but this doesn't propagate to multiple files iirc |
2023-10-22 12:47:30 +0200 | <tomsmeding> | (you can also use stack, in which case you'll also need a stack.yaml file in the project folder, and can optionally use package.yaml instead of the <project>.cabal) |
2023-10-22 12:47:48 +0200 | <Inst> | And the language server isn't supporting this workflow yet |
2023-10-22 12:47:58 +0200 | <Inst> | https://cabal.readthedocs.io/en/stable/getting-started.html#run-a-single-file-haskell-script |
2023-10-22 12:48:02 +0200 | <tomsmeding> | Inst: right, that's single-file only, but "cabal scripts" as they're called also exist |
2023-10-22 12:48:40 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection) |
2023-10-22 12:48:59 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
2023-10-22 12:49:34 +0200 | <Inst> | I wish HLS team would hurry up and add cabal script support |
2023-10-22 12:49:43 +0200 | <Inst> | It'd be a great standard workflow for newbies |
2023-10-22 12:59:00 +0200 | nek0 | (~nek0@2a01:4f8:222:2b41::12) |
2023-10-22 13:01:08 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2023-10-22 13:01:25 +0200 | mrmr155 | (~mrmr@user/mrmr) (Read error: Connection reset by peer) |
2023-10-22 13:05:29 +0200 | vglfr | (~vglfr@88.154.70.142) |
2023-10-22 13:08:45 +0200 | mrmr155 | (~mrmr@user/mrmr) |
2023-10-22 13:11:12 +0200 | vglfr | (~vglfr@88.154.70.142) (Read error: Connection reset by peer) |
2023-10-22 13:11:32 +0200 | vglfr | (~vglfr@149.102.244.114) |
2023-10-22 13:15:02 +0200 | Pickchea | (~private@user/pickchea) |
2023-10-22 13:15:30 +0200 | waleee | (~waleee@2001:9b0:21c:e600:f2f3:f744:435d:137c) (Ping timeout: 258 seconds) |
2023-10-22 13:28:05 +0200 | vglfr | (~vglfr@149.102.244.114) (Ping timeout: 240 seconds) |
2023-10-22 13:28:17 +0200 | vglfr | (~vglfr@88.154.70.142) |
2023-10-22 13:29:43 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer) |
2023-10-22 13:30:19 +0200 | harveypwca | (~harveypwc@2601:246:c280:6a90:837d:db39:3eea:f7db) (Quit: Leaving) |
2023-10-22 13:30:33 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) |
2023-10-22 13:33:56 +0200 | <rosco> | tomsmeding: Thank you, I figured it out. Putting brick as a dependency in the package.yaml of my stack project worked out. It's clearly explained in the docs, I should have read them more throughly |
2023-10-22 13:49:39 +0200 | <Inst> | I should feel bad because I'm scraping all the irc logs off via a Haskell script @tomsmeding |
2023-10-22 14:04:04 +0200 | <Inst> | grrr, bugged out with an exception |
2023-10-22 14:05:43 +0200 | __monty__ | (~toonn@user/toonn) |
2023-10-22 14:07:22 +0200 | <Inst> | i'll stop until tomsmeding gives me permission |
2023-10-22 14:08:01 +0200 | Vajb | (~Vajb@207.61.167.122) |
2023-10-22 14:08:15 +0200 | <arahael> | Inst: I feel the convention is that as long as the logs arent' public, it's generally fine. Most people have logs automatically captured. Personally I prefer not having logs public. |
2023-10-22 14:08:24 +0200 | <arahael> | BUt I'm just a lurker here. |
2023-10-22 14:08:37 +0200 | <Inst> | I mean he's running public logs in the topic |
2023-10-22 14:10:16 +0200 | <arahael> | Ah, yeah, that's the exception, that's generally fine too as long as it's explicit. |
2023-10-22 14:10:35 +0200 | <arahael> | I see what you mean now, though. |
2023-10-22 14:10:38 +0200 | <Rembane> | Inst: Sure, but tomsmeding's logs are stated in the topic. This makes it very clear that they exist and where to find them. |
2023-10-22 14:10:56 +0200 | <arahael> | Rembane: Yeah, I realise now that what he's not sure about is whether he can use tomsmeding's logs in this way. |
2023-10-22 14:12:35 +0200 | <Rembane> | arahael: I think it's one of those: it depends |
2023-10-22 14:14:03 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-10-22 14:14:21 +0200 | <Inst> | it's probably 100 MB a pop |
2023-10-22 14:17:44 +0200 | <Inst> | ummmm, tomsmeding, do you have a paypal or scribe for me to transfer money? |
2023-10-22 14:18:10 +0200 | <Inst> | it looks like the full download is 500 mb |
2023-10-22 14:18:30 +0200 | cheater_ | (~Username@user/cheater) |
2023-10-22 14:19:54 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 258 seconds) |
2023-10-22 14:19:56 +0200 | cheater_ | cheater |
2023-10-22 14:29:38 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:49ec:9442:e7af:3828) |
2023-10-22 14:32:26 +0200 | [exa] | (~exa@user/exa/x-3587197) |
2023-10-22 14:33:03 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) |
2023-10-22 14:34:11 +0200 | Lycurgus | (~georg@user/Lycurgus) |
2023-10-22 14:38:21 +0200 | vglfr | (~vglfr@88.154.70.142) (Read error: Connection reset by peer) |
2023-10-22 14:38:41 +0200 | vglfr | (vglfr@gateway/vpn/protonvpn/vglfr) |
2023-10-22 14:39:51 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:49ec:9442:e7af:3828) (Ping timeout: 240 seconds) |
2023-10-22 14:43:45 +0200 | <tomsmeding> | Inst: what do you want, do you want the ircbrowse logs :p |
2023-10-22 14:43:56 +0200 | <Inst> | I want to pay you for the bandwidth I wasted |
2023-10-22 14:44:09 +0200 | <Inst> | and I found out I can just do this via haskellbridge instead and not bang your server with a DDOS |
2023-10-22 14:44:13 +0200 | <Inst> | well, DOS |
2023-10-22 14:47:40 +0200 | Vajb | (~Vajb@207.61.167.122) (Ping timeout: 248 seconds) |
2023-10-22 14:48:07 +0200 | <tomsmeding> | Inst: are we talking about that 200 KBps stuff from like 10 minutes ago? |
2023-10-22 14:48:18 +0200 | <tomsmeding> | er, wait |
2023-10-22 14:48:26 +0200 | <tomsmeding> | about 70 minutes ago |
2023-10-22 14:48:28 +0200 | <tomsmeding> | reading graphs is hard |
2023-10-22 14:48:51 +0200 | <tomsmeding> | I'm not sure that even registers in the bandwidth budget I have :D |
2023-10-22 14:49:22 +0200 | <tomsmeding> | it's running on one of these https://www.hetzner.com/cloud (x86, a CX21) with 20 TB bandwidth per month |
2023-10-22 14:49:56 +0200 | <Inst> | oh nice, so I only took up about 0.005% of your bandwidth budget |
2023-10-22 14:50:08 +0200 | <tomsmeding> | Inst: I'm willing to just zip up the full znc logs for you, that's 94 MB :p |
2023-10-22 14:50:39 +0200 | <tomsmeding> | that ought to make things easier |
2023-10-22 14:51:34 +0200 | <Rembane> | Inst: Out of curiosity, what are you going to do with the logs? |
2023-10-22 14:54:51 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-10-22 14:55:48 +0200 | CiaoSen | (~Jura@2a05:5800:2be:1b00:664b:f0ff:fe37:9ef) (Ping timeout: 240 seconds) |
2023-10-22 14:56:12 +0200 | <Inst> | Rembane: It doesn't matter, it's more convenient to search via HaskellBridge |
2023-10-22 14:57:01 +0200 | <tomsmeding> | sure :p |
2023-10-22 14:58:41 +0200 | random-jellyfish | (~tiber@user/random-jellyfish) |
2023-10-22 14:59:35 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
2023-10-22 15:02:56 +0200 | <Inst> | by the way, with fix, here's another weirdness of the type system |
2023-10-22 15:03:15 +0200 | <Inst> | fix f = let u = f u in u |
2023-10-22 15:03:22 +0200 | <Inst> | whoops, need to be more polite with my variables here |
2023-10-22 15:04:17 +0200 | <Inst> | ah, if fix :: (a -> a) -> a, then the type of u is a |
2023-10-22 15:05:00 +0200 | <Inst> | myFix gets inferred as (t -> t) -> t |
2023-10-22 15:05:47 +0200 | <Inst> | there's an implicit promise that u is a value of form t, via the type system |
2023-10-22 15:05:58 +0200 | <Rembane> | Inst: Oh, got it! |
2023-10-22 15:06:54 +0200 | <Inst> | i should still write some code to append the bytestrings together, though |
2023-10-22 15:07:12 +0200 | cheater_ | (~Username@user/cheater) |
2023-10-22 15:07:27 +0200 | Lycurgus | (~georg@user/Lycurgus) (Quit: leaving) |
2023-10-22 15:08:36 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 240 seconds) |
2023-10-22 15:08:38 +0200 | cheater_ | cheater |
2023-10-22 15:09:08 +0200 | <Inst> | by the way, just curious, main :: IO a, not main :: IO () |
2023-10-22 15:09:17 +0200 | <Inst> | is there any way to make use of the a, or is it just needless flexibility? |
2023-10-22 15:09:39 +0200 | dcoutts | (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) |
2023-10-22 15:10:22 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
2023-10-22 15:10:58 +0200 | vglfr | (vglfr@gateway/vpn/protonvpn/vglfr) (Ping timeout: 260 seconds) |
2023-10-22 15:11:19 +0200 | <tomsmeding> | Inst: see the second paragraph here https://www.haskell.org/onlinereport/haskell2010/haskellch5.html#x11-980005 |
2023-10-22 15:11:36 +0200 | vglfr | (~vglfr@88.154.70.142) |
2023-10-22 15:15:31 +0200 | dcoutts | (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 260 seconds) |
2023-10-22 15:19:44 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-10-22 15:21:17 +0200 | Vajb | (~Vajb@207.61.167.122) |
2023-10-22 15:24:45 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-10-22 15:25:19 +0200 | <Inst> | It's just needless convenience, then, which is a bit disappointing because it'd be nice if the runtime automatically "showed" the data at least, then dumped it to stderr or something |
2023-10-22 15:25:28 +0200 | <Inst> | but probably someone has thought about it already and it's just not convenient |
2023-10-22 15:26:05 +0200 | <tomsmeding> | then it would be inconsistent with (), because then it would need to show "()" too |
2023-10-22 15:26:27 +0200 | <tomsmeding> | if it's inconsistent that way, you're breaking parametricity which can be surprising |
2023-10-22 15:27:24 +0200 | Alleria | (~JohnGalt@user/alleria) (Ping timeout: 240 seconds) |
2023-10-22 15:27:44 +0200 | <tomsmeding> | the fact that that does different stuff depending on whether there is a Show instance available can also be surprising |
2023-10-22 15:33:16 +0200 | Alleria | (~JohnGalt@user/alleria) |
2023-10-22 15:34:40 +0200 | <Inst> | the only real point, I suspect |
2023-10-22 15:34:54 +0200 | <Inst> | might be if someone replaced () with some other unit-like type |
2023-10-22 15:37:35 +0200 | <Inst> | the typeclass monad is privileged (because >> and >>=), the type IO a is also privileged, but no point in giving unit privileges as well |
2023-10-22 15:38:34 +0200 | Alleria | (~JohnGalt@user/alleria) (Ping timeout: 255 seconds) |
2023-10-22 15:38:43 +0200 | <cpressey> | I don't think I could agree with the assertion that the monad typeclass is "privileged (because >> and >>=)", can you elaborate Inst? |
2023-10-22 15:38:55 +0200 | <tomsmeding> | do-notation uses it |
2023-10-22 15:39:03 +0200 | <Inst> | iirc the do desugaring, which is baked in, uses >> and >>= |
2023-10-22 15:39:28 +0200 | <cpressey> | That doesn't seem like a huge "privilege" to me, but OK |
2023-10-22 15:39:31 +0200 | <tomsmeding> | also MonadFail, and with ApplicativeDo it even uses Applicative |
2023-10-22 15:39:54 +0200 | <tomsmeding> | Inst: the things you're mentioning (Monad, IO) sound to me like the wired-in types: the types that GHC knows something about explicitly |
2023-10-22 15:40:24 +0200 | arahael | (~arahael@119-18-2-212.771202.syd.nbn.aussiebb.net) (Ping timeout: 258 seconds) |
2023-10-22 15:40:35 +0200 | <tomsmeding> | in GHC there's something called "wired-in", and something else called "known-key" -- I'm not sure which means what exactly, but it's to do with this |
2023-10-22 15:41:02 +0200 | <tomsmeding> | there's a variety of such things in base, in particular almost everything in GHC.Exts |
2023-10-22 15:41:24 +0200 | <tomsmeding> | (see also the "reinstallable base" project) |
2023-10-22 15:57:55 +0200 | alphacentauri | (alphacenta@gateway/vpn/protonvpn/alphacentauri) (Quit: WeeChat 4.1.0) |
2023-10-22 16:09:09 +0200 | random-jellyfish | (~tiber@user/random-jellyfish) (Ping timeout: 258 seconds) |
2023-10-22 16:17:58 +0200 | <albet70> | what's the difference between tuple list and Map? |
2023-10-22 16:18:01 +0200 | billchenchina | (~billchenc@103.152.35.21) |
2023-10-22 16:18:20 +0200 | <albet70> | just missing a 'fromList'? |
2023-10-22 16:20:16 +0200 | <ncf> | they're different types with different interfaces and different representations |
2023-10-22 16:24:49 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2023-10-22 16:30:28 +0200 | <EvanR> | Inst, "forward" being left to right is subjective |
2023-10-22 16:30:39 +0200 | <EvanR> | culturally specific |
2023-10-22 16:31:04 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2023-10-22 16:31:15 +0200 | <Inst> | Was briefly thinking about weird indigenous cultures that lacked a notion of subjective direction. |
2023-10-22 16:32:25 +0200 | <Inst> | but what's objective is that there's a notion of forward within the lexer, no? |
2023-10-22 16:34:42 +0200 | Guest70 | (~Guest70@2a02:26f7:ec44:6600:0:d918:28ea:6bec) |
2023-10-22 16:36:48 +0200 | Guest70 | (~Guest70@2a02:26f7:ec44:6600:0:d918:28ea:6bec) (Client Quit) |
2023-10-22 16:38:47 +0200 | <cpressey> | I'm not deeply familiar with it, but from a glance it doesn't look like the Haskell spec specifies the direction of lexing. Nor can I think of a good reason that it should specify that. |
2023-10-22 16:39:20 +0200 | <hololeap> | if I set a 'tag' field in 'source-repository-package' to "head", is there a way to get it to manually sync with the upstream git repo? |
2023-10-22 16:39:29 +0200 | <hololeap> | (in cabal.project) |
2023-10-22 16:40:02 +0200 | <hololeap> | if I use a sha sum, it will update if it gets changed, but with "head" it doesn't seem to |
2023-10-22 16:45:35 +0200 | cpressey | (~cpressey@host-2-102-12-88.as13285.net) (Ping timeout: 248 seconds) |
2023-10-22 16:46:31 +0200 | drdo | (~drdo@bl14-14-49.dsl.telepac.pt) (Ping timeout: 260 seconds) |
2023-10-22 16:48:28 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:49ec:9442:e7af:3828) |
2023-10-22 16:48:34 +0200 | tzh | (~tzh@c-71-193-181-0.hsd1.or.comcast.net) |
2023-10-22 16:48:44 +0200 | <Inst> | it's more that if you use default >>=, the order is from previous to next, in terms of effects executed, and >=> (reverse fish) follows this order |
2023-10-22 16:49:28 +0200 | <EvanR> | ordering is one thing and "left vs right" is entirely something else |
2023-10-22 16:50:38 +0200 | <EvanR> | in =<< ordering is also from previous to next, whatever you mean because it does the same thing just reverses the arguments |
2023-10-22 16:51:20 +0200 | <EvanR> | you're still implicitly calling left previous and right next |
2023-10-22 16:52:02 +0200 | <EvanR> | compare the "order" of "effects" in f(g(h(x))) |
2023-10-22 16:53:48 +0200 | <albet70> | what's the function name of f [True, False, False] == True? |
2023-10-22 16:54:30 +0200 | <mauke> | head |
2023-10-22 16:54:34 +0200 | <Inst> | any? |
2023-10-22 16:54:36 +0200 | <albet70> | any (== True) |
2023-10-22 16:54:40 +0200 | <mauke> | or |
2023-10-22 16:55:04 +0200 | <mauke> | maximum |
2023-10-22 16:55:05 +0200 | <albet70> | or it is |
2023-10-22 16:55:14 +0200 | <mauke> | (== True) is id |
2023-10-22 16:55:22 +0200 | <EvanR> | @src or |
2023-10-22 16:55:22 +0200 | <lambdabot> | or = foldr (||) False |
2023-10-22 16:55:28 +0200 | <dolio> | any id is or |
2023-10-22 16:55:46 +0200 | <mauke> | > maximum [True, False, False] |
2023-10-22 16:55:47 +0200 | <lambdabot> | True |
2023-10-22 16:55:56 +0200 | <dolio> | const True |
2023-10-22 16:56:01 +0200 | <mauke> | nice |
2023-10-22 16:56:32 +0200 | <mauke> | > pure maxBound [True, False, False] == True |
2023-10-22 16:56:34 +0200 | <lambdabot> | True |
2023-10-22 16:56:39 +0200 | <Inst> | EvanR: (.) comes from mathematical f o g o h... >>='s left to right ordering is essentially imperative |
2023-10-22 16:57:26 +0200 | <Inst> | I suppose Wadler et al must have been considering reverse state monad as the basis for IO at some stage |
2023-10-22 16:57:36 +0200 | <EvanR> | many monads have nothing to do with imperative programming |
2023-10-22 16:59:40 +0200 | zincy | (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684) |
2023-10-22 16:59:48 +0200 | <Inst> | Which example are you thinking of? |
2023-10-22 17:00:45 +0200 | <Inst> | let's say, for instance, Maybe, for you |
2023-10-22 17:00:55 +0200 | <Inst> | it'd be more useful to think of a chain of functions keyed to maybe |
2023-10-22 17:01:14 +0200 | <Inst> | via <=< and =<< instead of >=> or >>=? |
2023-10-22 17:01:41 +0200 | <dolio> | Expression trees are monads where (>>=) is substitution. |
2023-10-22 17:02:38 +0200 | <ncf> | Identity is a monad where (>>=) is function application. can't get more functional than that |
2023-10-22 17:02:38 +0200 | <Inst> | back to the free monad tutorial joke? |
2023-10-22 17:03:00 +0200 | <ncf> | (i guess you can...) |
2023-10-22 17:03:28 +0200 | fendor | (~fendor@2a02:8388:1640:be00:aab:1226:f274:5021) (Remote host closed the connection) |
2023-10-22 17:03:50 +0200 | <dolio> | What? |
2023-10-22 17:04:15 +0200 | <albet70> | what's the doNothing name in if-the-else? like "pass" in python? |
2023-10-22 17:04:24 +0200 | <albet70> | return ()? |
2023-10-22 17:04:42 +0200 | <EvanR> | maybe you want when? |
2023-10-22 17:04:45 +0200 | <EvanR> | :t when |
2023-10-22 17:04:46 +0200 | <lambdabot> | Applicative f => Bool -> f () -> f () |
2023-10-22 17:04:48 +0200 | <EvanR> | :t unless |
2023-10-22 17:04:49 +0200 | <lambdabot> | Applicative f => Bool -> f () -> f () |
2023-10-22 17:04:50 +0200 | <Inst> | it depends on what context the if the else exists in? |
2023-10-22 17:06:09 +0200 | <EvanR> | they include the pure () for you |
2023-10-22 17:17:50 +0200 | <Inst> | there's something deceptive about it, though, because it's not "return" as with if (cond) {return u} |
2023-10-22 17:18:51 +0200 | <Inst> | whereas if then else can do so easily |
2023-10-22 17:19:29 +0200 | <Inst> | i guess, you can `when cond $ do` if block arguments are off |
2023-10-22 17:19:39 +0200 | <Inst> | or `unless cond $ do` |
2023-10-22 17:20:25 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-10-22 17:28:13 +0200 | vglfr | (~vglfr@88.154.70.142) (Remote host closed the connection) |
2023-10-22 17:30:20 +0200 | Vajb | (~Vajb@207.61.167.122) (Ping timeout: 255 seconds) |
2023-10-22 17:33:35 +0200 | vglfr | (~vglfr@88.154.70.142) |
2023-10-22 17:45:35 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-10-22 17:46:48 +0200 | alphacentauri | (alphacenta@gateway/vpn/protonvpn/alphacentauri) |
2023-10-22 17:50:26 +0200 | michalz | (~michalz@185.246.207.221) |
2023-10-22 17:53:46 +0200 | vglfr | (~vglfr@88.154.70.142) (Read error: Connection reset by peer) |
2023-10-22 17:54:06 +0200 | vglfr | (~vglfr@149.102.244.109) |
2023-10-22 17:56:10 +0200 | blomberg | (~default_u@117.248.77.218) |
2023-10-22 17:56:40 +0200 | <blomberg> | can i use do outside main/functions in the file , and guards inside main |
2023-10-22 17:56:53 +0200 | <monochrom> | Yes. |
2023-10-22 17:57:18 +0200 | <blomberg> | i have never seen guards inside main |
2023-10-22 17:57:44 +0200 | <blomberg> | they use if else in the learnyouahaskell book |
2023-10-22 17:57:46 +0200 | <monochrom> | Sure. Many more people have never seen this either: |
2023-10-22 17:57:50 +0200 | <EvanR> | Inst, return is not involved in when / unless, no one expects it to return, what are you talking about |
2023-10-22 17:57:50 +0200 | <monochrom> | > let in 5+3 |
2023-10-22 17:57:52 +0200 | <lambdabot> | 8 |
2023-10-22 17:58:08 +0200 | <monochrom> | i.e., you can have 0 bindings in let-in. |
2023-10-22 17:58:32 +0200 | <Inst> | i mean, in imperative languages i'll do early return with boolean guards |
2023-10-22 17:58:54 +0200 | <EvanR> | pass doesn't do early return, no one's talking about early return |
2023-10-22 17:59:18 +0200 | <Inst> | it was a derail |
2023-10-22 17:59:46 +0200 | <mauke> | EvanR: Inst was talking about early return |
2023-10-22 17:59:52 +0200 | <EvanR> | "there's something deceptive about" when or unless regarding early return? except it doesn't do that |
2023-10-22 18:00:14 +0200 | <mauke> | because albet70 suggested 'return ()' as a solution, which is misleading if you're coming from other languages |
2023-10-22 18:00:20 +0200 | <monochrom> | There is something deceptive ("deceptive") about every foreign language. |
2023-10-22 18:01:12 +0200 | <blomberg> | monochrom: what about let x=4; without the in |
2023-10-22 18:01:22 +0200 | <blomberg> | > let x=4; |
2023-10-22 18:01:24 +0200 | <lambdabot> | <no location info>: error: not an expression: ‘let x=4;’ |
2023-10-22 18:01:28 +0200 | <monochrom> | That one is a syntax error. |
2023-10-22 18:01:37 +0200 | <mauke> | only allowed in do notation |
2023-10-22 18:01:39 +0200 | <Inst> | ban return, use pure :) |
2023-10-22 18:01:49 +0200 | <blomberg> | i have seen let without in, inside main let x = 5 ; the book said it works |
2023-10-22 18:01:58 +0200 | <geekosaur> | do syntax allows it, and expands it to let-in |
2023-10-22 18:02:06 +0200 | <Inst> | iirc you can also use top-level let, no? |
2023-10-22 18:02:13 +0200 | <blomberg> | let in ...what |
2023-10-22 18:02:13 +0200 | <geekosaur> | no |
2023-10-22 18:02:13 +0200 | <EvanR> | no |
2023-10-22 18:02:30 +0200 | <geekosaur> | blomberg, the rest of the do expression |
2023-10-22 18:02:54 +0200 | billchenchina | (~billchenc@103.152.35.21) (Ping timeout: 272 seconds) |
2023-10-22 18:02:55 +0200 | <monochrom> | "do x<-getLine ; let {y=x++x}; putStrLn y" |
2023-10-22 18:03:17 +0200 | <mauke> | do { let x = 42; ... } becomes let x = 42 in do { ... } |
2023-10-22 18:03:34 +0200 | <Inst> | weird, I guess I remembered wrong |
2023-10-22 18:03:47 +0200 | YoungFrog | (~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in) |
2023-10-22 18:03:53 +0200 | <monochrom> | This is why I KISS and just answered "no". The context did not have "do". :) |
2023-10-22 18:03:54 +0200 | <EvanR> | what would a top level let..in even do |
2023-10-22 18:04:07 +0200 | <mauke> | you can do it in ghci because it pretends to be an interactive do block, sort of |
2023-10-22 18:04:20 +0200 | <geekosaur> | think "open module" in SML, maybe |
2023-10-22 18:04:27 +0200 | <geekosaur> | parameterized |
2023-10-22 18:04:39 +0200 | <Inst> | iirc that was a depreciated feature in ghci |
2023-10-22 18:04:44 +0200 | <Inst> | well, not depreciated |
2023-10-22 18:04:55 +0200 | <Inst> | you used to only be able to do let foo = x in ghci, as in, very old ghcis |
2023-10-22 18:05:03 +0200 | <EvanR> | deprecated? |
2023-10-22 18:05:11 +0200 | <Inst> | deprecated :( |
2023-10-22 18:05:14 +0200 | <geekosaur> | or for that matter I could imagine it to provide scoped definitions for top level functions, not that that's a feature that has been requested often |
2023-10-22 18:05:23 +0200 | vglfr | (~vglfr@149.102.244.109) (Ping timeout: 260 seconds) |
2023-10-22 18:05:44 +0200 | vglfr | (~vglfr@88.154.70.142) |
2023-10-22 18:06:19 +0200 | Tlsx | (~rscastilh@187.40.125.21) |
2023-10-22 18:08:20 +0200 | econo_ | (uid147250@id-147250.tinside.irccloud.com) |
2023-10-22 18:08:21 +0200 | <blomberg> | did you know that while loop is the same as fold (f list) where list=(unfold head tail) ; while head;body; i=tail ; like i+1 |
2023-10-22 18:08:43 +0200 | <blomberg> | did you know that fold is the same as for loop |
2023-10-22 18:09:03 +0200 | <geekosaur> | actually for loop is map, not fold |
2023-10-22 18:09:16 +0200 | <geekosaur> | in fact it's flip map |
2023-10-22 18:09:39 +0200 | <geekosaur> | although I think in Haskell we expect it to be effectful to be useful, so for is flip traverse |
2023-10-22 18:10:14 +0200 | <Inst> | what is a fold, in your context? |
2023-10-22 18:10:46 +0200 | <EvanR> | :t unfold |
2023-10-22 18:10:47 +0200 | <lambdabot> | error: |
2023-10-22 18:10:47 +0200 | <lambdabot> | • Variable not in scope: unfold |
2023-10-22 18:10:47 +0200 | <lambdabot> | • Perhaps you meant one of these: |
2023-10-22 18:10:50 +0200 | <monochrom> | For (pun!) that matter, what are "while" and "for". :) |
2023-10-22 18:10:56 +0200 | <EvanR> | :t unfoldr |
2023-10-22 18:10:56 +0200 | <lambdabot> | (b -> Maybe (a, b)) -> b -> [a] |
2023-10-22 18:10:58 +0200 | <Inst> | there's a function in std lib called fold, with a type of (Foldable t, Monoid m) => t m -> m |
2023-10-22 18:11:13 +0200 | <monochrom> | Because next someone would argue that traverse is the for-loop. |
2023-10-22 18:11:27 +0200 | <monochrom> | Err you already did haha. |
2023-10-22 18:11:35 +0200 | <Inst> | okay, i'll go claim that traverse is a foreach loop :) |
2023-10-22 18:11:52 +0200 | <monochrom> | Did you know that different cultures simply dichotomize things differently. |
2023-10-22 18:12:11 +0200 | <EvanR> | :t for_ |
2023-10-22 18:12:12 +0200 | <lambdabot> | (Foldable t, Applicative f) => t a -> (a -> f b) -> f () |
2023-10-22 18:12:20 +0200 | <EvanR> | @src for_ |
2023-10-22 18:12:20 +0200 | <lambdabot> | Source not found. Listen, broccoli brains, I don't have time to listen to this trash. |
2023-10-22 18:13:01 +0200 | <EvanR> | @botsnack |
2023-10-22 18:13:01 +0200 | <lambdabot> | :) |
2023-10-22 18:13:14 +0200 | <Inst> | @src forM |
2023-10-22 18:13:14 +0200 | <lambdabot> | forM = flip mapM |
2023-10-22 18:13:22 +0200 | <Inst> | @src for_ |
2023-10-22 18:13:22 +0200 | <lambdabot> | Source not found. And you call yourself a Rocket Surgeon! |
2023-10-22 18:13:27 +0200 | <monochrom> | Did you know that the Chinese language didn't even have or need a word for the orange colour for thousands of years. |
2023-10-22 18:13:28 +0200 | <Inst> | @botsnack |
2023-10-22 18:13:28 +0200 | <lambdabot> | :) |
2023-10-22 18:13:46 +0200 | <Inst> | I was thinking more 青 |
2023-10-22 18:15:17 +0200 | <EvanR> | for_ = flip traverse_, traverse_ f = foldr c (pure ()) |
2023-10-22 18:15:20 +0200 | <Inst> | sorry blomberg, it's hard to understand what you're asserting |
2023-10-22 18:15:37 +0200 | <Inst> | if you mean, something that repeats an action multiple times, there are tons of Haskell higher-order functions that do the work of a for loop |
2023-10-22 18:15:58 +0200 | <Inst> | and also, you have to specify whether it's a C-for loop or a Python for loop, since in the latter language for is a foreach loop |
2023-10-22 18:16:18 +0200 | <EvanR> | since traditional for loops are for effects only and no results, for_ which is based on Foldable is closest in spirit |
2023-10-22 18:16:25 +0200 | <Inst> | traverse_ f should be foldl', no? |
2023-10-22 18:16:53 +0200 | <dolio> | No. |
2023-10-22 18:16:55 +0200 | <EvanR> | that would be bad |
2023-10-22 18:18:00 +0200 | <EvanR> | ... where c x k = f x *> k |
2023-10-22 18:18:40 +0200 | <Inst> | huh, so that does work |
2023-10-22 18:18:41 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds) |
2023-10-22 18:20:39 +0200 | <Inst> | so traverse_ and for_ can actually short circuit |
2023-10-22 18:21:04 +0200 | <EvanR> | depends on the Applicative |
2023-10-22 18:21:22 +0200 | <Inst> | well, no it can't |
2023-10-22 18:21:24 +0200 | <EvanR> | e.g. in IO something half way could throw an exception |
2023-10-22 18:22:17 +0200 | <monochrom> | In fact, just depends on the Functor. :) |
2023-10-22 18:22:33 +0200 | <EvanR> | :t (*>) |
2023-10-22 18:22:35 +0200 | <lambdabot> | Applicative f => f a -> f b -> f b |
2023-10-22 18:23:12 +0200 | <monochrom> | Err nevermind, it's Applicative. |
2023-10-22 18:23:50 +0200 | <Inst> | i keep on trying to argue though that foldr is the equivalent of a for loop, but get derided for purportedly not understanding what a fold is |
2023-10-22 18:24:24 +0200 | <Inst> | since you can implement for_ / traverse_ / for / traverse etc with foldr |
2023-10-22 18:24:29 +0200 | <Inst> | as well as bake in short circuiting, etc |
2023-10-22 18:24:47 +0200 | <monochrom> | "foldr is the equivalent of a for loop" proves misunderstanding of at least one of: foldr, for loop. |
2023-10-22 18:24:51 +0200 | <EvanR> | you were kind of on the right track with the fold operation |
2023-10-22 18:25:02 +0200 | <monochrom> | equivalence |
2023-10-22 18:25:04 +0200 | <Inst> | a for each loop, then |
2023-10-22 18:25:14 +0200 | <EvanR> | which pertains to reducing a tree, which there are many ways to go about doing |
2023-10-22 18:25:31 +0200 | <EvanR> | when the reduction is a monoid, all the ways get the same answer |
2023-10-22 18:25:37 +0200 | <monochrom> | I already had for each loop in mind. |
2023-10-22 18:25:40 +0200 | <EvanR> | foldr and foldl are other ways |
2023-10-22 18:26:19 +0200 | <Inst> | fold wasn't me, though, it was blomberg |
2023-10-22 18:26:38 +0200 | <monochrom> | <monochrom> Did you know that different cultures simply dichotomize things differently. |
2023-10-22 18:26:41 +0200 | <EvanR> | you mentioned the real fold, blomberg was referencing fan haskell or something |
2023-10-22 18:26:54 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:49ec:9442:e7af:3828) (Remote host closed the connection) |
2023-10-22 18:27:14 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:7c71:e1a2:664b:2a25) |
2023-10-22 18:27:16 +0200 | <monochrom> | In Haskell we have catamorphisms, Foldable, Traversable, many other recursion schemes, and above all general recursion. |
2023-10-22 18:27:43 +0200 | <Inst> | what's the proof that recursion is equivalent to while? |
2023-10-22 18:27:44 +0200 | <monochrom> | You will not have much luck concorting an isomorphism from those to C or even Java. |
2023-10-22 18:27:55 +0200 | <Inst> | and I'd indulge blomberg all day if he wanted me to |
2023-10-22 18:28:31 +0200 | <monochrom> | Apart from mapping general recursion to general recursion. :) |
2023-10-22 18:29:22 +0200 | <monochrom> | Java hasn't even discovered Monoid. |
2023-10-22 18:29:31 +0200 | <monochrom> | (hence no Foldable) |
2023-10-22 18:30:04 +0200 | <monochrom> | Scala is doing better in this regard actually. |
2023-10-22 18:30:05 +0200 | <EvanR> | clojure is the merlin to java's arthur |
2023-10-22 18:30:15 +0200 | <blomberg> | what are some functions for traversable, catamorphism |
2023-10-22 18:30:47 +0200 | <Inst> | I'm probably going to spend at least one day every week whether someone knows what a typeclass is :( |
2023-10-22 18:30:49 +0200 | <monochrom> | Traversable has traverse. |
2023-10-22 18:31:20 +0200 | <monochrom> | Catamorphism is... just look it up. Or look up initial algebras. |
2023-10-22 18:31:50 +0200 | <blomberg> | i thought it provided haskell functions |
2023-10-22 18:32:20 +0200 | <Inst> | blomberg: how long have you been learning Haskell, what's the context you're learning it in, and what materials are you using? |
2023-10-22 18:32:27 +0200 | <Inst> | I think you mentioned "Learn You A Haskell"? |
2023-10-22 18:32:39 +0200 | <Inst> | Just so we can understand what you know already. |
2023-10-22 18:32:46 +0200 | Vajb | (~Vajb@207.61.167.122) |
2023-10-22 18:34:27 +0200 | <Inst> | Traversable is a typeclass, Catamorphism is a concept (not a language feature) that describes a pattern of recursion |
2023-10-22 18:34:38 +0200 | <Inst> | Catamorphism is just a fancy term for reduce |
2023-10-22 18:34:39 +0200 | rosco | (~rosco@yp-150-69.tm.net.my) (Quit: Lost terminal) |
2023-10-22 18:35:31 +0200 | <monochrom> | No. Foldable's fold is. |
2023-10-22 18:36:11 +0200 | <monochrom> | This is what's wrong with non-rigorous intuition. |
2023-10-22 18:36:29 +0200 | <monochrom> | https://www.vex.net/~trebla/humour/tautologies.html #0 |
2023-10-22 18:36:37 +0200 | <blomberg> | traverse : Map each element of a structure to an action, evaluate these actions from left to right, and collect the results. --what action ? IO or just functions |
2023-10-22 18:36:57 +0200 | <EvanR> | :t traverse |
2023-10-22 18:36:58 +0200 | <lambdabot> | (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b) |
2023-10-22 18:37:14 +0200 | <EvanR> | actions are the f b |
2023-10-22 18:37:27 +0200 | <EvanR> | so IO whatever is a possible example |
2023-10-22 18:37:32 +0200 | <mauke> | blomberg: any sort of applicative functor, including IO |
2023-10-22 18:40:22 +0200 | <probie> | but `f` could be something more mundane like `(->) a`. (`(->) a b` is just the prefix form of `a -> b`, `(->) a` is how you write it if you want something of kind `* -> *`) |
2023-10-22 18:40:51 +0200 | <probie> | :t traverse (*) [1..5 :: Int] |
2023-10-22 18:40:52 +0200 | <lambdabot> | Int -> [Int] |
2023-10-22 18:41:07 +0200 | <probie> | > traverse (*) [1..5::Int] 42 |
2023-10-22 18:41:09 +0200 | <lambdabot> | [42,84,126,168,210] |
2023-10-22 18:41:14 +0200 | phma | (~phma@host-67-44-208-184.hnremote.net) (Read error: Connection reset by peer) |
2023-10-22 18:42:13 +0200 | phma | (phma@2001:5b0:212a:ca38:321f:39d3:cfb3:6c89) |
2023-10-22 18:46:12 +0200 | <EvanR> | Inst, you can't be derided on the grounds of foldr (on list) being able to implement for_, traverse_, for, traverse on list, since foldr can be used to implement any function on lists. Similar to the functions maybe, either, bool for Maybe, Either, Bool respectively. So it is everything |
2023-10-22 18:49:54 +0200 | alphacentauri | (alphacenta@gateway/vpn/protonvpn/alphacentauri) (Quit: WeeChat 4.1.0) |
2023-10-22 18:51:36 +0200 | drdo | (~drdo@bl14-14-49.dsl.telepac.pt) |
2023-10-22 18:52:55 +0200 | waleee | (~waleee@2001:9b0:21c:e600:f2f3:f744:435d:137c) |
2023-10-22 18:54:16 +0200 | Inst | (~Inst@120.244.192.250) (Ping timeout: 260 seconds) |
2023-10-22 18:56:21 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-10-22 18:58:35 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 258 seconds) |
2023-10-22 19:01:16 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 258 seconds) |
2023-10-22 19:04:54 +0200 | notzmv | (~zmv@user/notzmv) |
2023-10-22 19:06:13 +0200 | <mauke> | :t foldr (\x z -> Just (x, maybe [] (uncurry (:)) z)) Nothing |
2023-10-22 19:06:14 +0200 | <lambdabot> | Foldable t => t a -> Maybe (a, [a]) |
2023-10-22 19:08:07 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer) |
2023-10-22 19:08:20 +0200 | <mauke> | > foldr (\x z -> Just (x, maybe [] (uncurry (:)) z)) Nothing [0 ..] |
2023-10-22 19:08:22 +0200 | <lambdabot> | Just (0,[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,2... |
2023-10-22 19:09:03 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) |
2023-10-22 19:16:51 +0200 | Inst | (~Inst@120.244.192.250) |
2023-10-22 19:17:21 +0200 | <Inst> | EvanR: my analogy is more that foldr on lists is too powerful |
2023-10-22 19:17:29 +0200 | <Inst> | in the same way for is too powerful |
2023-10-22 19:18:04 +0200 | <Inst> | you can even implement use foldr in such a way that you're storing two lists besides the list being deconstructed |
2023-10-22 19:18:54 +0200 | <Inst> | and you can mimic for each's ability to modify elements of the data structure that you're not looping over |
2023-10-22 19:21:04 +0200 | <Inst> | probie knows all the neat tricks with higher order functions, hahaha |
2023-10-22 19:21:45 +0200 | <EvanR> | if you think for loops are too powerful you don't want me to tell you about goto |
2023-10-22 19:22:00 +0200 | <EvanR> | which was used before for was a thing |
2023-10-22 19:22:31 +0200 | <Inst> | i knew gotos when i was a whee kid, then stopped programming. Hopefully my brain damage has recovered by now. |
2023-10-22 19:22:36 +0200 | <Inst> | *wee |
2023-10-22 19:22:58 +0200 | <EvanR> | yeah me too, little did I know my BASIC implementation had subroutines |
2023-10-22 19:23:12 +0200 | <EvanR> | mind blown |
2023-10-22 19:23:54 +0200 | <Inst> | that said, there's tons of cool tricks you can do with traverse, that are a lot less obvious with for / for each |
2023-10-22 19:23:59 +0200 | <monochrom> | Did its subroutine have paramter passing? Return values? |
2023-10-22 19:24:16 +0200 | <monochrom> | Because subroutines are annoying instead of helpful without them. |
2023-10-22 19:24:19 +0200 | ProgKea | (~ProgKea@p5081b776.dip0.t-ipconnect.de) |
2023-10-22 19:24:21 +0200 | <probie> | > let until' = \p f z -> foldr (\() k x -> if p x then x else k (f x)) id (repeat ()) z in until (> 10) (* 2) 1 |
2023-10-22 19:24:22 +0200 | <lambdabot> | 16 |
2023-10-22 19:24:38 +0200 | <Inst> | traverse unsetEnv ["HTTP_PROXY", "HTTPS_PROXY"] |
2023-10-22 19:24:51 +0200 | <monochrom> | Err actually now I realize that by your time, they did. So, cool. |
2023-10-22 19:24:51 +0200 | <Inst> | people don't do this in imperative languages, right? |
2023-10-22 19:25:32 +0200 | <Inst> | at least, it looks better thanfor u in |
2023-10-22 19:25:34 +0200 | <probie> | The limit to foldr's power is the length of the list it's run on. It's only all powerful if that list is infinite |
2023-10-22 19:25:38 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-10-22 19:25:48 +0200 | <Inst> | for u in [literals, moreliterals]: |
2023-10-22 19:25:50 +0200 | <Inst> | someAct(u) |
2023-10-22 19:26:09 +0200 | simendsjo | (~user@84.211.91.241) |
2023-10-22 19:26:10 +0200 | <monochrom> | The BASIC in my time did not. Fortunately it was a relief that my university back then used Pascal for 1st year. I was very delighted "finally, parameter passing and return values, and recursion too" |
2023-10-22 19:26:27 +0200 | <Inst> | you can trigger recursion within the lambda @ probies |
2023-10-22 19:26:56 +0200 | <Inst> | *probie |
2023-10-22 19:27:29 +0200 | Vajb | (~Vajb@207.61.167.122) (Ping timeout: 246 seconds) |
2023-10-22 19:27:54 +0200 | <probie> | True, but at that point the power isn't coming from `foldr`, but from general recursion |
2023-10-22 19:29:18 +0200 | <monochrom> | Heh, "foldr can drive GPUs because can give it an FFI function that shells out to C to call OpenCL functions to drive GPUs"? |
2023-10-22 19:29:36 +0200 | <monochrom> | (at which point can't even give the credit to C, no?) |
2023-10-22 19:29:45 +0200 | ProgKea | (~ProgKea@p5081b776.dip0.t-ipconnect.de) (Quit: leaving) |
2023-10-22 19:29:56 +0200 | <probie> | That said, if have `foldr` and `unfoldr`, we have general recursion |
2023-10-22 19:30:25 +0200 | simendsjo | (~user@84.211.91.241) (Remote host closed the connection) |
2023-10-22 19:31:05 +0200 | Vajb | (~Vajb@207.61.167.122) |
2023-10-22 19:31:11 +0200 | <monochrom> | (which is why I was pretty annoying by a post on discourse that says "FP is a leaky abstraction, the leak shows when eg ... GPUs ...". Dude, by that standard, even C is a leaky abstraction.) |
2023-10-22 19:31:20 +0200 | <Inst> | wait, can't foldr be used to implement unfoldr? |
2023-10-22 19:32:41 +0200 | elevenkb | (elevenkb@thunix.net) |
2023-10-22 19:32:53 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex) |
2023-10-22 19:33:56 +0200 | <EvanR> | monochrom, apparently it did not have parameter passing or return value |
2023-10-22 19:34:03 +0200 | <monochrom> | :( |
2023-10-22 19:34:16 +0200 | <EvanR> | still would have been better than emulating such a thing with goto xD |
2023-10-22 19:34:35 +0200 | <monochrom> | Eventually QuickBASIC had them. (And by extension, Visual BASIC later.) |
2023-10-22 19:35:29 +0200 | <EvanR> | ST_BASIC_Sourcebook_and_Tutorial-1986 on archive.org holy crap... I will not get sucked into this |
2023-10-22 19:35:43 +0200 | Vajb | (~Vajb@207.61.167.122) (Ping timeout: 264 seconds) |
2023-10-22 19:36:10 +0200 | <monochrom> | Did you know how subroutines were supported in the 1950s-60s before Algol came along and added recursion, and this was why people could not believe that recursion was possible? |
2023-10-22 19:36:35 +0200 | <monochrom> | For each subroutine, have a static location to store the return address. |
2023-10-22 19:36:42 +0200 | <mauke> | well, obviously |
2023-10-22 19:36:53 +0200 | <mauke> | you'd allocate a static block of "locals" for each subroutine |
2023-10-22 19:37:00 +0200 | dcoutts | (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) |
2023-10-22 19:37:02 +0200 | <monochrom> | (Right, only Peter Naur thought of using a stack when implementing Algol.) |
2023-10-22 19:37:17 +0200 | <mauke> | and then you can implement parameters as local variables: just set them before the call |
2023-10-22 19:37:24 +0200 | <mauke> | and then the return address is just another parameter |
2023-10-22 19:37:28 +0200 | <monochrom> | So yeah reentrance was considered impossible for a while. |
2023-10-22 19:38:03 +0200 | <monochrom> | So yeah also how I would do in BASIC. But even I knew there ought to be a better way. |
2023-10-22 19:38:21 +0200 | <mauke> | and ever since, subroutines have been slow because they have to use indirect addressing for all variables :-( |
2023-10-22 19:38:37 +0200 | <EvanR> | I wonder if you could make your own stack and use it that way in basic |
2023-10-22 19:38:47 +0200 | <monochrom> | BASIC did not damage me. Instead it annoyed me and prepared me for heaven later. :) |
2023-10-22 19:39:30 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-10-22 19:39:44 +0200 | <geekosaur> | I got about halfway through implementing that by stealing a variable, then I found Tiny-C |
2023-10-22 19:39:55 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 264 seconds) |
2023-10-22 19:40:25 +0200 | <monochrom> | Or perhaps it was me who was unwaveringly mathematically minded, so any 2nd-class thing in a language felt like a "language smell", a limitation rather than a role model. |
2023-10-22 19:41:05 +0200 | <monochrom> | Like, "whaddaya mean SIN and COS are built-in functions but there is no user-defined functions" |
2023-10-22 19:41:18 +0200 | <EvanR> | then nirvana must be ruby where even classes are first class |
2023-10-22 19:41:38 +0200 | kilian | (~kilian@2a01:4b00:89ca:2a00:f172:7938:df2a:8c6c) |
2023-10-22 19:41:40 +0200 | <monochrom> | Well, it isn't statically typed. :) |
2023-10-22 19:41:41 +0200 | <geekosaur> | ruby's a cheap knockoff of smalltalk |
2023-10-22 19:41:58 +0200 | <mauke> | hey, that's pretty much how it is in perl |
2023-10-22 19:42:12 +0200 | <monochrom> | Smalltalk is the only dynamically typed or untyped language I truly respect. :) |
2023-10-22 19:42:27 +0200 | <monochrom> | OK OK, Scheme is pretty cool too. |
2023-10-22 19:42:53 +0200 | <mauke> | the "perlfunc" manual page is called that because it documents the built-in functions of perl |
2023-10-22 19:43:04 +0200 | <mauke> | whereas the user-defined stuff is in "perlsub": they're subroutines! |
2023-10-22 19:44:09 +0200 | Guest18 | (~Guest18@p200300db7f09bb00b26088fffe123eaa.dip0.t-ipconnect.de) |
2023-10-22 19:44:31 +0200 | <monochrom> | Oh hey, "the return address is just another parameter" is why I don't draw a line between JSR and CPS. :) |
2023-10-22 19:44:48 +0200 | <mauke> | so it used to be that "function" meant "named built-in operator", but I don't think anyone has been using this terminology strictly in the last 20 years |
2023-10-22 19:45:02 +0200 | Guest18 | (~Guest18@p200300db7f09bb00b26088fffe123eaa.dip0.t-ipconnect.de) () |
2023-10-22 19:45:55 +0200 | _xor | (~xor@72.49.199.93) (Ping timeout: 264 seconds) |
2023-10-22 19:46:18 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
2023-10-22 19:46:22 +0200 | <EvanR> | Inst, unfoldr isn't a function "on lists" so that doesn't apply. It builds a list doesn't analyze one (though the callbacks passed to it might, which might themselves use foldr, but it's related to unfoldr's implementation) |
2023-10-22 19:47:13 +0200 | <mauke> | monochrom: would be fun if you could natively pass multiple return addresses for success and error cases |
2023-10-22 19:47:37 +0200 | <Inst> | it's back to how, while you can get foldr to override the limit on number of evaluations |
2023-10-22 19:48:02 +0200 | <geekosaur> | mauke, snobol beat you to it |
2023-10-22 19:48:12 +0200 | <monochrom> | I think they call that "exceptions" and "stack unwinding" ... :) |
2023-10-22 19:48:17 +0200 | <Inst> | hmmm, you probably can still implement unfoldr in terms of foldr using an infinite list |
2023-10-22 19:48:46 +0200 | <monochrom> | But oh cool so snobol had bicountinuoations haha |
2023-10-22 19:48:58 +0200 | _xor | (~xor@72.49.199.93) |
2023-10-22 19:48:59 +0200 | <EvanR> | you can place a useless unused foldr call anywhere in your implementation if you want |
2023-10-22 19:49:17 +0200 | <monochrom> | Someone needs to write the paper "COBOL, The Ultimate Lambda" hahaha |
2023-10-22 19:50:24 +0200 | <EvanR> | but it's really missing the point of these "you can construct a thing with limited tools" demos |
2023-10-22 19:50:34 +0200 | <mauke> | BOL, the prime lambda |
2023-10-22 19:50:45 +0200 | <monochrom> | Inst, I tried that silently, it ended up begging the question. I could be wrong. |
2023-10-22 19:50:45 +0200 | kilian | (~kilian@2a01:4b00:89ca:2a00:f172:7938:df2a:8c6c) (Quit: Client closed) |
2023-10-22 19:51:30 +0200 | <EvanR> | i meant to say unrelated to unfoldr's implementation |
2023-10-22 19:51:49 +0200 | <EvanR> | which is basically lambda calculus + analyzing a Maybe |
2023-10-22 19:52:04 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 19:52:05 +0200 | Square | (~Square@user/square) (Remote host closed the connection) |
2023-10-22 19:52:49 +0200 | <probie> | :t \f z -> foldr (\() k x -> case f x of { Nothing -> []; Just (y,x') -> y: k x'}) (const []) (repeat ()) z |
2023-10-22 19:52:50 +0200 | <lambdabot> | (t -> Maybe (a, t)) -> t -> [a] |
2023-10-22 19:52:51 +0200 | <monochrom> | Well, I still haven't ruled out making foldr and unfoldr a mutually recursive pair... |
2023-10-22 19:53:34 +0200 | <Inst> | https://paste.tomsmeding.com/mmlPjQKA |
2023-10-22 19:53:46 +0200 | Vajb | (~Vajb@207.61.167.122) |
2023-10-22 19:54:02 +0200 | <Inst> | derp |
2023-10-22 19:54:06 +0200 | <Inst> | got there faster than I did |
2023-10-22 19:54:45 +0200 | Square | (~Square@user/square) |
2023-10-22 19:54:51 +0200 | simendsjo | (~user@84.211.91.241) |
2023-10-22 19:54:54 +0200 | <monochrom> | OK, that will be on the exam next time I teach. >:D |
2023-10-22 19:55:41 +0200 | doyougnu | (~doyougnu@45.46.170.68) (Ping timeout: 255 seconds) |
2023-10-22 19:55:59 +0200 | <EvanR> | not sure what specific criteria this satisfies, other than "uses foldr somehow" xD |
2023-10-22 19:56:36 +0200 | <monochrom> | It satifies your criteria if you also allow a "repeat ()" as an extra axiom. |
2023-10-22 19:56:40 +0200 | <probie> | Given `foldr` and a single infinite list, I have general recursion |
2023-10-22 19:56:56 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 255 seconds) |
2023-10-22 19:57:05 +0200 | <monochrom> | So it begs the question a little bit. Who ordered that? :) |
2023-10-22 19:57:30 +0200 | <Inst> | redundant |
2023-10-22 19:57:32 +0200 | <Inst> | https://paste.tomsmeding.com/5aXScpQu |
2023-10-22 19:57:48 +0200 | <EvanR> | it feels like you can just crack open the repeat () and grab the general recursion. And get out before the cave of wonders melts around you |
2023-10-22 19:58:10 +0200 | <Inst> | whoops |
2023-10-22 19:58:12 +0200 | <Inst> | forgot default :( |
2023-10-22 19:58:29 +0200 | <monochrom> | But I have obtained recursion with less. data D a = MkD (D a -> a) |
2023-10-22 19:58:40 +0200 | <monochrom> | err, s/data/newtype/ is better |
2023-10-22 19:58:47 +0200 | John_Ivan | (~John_Ivan@user/john-ivan/x-1515935) |
2023-10-22 19:59:32 +0200 | <John_Ivan> | hi, anyone know where "import Data.Text.Metrics (levenshtein)" is located? in what package? |
2023-10-22 19:59:51 +0200 | <John_Ivan> | been trying to install it with cabal but I can't find it. I was told it was "edit-distance" then "text" and then "ghc-text-metrics" |
2023-10-22 19:59:51 +0200 | <Inst> | hoogle.haskell.org ? |
2023-10-22 20:00:09 +0200 | <Inst> | https://hoogle.haskell.org/?hoogle=levenshtein |
2023-10-22 20:00:37 +0200 | <monochrom> | perhaps https://hackage.haskell.org/package/text-metrics-0.3.2/docs/Data-Text-Metrics.html |
2023-10-22 20:01:08 +0200 | <probie> | EvanR: Try it. I can definitely have a system which allows the construction of `repeat ()`, but not general recursion (e.g. just `unfoldr` with no `foldr`) |
2023-10-22 20:01:49 +0200 | _xor | (~xor@72.49.199.93) (Read error: Connection reset by peer) |
2023-10-22 20:02:03 +0200 | <monochrom> | What I did: https://hackage.haskell.org/packages/search?terms=metrics |
2023-10-22 20:02:20 +0200 | <EvanR> | a system which allows repeat (), or a system which allows repeat to be implemented somehow with something else |
2023-10-22 20:02:49 +0200 | <monochrom> | (Yeah, "Data.Text.Metrics" didn't work. Not very happy that hackage lost search-for-module-name a long time ago.) |
2023-10-22 20:02:56 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 20:03:38 +0200 | <monochrom> | Yeah EvanR it needs a seeding infinite list to generate other infinite lists. :) |
2023-10-22 20:03:56 +0200 | <EvanR> | the axiom of infinity |
2023-10-22 20:04:08 +0200 | _xor | (~xor@72.49.199.93) |
2023-10-22 20:04:09 +0200 | <monochrom> | which is a pun at the meta level :) |
2023-10-22 20:04:16 +0200 | _xor | (~xor@72.49.199.93) (Client Quit) |
2023-10-22 20:04:36 +0200 | Pickchea | (~private@user/pickchea) |
2023-10-22 20:04:36 +0200 | <monochrom> | "To understand infinite lists, first you need to understand infinite lists" |
2023-10-22 20:04:52 +0200 | _xor | (~xor@72.49.199.93) |
2023-10-22 20:05:02 +0200 | Vajb | (~Vajb@207.61.167.122) (Ping timeout: 255 seconds) |
2023-10-22 20:07:46 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 260 seconds) |
2023-10-22 20:08:06 +0200 | <John_Ivan> | monochrom, , Inst found it. thanks. it's indeed in "text-metrics" |
2023-10-22 20:08:11 +0200 | <John_Ivan> | cabal install --lib text-metrics |
2023-10-22 20:08:13 +0200 | <John_Ivan> | did the trick. |
2023-10-22 20:09:12 +0200 | <tomsmeding> | John_Ivan: earlier today I told someone else not to use 'cabal install --lib', I'll link that to you as well: https://ircbrowse.tomsmeding.com/day/lchaskell/2023/10/22?id=1114546#trid1114546 |
2023-10-22 20:09:54 +0200 | <tomsmeding> | there _is_ a usecase for 'cabal install --lib', but be very sure you want that very specific usecase, and are aware of the downsides, before doing it |
2023-10-22 20:10:31 +0200 | <John_Ivan> | tomsmeding, I'll have a read, thanks. |
2023-10-22 20:14:39 +0200 | <monochrom> | :( |
2023-10-22 20:14:53 +0200 | _xor | (~xor@72.49.199.93) (Ping timeout: 260 seconds) |
2023-10-22 20:15:35 +0200 | <Inst> | I suggest you go with cabal headers and cabal run yourFile if you're working on a single module script, and can bear to live without HLS support |
2023-10-22 20:16:37 +0200 | Square | (~Square@user/square) (Remote host closed the connection) |
2023-10-22 20:18:14 +0200 | <EvanR> | are you referring to cabal script |
2023-10-22 20:18:25 +0200 | Square | (~Square@user/square) |
2023-10-22 20:18:26 +0200 | <Inst> | *cabal script |
2023-10-22 20:18:44 +0200 | <ncf> | did GHC 9 get rid of the "occurs check: cannot construct infinite type" error? i seem to always be getting "couldn't match" errors instead |
2023-10-22 20:18:56 +0200 | <ncf> | lambdabot still gives infinite type errors so maybe it's not on GHC 9 yet? (int-e?) |
2023-10-22 20:18:56 +0200 | <Inst> | https://cabal.readthedocs.io/en/stable/getting-started.html#run-a-single-file-haskell-script |
2023-10-22 20:19:08 +0200 | <monochrom> | Nah, "cabal headers" is fine, "cabal script" just means having cabal headers :) |
2023-10-22 20:19:18 +0200 | <int-e> | ncf: yeah it's not |
2023-10-22 20:19:22 +0200 | <EvanR> | now that I know what that means |
2023-10-22 20:19:32 +0200 | segfaultfizzbuzz | (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) |
2023-10-22 20:19:47 +0200 | <Inst> | I'm trying to find where fendor has the issue that HLS doesn't support cabal scripts |
2023-10-22 20:19:56 +0200 | <Inst> | cabal scripts are really the solution to all the install --lib problems |
2023-10-22 20:20:10 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 20:20:26 +0200 | <Inst> | you can already cabal repl -b what you need if you're playing in repl, but compiled... |
2023-10-22 20:20:27 +0200 | <EvanR> | making a cabal project is probably a good "standard procedure for noobs" |
2023-10-22 20:20:54 +0200 | <EvanR> | cabal script when you know what you're doing |
2023-10-22 20:21:10 +0200 | <Inst> | depends on your definition of noob, some people might be coming with little previous programming experience |
2023-10-22 20:21:25 +0200 | <Inst> | and having to navigate the manifest can be a headache |
2023-10-22 20:21:27 +0200 | <Inst> | cabal init |
2023-10-22 20:21:31 +0200 | <monochrom> | When I teach type inference, I rely on the compiler saying "infinite type occurs check" :( |
2023-10-22 20:22:35 +0200 | <monochrom> | Unpopular opinion: s/standard procedure/cargo-culting, fake it until you make it/ |
2023-10-22 20:23:03 +0200 | <haskellbridge> | <fendor> Not quite accurate, it works if you know how :) |
2023-10-22 20:23:39 +0200 | <monochrom> | Because that's exactly what we tell Java beginners about "public class MyMain { public static void main(String[] args)" |
2023-10-22 20:23:58 +0200 | <haskellbridge> | <fendor> Like, HLS works with cabal scripts if you can trick it |
2023-10-22 20:23:59 +0200 | <tomsmeding> | {}} |
2023-10-22 20:24:17 +0200 | <Inst> | btw, speaking of sinophone affairs, have you seen this, monochrom? |
2023-10-22 20:24:19 +0200 | <Inst> | http://www.tup.tsinghua.edu.cn/bookscenter/book_08868201.html |
2023-10-22 20:24:24 +0200 | <Inst> | http://www.tup.tsinghua.edu.cn/booksCenter/bookcatalog.html?id=08868201 |
2023-10-22 20:24:37 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 255 seconds) |
2023-10-22 20:24:57 +0200 | tomsmeding | is unnerved by booksCenter vs bookscenter |
2023-10-22 20:25:44 +0200 | <EvanR> | the internet is cases sensitive? smh |
2023-10-22 20:26:20 +0200 | <monochrom> | My DNS can't resolve that. |
2023-10-22 20:26:41 +0200 | _xor | (~xor@72.49.199.93) |
2023-10-22 20:26:54 +0200 | <tomsmeding> | monochrom: http://124.17.26.243/bookscenter/book_08868201.html |
2023-10-22 20:27:03 +0200 | <tomsmeding> | get a better DNS resolver :p |
2023-10-22 20:27:10 +0200 | <Inst> | no, could be political blocking |
2023-10-22 20:27:22 +0200 | <EvanR> | banned bookscenter |
2023-10-22 20:27:46 +0200 | <Inst> | i mean tsinghua could also be blocking the outside |
2023-10-22 20:28:07 +0200 | <monochrom> | OK yeah Google's 8.8.8.8 resolves it fine. |
2023-10-22 20:28:07 +0200 | <Inst> | either case, looks like it's a peking u professor on the authors page |
2023-10-22 20:28:24 +0200 | <monochrom> | But I already tried my own bind9 install... |
2023-10-22 20:28:36 +0200 | _xor | (~xor@72.49.199.93) (Read error: Connection reset by peer) |
2023-10-22 20:28:41 +0200 | <Inst> | really cheap, 49 RMB / ~7 USD |
2023-10-22 20:29:13 +0200 | _xor | (~xor@72.49.199.93) |
2023-10-22 20:29:27 +0200 | <ncf> | you don't need to install bind9 to change your local dns servers :) |
2023-10-22 20:31:06 +0200 | <monochrom> | Haha they gave up translating Applicative to Chinese :) |
2023-10-22 20:31:10 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 20:31:38 +0200 | <tomsmeding> | monochrom: did they phonetically render it, or just write in latin characters? |
2023-10-22 20:31:51 +0200 | doyougnu | (~doyougnu@45.46.170.68) |
2023-10-22 20:32:15 +0200 | <monochrom> | Latin/English word verbatim. |
2023-10-22 20:32:42 +0200 | <EvanR> | need an acme latin prelude |
2023-10-22 20:32:44 +0200 | <Inst> | actually, i don't think it's pek professor, one of the authors seems to be at zhongshan in guangzhou |
2023-10-22 20:33:18 +0200 | <EvanR> | there's a roman numerals type in there somewhere, so |
2023-10-22 20:35:44 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 255 seconds) |
2023-10-22 20:36:24 +0200 | <Inst> | Both of them are at Zhongshan, sigh. |
2023-10-22 20:37:23 +0200 | <monochrom> | Ah, bind9 has error log "DNS format error from 124.17.26.250#53 resolving www.tup.tsinghua.edu.cn/A for 192.168.1.6#43627: server sent FORMERR" |
2023-10-22 20:38:43 +0200 | dcoutts | (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 252 seconds) |
2023-10-22 20:39:38 +0200 | <Inst> | w/e, i'll pick up the book on my own, since Hudak and Bird have passed on, this is the closest you'll get to having a recent Haskell book published by a tier 1 university's publishing house |
2023-10-22 20:39:48 +0200 | <Inst> | just thought it'd be more favorable to your pedagogical approach / philosophy |
2023-10-22 20:42:08 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 20:42:53 +0200 | fakenullie | (~nullie@2a01:4f8:c2c:6177::1) |
2023-10-22 20:44:17 +0200 | nullie | (~nullie@amsterdam.nullie.name) (Quit: WeeChat 2.8) |
2023-10-22 20:44:36 +0200 | fakenullie | nullie |
2023-10-22 20:46:58 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 252 seconds) |
2023-10-22 20:47:29 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 20:47:47 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2023-10-22 20:52:03 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 258 seconds) |
2023-10-22 20:54:35 +0200 | Batzy | (~quassel@user/batzy) (Ping timeout: 240 seconds) |
2023-10-22 20:55:02 +0200 | Batzy | (~quassel@user/batzy) |
2023-10-22 20:58:23 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 21:02:05 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2023-10-22 21:02:59 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 245 seconds) |
2023-10-22 21:04:06 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 21:05:00 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 240 seconds) |
2023-10-22 21:05:49 +0200 | rgw | (~R@2605:a601:a0df:5600:28a6:bcb9:bb55:dff5) |
2023-10-22 21:08:10 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-10-22 21:08:36 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 240 seconds) |
2023-10-22 21:09:38 +0200 | Benzi-Junior | (~BenziJuni@88-149-64-112.du.xdsl.is) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-10-22 21:10:34 +0200 | <John_Ivan> | https://hackage.haskell.org/package/process-1.6.18.0/docs/System-Process.html |
2023-10-22 21:10:48 +0200 | <John_Ivan> | Anything in this package to "suspend" a process? And by suspend, I mean pause, not stop. |
2023-10-22 21:10:56 +0200 | <John_Ivan> | I suspect it should be here. |
2023-10-22 21:11:00 +0200 | <dminuoso> | What do you even mean by "suspent" |
2023-10-22 21:11:17 +0200 | <John_Ivan> | Pause. Put a process in a temporary pause until resumed explicitly. |
2023-10-22 21:11:27 +0200 | <dminuoso> | SIGSTOP is the general mechanism. |
2023-10-22 21:11:40 +0200 | <dminuoso> | https://www.gnu.org/software/libc/manual/html_node/Job-Control-Signals.html |
2023-10-22 21:11:42 +0200 | <geekosaur> | SIGSTOP/SIGCONT, I suspect. That would be in System.Posix.Process |
2023-10-22 21:11:59 +0200 | <John_Ivan> | I see, that will do. Only for POSIX systems I take it? |
2023-10-22 21:12:05 +0200 | <geekosaur> | yes |
2023-10-22 21:12:09 +0200 | Benzi-Junior | (~BenziJuni@88-149-64-112.du.xdsl.is) |
2023-10-22 21:12:09 +0200 | <John_Ivan> | Thanks. |
2023-10-22 21:12:15 +0200 | <geekosaur> | I have no idea whether this can even be done on Windows |
2023-10-22 21:12:25 +0200 | <dminuoso> | FSVO of "POSIX" systems, given that there arent really any truly compliant systems out there. |
2023-10-22 21:12:32 +0200 | <John_Ivan> | It's fine, at least I know which direction to take next. FFI-Win32 |
2023-10-22 21:12:34 +0200 | <geekosaur> | if it can it would be somewhere in the Win32 package |
2023-10-22 21:13:02 +0200 | <probie> | Inst: I guess you probably don't know if you haven't bought it yet, but does it work as a self-contained course, or does it need an instructor to go along with it? |
2023-10-22 21:13:08 +0200 | falafel | (~falafel@62.175.113.194.dyn.user.ono.com) |
2023-10-22 21:15:13 +0200 | notzmv | (~zmv@user/notzmv) |
2023-10-22 21:15:38 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 21:15:49 +0200 | <_d0t> | is there a way to stop GHC from removing temporary files after compilation? I |
2023-10-22 21:16:01 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-10-22 21:17:30 +0200 | <geekosaur> | -keep-tmp-files |
2023-10-22 21:17:54 +0200 | <_d0t> | thanks! |
2023-10-22 21:18:06 +0200 | <monochrom> | I think every textbook satisfies "the author thinks it's self-contained, but in reality you always need an instructor" :D |
2023-10-22 21:22:47 +0200 | <John_Ivan> | geekosaur, seems I can't install the "unix" package from which System.Posix comes from |
2023-10-22 21:22:53 +0200 | <John_Ivan> | this is on a windows build of ghc |
2023-10-22 21:23:06 +0200 | <John_Ivan> | I will look into win32 alternatives |
2023-10-22 21:23:44 +0200 | <geekosaur> | there's a unix-compat but it probably doesn't convert that |
2023-10-22 21:24:02 +0200 | notzmv | (~zmv@user/notzmv) (Ping timeout: 246 seconds) |
2023-10-22 21:24:02 +0200 | <John_Ivan> | geekosaur, I'm fine with picking a different packages. i just wanna know if haskell supports conditional compilation |
2023-10-22 21:24:23 +0200 | <John_Ivan> | so I can make the code install the appropriate package on the appropriate platform |
2023-10-22 21:24:37 +0200 | <mauke> | yes, but it's a pile of hacks |
2023-10-22 21:24:56 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 272 seconds) |
2023-10-22 21:24:57 +0200 | <John_Ivan> | it is? so how do they do it in their own packages? |
2023-10-22 21:24:57 +0200 | <mauke> | well, the CPP part is at least |
2023-10-22 21:25:18 +0200 | <mauke> | but you can use package flags to select different sets of dependencies |
2023-10-22 21:25:36 +0200 | <John_Ivan> | that would do |
2023-10-22 21:25:40 +0200 | <John_Ivan> | thanks |
2023-10-22 21:26:17 +0200 | <Inst> | probie: there's actually a few Chinese Haskell books, one of which is titled "Magical Haskell". I just thought it was nice that Tsinghua published this one, given that Tsinghua is the Chinese equiv of MIT (and once ranked higher because of US News screwing things up) |
2023-10-22 21:26:48 +0200 | <Inst> | I was hoping that Tsinghua decided to pick up Haskell |
2023-10-22 21:27:24 +0200 | <mauke> | https://cabal.readthedocs.io/en/stable/cabal-package.html#configurations |
2023-10-22 21:28:27 +0200 | <John_Ivan> | mauke, that is good. can cabal detect what platform it's installed on? |
2023-10-22 21:28:39 +0200 | <John_Ivan> | so maybe some of those flags trigger automatically |
2023-10-22 21:29:30 +0200 | <Inst> | I think it should be able to. |
2023-10-22 21:29:45 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2023-10-22 21:29:47 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-10-22 21:29:54 +0200 | <Inst> | There's if os == ... booleans in some cabal files I've seen |
2023-10-22 21:30:48 +0200 | <sclv> | John_Ivan: see the conditionals section of docs https://cabal.readthedocs.io/en/stable/cabal-package.html#conditions |
2023-10-22 21:31:09 +0200 | <mauke> | the example file has 'if !os(windows)' |
2023-10-22 21:31:15 +0200 | <John_Ivan> | cheers |
2023-10-22 21:37:02 +0200 | CiaoSen | (~Jura@2a05:5800:2be:1b00:664b:f0ff:fe37:9ef) |
2023-10-22 21:41:59 +0200 | <probie> | Inst: I'm currently trying to find a (physical) book that's at the same level as LYAH, but more modern and mostly self-contained. English or Chinese work for the intended victim |
2023-10-22 21:41:59 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2023-10-22 21:42:15 +0200 | <Inst> | good luck! :( |
2023-10-22 21:42:36 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-10-22 21:44:20 +0200 | santiagopim | (~user@90.167.66.131) |
2023-10-22 21:47:49 +0200 | <Inst> | have you tried Effective Haskell? |
2023-10-22 21:51:07 +0200 | yoyofreeman | (~yoyofreem@176.97.76.178) (Read error: Connection reset by peer) |
2023-10-22 21:51:48 +0200 | yoyofreeman | (~yoyofreem@176.97.76.178) |
2023-10-22 21:52:59 +0200 | puke | (~puke@user/puke) (Quit: puke) |
2023-10-22 21:53:02 +0200 | vglfr | (~vglfr@88.154.70.142) (Ping timeout: 255 seconds) |
2023-10-22 21:53:16 +0200 | Pixi | (~Pixi@user/pixi) (Quit: Leaving) |
2023-10-22 21:53:53 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2023-10-22 21:54:28 +0200 | Pixi | (~Pixi@user/pixi) |
2023-10-22 21:56:17 +0200 | vglfr | (~vglfr@88.154.70.142) |
2023-10-22 21:57:39 +0200 | puke | (~puke@user/puke) |
2023-10-22 22:00:28 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2023-10-22 22:05:23 +0200 | <Inst> | totally my fault, ugh |
2023-10-22 22:05:24 +0200 | <Inst> | https://cabal.readthedocs.io/en/stable/cabal-commands.html#cabal-run |
2023-10-22 22:05:30 +0200 | <Inst> | wasn't familiar with how the -- worked :( |
2023-10-22 22:05:58 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2023-10-22 22:10:41 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2023-10-22 22:10:43 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 22:15:08 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 248 seconds) |
2023-10-22 22:16:44 +0200 | drewjose3 | (~drewjose@129.154.40.88) |
2023-10-22 22:16:51 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-10-22 22:17:07 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Ping timeout: 255 seconds) |
2023-10-22 22:17:26 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
2023-10-22 22:18:28 +0200 | drewjose | (~drewjose@129.154.40.88) (Ping timeout: 255 seconds) |
2023-10-22 22:18:28 +0200 | Hecate | (~mariposa@user/hecate) (Ping timeout: 255 seconds) |
2023-10-22 22:18:29 +0200 | drewjose3 | drewjose |
2023-10-22 22:18:44 +0200 | random-jellyfish | (~tiber@2a02:2f04:11e:c600:f12e:ec08:e2cf:6f5d) |
2023-10-22 22:18:44 +0200 | random-jellyfish | (~tiber@2a02:2f04:11e:c600:f12e:ec08:e2cf:6f5d) (Changing host) |
2023-10-22 22:18:44 +0200 | random-jellyfish | (~tiber@user/random-jellyfish) |
2023-10-22 22:20:18 +0200 | Hecate | (~mariposa@user/hecate) |
2023-10-22 22:20:57 +0200 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Client Quit) |
2023-10-22 22:21:09 +0200 | haveo | (~haveo@sl35.iuwt.fr) (Remote host closed the connection) |
2023-10-22 22:22:06 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 22:25:22 +0200 | haveo | (~haveo@sl35.iuwt.fr) |
2023-10-22 22:26:31 +0200 | <elevenkb> | Does anyone do data science in haskell? |
2023-10-22 22:26:43 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 260 seconds) |
2023-10-22 22:32:09 +0200 | blomberg | (~default_u@117.248.77.218) (Ping timeout: 245 seconds) |
2023-10-22 22:32:47 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 22:33:33 +0200 | nickiminjaj | (~nickiminj@user/laxhh) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2023-10-22 22:34:11 +0200 | nickiminjaj | (~nickiminj@188.146.126.78) |
2023-10-22 22:34:11 +0200 | nickiminjaj | (~nickiminj@188.146.126.78) (Changing host) |
2023-10-22 22:34:11 +0200 | nickiminjaj | (~nickiminj@user/laxhh) |
2023-10-22 22:37:41 +0200 | falafel | (~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 260 seconds) |
2023-10-22 22:37:46 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 272 seconds) |
2023-10-22 22:43:56 +0200 | simendsjo | (~user@84.211.91.241) (Ping timeout: 248 seconds) |
2023-10-22 22:44:20 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 22:45:58 +0200 | Tlsx | (~rscastilh@187.40.125.21) () |
2023-10-22 22:46:19 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 252 seconds) |
2023-10-22 22:47:35 +0200 | Square | (~Square@user/square) (Ping timeout: 240 seconds) |
2023-10-22 22:48:23 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2023-10-22 22:48:58 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 258 seconds) |
2023-10-22 22:49:35 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 22:49:56 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 256 seconds) |
2023-10-22 22:50:19 +0200 | driib5 | (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat) |
2023-10-22 22:50:35 +0200 | falafel | (~falafel@62.175.113.194.dyn.user.ono.com) |
2023-10-22 22:52:08 +0200 | driib5 | (~driib@vmi931078.contaboserver.net) |
2023-10-22 22:52:57 +0200 | dcoutts | (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) |
2023-10-22 22:54:28 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 255 seconds) |
2023-10-22 22:56:44 +0200 | Jackneill | (~Jackneill@20014C4E1E0E6F004BDEA8A1DAB424C0.dsl.pool.telekom.hu) (Ping timeout: 245 seconds) |
2023-10-22 22:57:17 +0200 | benjaminl | (~benjaminl@user/benjaminl) (Read error: Connection reset by peer) |
2023-10-22 22:57:32 +0200 | benjaminl | (~benjaminl@user/benjaminl) |
2023-10-22 22:57:51 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) |
2023-10-22 23:01:32 +0200 | falafel | (~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 248 seconds) |
2023-10-22 23:02:06 +0200 | ystael | (~ystael@user/ystael) |
2023-10-22 23:02:34 +0200 | nate2 | (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
2023-10-22 23:02:51 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-10-22 23:07:32 +0200 | td_ | (~td@i53870939.versanet.de) (Ping timeout: 272 seconds) |
2023-10-22 23:09:23 +0200 | masterbuilder | (~masterbui@user/masterbuilder) (Read error: Connection reset by peer) |
2023-10-22 23:12:37 +0200 | <EvanR> | monochrom, after reading this manual it seems that while gosubs cannot return anything, there is a separate feature for user-defined functions which take arguments and return a value. DEF FN |
2023-10-22 23:13:15 +0200 | <EvanR> | in case you somehow can't get by with just trig and hyperbolic trig |
2023-10-22 23:16:08 +0200 | driib5 | (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat) |
2023-10-22 23:18:09 +0200 | brandly | (~brandly@c-73-68-15-46.hsd1.ma.comcast.net) |
2023-10-22 23:18:33 +0200 | isekaijin | (~user@user/isekaijin) (Quit: brb test) |
2023-10-22 23:19:05 +0200 | <[exa]> | elevenkb: I did some actual science-ish computing in repa, but that's it. Still no ggplot alternative. :( |
2023-10-22 23:19:31 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-10-22 23:22:44 +0200 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-10-22 23:22:48 +0200 | <elevenkb> | [exa] https://hackage.haskell.org/package/hvega ? |
2023-10-22 23:23:53 +0200 | stefan-__ | (~m-ohzqow@42dots.de) (Remote host closed the connection) |
2023-10-22 23:24:10 +0200 | td_ | (~td@i5387091E.versanet.de) |
2023-10-22 23:24:17 +0200 | stefan-__ | (~m-ohzqow@42dots.de) |
2023-10-22 23:25:53 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer) |
2023-10-22 23:26:33 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) |
2023-10-22 23:26:47 +0200 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
2023-10-22 23:28:40 +0200 | td_ | (~td@i5387091E.versanet.de) (Ping timeout: 255 seconds) |
2023-10-22 23:30:46 +0200 | random-jellyfish | (~tiber@user/random-jellyfish) (Ping timeout: 260 seconds) |
2023-10-22 23:31:06 +0200 | stefan-__ | (~m-ohzqow@42dots.de) (Remote host closed the connection) |
2023-10-22 23:31:32 +0200 | stefan-__ | (~m-ohzqow@42dots.de) |
2023-10-22 23:33:08 +0200 | stefan-__ | (~m-ohzqow@42dots.de) (Remote host closed the connection) |
2023-10-22 23:33:34 +0200 | stefan-__ | (~m-ohzqow@42dots.de) |
2023-10-22 23:33:44 +0200 | notzmv | (~zmv@user/notzmv) |
2023-10-22 23:35:21 +0200 | driib5 | (~driib@vmi931078.contaboserver.net) |
2023-10-22 23:36:19 +0200 | vglfr | (~vglfr@88.154.70.142) (Read error: Connection reset by peer) |
2023-10-22 23:37:34 +0200 | stefan-__ | (~m-ohzqow@42dots.de) (Remote host closed the connection) |
2023-10-22 23:38:02 +0200 | masterbuilder | (~masterbui@user/masterbuilder) |
2023-10-22 23:38:02 +0200 | stefan-__ | (~m-ohzqow@42dots.de) |
2023-10-22 23:39:07 +0200 | stefan-__ | (~m-ohzqow@42dots.de) (Remote host closed the connection) |
2023-10-22 23:39:51 +0200 | stefan-__ | (~m-ohzqow@42dots.de) |
2023-10-22 23:40:47 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer) |
2023-10-22 23:41:35 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) |
2023-10-22 23:43:47 +0200 | stefan-__ | (~m-ohzqow@42dots.de) (Remote host closed the connection) |
2023-10-22 23:44:14 +0200 | stefan-__ | (~m-ohzqow@42dots.de) |
2023-10-22 23:45:19 +0200 | <Inst> | baad |
2023-10-22 23:45:23 +0200 | td_ | (~td@i5387090E.versanet.de) |
2023-10-22 23:45:43 +0200 | <Inst> | right now, I'm trying to parse a text file, such that it throws two different types of exceptions |
2023-10-22 23:45:56 +0200 | stefan-__ | (~m-ohzqow@42dots.de) (Remote host closed the connection) |
2023-10-22 23:45:57 +0200 | <Inst> | it's trying to parse something into a maze |
2023-10-22 23:46:22 +0200 | stefan-__ | (~m-ohzqow@42dots.de) |
2023-10-22 23:47:34 +0200 | <Inst> | it feels like StateT (StartPosition, EndPosition) Maybe a |
2023-10-22 23:47:55 +0200 | stefan-__ | (~m-ohzqow@42dots.de) (Remote host closed the connection) |
2023-10-22 23:48:21 +0200 | stefan-__ | (~m-ohzqow@42dots.de) |
2023-10-22 23:49:47 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) |
2023-10-22 23:50:56 +0200 | td_ | (~td@i5387090E.versanet.de) (Ping timeout: 255 seconds) |
2023-10-22 23:51:14 +0200 | stefan-__ | (~m-ohzqow@42dots.de) (Remote host closed the connection) |
2023-10-22 23:51:53 +0200 | stefan-__ | (~m-ohzqow@42dots.de) |
2023-10-22 23:51:55 +0200 | <Inst> | maybe it should be MaybeT (State (Start Position, EndPosition) Maze? |
2023-10-22 23:51:56 +0200 | isekaijin | (~user@user/isekaijin) |
2023-10-22 23:52:37 +0200 | td_ | (~td@i53870910.versanet.de) |
2023-10-22 23:54:05 +0200 | stefan-__ | (~m-ohzqow@42dots.de) (Remote host closed the connection) |
2023-10-22 23:54:30 +0200 | stefan-__ | (~m-ohzqow@42dots.de) |
2023-10-22 23:55:05 +0200 | dhruvasagar | (~dhruvasag@49.207.194.211) (Ping timeout: 255 seconds) |
2023-10-22 23:56:15 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 240 seconds) |