2023-11-17 00:04:51 +0100 | acidjnk | (~acidjnk@p200300d6e72b9344349e196aee999b14.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2023-11-17 00:07:43 +0100 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-11-17 00:19:29 +0100 | Ivelten | (~textual@38.252.84.3) |
2023-11-17 00:20:26 +0100 | Jackneill | (~Jackneill@20014C4E1E1AA2009B34AF74A9557C2A.dsl.pool.telekom.hu) (Ping timeout: 260 seconds) |
2023-11-17 00:21:54 +0100 | chomwitt | (~chomwitt@2a02:587:7a03:f500:1ac0:4dff:fedb:a3f1) (Ping timeout: 256 seconds) |
2023-11-17 00:21:56 +0100 | Ivelten | (~textual@38.252.84.3) (Client Quit) |
2023-11-17 00:24:35 +0100 | migas9 | (~migas@static.140.65.63.178.clients.your-server.de) (Server closed connection) |
2023-11-17 00:24:54 +0100 | migas9 | (~migas@static.140.65.63.178.clients.your-server.de) |
2023-11-17 00:31:10 +0100 | thegeekinside | (~thegeekin@189.180.53.210) |
2023-11-17 00:35:28 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) |
2023-11-17 00:36:09 +0100 | ivelten | (~ivelten@38.252.84.3) |
2023-11-17 00:38:06 +0100 | hexeme | (~hexeme@user/hexeme) (Server closed connection) |
2023-11-17 00:39:28 +0100 | hexeme | (~hexeme@user/hexeme) |
2023-11-17 00:49:11 +0100 | cheater_ | (~Username@user/cheater) |
2023-11-17 00:50:32 +0100 | <jackdk> | My standard response on the streaming topic is "`conduit` is warty and annoying but servicable for single source -> single sink; I have never successfully written a nontrivial program in `pipes`; `streaming` has an extremely core abstraction and is my default choice for nontrivial stuff; `streamly` might be interesting but also broke my code in a minor version update so I'll look at it again some other day" |
2023-11-17 00:51:28 +0100 | <jackdk> | johnw's point that you don't want a consumer of `(a,b)`s remains correct whatever streaming abstraction you use |
2023-11-17 00:53:01 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 256 seconds) |
2023-11-17 00:53:08 +0100 | cheater_ | cheater |
2023-11-17 00:55:43 +0100 | haskellbridge | (~haskellbr@069-135-003-034.biz.spectrum.com) (Remote host closed the connection) |
2023-11-17 00:56:25 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Ping timeout: 256 seconds) |
2023-11-17 01:01:47 +0100 | exarkun | (~exarkun@user/exarkun) (Server closed connection) |
2023-11-17 01:03:38 +0100 | exarkun | (~exarkun@user/exarkun) |
2023-11-17 01:14:45 +0100 | maturana | (~maturana@37.218.244.249) |
2023-11-17 01:14:47 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-11-17 01:14:58 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2023-11-17 01:16:07 +0100 | maturana | (~maturana@37.218.244.249) (Client Quit) |
2023-11-17 01:17:16 +0100 | cheater_ | (~Username@user/cheater) |
2023-11-17 01:17:20 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.) |
2023-11-17 01:20:40 +0100 | <hammond> | is the closure in scheme the same as the closure in haskell? |
2023-11-17 01:21:06 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 260 seconds) |
2023-11-17 01:21:13 +0100 | cheater_ | cheater |
2023-11-17 01:23:45 +0100 | cheater_ | (~Username@user/cheater) |
2023-11-17 01:24:05 +0100 | <monochrom> | I'll go on a limb and say yes. :) |
2023-11-17 01:25:08 +0100 | notzmv | (~zmv@user/notzmv) |
2023-11-17 01:28:12 +0100 | <EvanR> | jackdk, extremely <missing word?> core abstraction? |
2023-11-17 01:28:25 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 268 seconds) |
2023-11-17 01:28:38 +0100 | cheater_ | cheater |
2023-11-17 01:29:18 +0100 | cheater_ | (~Username@user/cheater) |
2023-11-17 01:29:19 +0100 | <EvanR> | closure: pass by reference without the passing xD |
2023-11-17 01:29:41 +0100 | <jackdk> | EvanR: sorry, I accidentally a word. I think I wanted "elegant" there; it's not the simplest thing (parameterising the stream by a functor) but adds a lot of power that feels worth the complexity (this gets you proper chunked streaming and streams of individual elements with the same abstraction). |
2023-11-17 01:30:17 +0100 | <EvanR> | nice |
2023-11-17 01:32:29 +0100 | <hammond> | monochrom in scheme you can make a counter function that whenever called increments returns a increased value. because the inner value is encapsulated in the function and stored in heap somewhere. |
2023-11-17 01:32:59 +0100 | <hammond> | and if you have difference instances of the func you can have different incrementers. |
2023-11-17 01:33:21 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 268 seconds) |
2023-11-17 01:33:26 +0100 | cheater_ | cheater |
2023-11-17 01:36:53 +0100 | <hammond> | this example in js https://www.w3schools.com/js/tryit.asp?filename=tryjs_function_closures5 |
2023-11-17 01:37:45 +0100 | <hammond> | since data in haskell is immutable, how is closure... a closure in the sense the js is one. ikd. |
2023-11-17 01:37:46 +0100 | cheater_ | (~Username@user/cheater) |
2023-11-17 01:37:48 +0100 | <monochrom> | I don't know why you are telling me that. But in Haskell the only change is you use an IORef. |
2023-11-17 01:37:48 +0100 | <hammond> | idk* |
2023-11-17 01:38:28 +0100 | <hammond> | hmm |
2023-11-17 01:38:40 +0100 | <monochrom> | Plus, even in the pure fragment, lazy evaluation is a mutation from unevaluated expression to value. |
2023-11-17 01:40:06 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 256 seconds) |
2023-11-17 01:40:12 +0100 | cheater_ | cheater |
2023-11-17 01:40:18 +0100 | <monochrom> | Although, people will debate whether the standard absolutely requires that or is also OK with potentially exp-time call-by-name. (Answer: the latter.) |
2023-11-17 01:40:32 +0100 | dumptruckman | (~dumptruck@23-239-13-136.ip.linodeusercontent.com) (Server closed connection) |
2023-11-17 01:40:42 +0100 | dumptruckman | (~dumptruck@23-239-13-136.ip.linodeusercontent.com) |
2023-11-17 01:40:58 +0100 | Pozyomka | (~pyon@user/pyon) (Quit: brb) |
2023-11-17 01:41:13 +0100 | Pozyomka | (~pyon@user/pyon) |
2023-11-17 01:57:08 +0100 | cheater_ | (~Username@user/cheater) |
2023-11-17 01:58:32 +0100 | robertm | (robertm@lattice.rojoma.com) (Quit: WeeChat 3.8) |
2023-11-17 02:00:24 +0100 | robertm | (robertm@lattice.rojoma.com) |
2023-11-17 02:01:01 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 256 seconds) |
2023-11-17 02:01:05 +0100 | cheater_ | cheater |
2023-11-17 02:04:30 +0100 | tomith | (tomith@85-156-187-17.elisa-laajakaista.fi) (Ping timeout: 268 seconds) |
2023-11-17 02:11:33 +0100 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-11-17 02:12:04 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2023-11-17 02:14:38 +0100 | p3n | (~p3n@217.198.124.246) (Server closed connection) |
2023-11-17 02:14:55 +0100 | p3n | (~p3n@217.198.124.246) |
2023-11-17 02:14:58 +0100 | haskellbridge | (~haskellbr@069-135-003-034.biz.spectrum.com) |
2023-11-17 02:14:58 +0100 | ChanServ | +v haskellbridge |
2023-11-17 02:15:45 +0100 | tomith | (tomith@user/tomith) |
2023-11-17 02:16:44 +0100 | hammond | (proscan@gateway02.insomnia247.nl) (Changing host) |
2023-11-17 02:16:44 +0100 | hammond | (proscan@user/hammond2) |
2023-11-17 02:18:49 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2023-11-17 02:29:41 +0100 | Maxdamantus | (~Maxdamant@user/maxdamantus) (Ping timeout: 240 seconds) |
2023-11-17 02:30:37 +0100 | Maxdamantus | (~Maxdamant@user/maxdamantus) |
2023-11-17 02:34:24 +0100 | <ski> | hammond : in a Scheme with boxen (mutable reference cells) (e.g. Racket) : |
2023-11-17 02:34:37 +0100 | <ski> | (define (make-counter) |
2023-11-17 02:34:54 +0100 | <ski> | (let ((count (box 0))) |
2023-11-17 02:35:01 +0100 | <ski> | (lambda () |
2023-11-17 02:35:17 +0100 | <ski> | (let ((val (unbox count))) |
2023-11-17 02:35:42 +0100 | <ski> | (set-box! count (+ val 1)) |
2023-11-17 02:35:52 +0100 | <ski> | val)))) |
2023-11-17 02:36:19 +0100 | <ski> | in Haskell : |
2023-11-17 02:36:46 +0100 | <ski> | makeCounter :: IO (IO Integer) |
2023-11-17 02:37:01 +0100 | <ski> | makeCounter = do |
2023-11-17 02:37:12 +0100 | <ski> | count <- newIORef 0 |
2023-11-17 02:37:23 +0100 | <ski> | return $ do |
2023-11-17 02:37:40 +0100 | <ski> | val <- readIORef count |
2023-11-17 02:37:56 +0100 | <ski> | writeIORef count (val + 1) |
2023-11-17 02:38:01 +0100 | <ski> | return val |
2023-11-17 02:40:38 +0100 | <hammond> | I see. |
2023-11-17 02:40:41 +0100 | <hammond> | thx ski |
2023-11-17 02:41:35 +0100 | <ski> | it would probably be more common to use mutation of variables in Scheme (no such in Haskell), with `set!', rather than create explicit boxen |
2023-11-17 02:43:21 +0100 | earthy | (~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net) (Ping timeout: 268 seconds) |
2023-11-17 02:43:58 +0100 | <hammond> | ski but the box and unbox are the haskell equivalents right. |
2023-11-17 02:45:11 +0100 | <ski> | of `newIORef' and `readIORef', yes |
2023-11-17 02:46:00 +0100 | <hammond> | cool. thx. |
2023-11-17 02:46:27 +0100 | <hammond> | I think learning scheme is helping me understand haskell better. |
2023-11-17 02:47:11 +0100 | cptaffe | (~cptaffe@user/cptaffe) (Server closed connection) |
2023-11-17 02:47:19 +0100 | <hammond> | like when i was looking at this https://chrisdone.com/posts/haskell-doesnt-have-macros/ |
2023-11-17 02:47:30 +0100 | cptaffe | (~cptaffe@user/cptaffe) |
2023-11-17 02:54:51 +0100 | Maxdamantus | (~Maxdamant@user/maxdamantus) (Ping timeout: 256 seconds) |
2023-11-17 02:54:54 +0100 | cheater_ | (~Username@user/cheater) |
2023-11-17 02:55:31 +0100 | vglfr | (~vglfr@78.26.242.160) (Read error: Connection reset by peer) |
2023-11-17 02:55:44 +0100 | vglfr | (~vglfr@88.155.21.216) |
2023-11-17 02:56:15 +0100 | vglfr | (~vglfr@88.155.21.216) (Read error: Connection reset by peer) |
2023-11-17 02:56:22 +0100 | koz | (~koz@121.99.240.58) (Ping timeout: 246 seconds) |
2023-11-17 02:57:51 +0100 | vglfr | (~vglfr@78.26.242.160) |
2023-11-17 02:59:06 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 260 seconds) |
2023-11-17 02:59:11 +0100 | cheater_ | cheater |
2023-11-17 03:00:42 +0100 | sa1 | (sid7690@id-7690.ilkley.irccloud.com) (Server closed connection) |
2023-11-17 03:00:52 +0100 | sa1 | (sid7690@id-7690.ilkley.irccloud.com) |
2023-11-17 03:01:11 +0100 | koz | (~koz@121.99.240.58) |
2023-11-17 03:01:32 +0100 | bilegeek | (~bilegeek@2600:1008:b041:46b6:dc69:f6ef:64a9:b47f) |
2023-11-17 03:01:40 +0100 | Maxdamantus | (~Maxdamant@user/maxdamantus) |
2023-11-17 03:04:24 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-11-17 03:06:17 +0100 | earthy | (~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net) |
2023-11-17 03:09:51 +0100 | otto_s | (~user@p4ff275a7.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
2023-11-17 03:11:55 +0100 | otto_s | (~user@p4ff27677.dip0.t-ipconnect.de) |
2023-11-17 03:21:30 +0100 | dove | (~irc@2600:3c00:e000:287::1) (Server closed connection) |
2023-11-17 03:21:48 +0100 | dove | (~irc@2600:3c00:e000:287::1) |
2023-11-17 03:23:11 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 03:26:31 +0100 | arkfuture | (~Thunderbi@user/arkfuture) |
2023-11-17 03:30:33 +0100 | xff0x | (~xff0x@2405:6580:b080:900:389:c68e:2e26:10bf) (Ping timeout: 256 seconds) |
2023-11-17 03:33:23 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 256 seconds) |
2023-11-17 03:36:34 +0100 | cheater_ | (~Username@user/cheater) |
2023-11-17 03:37:55 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2023-11-17 03:38:56 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-11-17 03:41:00 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 268 seconds) |
2023-11-17 03:41:02 +0100 | cheater_ | cheater |
2023-11-17 03:44:03 +0100 | cheater_ | (~Username@user/cheater) |
2023-11-17 03:48:07 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 256 seconds) |
2023-11-17 03:48:10 +0100 | cheater_ | cheater |
2023-11-17 03:50:41 +0100 | arkfuture | (~Thunderbi@user/arkfuture) (Quit: arkfuture) |
2023-11-17 03:50:46 +0100 | koz | (~koz@121.99.240.58) (Ping timeout: 245 seconds) |
2023-11-17 03:51:48 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
2023-11-17 03:53:03 +0100 | koz | (~koz@121.99.240.58) |
2023-11-17 03:54:21 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 03:54:21 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 256 seconds) |
2023-11-17 03:58:53 +0100 | Square2 | (~Square4@user/square) (Ping timeout: 256 seconds) |
2023-11-17 04:01:43 +0100 | Maxdamantus | (~Maxdamant@user/maxdamantus) (Ping timeout: 256 seconds) |
2023-11-17 04:02:17 +0100 | Maxdamantus | (~Maxdamant@user/maxdamantus) |
2023-11-17 04:03:24 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
2023-11-17 04:06:34 +0100 | qqq | (~qqq@92.43.167.61) (Remote host closed the connection) |
2023-11-17 04:13:33 +0100 | andjjj23 | (~irc@107.170.228.47) (Server closed connection) |
2023-11-17 04:13:51 +0100 | andjjj23 | (~irc@107.170.228.47) |
2023-11-17 04:14:11 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer) |
2023-11-17 04:14:11 +0100 | vglfr | (~vglfr@78.26.242.160) (Read error: Connection reset by peer) |
2023-11-17 04:14:24 +0100 | vglfr | (~vglfr@88.155.21.216) |
2023-11-17 04:16:46 +0100 | vilya | (~vilya@user/vilya) (Ping timeout: 268 seconds) |
2023-11-17 04:17:16 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 04:17:55 +0100 | vilya | (~vilya@user/vilya) |
2023-11-17 04:18:14 +0100 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
2023-11-17 04:19:20 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:2945:3959:f06e:7711) (Remote host closed the connection) |
2023-11-17 04:19:34 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:2945:3959:f06e:7711) |
2023-11-17 04:20:28 +0100 | td_ | (~td@i53870904.versanet.de) (Ping timeout: 268 seconds) |
2023-11-17 04:21:10 +0100 | vglfr | (~vglfr@88.155.21.216) (Read error: Connection reset by peer) |
2023-11-17 04:22:03 +0100 | td_ | (~td@i5387092c.versanet.de) |
2023-11-17 04:22:56 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 268 seconds) |
2023-11-17 04:23:06 +0100 | vglfr | (~vglfr@78.26.242.160) |
2023-11-17 04:24:10 +0100 | conjunctive | (sid433686@id-433686.helmsley.irccloud.com) (Server closed connection) |
2023-11-17 04:24:16 +0100 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2023-11-17 04:24:16 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2023-11-17 04:24:16 +0100 | finn_elija | FinnElija |
2023-11-17 04:24:20 +0100 | conjunctive | (sid433686@id-433686.helmsley.irccloud.com) |
2023-11-17 04:27:47 +0100 | erty | (~user@user/aeroplane) (Ping timeout: 256 seconds) |
2023-11-17 04:28:36 +0100 | noctux | (~noctux@user/noctux) (Ping timeout: 246 seconds) |
2023-11-17 04:29:29 +0100 | Benzi-Junior | (~BenziJuni@88-149-64-112.du.xdsl.is) (Server closed connection) |
2023-11-17 04:29:50 +0100 | Benzi-Junior | (~BenziJuni@88-149-64-112.du.xdsl.is) |
2023-11-17 04:30:59 +0100 | noctux | (~noctux@user/noctux) |
2023-11-17 04:31:29 +0100 | hippoid | (~hippoid@c-98-213-162-40.hsd1.il.comcast.net) (Changing host) |
2023-11-17 04:31:29 +0100 | hippoid | (~hippoid@user/hippoid) |
2023-11-17 04:38:15 +0100 | rosco | (~rosco@175.136.157.149) |
2023-11-17 04:41:33 +0100 | terrorjack | (~terrorjac@2a01:4f8:c17:87f8::) (Quit: The Lounge - https://thelounge.chat) |
2023-11-17 04:42:30 +0100 | terrorjack | (~terrorjac@2a01:4f8:c17:87f8::) |
2023-11-17 04:45:26 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 04:53:37 +0100 | Vq | (~vq@90-225-115-195-no122.tbcn.telia.com) (Server closed connection) |
2023-11-17 04:53:47 +0100 | Vq | (~vq@90-225-115-195-no122.tbcn.telia.com) |
2023-11-17 04:54:47 +0100 | T_S____ | (sid501726@id-501726.uxbridge.irccloud.com) (Server closed connection) |
2023-11-17 04:55:04 +0100 | T_S____ | (sid501726@id-501726.uxbridge.irccloud.com) |
2023-11-17 04:56:51 +0100 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-11-17 04:57:46 +0100 | img | (~img@user/img) |
2023-11-17 05:00:58 +0100 | vilya | (~vilya@user/vilya) (Read error: Connection reset by peer) |
2023-11-17 05:06:15 +0100 | vilya | (~vilya@user/vilya) |
2023-11-17 05:09:33 +0100 | aforemny_ | (~aforemny@2001:9e8:6cfd:dc00:140c:ed35:bfe1:eaed) |
2023-11-17 05:10:45 +0100 | aforemny | (~aforemny@2001:9e8:6cd7:8c00:47af:9d09:fce9:5fc4) (Ping timeout: 245 seconds) |
2023-11-17 05:10:51 +0100 | hugo | (znc@quicksilver.lysator.liu.se) (Server closed connection) |
2023-11-17 05:11:10 +0100 | hugo | (znc@quicksilver.lysator.liu.se) |
2023-11-17 05:11:58 +0100 | billchenchina | (~billchenc@103.152.35.21) |
2023-11-17 05:12:24 +0100 | <lockywolf> | Scheme now has boxes |
2023-11-17 05:17:42 +0100 | dsrt^ | (~cd@c-98-242-74-66.hsd1.ga.comcast.net) |
2023-11-17 05:19:13 +0100 | ivelten | (~ivelten@38.252.84.3) (Quit: Textual IRC Client: www.textualapp.com) |
2023-11-17 05:23:59 +0100 | euleritian | (~euleritia@dynamic-002-247-251-218.2.247.pool.telefonica.de) (Read error: Connection reset by peer) |
2023-11-17 05:24:17 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-11-17 05:25:10 +0100 | buhman | (sid411355@user/buhman) (Server closed connection) |
2023-11-17 05:25:25 +0100 | buhman | (sid411355@user/buhman) |
2023-11-17 05:26:39 +0100 | bilegeek_ | (~bilegeek@2600:1008:b01b:b030:16e8:c80e:af15:b9f5) |
2023-11-17 05:28:26 +0100 | cheater_ | (~Username@user/cheater) |
2023-11-17 05:29:32 +0100 | bilegeek | (~bilegeek@2600:1008:b041:46b6:dc69:f6ef:64a9:b47f) (Ping timeout: 268 seconds) |
2023-11-17 05:29:34 +0100 | <EvanR> | haskell doesn't have macros, but it has template haskell |
2023-11-17 05:30:41 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 256 seconds) |
2023-11-17 05:30:51 +0100 | cheater_ | cheater |
2023-11-17 05:32:51 +0100 | robobub | (uid248673@id-248673.uxbridge.irccloud.com) (Server closed connection) |
2023-11-17 05:34:25 +0100 | robobub | (uid248673@id-248673.uxbridge.irccloud.com) |
2023-11-17 05:34:30 +0100 | glowcoil | (sid3405@id-3405.tinside.irccloud.com) (Server closed connection) |
2023-11-17 05:34:43 +0100 | glowcoil | (sid3405@id-3405.tinside.irccloud.com) |
2023-11-17 05:37:34 +0100 | Adeon | (sid418992@id-418992.lymington.irccloud.com) (Server closed connection) |
2023-11-17 05:37:43 +0100 | Adeon | (sid418992@id-418992.lymington.irccloud.com) |
2023-11-17 05:45:40 +0100 | <c_wraith> | also... GHC does have macros. That work sort of badly because the C pre-processor makes assumptions about tokens in the source that haskell can violate |
2023-11-17 05:45:59 +0100 | erty | (~user@user/aeroplane) |
2023-11-17 05:46:24 +0100 | <c_wraith> | But if you want to control things Template Haskell doesn't give you access to, they're an option |
2023-11-17 05:48:32 +0100 | <EvanR> | level 1: haskell, level 2: template haskell, level 3: C pre-processor, level 4: bonkers turing complete C pre-processor metaprogramming |
2023-11-17 05:48:47 +0100 | <monochrom> | Wait, we are now chorussing about Scheme adding everything Haskell has, and Haskell is lacking everything that Scheme has. >:) |
2023-11-17 05:48:48 +0100 | <EvanR> | level 5: scheme generating the above |
2023-11-17 05:49:16 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 268 seconds) |
2023-11-17 05:49:27 +0100 | <monochrom> | That is a very meta level. >:) |
2023-11-17 05:49:44 +0100 | <c_wraith> | You missed the part where ghc can run arbitrary programs as pre-processors |
2023-11-17 05:49:55 +0100 | <EvanR> | I did not even know that |
2023-11-17 05:50:20 +0100 | <monochrom> | You can reply with "Scheme can run arbitrary language interpreters" >:) |
2023-11-17 05:51:46 +0100 | <c_wraith> | it's -pgfmF to specify an arbitrary pre-processor |
2023-11-17 05:51:57 +0100 | <c_wraith> | err. -pgmF |
2023-11-17 05:52:04 +0100 | <c_wraith> | got excited hitting buttons |
2023-11-17 05:52:59 +0100 | <c_wraith> | https://ghc.gitlab.haskell.org/ghc/doc/users_guide/phases.html#pre-processor |
2023-11-17 05:54:05 +0100 | <EvanR> | the worst explanation of how macros differ from normal functions: macros generate source code |
2023-11-17 05:54:42 +0100 | <EvanR> | because... then it's not *source* code |
2023-11-17 05:56:08 +0100 | <EvanR> | the true source being some kolmogorov minimal thing |
2023-11-17 05:56:43 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 05:57:24 +0100 | bilegeek_ | (~bilegeek@2600:1008:b01b:b030:16e8:c80e:af15:b9f5) (Quit: Leaving) |
2023-11-17 05:59:29 +0100 | <monochrom> | I don't think it's worst. |
2023-11-17 05:59:40 +0100 | <monochrom> | But how would you explain it? |
2023-11-17 06:01:10 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
2023-11-17 06:01:21 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 246 seconds) |
2023-11-17 06:04:00 +0100 | rosco | (~rosco@175.136.157.149) (Quit: Lost terminal) |
2023-11-17 06:04:39 +0100 | <erty> | I've tried to compare haskell and javascript side-by-side by running same algo. Algo sums integers in a list. Haskell took 0.2s and js took 0.6s. |
2023-11-17 06:04:45 +0100 | <erty> | Haskell [http://ix.io/4LIN] Js [http://ix.io/4LIO] |
2023-11-17 06:08:04 +0100 | <erty> | the algo is the one that ski mentioned yesterday |
2023-11-17 06:08:17 +0100 | <EvanR> | I could probably compile the relevant haskell and relevant javascript by hand to something which is much faster, and also (un)coincidentally equal |
2023-11-17 06:08:51 +0100 | trev | (~trev@user/trev) |
2023-11-17 06:09:02 +0100 | <EvanR> | implementing the sufficiently smart compiler |
2023-11-17 06:10:09 +0100 | <c_wraith> | erty: Is it intentional that you're depending on the compiler to notice and fix the performance problems in the Haskell code? (It probably will, but it's just generally better to write fast code than hope the compiler fixes slow code) |
2023-11-17 06:12:05 +0100 | <erty> | c_wraith: I would love to know about how can I write something faster than that code |
2023-11-17 06:12:11 +0100 | drdo | (~drdo@bl14-14-49.dsl.telepac.pt) (Server closed connection) |
2023-11-17 06:12:35 +0100 | drdo | (~drdo@bl14-14-49.dsl.telepac.pt) |
2023-11-17 06:12:58 +0100 | <c_wraith> | erty: well, the compiler is probably fixing the issue such that it won't matter if you change to something faster. The question is if you want to write code the compiler doesn't have to fix |
2023-11-17 06:15:24 +0100 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) |
2023-11-17 06:16:03 +0100 | billchenchina | (~billchenc@103.152.35.21) (Ping timeout: 246 seconds) |
2023-11-17 06:16:40 +0100 | <c_wraith> | erty: fascinatingly... It doesn't give me the same output you see. Are you running on a 32-bit machine and overflowing Int? |
2023-11-17 06:16:40 +0100 | rosco | (~rosco@175.136.157.149) |
2023-11-17 06:17:39 +0100 | cheater_ | (~Username@user/cheater) |
2023-11-17 06:18:01 +0100 | <c_wraith> | erty: interestingly, I actually do see about a 90% reduction in runtime if I change the implementation of sumIt to (foldl' (+) 0) |
2023-11-17 06:21:15 +0100 | tomku | (~tomku@user/tomku) (Server closed connection) |
2023-11-17 06:21:23 +0100 | <c_wraith> | Hmm. foldl' might be cheating... It's fusing, when none of the other implementations I've tested get to. |
2023-11-17 06:21:29 +0100 | tomku | (~tomku@user/tomku) |
2023-11-17 06:21:39 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 268 seconds) |
2023-11-17 06:21:45 +0100 | cheater_ | cheater |
2023-11-17 06:22:25 +0100 | <erty> | c_wraith: Sorry for late reply. Yeah my M/C is a bit old. But while writing code, do we have to writing something that compiler won't have to fix |
2023-11-17 06:23:36 +0100 | billchenchina | (~billchenc@103.152.35.21) |
2023-11-17 06:24:02 +0100 | <erty> | When you say "you want to write code the compiler doesn't have to fix", are you talking interms of haskell or javascript |
2023-11-17 06:24:10 +0100 | <c_wraith> | Haskell |
2023-11-17 06:24:27 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 06:24:55 +0100 | <c_wraith> | erty: import Data.List and then try sumIt = foldl' (+) 0 |
2023-11-17 06:25:40 +0100 | <c_wraith> | erty: though now I'm curious what compiler (and version) you're using for Haskell |
2023-11-17 06:26:00 +0100 | <erty> | ok, I remember yesterday mauke introduced me to `!` operator that I can use to avoid unbounded space problem (sumPlus !acc (x:xs) = sumPlus (acc+x) xs). |
2023-11-17 06:26:15 +0100 | <erty> | Is that how your write code that compiler wont fix |
2023-11-17 06:26:27 +0100 | <c_wraith> | yes, that's what I was referring to |
2023-11-17 06:27:06 +0100 | <c_wraith> | But it turns out on more recent version of GHC, the fact that foldl' can fuse means it can run in about 90% less time |
2023-11-17 06:27:07 +0100 | <erty> | yeah, I ran the code with and without `!` for input [1..10089850] and |
2023-11-17 06:27:46 +0100 | <erty> | there was a difference of whopping 15 seconds when I executed |
2023-11-17 06:28:02 +0100 | <c_wraith> | ok, now I'm *super* curious what compiler you're on |
2023-11-17 06:28:08 +0100 | <c_wraith> | Are you using hugs or something? |
2023-11-17 06:28:15 +0100 | michalz | (~michalz@185.246.207.221) |
2023-11-17 06:28:38 +0100 | <c_wraith> | (ok, I think hugs is only an interpreter, but whatever) |
2023-11-17 06:29:14 +0100 | <erty> | c_wraith: How can I check that. I use runghc to execute code |
2023-11-17 06:29:21 +0100 | billchenchina | (~billchenc@103.152.35.21) (Ping timeout: 246 seconds) |
2023-11-17 06:29:29 +0100 | <c_wraith> | oh. you're using GHC as an interpreter. Ok, that explains the performance |
2023-11-17 06:29:32 +0100 | <erty> | time runghc tobe exact |
2023-11-17 06:29:51 +0100 | <c_wraith> | what does ghc --version report? |
2023-11-17 06:30:02 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2023-11-17 06:30:10 +0100 | <erty> | this->`The Glorious Glasgow Haskell Compilation System, version 9.2.4` |
2023-11-17 06:30:19 +0100 | <c_wraith> | Relatively recent, then. |
2023-11-17 06:30:30 +0100 | <monochrom> | Well, runghc is a fair comparison with a js interpreter >:) |
2023-11-17 06:30:34 +0100 | <c_wraith> | Ok. To do any serious performance testing, you should be compiling your code |
2023-11-17 06:31:20 +0100 | <erty> | with stack build? |
2023-11-17 06:31:29 +0100 | <c_wraith> | you can just use ghc directly |
2023-11-17 06:31:42 +0100 | <c_wraith> | that's what I've been doing. ghc -O2 filename.hs |
2023-11-17 06:31:56 +0100 | <c_wraith> | and then time ./filename |
2023-11-17 06:32:44 +0100 | <erty> | ok now it shows 0.014s |
2023-11-17 06:33:13 +0100 | <c_wraith> | that's much more in line with what I'd expect |
2023-11-17 06:33:24 +0100 | <c_wraith> | But now try an implementation that uses foldl' (+) 0 |
2023-11-17 06:34:55 +0100 | <monochrom> | OK, here is what I have found testing on 9.2 and 9.4, with -O and looking at core. |
2023-11-17 06:35:35 +0100 | <monochrom> | 1. with "sumPlus acc (x:xs) = sumPlus (acc+x) xs", even though without seq or !, the compiler acts as though it adds seq for me. |
2023-11-17 06:35:49 +0100 | <monochrom> | 2. There is no difference between foldl and foldl' |
2023-11-17 06:36:39 +0100 | <c_wraith> | demand analysis figures those out. I don't like to depend on compiler magic to get it right |
2023-11-17 06:36:46 +0100 | <monochrom> | I am actually pretty surprised. This is new behaviour. Now everything I teach (read: scaremonger) my students is false. :( :) |
2023-11-17 06:37:19 +0100 | <erty> | c_wraith: results are approximately same for me: 0.016s with foldl |
2023-11-17 06:37:19 +0100 | <monochrom> | I am sitting on a fencing for that. |
2023-11-17 06:37:51 +0100 | <monochrom> | Just 20 years ago, C people were like "write 'register int x;' yourself, don't rely on compiler magic" too. |
2023-11-17 06:38:19 +0100 | <monochrom> | (Today, don't write it yourself, you will almost always make the dumbest decision.) |
2023-11-17 06:38:40 +0100 | <c_wraith> | Turns out strictness is a lot bigger-picture than register allocation |
2023-11-17 06:39:26 +0100 | <c_wraith> | erty: I'm surprised the performance isn't roughly an order of magnitude faster thanks to fusion optimizations... |
2023-11-17 06:41:20 +0100 | <[Leary]> | I suspect some literals are defaulting to Integer. |
2023-11-17 06:41:35 +0100 | billchenchina | (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) |
2023-11-17 06:42:16 +0100 | <c_wraith> | Oh, right. Never did solve why erty's thing is showing the wrong answer |
2023-11-17 06:42:19 +0100 | <monochrom> | No, there is no Integer in core. In fact, not even Int. It has 8373# directly. |
2023-11-17 06:42:34 +0100 | chomwitt | (~chomwitt@2a02:587:7a03:f500:1ac0:4dff:fedb:a3f1) |
2023-11-17 06:42:35 +0100 | <c_wraith> | Oh, it doesn't. I copied the wrong number |
2023-11-17 06:42:37 +0100 | <c_wraith> | hah |
2023-11-17 06:43:11 +0100 | <erty> | c_wraith: My bad, I was using smaller input. With biiger input size, it took my sumIt function took 0.252s and your foldl took 0.126s |
2023-11-17 06:43:18 +0100 | <c_wraith> | there, now it's down to the smallest time unit time can report |
2023-11-17 06:43:44 +0100 | <c_wraith> | obviously, this is a use case for criterion. :) |
2023-11-17 06:44:03 +0100 | <monochrom> | c_wraith: Were you looking at the commented-out code and using 10089850? :) |
2023-11-17 06:44:08 +0100 | <c_wraith> | yep |
2023-11-17 06:44:51 +0100 | <monochrom> | I was alerted to that only because I also took a look at the js code and saw comments about "can't test bigger input because stack overflow". |
2023-11-17 06:45:09 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 06:45:28 +0100 | <c_wraith> | haha. yes, JS engines tend to be bad at recursion |
2023-11-17 06:46:00 +0100 | SethTisue | (sid14912@id-14912.ilkley.irccloud.com) (Server closed connection) |
2023-11-17 06:46:04 +0100 | <erty> | js errors when give it input sizw of 8374 |
2023-11-17 06:46:08 +0100 | SethTisue | (sid14912@id-14912.ilkley.irccloud.com) |
2023-11-17 06:50:01 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 256 seconds) |
2023-11-17 06:51:58 +0100 | ddellacosta | (~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 260 seconds) |
2023-11-17 06:52:05 +0100 | sand-witch | (~m-mzmz6l@vmi833741.contaboserver.net) (Server closed connection) |
2023-11-17 06:52:22 +0100 | sand-witch | (~m-mzmz6l@vmi833741.contaboserver.net) |
2023-11-17 06:54:33 +0100 | cln_ | (cln@wtf.cx) (Server closed connection) |
2023-11-17 06:54:50 +0100 | cln_ | (cln@wtf.cx) |
2023-11-17 07:00:23 +0100 | thegeekinside | (~thegeekin@189.180.53.210) (Remote host closed the connection) |
2023-11-17 07:04:09 +0100 | ddellacosta | (~ddellacos@ool-44c738de.dyn.optonline.net) |
2023-11-17 07:08:13 +0100 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
2023-11-17 07:10:34 +0100 | Natch| | (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Server closed connection) |
2023-11-17 07:10:46 +0100 | zetef | (~quassel@95.77.17.251) |
2023-11-17 07:10:51 +0100 | rosco | (~rosco@175.136.157.149) (Quit: Lost terminal) |
2023-11-17 07:11:47 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 07:11:58 +0100 | erty | (~user@user/aeroplane) (ERC 5.4 (IRC client for GNU Emacs 28.2)) |
2023-11-17 07:15:52 +0100 | Natch | (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) |
2023-11-17 07:19:01 +0100 | cheater_ | (~Username@user/cheater) |
2023-11-17 07:19:03 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
2023-11-17 07:21:11 +0100 | lottaquestions | (~nick@2607:fa49:503d:b200:6f8c:dc97:9c02:d6b9) (Quit: Konversation terminated!) |
2023-11-17 07:21:26 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 07:21:33 +0100 | lottaquestions | (~nick@2607:fa49:503d:b200:103e:31e4:ac33:5629) |
2023-11-17 07:22:56 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 256 seconds) |
2023-11-17 07:22:59 +0100 | cheater_ | cheater |
2023-11-17 07:23:27 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2023-11-17 07:25:03 +0100 | amir | (sid22336@user/amir) (Server closed connection) |
2023-11-17 07:25:12 +0100 | amir | (sid22336@user/amir) |
2023-11-17 07:26:17 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 256 seconds) |
2023-11-17 07:26:35 +0100 | lottaquestions | (~nick@2607:fa49:503d:b200:103e:31e4:ac33:5629) (Read error: Connection reset by peer) |
2023-11-17 07:27:01 +0100 | lottaquestions | (~nick@2607:fa49:503d:b200:103e:31e4:ac33:5629) |
2023-11-17 07:30:12 +0100 | user2 | (~user@162.255.84.96) (Server closed connection) |
2023-11-17 07:30:34 +0100 | user2 | (~user@162.255.84.96) |
2023-11-17 07:31:59 +0100 | lottaquestions | (~nick@2607:fa49:503d:b200:103e:31e4:ac33:5629) (Quit: Konversation terminated!) |
2023-11-17 07:32:22 +0100 | lottaquestions | (~nick@2607:fa49:503d:b200:103e:31e4:ac33:5629) |
2023-11-17 07:32:33 +0100 | red-snail | (~snail@static.151.210.203.116.clients.your-server.de) (Server closed connection) |
2023-11-17 07:34:26 +0100 | red-snail | (~snail@static.151.210.203.116.clients.your-server.de) |
2023-11-17 07:34:51 +0100 | lottaquestions | (~nick@2607:fa49:503d:b200:103e:31e4:ac33:5629) (Client Quit) |
2023-11-17 07:35:13 +0100 | lottaquestions | (~nick@2607:fa49:503d:b200:103e:31e4:ac33:5629) |
2023-11-17 07:35:29 +0100 | kraftwerk28 | (~kraftwerk@164.92.219.160) (Server closed connection) |
2023-11-17 07:35:43 +0100 | kraftwerk28 | (~kraftwerk@164.92.219.160) |
2023-11-17 07:37:02 +0100 | opus | (~nil@user/opus) (Server closed connection) |
2023-11-17 07:38:49 +0100 | opus | (~nil@user/opus) |
2023-11-17 07:43:36 +0100 | vglfr | (~vglfr@78.26.242.160) (Read error: Connection reset by peer) |
2023-11-17 07:44:25 +0100 | vglfr | (~vglfr@78.26.242.160) |
2023-11-17 07:45:29 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 07:50:38 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 252 seconds) |
2023-11-17 07:53:27 +0100 | nonzen | (~nonzen@user/nonzen) (Server closed connection) |
2023-11-17 07:53:43 +0100 | nonzen | (~nonzen@user/nonzen) |
2023-11-17 07:54:45 +0100 | zetef | (~quassel@95.77.17.251) (Ping timeout: 246 seconds) |
2023-11-17 07:55:37 +0100 | zetef | (~quassel@95.77.17.251) |
2023-11-17 07:56:33 +0100 | mankyKitty | (sid31287@id-31287.helmsley.irccloud.com) (Server closed connection) |
2023-11-17 07:56:42 +0100 | mankyKitty | (sid31287@id-31287.helmsley.irccloud.com) |
2023-11-17 07:56:56 +0100 | acidjnk | (~acidjnk@p200300d6e72b9321349e196aee999b14.dip0.t-ipconnect.de) |
2023-11-17 07:57:24 +0100 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2023-11-17 07:57:25 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-11-17 07:57:33 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-11-17 07:58:44 +0100 | foul_owl | (~kerry@185.219.141.164) (Server closed connection) |
2023-11-17 07:59:09 +0100 | foul_owl | (~kerry@185.219.141.164) |
2023-11-17 08:05:14 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
2023-11-17 08:05:43 +0100 | euleritian | (~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de) |
2023-11-17 08:12:07 +0100 | misterfish | (~misterfis@84-53-85-146.bbserv.nl) |
2023-11-17 08:17:13 +0100 | turlando | (~turlando@user/turlando) (Server closed connection) |
2023-11-17 08:17:29 +0100 | turlando | (~turlando@user/turlando) |
2023-11-17 08:18:53 +0100 | vgtw_ | (~vgtw@user/vgtw) (Server closed connection) |
2023-11-17 08:19:26 +0100 | <probie> | How can I tell cabal to statically link a c library without getting a warning? If I have `cc-options: -l:libfoo.a` I get warning saying to use `extra-libraries: :libfoo.a`, but that doesn't work |
2023-11-17 08:19:44 +0100 | vgtw | (~vgtw@user/vgtw) |
2023-11-17 08:19:58 +0100 | hrberg | (~quassel@171.79-160-161.customer.lyse.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2023-11-17 08:20:03 +0100 | Ram-Z | (Ram-Z@2a01:7e01::f03c:91ff:fe57:d2df) (Server closed connection) |
2023-11-17 08:20:17 +0100 | hrberg | (~quassel@171.79-160-161.customer.lyse.net) |
2023-11-17 08:20:27 +0100 | Ram-Z | (Ram-Z@2a01:7e01::f03c:91ff:fe57:d2df) |
2023-11-17 08:28:56 +0100 | Simikando | (~Simikando@adsl-dyn216.91-127-84.t-com.sk) |
2023-11-17 08:34:16 +0100 | ddb | (ddb@tilde.club) (Server closed connection) |
2023-11-17 08:34:35 +0100 | ddb | (ddb@tilde.club) |
2023-11-17 08:34:47 +0100 | yahb2 | (~yahb2@2a01:4f8:c0c:5c7b::2) (Server closed connection) |
2023-11-17 08:35:09 +0100 | yahb2 | (~yahb2@2a01:4f8:c0c:5c7b::2) |
2023-11-17 08:35:09 +0100 | ChanServ | +v yahb2 |
2023-11-17 08:38:49 +0100 | zetef | (~quassel@95.77.17.251) (Ping timeout: 256 seconds) |
2023-11-17 08:41:55 +0100 | lhpitn | (~tn@mail.lebenshilfe-pi.de) |
2023-11-17 08:43:01 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 08:47:11 +0100 | MironZ | (~MironZ@nat-infra.ehlab.uk) (Server closed connection) |
2023-11-17 08:47:30 +0100 | MironZ | (~MironZ@nat-infra.ehlab.uk) |
2023-11-17 08:48:10 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2023-11-17 08:49:45 +0100 | dsal | (sid13060@id-13060.lymington.irccloud.com) (Server closed connection) |
2023-11-17 08:49:54 +0100 | dsal | (sid13060@id-13060.lymington.irccloud.com) |
2023-11-17 08:51:08 +0100 | cheater_ | (~Username@user/cheater) |
2023-11-17 08:51:16 +0100 | lortabac | (~lorenzo@2a01:e0a:541:b8f0:9ab2:6651:31a9:442a) |
2023-11-17 08:53:25 +0100 | zetef | (~quassel@95.77.17.251) |
2023-11-17 08:54:10 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2023-11-17 08:55:15 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 256 seconds) |
2023-11-17 08:55:24 +0100 | cheater_ | cheater |
2023-11-17 08:56:05 +0100 | kaol | (~kaol@94-237-42-30.nl-ams1.upcloud.host) (Server closed connection) |
2023-11-17 08:56:12 +0100 | kaol | (~kaol@94-237-42-30.nl-ams1.upcloud.host) |
2023-11-17 08:58:08 +0100 | cheater_ | (~Username@user/cheater) |
2023-11-17 09:01:40 +0100 | oo_miguel | (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) |
2023-11-17 09:01:51 +0100 | pie_ | (~pie_bnc@user/pie/x-2818909) (Server closed connection) |
2023-11-17 09:02:02 +0100 | pie_ | (~pie_bnc@user/pie/x-2818909) |
2023-11-17 09:02:10 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 260 seconds) |
2023-11-17 09:02:15 +0100 | cheater_ | cheater |
2023-11-17 09:04:21 +0100 | fendor | (~fendor@2a02:8388:1640:be00:2528:5dc7:a36e:9b87) |
2023-11-17 09:14:41 +0100 | <sclv> | drop the colon before libfoo.a ? |
2023-11-17 09:15:17 +0100 | Simikando | (~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Ping timeout: 240 seconds) |
2023-11-17 09:16:48 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 09:18:27 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:2945:3959:f06e:7711) (Remote host closed the connection) |
2023-11-17 09:19:05 +0100 | cheater_ | (~Username@user/cheater) |
2023-11-17 09:19:52 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 268 seconds) |
2023-11-17 09:20:01 +0100 | cheater_ | cheater |
2023-11-17 09:20:53 +0100 | Buliarous | (~gypsydang@46.232.210.139) (Server closed connection) |
2023-11-17 09:21:56 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 252 seconds) |
2023-11-17 09:23:02 +0100 | CiaoSen | (~Jura@2a05:5800:283:dc00:2a3a:4dff:fe84:dbd5) |
2023-11-17 09:25:43 +0100 | zetef | (~quassel@95.77.17.251) (Ping timeout: 268 seconds) |
2023-11-17 09:30:20 +0100 | Simikando | (~Simikando@adsl-dyn216.91-127-84.t-com.sk) |
2023-11-17 09:31:54 +0100 | bsima | (~bsima@143.198.118.179) (Server closed connection) |
2023-11-17 09:32:14 +0100 | bsima | (~bsima@143.198.118.179) |
2023-11-17 09:38:05 +0100 | sagax | (~sagax_nb@user/sagax) |
2023-11-17 09:39:53 +0100 | swistak | (~swistak@185.21.216.141) (Server closed connection) |
2023-11-17 09:40:09 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 09:40:10 +0100 | swistak | (~swistak@185.21.216.141) |
2023-11-17 09:40:53 +0100 | gmg | (~user@user/gehmehgeh) |
2023-11-17 09:43:59 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds) |
2023-11-17 09:45:03 +0100 | Adran | (~adran@botters/adran) (Server closed connection) |
2023-11-17 09:45:27 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 268 seconds) |
2023-11-17 09:48:02 +0100 | Pickchea | (~private@user/pickchea) |
2023-11-17 09:48:09 +0100 | Adran | (~adran@botters/adran) |
2023-11-17 09:50:00 +0100 | vpan | (~vpan@mail.elitnet.lt) |
2023-11-17 09:52:34 +0100 | zetef | (~quassel@95.77.17.251) |
2023-11-17 09:53:36 +0100 | Putonlalla | (~Putonlall@it-cyan.it.jyu.fi) (Server closed connection) |
2023-11-17 09:54:09 +0100 | Putonlalla | (~Putonlall@it-cyan.it.jyu.fi) |
2023-11-17 09:56:22 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:2945:3959:f06e:7711) |
2023-11-17 09:56:33 +0100 | Simikando | (~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Ping timeout: 268 seconds) |
2023-11-17 09:59:59 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 10:04:40 +0100 | chele | (~chele@user/chele) |
2023-11-17 10:04:56 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 245 seconds) |
2023-11-17 10:07:13 +0100 | cheater_ | (~Username@user/cheater) |
2023-11-17 10:08:55 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 256 seconds) |
2023-11-17 10:08:59 +0100 | cheater_ | cheater |
2023-11-17 10:10:39 +0100 | bcksl | (~bcksl@user/bcksl) (Server closed connection) |
2023-11-17 10:10:58 +0100 | Simikando | (~Simikando@adsl-dyn216.91-127-84.t-com.sk) |
2023-11-17 10:12:52 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2023-11-17 10:13:13 +0100 | cheater_ | (~Username@user/cheater) |
2023-11-17 10:14:02 +0100 | bcksl | (~bcksl@user/bcksl) |
2023-11-17 10:14:23 +0100 | juri__ | (~juri@79.140.115.129) |
2023-11-17 10:14:30 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:2945:3959:f06e:7711) (Ping timeout: 245 seconds) |
2023-11-17 10:14:55 +0100 | coot | (~coot@89-69-206-216.dynamic.chello.pl) |
2023-11-17 10:15:27 +0100 | juri_ | (~juri@84-19-175-187.pool.ovpn.com) (Ping timeout: 246 seconds) |
2023-11-17 10:17:22 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 260 seconds) |
2023-11-17 10:17:30 +0100 | cheater_ | cheater |
2023-11-17 10:19:30 +0100 | cstml | (~cstml@user/cstml) |
2023-11-17 10:19:59 +0100 | juri__ | (~juri@79.140.115.129) (Ping timeout: 268 seconds) |
2023-11-17 10:20:00 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 10:20:30 +0100 | juri_ | (~juri@84-19-175-187.pool.ovpn.com) |
2023-11-17 10:21:35 +0100 | Simikando | (~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Ping timeout: 245 seconds) |
2023-11-17 10:24:46 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2023-11-17 10:29:29 +0100 | cheater_ | (~Username@user/cheater) |
2023-11-17 10:31:41 +0100 | zetef | (~quassel@95.77.17.251) (Ping timeout: 240 seconds) |
2023-11-17 10:33:00 +0100 | tzh | (~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz) |
2023-11-17 10:33:10 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 260 seconds) |
2023-11-17 10:33:54 +0100 | cjay | (cjay@nerdbox.nerd2nerd.org) (Server closed connection) |
2023-11-17 10:34:02 +0100 | cjay | (cjay@nerdbox.nerd2nerd.org) |
2023-11-17 10:34:10 +0100 | cheater_ | (~Username@user/cheater) (Ping timeout: 268 seconds) |
2023-11-17 10:34:33 +0100 | cheater_ | (~Username@user/cheater) |
2023-11-17 10:34:33 +0100 | cheater_ | cheater |
2023-11-17 10:37:12 +0100 | mrmr15535 | (~mrmr@user/mrmr) |
2023-11-17 10:38:49 +0100 | mrmr1553 | (~mrmr@user/mrmr) (Ping timeout: 260 seconds) |
2023-11-17 10:38:50 +0100 | mrmr15535 | mrmr1553 |
2023-11-17 10:38:58 +0100 | rosco | (~rosco@175.136.157.149) |
2023-11-17 10:40:32 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2023-11-17 10:43:42 +0100 | lockywolf_ | (~lockywolf@public.lockywolf.net) |
2023-11-17 10:44:29 +0100 | lockywolf | (~lockywolf@public.lockywolf.net) (Ping timeout: 240 seconds) |
2023-11-17 10:50:48 +0100 | Simikando | (~Simikando@adsl-dyn216.91-127-84.t-com.sk) |
2023-11-17 10:51:59 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2023-11-17 10:51:59 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Read error: Connection reset by peer) |
2023-11-17 10:52:22 +0100 | idgaen | (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-11-17 10:52:58 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 10:54:29 +0100 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2023-11-17 10:56:45 +0100 | Simikando | (~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Ping timeout: 246 seconds) |
2023-11-17 10:58:25 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 276 seconds) |
2023-11-17 10:58:53 +0100 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2023-11-17 10:59:58 +0100 | dunj3 | (~dunj3@kingdread.de) (Server closed connection) |
2023-11-17 11:00:08 +0100 | dunj3 | (~dunj3@kingdread.de) |
2023-11-17 11:07:55 +0100 | ft | (~ft@p508db3bc.dip0.t-ipconnect.de) (Quit: leaving) |
2023-11-17 11:11:52 +0100 | Jackneill | (~Jackneill@20014C4E1E1AA20011D4085FBCF3F922.dsl.pool.telekom.hu) |
2023-11-17 11:13:37 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2023-11-17 11:13:47 +0100 | zetef | (~quassel@95.77.17.251) |
2023-11-17 11:14:42 +0100 | econo_ | (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
2023-11-17 11:15:02 +0100 | danse-nr3 | (~danse@151.35.108.169) |
2023-11-17 11:22:21 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-11-17 11:25:09 +0100 | Simikando | (~Simikando@adsl-dyn216.91-127-84.t-com.sk) |
2023-11-17 11:27:33 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-11-17 11:29:08 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 11:33:55 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 256 seconds) |
2023-11-17 11:34:29 +0100 | vglfr | (~vglfr@78.26.242.160) (Ping timeout: 252 seconds) |
2023-11-17 11:34:54 +0100 | vglfr | (~vglfr@88.155.174.200) |
2023-11-17 11:45:49 +0100 | Simikando | (~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Ping timeout: 256 seconds) |
2023-11-17 11:47:05 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2023-11-17 11:49:51 +0100 | madnight | (~madnight@static.59.103.201.195.clients.your-server.de) (Server closed connection) |
2023-11-17 11:50:06 +0100 | madnight | (~madnight@static.59.103.201.195.clients.your-server.de) |
2023-11-17 11:53:01 +0100 | zetef | (~quassel@95.77.17.251) (Ping timeout: 276 seconds) |
2023-11-17 11:54:30 +0100 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 246 seconds) |
2023-11-17 11:55:30 +0100 | vglfr | (~vglfr@88.155.174.200) (Read error: Connection reset by peer) |
2023-11-17 11:59:14 +0100 | idgaen | (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.1.1) |
2023-11-17 12:00:33 +0100 | lortabac | (~lorenzo@2a01:e0a:541:b8f0:9ab2:6651:31a9:442a) (Ping timeout: 256 seconds) |
2023-11-17 12:01:04 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 12:01:27 +0100 | Square2 | (~Square4@user/square) |
2023-11-17 12:02:35 +0100 | Simikando | (~Simikando@adsl-dyn216.91-127-84.t-com.sk) |
2023-11-17 12:04:54 +0100 | mima | (~mmh@aftr-62-216-211-218.dynamic.mnet-online.de) |
2023-11-17 12:06:05 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2023-11-17 12:08:40 +0100 | billchenchina | (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Quit: Leaving) |
2023-11-17 12:14:29 +0100 | SoF | (~skius@user/skius) (Server closed connection) |
2023-11-17 12:15:05 +0100 | SoF | (~skius@user/skius) |
2023-11-17 12:17:45 +0100 | Hecate | (~mariposa@user/hecate) (Server closed connection) |
2023-11-17 12:17:53 +0100 | Hecate | (~mariposa@user/hecate) |
2023-11-17 12:18:13 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Ping timeout: 260 seconds) |
2023-11-17 12:18:46 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
2023-11-17 12:24:04 +0100 | CiaoSen | (~Jura@2a05:5800:283:dc00:2a3a:4dff:fe84:dbd5) (Ping timeout: 246 seconds) |
2023-11-17 12:24:30 +0100 | rosco | (~rosco@175.136.157.149) (Quit: Lost terminal) |
2023-11-17 12:25:51 +0100 | <Inst> | hmmm |
2023-11-17 12:25:57 +0100 | <Inst> | this is probably the solution to the Chinese Haskell problem |
2023-11-17 12:26:03 +0100 | <Inst> | it's not Nick's way, or even ChShersh's way |
2023-11-17 12:26:27 +0100 | <Inst> | if the production culture is very anti-Haskell because of the values preferences of businesses and developers (brute froce, labor abuse), then skip the production culture |
2023-11-17 12:26:31 +0100 | <Inst> | go straight to hobbyists |
2023-11-17 12:26:42 +0100 | <Inst> | "language of scientists and engineers, language that your boss uses" |
2023-11-17 12:28:42 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2023-11-17 12:28:58 +0100 | <Inst> | if you have a culture wherein pretty art school grads stream mathematics because they love math, while production users are basically using Haskell to satisfy their curiosity, but not develop proper software engineering principles, path of least resistance is obvious |
2023-11-17 12:29:08 +0100 | <Inst> | culture is snobby enough that it should work |
2023-11-17 12:29:30 +0100 | <Inst> | not a "码农" language, and that's the selling point |
2023-11-17 12:29:47 +0100 | califax | (~califax@user/califx) |
2023-11-17 12:30:53 +0100 | <Inst> | 码农 -> digital peasant |
2023-11-17 12:33:10 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2023-11-17 12:33:27 +0100 | <ncf> | Inst: i think this belongs in #haskell-offtopic |
2023-11-17 12:34:20 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 12:36:36 +0100 | <Inst> | It's relevant, but should be in there for being annoying |
2023-11-17 12:39:10 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2023-11-17 12:39:18 +0100 | <hc> | What does "to stream mathematics" mean? |
2023-11-17 12:41:10 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 12:43:54 +0100 | <Inst> | streaming category theory on streaming sites |
2023-11-17 12:46:04 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
2023-11-17 12:47:02 +0100 | iteratee | (~kyle@162.218.222.207) (Server closed connection) |
2023-11-17 12:47:16 +0100 | iteratee | (~kyle@162.218.222.207) |
2023-11-17 12:50:10 +0100 | lortabac | (~lorenzo@2a01:e0a:541:b8f0:98e4:3b02:8226:63ec) |
2023-11-17 12:57:22 +0100 | Simikando | (~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Ping timeout: 276 seconds) |
2023-11-17 13:02:22 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2023-11-17 13:05:38 +0100 | dcoutts | (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Remote host closed the connection) |
2023-11-17 13:10:44 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2023-11-17 13:11:05 +0100 | califax | (~califax@user/califx) |
2023-11-17 13:11:18 +0100 | dcoutts | (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) |
2023-11-17 13:12:02 +0100 | ivelten | (~ivelten@38.252.84.3) |
2023-11-17 13:13:02 +0100 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-11-17 13:15:53 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:2945:3959:f06e:7711) |
2023-11-17 13:16:29 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 256 seconds) |
2023-11-17 13:17:26 +0100 | danse-nr3 | (~danse@151.35.108.169) (Ping timeout: 260 seconds) |
2023-11-17 13:25:26 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2023-11-17 13:27:20 +0100 | gabiruh | (~gabiruh@vps19177.publiccloud.com.br) (Server closed connection) |
2023-11-17 13:27:36 +0100 | gabiruh | (~gabiruh@vps19177.publiccloud.com.br) |
2023-11-17 13:32:06 +0100 | danse-nr3 | (~danse@151.35.108.169) |
2023-11-17 13:37:32 +0100 | maturana | (~maturana@2804:14c:5b73:403e:1e53:df5a:8cae:9317) |
2023-11-17 13:47:59 +0100 | maturana | (~maturana@2804:14c:5b73:403e:1e53:df5a:8cae:9317) (Remote host closed the connection) |
2023-11-17 13:56:07 +0100 | remedan | (~remedan@ip-94-112-0-18.bb.vodafone.cz) (Ping timeout: 246 seconds) |
2023-11-17 14:01:26 +0100 | jjhoo | (~jahakala@user/jjhoo) (Remote host closed the connection) |
2023-11-17 14:01:26 +0100 | Xe | (~cadey@perl/impostor/xe) (Server closed connection) |
2023-11-17 14:01:40 +0100 | jjhoo | (~jahakala@user/jjhoo) |
2023-11-17 14:01:57 +0100 | Xe | (~cadey@perl/impostor/xe) |
2023-11-17 14:08:53 +0100 | xff0x | (~xff0x@2405:6580:b080:900:edf9:6a9f:34dc:1f68) |
2023-11-17 14:12:39 +0100 | Simikando | (~Simikando@adsl-dyn216.91-127-84.t-com.sk) |
2023-11-17 14:13:27 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-11-17 14:15:04 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2023-11-17 14:17:49 +0100 | remedan | (~remedan@ip-94-112-0-18.bb.vodafone.cz) |
2023-11-17 14:24:20 +0100 | akegalj | (~akegalj@89-164-125-210.dsl.iskon.hr) |
2023-11-17 14:25:39 +0100 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) |
2023-11-17 14:30:39 +0100 | <akegalj> | (&&) is strict in its first argument and non strict in its second argument. In GHC.Base it is defined as `(&&) True True = True` . Where is a False case? Why it isn't defined exhaustive with other cases as `(&&) _ _ = False` ? Second, it says it is strict in its first argument and non-strict in its second - what gives it this property? |
2023-11-17 14:36:12 +0100 | <akegalj> | Third, where is (||) defined? |
2023-11-17 14:36:19 +0100 | Simikando | (~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Ping timeout: 255 seconds) |
2023-11-17 14:41:21 +0100 | Simikando | (~Simikando@adsl-dyn216.91-127-84.t-com.sk) |
2023-11-17 14:42:03 +0100 | idgaen | (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-11-17 14:42:16 +0100 | phma | (phma@2001:5b0:2144:1ea8:391e:cdf9:d3a7:e03) (Read error: Connection reset by peer) |
2023-11-17 14:42:52 +0100 | <exarkun> | akegalj: In GHC.Classes it is defined differently, https://hackage.haskell.org/package/ghc-prim-0.11.0/docs/src/GHC.Classes.html#%26%26 |
2023-11-17 14:43:00 +0100 | <exarkun> | And (||) is just below it |
2023-11-17 14:43:14 +0100 | phma | (~phma@host-67-44-208-96.hnremote.net) |
2023-11-17 14:43:54 +0100 | <exarkun> | The definition of && there is strict in its first argument because it pattern matches on the constructors which forces them. Since it does not pattern match on the second argument, it doesn't. |
2023-11-17 14:44:54 +0100 | <ncf> | what you're looking at is inside a preprocessor'd out block that says "for use when compiling GHC.Base itself doesn't work" |
2023-11-17 14:45:10 +0100 | <tomsmeding> | though it's still strange that the definitions contained therein are kinda broken |
2023-11-17 14:45:39 +0100 | <tomsmeding> | 'data [] a = MkNil'? |
2023-11-17 14:46:01 +0100 | <ncf> | i don't know what the purpose of that block is |
2023-11-17 14:46:18 +0100 | <tomsmeding> | maybe to just define some names, regardless of what precisely they're defined _as_ |
2023-11-17 14:46:28 +0100 | <akegalj> | exarkun: ok, those definitions makes sense and as you said... patern match there forces first to be strict. Ok, makes sense |
2023-11-17 14:47:07 +0100 | <tomsmeding> | '[]' and '(:)' are probably built-in syntax, which would be why when debugging random GHC.Base breakage, one wouldn't need to define them somehow |
2023-11-17 14:47:08 +0100 | <tomsmeding> | or something |
2023-11-17 14:47:45 +0100 | <akegalj> | ncf: right, missed that part |
2023-11-17 14:49:00 +0100 | <akegalj> | tomsmeding: yes, that list definition seems odd |
2023-11-17 14:49:39 +0100 | Fischmiep | (~Fischmiep@user/Fischmiep) |
2023-11-17 14:55:54 +0100 | lg188 | (~lg188@82.18.98.230) (Ping timeout: 260 seconds) |
2023-11-17 14:56:50 +0100 | lg188 | (~lg188@82.18.98.230) |
2023-11-17 14:59:36 +0100 | danse-nr3 | (~danse@151.35.108.169) (Read error: Connection reset by peer) |
2023-11-17 14:59:54 +0100 | danse-nr3 | (~danse@151.43.107.30) |
2023-11-17 15:00:28 +0100 | edr | (~edr@user/edr) |
2023-11-17 15:04:45 +0100 | todi | (~todi@p4fd1a3e6.dip0.t-ipconnect.de) |
2023-11-17 15:05:42 +0100 | myxos | (~myxos@cpe-65-28-251-121.cinci.res.rr.com) (Remote host closed the connection) |
2023-11-17 15:05:50 +0100 | chele_ | (~chele@user/chele) |
2023-11-17 15:06:25 +0100 | myxos | (~myxos@065-028-251-121.inf.spectrum.com) |
2023-11-17 15:07:29 +0100 | chele | (~chele@user/chele) (Remote host closed the connection) |
2023-11-17 15:09:14 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-11-17 15:09:22 +0100 | erty | (~user@user/aeroplane) |
2023-11-17 15:15:09 +0100 | sawilagar | (~sawilagar@user/sawilagar) |
2023-11-17 15:16:06 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 256 seconds) |
2023-11-17 15:20:25 +0100 | Simikando | (~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Ping timeout: 255 seconds) |
2023-11-17 15:29:32 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2023-11-17 15:40:38 +0100 | duncan | (~duncan@nat-server.ehlab.uk) (Server closed connection) |
2023-11-17 15:40:58 +0100 | duncan | (~duncan@nat-server.ehlab.uk) |
2023-11-17 15:42:43 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2023-11-17 15:43:48 +0100 | Simikando | (~Simikando@adsl-dyn216.91-127-84.t-com.sk) |
2023-11-17 15:44:05 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:2945:3959:f06e:7711) (Ping timeout: 245 seconds) |
2023-11-17 15:50:55 +0100 | Square2 | (~Square4@user/square) (Ping timeout: 276 seconds) |
2023-11-17 15:51:09 +0100 | vpan | (~vpan@mail.elitnet.lt) (Quit: Leaving.) |
2023-11-17 15:51:42 +0100 | Simikando | (~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Quit: Leaving) |
2023-11-17 15:52:10 +0100 | Simikando | (~Simikando@adsl-dyn216.91-127-84.t-com.sk) |
2023-11-17 15:55:45 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2023-11-17 16:04:34 +0100 | Simikando | (~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Ping timeout: 276 seconds) |
2023-11-17 16:05:07 +0100 | [_] | [itchyjunk] |
2023-11-17 16:06:51 +0100 | danse-nr3 | (~danse@151.43.107.30) (Ping timeout: 246 seconds) |
2023-11-17 16:07:39 +0100 | danse-nr3 | (~danse@151.43.107.30) |
2023-11-17 16:08:12 +0100 | Simikando | (~Simikando@adsl-dyn216.91-127-84.t-com.sk) |
2023-11-17 16:14:14 +0100 | chele_ | (~chele@user/chele) (Remote host closed the connection) |
2023-11-17 16:17:58 +0100 | misterfish | (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 268 seconds) |
2023-11-17 16:18:23 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 256 seconds) |
2023-11-17 16:18:54 +0100 | billchenchina | (~billchenc@103.152.35.21) |
2023-11-17 16:25:35 +0100 | acro | (~acro@user/acro) (Server closed connection) |
2023-11-17 16:26:30 +0100 | acro | (~acro@user/acro) |
2023-11-17 16:29:40 +0100 | terrorjack | (~terrorjac@2a01:4f8:c17:87f8::) (Quit: Ping timeout (120 seconds)) |
2023-11-17 16:34:42 +0100 | ivelten | (~ivelten@38.252.84.3) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2023-11-17 16:35:03 +0100 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2023-11-17 16:35:06 +0100 | ivelten | (~ivelten@38.252.84.3) |
2023-11-17 16:36:34 +0100 | siw5ohs0 | (~aiw5ohs0@user/aiw5ohs0) |
2023-11-17 16:36:46 +0100 | siw5ohs0 | (~aiw5ohs0@user/aiw5ohs0) (Leaving) |
2023-11-17 16:36:56 +0100 | Simikando | (~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Remote host closed the connection) |
2023-11-17 16:37:18 +0100 | Simikando | (~Simikando@adsl-dyn216.91-127-84.t-com.sk) |
2023-11-17 16:39:30 +0100 | ivelten | (~ivelten@38.252.84.3) (Ping timeout: 245 seconds) |
2023-11-17 16:42:48 +0100 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) (Server closed connection) |
2023-11-17 16:43:01 +0100 | euleritian | (~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de) (Read error: Connection reset by peer) |
2023-11-17 16:43:18 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-11-17 16:43:44 +0100 | terrorjack | (~terrorjac@2a01:4f8:c17:87f8::) |
2023-11-17 16:44:02 +0100 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) |
2023-11-17 16:46:04 +0100 | Simikando | (~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Remote host closed the connection) |
2023-11-17 16:49:00 +0100 | finsternis | (~X@23.226.237.192) (Server closed connection) |
2023-11-17 16:49:22 +0100 | finsternis | (~X@23.226.237.192) |
2023-11-17 16:50:29 +0100 | gooba | (~gooba@90-231-13-185-no3430.tbcn.telia.com) (Remote host closed the connection) |
2023-11-17 16:50:57 +0100 | gooba | (~gooba@90-231-13-185-no3430.tbcn.telia.com) |
2023-11-17 16:53:56 +0100 | gooba | (~gooba@90-231-13-185-no3430.tbcn.telia.com) (Remote host closed the connection) |
2023-11-17 16:54:54 +0100 | gooba | (~gooba@90-231-13-185-no3430.tbcn.telia.com) |
2023-11-17 17:01:39 +0100 | gooba | (~gooba@90-231-13-185-no3430.tbcn.telia.com) (Remote host closed the connection) |
2023-11-17 17:02:46 +0100 | gooba | (~gooba@90-231-13-185-no3430.tbcn.telia.com) |
2023-11-17 17:03:28 +0100 | Simikando | (~Simikando@adsl-dyn216.91-127-84.t-com.sk) |
2023-11-17 17:06:37 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 255 seconds) |
2023-11-17 17:07:37 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds) |
2023-11-17 17:07:46 +0100 | euleritian | (~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de) |
2023-11-17 17:07:49 +0100 | misterfish | (~misterfis@84-53-85-146.bbserv.nl) |
2023-11-17 17:12:06 +0100 | billchenchina- | (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) |
2023-11-17 17:12:15 +0100 | woffs | (3cd46299b2@woffs.de) (Server closed connection) |
2023-11-17 17:15:09 +0100 | woffs | (3cd46299b2@woffs.de) |
2023-11-17 17:15:25 +0100 | billchenchina | (~billchenc@103.152.35.21) (Ping timeout: 276 seconds) |
2023-11-17 17:16:12 +0100 | econo_ | (uid147250@id-147250.tinside.irccloud.com) |
2023-11-17 17:17:52 +0100 | idgaen | (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.1.1) |
2023-11-17 17:20:20 +0100 | euleritian | (~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de) (Read error: Connection reset by peer) |
2023-11-17 17:20:37 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-11-17 17:21:30 +0100 | Simikando | (~Simikando@adsl-dyn216.91-127-84.t-com.sk) (Ping timeout: 260 seconds) |
2023-11-17 17:22:42 +0100 | lortabac | (~lorenzo@2a01:e0a:541:b8f0:98e4:3b02:8226:63ec) (Quit: WeeChat 3.5) |
2023-11-17 17:24:50 +0100 | Vajb | (~Vajb@2001:999:785:c11e:a1b8:59fa:dee7:e490) (Ping timeout: 252 seconds) |
2023-11-17 17:25:10 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds) |
2023-11-17 17:25:22 +0100 | euleritian | (~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de) |
2023-11-17 17:29:26 +0100 | gooba_ | (~gooba@90-231-13-185-no3430.tbcn.telia.com) |
2023-11-17 17:30:50 +0100 | gooba | (~gooba@90-231-13-185-no3430.tbcn.telia.com) (Ping timeout: 260 seconds) |
2023-11-17 17:30:51 +0100 | euleritian | (~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de) (Read error: Connection reset by peer) |
2023-11-17 17:31:08 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-11-17 17:37:13 +0100 | gooba_ | (~gooba@90-231-13-185-no3430.tbcn.telia.com) (Remote host closed the connection) |
2023-11-17 17:38:49 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds) |
2023-11-17 17:38:59 +0100 | euleritian | (~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de) |
2023-11-17 17:39:24 +0100 | vglfr | (~vglfr@88.154.57.62) |
2023-11-17 17:40:50 +0100 | ivelten | (~ivelten@38.252.84.3) |
2023-11-17 17:40:55 +0100 | ft | (~ft@mue-88-130-106-120.dsl.tropolys.de) |
2023-11-17 17:41:46 +0100 | euleritian | (~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de) (Read error: Connection reset by peer) |
2023-11-17 17:41:49 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:4c99:f3ba:7425:36f4) |
2023-11-17 17:42:03 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-11-17 17:45:05 +0100 | acidjnk | (~acidjnk@p200300d6e72b9321349e196aee999b14.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2023-11-17 17:46:53 +0100 | sabino | (~sabino@user/sabino) |
2023-11-17 17:51:02 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 17:52:43 +0100 | ft | (~ft@mue-88-130-106-120.dsl.tropolys.de) (Quit: leaving) |
2023-11-17 17:54:10 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds) |
2023-11-17 17:55:35 +0100 | ft | (~ft@mue-88-130-106-120.dsl.tropolys.de) |
2023-11-17 17:56:34 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
2023-11-17 18:00:04 +0100 | fendor | (~fendor@2a02:8388:1640:be00:2528:5dc7:a36e:9b87) (Remote host closed the connection) |
2023-11-17 18:04:06 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:4c99:f3ba:7425:36f4) (Remote host closed the connection) |
2023-11-17 18:04:21 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:4c99:f3ba:7425:36f4) |
2023-11-17 18:05:33 +0100 | <danse-nr3> | hmm got a triple ... there ought to be a better way... |
2023-11-17 18:12:56 +0100 | notzmv | (~zmv@user/notzmv) |
2023-11-17 18:14:45 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 18:16:16 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Ping timeout: 264 seconds) |
2023-11-17 18:17:42 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2023-11-17 18:18:16 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2023-11-17 18:19:39 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 256 seconds) |
2023-11-17 18:21:54 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
2023-11-17 18:22:16 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2023-11-17 18:26:33 +0100 | gooba | (~gooba@90-231-13-185-no3430.tbcn.telia.com) |
2023-11-17 18:28:43 +0100 | <EvanR> | you'll need Trifunctor now |
2023-11-17 18:29:12 +0100 | <danse-nr3> | (: |
2023-11-17 18:31:45 +0100 | <erty> | ski: I finally understood `unbounded space`, it really improves code execution time. And with that I believe, for code to be performant, we have to think beyond just algorithmic complexity. |
2023-11-17 18:32:22 +0100 | danse-nr3 | raises eyebrow |
2023-11-17 18:33:15 +0100 | <EvanR> | in haskell the amount of time consumed by the garbage collector is related to how much heap memory is in use, so haskell performance has to be reasoned about in spacetime combined |
2023-11-17 18:33:36 +0100 | <danse-nr3> | oh, for the garbage collector. Makes sense |
2023-11-17 18:35:14 +0100 | <c_wraith> | monochrom: you'll be pleased(?) to know that when I moved to benchmarking the various sum functions with criterion, the higher-order use of it made foldl way slower than foldl' again. Which is why I prefer actually telling the compiler what's going on. |
2023-11-17 18:39:09 +0100 | vglfr | (~vglfr@88.154.57.62) (Read error: Connection reset by peer) |
2023-11-17 18:40:08 +0100 | <EvanR> | is the rule of thumb foldl might optimize to something like foldl' or it might not xD |
2023-11-17 18:40:38 +0100 | <c_wraith> | yes |
2023-11-17 18:40:45 +0100 | <EvanR> | good rule |
2023-11-17 18:41:18 +0100 | <c_wraith> | Interesting... []'s foldable instance has a slow implementation of sum... unless it gets to participate in list fusion |
2023-11-17 18:41:38 +0100 | <EvanR> | there was a mailist list debate on that iirc |
2023-11-17 18:41:43 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 18:41:46 +0100 | <EvanR> | mailing* |
2023-11-17 18:41:59 +0100 | Sciencentistguy | (~sciencent@hacksoc/ordinary-member) (Server closed connection) |
2023-11-17 18:42:16 +0100 | akegalj | (~akegalj@89-164-125-210.dsl.iskon.hr) (Quit: leaving) |
2023-11-17 18:42:19 +0100 | Sciencentistguy | (~sciencent@hacksoc/ordinary-member) |
2023-11-17 18:42:34 +0100 | <c_wraith> | I guess people were concerned about using foldl' by default on lists of types where (+) is non-strict? |
2023-11-17 18:42:46 +0100 | <c_wraith> | err. lists of values of a type where... |
2023-11-17 18:43:15 +0100 | <EvanR> | https://mail.haskell.org/pipermail/libraries/2020-October/030862.html |
2023-11-17 18:43:37 +0100 | <EvanR> | it was kind of hard for me to follow the reasoning |
2023-11-17 18:45:23 +0100 | oo_miguel | (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Ping timeout: 260 seconds) |
2023-11-17 18:46:27 +0100 | Square | (~Square@user/square) |
2023-11-17 18:46:40 +0100 | <c_wraith> | erty: This was inspired by your testing. The criterion library is pretty cool. code: https://paste.tomsmeding.com/b3WRbJmf output: https://paste.tomsmeding.com/o2lAkr45 |
2023-11-17 18:46:58 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
2023-11-17 18:47:15 +0100 | <c_wraith> | erty: you can ignore sumIt3. I was just being silly and rewriting foldl' by hand. |
2023-11-17 18:48:18 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
2023-11-17 18:48:38 +0100 | euleritian | (~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de) |
2023-11-17 18:50:08 +0100 | <c_wraith> | My major conclusion from that benchmarking is: it's amazing how much of a difference list fusion makes when it is allowed to happen |
2023-11-17 18:50:11 +0100 | <ski> | erty : "we have to think beyond just algorithmic complexity" -- how/why ? |
2023-11-17 18:50:40 +0100 | <ski> | erty : this is algorithmic space complexity, no ? so why would we need to think beyond that (under these considerations) ? |
2023-11-17 18:51:07 +0100 | ridcully | (~ridcully@p57b5294c.dip0.t-ipconnect.de) (Server closed connection) |
2023-11-17 18:51:30 +0100 | ridcully | (~ridcully@p57b5294c.dip0.t-ipconnect.de) |
2023-11-17 18:51:58 +0100 | <erty> | c_wraith: criterion looks indeed great. But for now I will suffice with `time` command |
2023-11-17 18:52:48 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2023-11-17 18:53:14 +0100 | euleritian | (~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de) (Read error: Connection reset by peer) |
2023-11-17 18:53:32 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-11-17 18:53:43 +0100 | <ski> | c_wraith : fwiw, you could have supplied both files in the same paste |
2023-11-17 18:54:44 +0100 | <erty> | ski: This might me very lame, but the space and time complexity for my `sumPlus` function (λ> sumPlus acc (x:xs) = sumPlus (acc+x) xs) [http://ix.io/4LIN] are both, I think, O(n). But by adding a `!` to acc, are the complexities still not the same. |
2023-11-17 18:54:48 +0100 | <probie> | The solution to having a slow implementation of sum is to just not have sum |
2023-11-17 18:55:09 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2023-11-17 18:55:34 +0100 | <erty> | By adding !, we have changed something beyond space and time |
2023-11-17 18:55:56 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-11-17 18:56:02 +0100 | zer0bitz_ | zer0bitz |
2023-11-17 18:56:06 +0100 | <erty> | I mean not time, we have improved that |
2023-11-17 18:56:10 +0100 | <c_wraith> | erty: well, there's the interaction of using more space taking more time in non-obvious ways |
2023-11-17 18:56:28 +0100 | <probie> | erty: by adding `!` you're now in constant space |
2023-11-17 18:56:28 +0100 | <c_wraith> | erty: but that's still captured by analyzing space and time use carefully |
2023-11-17 18:56:42 +0100 | <ski> | old <hpaste.org>,<lpaste.net> allowed people to add annotations (separate paste files) to the same paste page. <paste.tomsmeding.com> doesn't have that, though |
2023-11-17 18:57:49 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2023-11-17 18:58:04 +0100 | <geekosaur> | eh? it certainly has multifile pastes |
2023-11-17 18:58:23 +0100 | <ski> | erty : "the space and time complexity for my `sumPlus` function .. are both, I think, O(n)." -- with explicit strictness, you reduce the space to `O(1)' |
2023-11-17 18:58:36 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-11-17 18:58:36 +0100 | <geekosaur> | "+ Add another file" bottom left |
2023-11-17 18:58:55 +0100 | <c_wraith> | geekosaur: oh, cool. I ignored that button. But that's still not the same as adding additional things later (with new URLs) that the older ones had |
2023-11-17 18:58:58 +0100 | danse-nr3 | (~danse@151.43.107.30) (Read error: Connection reset by peer) |
2023-11-17 18:59:51 +0100 | <ski> | geekosaur : yes it does, but not after-the-fact |
2023-11-17 19:01:26 +0100 | <ski> | (yea, iirc, you could both see the annotations at the original paste page, and also see the annotation as a separate page at its own URL) |
2023-11-17 19:05:46 +0100 | qqq | (~qqq@92.43.167.61) |
2023-11-17 19:06:29 +0100 | <erty> | I think writing code in Haskell involves a bit different mental model. When I write an algorithm, I think in terms of ADTs. But here, you also have to take in considerations for laziness. Thats why I said "we have to think beyond just algorithmic complexity" |
2023-11-17 19:07:08 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 19:07:28 +0100 | <c_wraith> | It's still part of the complexity. Haskell isn't the only language where you have to consider space usage. But it *is* different, in that you need to think about demand patterns and proper evaluation |
2023-11-17 19:07:40 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
2023-11-17 19:08:45 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-11-17 19:11:11 +0100 | <ski> | "involves a bit different mental model" -- yes, you have to understand that the result isn't (necessarily) computed all at once, but may "trickle out" in chunks (on a tree-branching fashion, in general), and you can at any point decide to not continue down such a path, abandoning the computation avoiding the remaining cost. while, if you reuse, it'll get computed no more than once |
2023-11-17 19:11:37 +0100 | <ski> | (the last bit assumes laziness, of course, which is not a language guarantee, but something implementations tend to support) |
2023-11-17 19:12:25 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 276 seconds) |
2023-11-17 19:12:38 +0100 | <ski> | a function transforms output demand into (some computation and) input demand |
2023-11-17 19:13:36 +0100 | <ski> | `reverse' and `foldl' are "builky" in that they traverse the whole input list, before releasing the result all at once. otoh `(++)' is incremental, and `foldr' can be (depending on the callback), pay-as-you-go |
2023-11-17 19:13:47 +0100 | <ski> | (er, "bulky") |
2023-11-17 19:15:22 +0100 | <ski> | basically, if you do (only) tail recursion, you're bulky (although you can be bulky without tail recursion). in a strict functional language, people would strive to (for the most part, there are situations where one doesn't want to) be tail recursive, typically using an accumulator |
2023-11-17 19:15:38 +0100 | <c_wraith> | it's even more complicated than that, as `reverse' is bulky only in the list structure. It doesn't even touch the list elements |
2023-11-17 19:16:00 +0100 | <ski> | in Haskell, another common approach is to be incremental instead, to hide the recursive calls behind some computation that hasn't happened yet, that the caller may or may not force |
2023-11-17 19:16:07 +0100 | <ski> | yep |
2023-11-17 19:18:42 +0100 | <ski> | `print (take 10 (filter odd (map triangular [0 ..])))' will act as a loop, whose control is in `print', individual elements percolates up the "pipeline" one at a time. this can e.g. be used to process files in a streaming fashion, even if the whole file doesn't fit into RAM |
2023-11-17 19:18:49 +0100 | manwithluck` | (manwithluc@gateway/vpn/protonvpn/manwithluck) |
2023-11-17 19:19:34 +0100 | <ski> | the intermediate list cons cells will be GCed as we go. if fusion kicks in, you'll even avoid the intermediate lists, letting the producer directly hand off elements to the transformers and the consumer |
2023-11-17 19:21:26 +0100 | <ski> | (however, the streaming thing is also a bit brittle, in that if you hold on to some point in the list for a long period of time, that prevents it from being GCed, and so can cause a "space leak" (not in the sense of forgetting to free some memory whose reference pointer you've forgotten, but in the sense of keeping a hold of that reference for longer than you intended to)) |
2023-11-17 19:21:42 +0100 | shapr | (~user@2600:1700:c640:3100:5b4c:3811:4e1e:b4e5) |
2023-11-17 19:22:48 +0100 | <EvanR> | that kind of thing also happens in "strict" languages like javascript |
2023-11-17 19:22:51 +0100 | <ski> | (fwiw, `triangular n = div (n * (n + 1)) 2', iow `sum [0 .. n]') |
2023-11-17 19:22:58 +0100 | <EvanR> | if you hold onto something accidentally you have a space leak |
2023-11-17 19:23:17 +0100 | <ski> | yep, you can do incremental processing also in strict. but it's not quite as easy |
2023-11-17 19:23:23 +0100 | <ski> | mm, that too |
2023-11-17 19:23:52 +0100 | <ski> | (hence why people often set variables to `null' when they're done with some data) |
2023-11-17 19:24:16 +0100 | <EvanR> | shoulda used linear types! |
2023-11-17 19:25:23 +0100 | paddymahoney | (~paddymaho@cpe883d24bcf597-cmbc4dfb741f80.cpe.net.cable.rogers.com) (Server closed connection) |
2023-11-17 19:25:46 +0100 | <ski> | Mercury has an inst (instantiation state) `dead' .. it could possibly be useful to have an explicit predicate which you can call to enforce that some datum is dead at a certain time, and whose operational behaviour would be to replace the address with a dummy address (`NULL') |
2023-11-17 19:26:03 +0100 | <c_wraith> | yeah, something like a resizable array data structure in many languages will easily hold on to values long after it should have unless you explicitly null out removed entries |
2023-11-17 19:26:30 +0100 | <ski> | (iow, if the datum is not dead, you'd get a compile-time error. so it's a sanity check, but also a help for the GC) |
2023-11-17 19:27:05 +0100 | paddymahoney | (~paddymaho@cpe883d24bcf597-cmbc4dfb741f80.cpe.net.cable.rogers.com) |
2023-11-17 19:27:31 +0100 | ski | . o O ( weak references,weak associations (for finite maps) ) |
2023-11-17 19:27:43 +0100 | gooba | (~gooba@90-231-13-185-no3430.tbcn.telia.com) (Remote host closed the connection) |
2023-11-17 19:27:52 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) |
2023-11-17 19:28:21 +0100 | manwithluck` | (manwithluc@gateway/vpn/protonvpn/manwithluck) (Quit: THE END) |
2023-11-17 19:28:39 +0100 | gooba | (~gooba@90-231-13-185-no3430.tbcn.telia.com) |
2023-11-17 19:29:25 +0100 | idgaen | (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-11-17 19:29:36 +0100 | <ski> | occasionally, i've thought it could be useful to have a `Thunk a', with `newThunk :: a -> IO (Thunk a)',`forceThunk :: Thunk a -> a',`resetThunk :: Thunk a -> IO ()', to be used when you have some datum which takes up a lot of space, and you'd like to be able to reclaim that, and perhaps later perform the computation computing it again |
2023-11-17 19:29:51 +0100 | <EvanR> | yes |
2023-11-17 19:30:04 +0100 | <EvanR> | apparently that's not something ghc can just do |
2023-11-17 19:30:48 +0100 | <ski> | (perhaps `newThunk' wouldn't need to be in `IO' .. but if there's `instance Eq (Thunk a)', it would need to, similarly to `IORef', and `IVar') |
2023-11-17 19:31:06 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
2023-11-17 19:31:20 +0100 | erty | (~user@user/aeroplane) (ERC 5.4 (IRC client for GNU Emacs 28.2)) |
2023-11-17 19:31:30 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:4c99:f3ba:7425:36f4) (Remote host closed the connection) |
2023-11-17 19:32:08 +0100 | euleritian | (~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de) |
2023-11-17 19:32:13 +0100 | <EvanR> | you can always use stable names to test identity of Thunks |
2023-11-17 19:32:16 +0100 | <EvanR> | in IO |
2023-11-17 19:32:51 +0100 | <EvanR> | but I'm not sure how the non-IO newThunk would "work" |
2023-11-17 19:32:59 +0100 | ivelten | (~ivelten@38.252.84.3) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2023-11-17 19:33:06 +0100 | <EvanR> | reliably |
2023-11-17 19:33:27 +0100 | <ski> | yea, perhaps it wouldn't .. not sure |
2023-11-17 19:34:00 +0100 | <c_wraith> | I don't think you can write it as a Haskell library, but maybe C-- library? |
2023-11-17 19:34:15 +0100 | <c_wraith> | Now that GHC supports those... |
2023-11-17 19:34:27 +0100 | <ski> | @hackage ivar-simple |
2023-11-17 19:34:27 +0100 | <lambdabot> | https://hackage.haskell.org/package/ivar-simple |
2023-11-17 19:35:08 +0100 | <EvanR> | ivar is awesome |
2023-11-17 19:35:48 +0100 | <ski> | note `new :: IO (IVar a)',`write :: IVar a -> a -> IO a' ("Raises a `BlockedIndefinitelyOnIVar' exception if the variable already has a value"),`read :: IVar a -> a' and `instance Eq (IVar a)' |
2023-11-17 19:36:07 +0100 | <ski> | useful when you want identity (e.g. for graph traversal), but you don't need mutability |
2023-11-17 19:36:23 +0100 | <ski> | and having `read' not in `IO' there is quite nice |
2023-11-17 19:36:24 +0100 | dhil | (~dhil@2001:8e0:2014:3100:a0:aa7c:41ab:e261) |
2023-11-17 19:36:49 +0100 | <ski> | unlike |
2023-11-17 19:36:51 +0100 | <ski> | @hackage data-ivar |
2023-11-17 19:36:51 +0100 | <lambdabot> | https://hackage.haskell.org/package/data-ivar |
2023-11-17 19:36:55 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Ping timeout: 255 seconds) |
2023-11-17 19:37:29 +0100 | <ski> | which has `new :: IO (IVar a)',`write :: IVar a -> a -> IO ()',`read :: IVar a -> Reader a',`blocking :: Reader a -> IO a' |
2023-11-17 19:37:33 +0100 | erty | (~user@user/aeroplane) |
2023-11-17 19:37:50 +0100 | <EvanR> | and Reader is a non-standard wrapper around IO, weird |
2023-11-17 19:38:19 +0100 | <EvanR> | a false friend, not the Reader you know |
2023-11-17 19:38:26 +0100 | <ski> | yea, `instance Monad Reader', for aggregating multiple `read's |
2023-11-17 19:39:02 +0100 | <haskellbridge> | 12<Celestial> What is the most memory and speed efficient way to build up a graph of 100.000+ integer values where new edges are created frequently? |
2023-11-17 19:39:12 +0100 | Guest71 | (~Guest71@076-107-045-062.dynamic.caiway.nl) |
2023-11-17 19:39:25 +0100 | <mauke> | () |
2023-11-17 19:39:43 +0100 | <haskellbridge> | 12<Celestial> I wanted to use algebraic-graphs originally but I feel like simply using a vector with pairings would be more efficient? |
2023-11-17 19:39:43 +0100 | <ski> | hehe |
2023-11-17 19:39:58 +0100 | manwithluck | (~manwithlu@2406:da14:5ea:e400:7863:dbc1:6a84:3050) (Quit: ZNC - https://znc.in) |
2023-11-17 19:40:06 +0100 | <EvanR> | () takes up infinite percent more space than Void |
2023-11-17 19:40:37 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2023-11-17 19:40:46 +0100 | <ski> | > logBase 2 1 / logBase 2 0 |
2023-11-17 19:40:47 +0100 | <lambdabot> | -0.0 |
2023-11-17 19:41:05 +0100 | <haskellbridge> | 12<Celestial> IEEE754 |
2023-11-17 19:41:18 +0100 | <ski> | > logBase 0 1 |
2023-11-17 19:41:19 +0100 | <lambdabot> | -0.0 |
2023-11-17 19:41:34 +0100 | <EvanR> | > (log 1 - log 0) / log 0 |
2023-11-17 19:41:36 +0100 | <lambdabot> | NaN |
2023-11-17 19:41:51 +0100 | ivelten | (~ivelten@38.252.84.3) |
2023-11-17 19:42:16 +0100 | Guest71 | (~Guest71@076-107-045-062.dynamic.caiway.nl) (Client Quit) |
2023-11-17 19:44:07 +0100 | <erty> | I like Haskell being explicit and gives you control over optimisation on a compiler level. Unlike, say nodejs, where the event loop handles execution of code. |
2023-11-17 19:44:09 +0100 | <erty> | As we have compared previously, Javascript took ~0.66s to execute `sumPlus` function for an input size of 8373, whereas Haskell took only ~0.10s for an input size of 10089850 |
2023-11-17 19:44:12 +0100 | <haskellbridge> | 12<Celestial> also how fucked is the wikipedia API lol, if an article exists, its page object will be of the form `{ns: <number>, exists: "", *: <name>}` and if not its `{ns: <number>, *: <name>}` |
2023-11-17 19:44:15 +0100 | <haskellbridge> | 12<Celestial> why ... not a boolean |
2023-11-17 19:44:33 +0100 | <monochrom> | It may not be appropriate to even talk about how much space Void takes. |
2023-11-17 19:44:49 +0100 | <EvanR> | "" = false in some languages |
2023-11-17 19:45:05 +0100 | <EvanR> | some very interesting languages |
2023-11-17 19:45:41 +0100 | <haskellbridge> | 12<Celestial> but why in a public facing API? |
2023-11-17 19:45:45 +0100 | <EvanR> | monochrom, absent referent like talking about how much space "The King of France" takes up ? |
2023-11-17 19:45:50 +0100 | <haskellbridge> | 12<Celestial> how would I properly parse this with aeson btw? |
2023-11-17 19:46:01 +0100 | <monochrom> | Yeah! |
2023-11-17 19:46:03 +0100 | <haskellbridge> | 12<Celestial> I want to just filter those without an `exists` out, I guess? |
2023-11-17 19:46:18 +0100 | <EvanR> | when parsing with aeson you can ask if a field exists |
2023-11-17 19:46:48 +0100 | <haskellbridge> | 12<Celestial> awesome, thank you I'll look into that |
2023-11-17 19:48:12 +0100 | erty | (~user@user/aeroplane) (Remote host closed the connection) |
2023-11-17 19:48:19 +0100 | manwithluck | (manwithluc@gateway/vpn/protonvpn/manwithluck) |
2023-11-17 19:48:20 +0100 | <haskellbridge> | 12<Celestial> My problem is that this is in a list so I have to parse the `exists` optionally. Can I slap a `Maybe` on it and aesons TH engine will do that for me? |
2023-11-17 19:48:27 +0100 | <monochrom> | Whoever designed it did not see the irony in asking "does exists exist?" >:) |
2023-11-17 19:48:46 +0100 | <ski> | monochrom : akin to asking about the degree of the zero polynomial ? |
2023-11-17 19:48:49 +0100 | <EvanR> | fix exists |
2023-11-17 19:49:27 +0100 | <monochrom> | The zero polynomial is still easier to resolve than Void. |
2023-11-17 19:49:58 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 255 seconds) |
2023-11-17 19:50:02 +0100 | <monochrom> | I would love to say that because Void contains infinite information, it takes up infinite space. But that's wrong for another reason. |
2023-11-17 19:50:19 +0100 | coot | (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
2023-11-17 19:50:23 +0100 | <monochrom> | At least empirically wrong. |
2023-11-17 19:50:44 +0100 | <EvanR> | so white noise takes up infinite space? xD |
2023-11-17 19:51:01 +0100 | <monochrom> | So a better position may be: it's a singularity, don't even talk about its space. |
2023-11-17 19:51:11 +0100 | ski | . o O ( "Existence is a second-order property." -- Frege,Quine ) |
2023-11-17 19:51:29 +0100 | <haskellbridge> | 12<Celestial> isn't it that rather than *containing* infinite information, an infinite amount of information can be derived from it in falsehood? |
2023-11-17 19:51:49 +0100 | <haskellbridge> | 12<Celestial> so it contains no information which makes it the source of infinite amounts of it? |
2023-11-17 19:51:56 +0100 | <monochrom> | White noise is actually non-controversial for this. You try to run a compression algorithm on white noise, you find it incompressible. |
2023-11-17 19:52:36 +0100 | <mauke> | did you mean: incomprehensible |
2023-11-17 19:53:00 +0100 | <monochrom> | Actually, same difference. >:) |
2023-11-17 19:53:54 +0100 | <EvanR> | > sizeOf (undefined :: Void) |
2023-11-17 19:53:56 +0100 | <lambdabot> | error: |
2023-11-17 19:53:56 +0100 | <lambdabot> | • Variable not in scope: sizeOf :: Void -> t |
2023-11-17 19:53:56 +0100 | <lambdabot> | • Perhaps you meant one of these: |
2023-11-17 19:54:00 +0100 | <ski> | page 5 of "Objects of Categories as Complex Numbers" by Marcelo Fiore,Tom Leinster in 2002-12-30 at <https://arxiv.org/abs/math/0212377> (also see "This Week's Finds in Mathematical Physics (Week 202)" by John Baez in 2004-02-21 at <https://math.ucr.edu/home/baez/week202.html>) defines the rig of degrees (and also of codegrees). in which the zero polynomial has degree `-Infinity' (and codegree `Infinity') |
2023-11-17 19:54:35 +0100 | <[exa]> | EvanR: with noise and stuff we should do `entropyOf` |
2023-11-17 19:54:45 +0100 | vglfr | (~vglfr@78.26.242.160) |
2023-11-17 19:55:50 +0100 | <ski> | (oh, and "Seven trees in one" by Andreas Blass in 1995 at <https://dept.math.lsa.umich.edu/~ablass/cat.html> (a neat little paper) is also related to that paper. it gives a constructive, non-recursive, bijection between `T' and `T^7', where `T = 1 + T^2') |
2023-11-17 19:56:35 +0100 | <EvanR> | it's like the banach tarski paradox but tangible |
2023-11-17 19:56:48 +0100 | <ski> | > Foreign.Storable.sizeOf (undefined :: Void) |
2023-11-17 19:56:49 +0100 | <lambdabot> | error: |
2023-11-17 19:56:49 +0100 | <lambdabot> | • No instance for (Storable Void) arising from a use of ‘sizeOf’ |
2023-11-17 19:56:49 +0100 | <lambdabot> | • In the expression: sizeOf (undefined :: Void) |
2023-11-17 19:57:06 +0100 | <monochrom> | Ugh n+1 = 2^n is already the limit of my comprehension. :) |
2023-11-17 19:57:28 +0100 | <ski> | well, `T = 1 + T^2' is just `data T = Nil | Branch T T' |
2023-11-17 19:57:50 +0100 | <monochrom> | Yeah but T = T^7 is highly fantastic! |
2023-11-17 19:58:00 +0100 | <ski> | indeed ! :D |
2023-11-17 19:58:44 +0100 | <ski> | anyway, that Baez blag talks about a "golden object" `G', where `G^2 = G + 1' |
2023-11-17 19:58:46 +0100 | <EvanR> | someone should start a mystery cult based on that result before someone else does or someone shows the trivialness of it |
2023-11-17 20:00:00 +0100 | <ski> | (anyway, `T' is countably infinite, so `T = T^7' isn't surprising. the surprising part is the "non-recursive" bit) |
2023-11-17 20:00:10 +0100 | <monochrom> | EvanR, you overestimate humanity. Even after proving trivialness, people can still start mystery cults. |
2023-11-17 20:00:39 +0100 | <EvanR> | a type G where Bool -> G = Maybe G |
2023-11-17 20:01:00 +0100 | <EvanR> | is it in acme hackage somewhere |
2023-11-17 20:01:06 +0100 | <monochrom> | haha |
2023-11-17 20:01:10 +0100 | <ski> | (unlike the `N -> Bool = Maybe N', from the other day) |
2023-11-17 20:02:46 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:4c99:f3ba:7425:36f4) |
2023-11-17 20:03:37 +0100 | <ski> | Celestial : "can be derived from it in falsehood" ? |
2023-11-17 20:04:03 +0100 | ski | idly ponders Perlis noise |
2023-11-17 20:04:08 +0100 | it_ | (~quassel@v2202212189510211193.supersrv.de) (Server closed connection) |
2023-11-17 20:04:17 +0100 | it_ | (~quassel@v2202212189510211193.supersrv.de) |
2023-11-17 20:05:10 +0100 | <monochrom> | I think it means this. Void doesn't have to store infinite information. Instead, when you make use of Void -> Foo, it is you who fill in "I want Foo" so Void does not have to even know "oh one day someone will ask me about Foo". |
2023-11-17 20:05:22 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 20:05:39 +0100 | <ski> | .. should `Void' have a `Storable' instance ? |
2023-11-17 20:05:41 +0100 | <monochrom> | IOW the information "Foo" comes from you. Void just has to be a yes-man. |
2023-11-17 20:06:06 +0100 | <monochrom> | What is Perlis noise? |
2023-11-17 20:06:23 +0100 | <ski> | word play on "Perlin noise", and "Alan Perlis" |
2023-11-17 20:06:33 +0100 | <mauke> | JAPH |
2023-11-17 20:06:35 +0100 | <ski> | @quote stark |
2023-11-17 20:06:35 +0100 | <lambdabot> | AlanPerlis says: The string is a stark data structure and everywhere it is passed there is much duplication of process. It is a perfect vehicle for hiding information. |
2023-11-17 20:06:36 +0100 | <monochrom> | But I don't know Perlin noise! |
2023-11-17 20:06:59 +0100 | <monochrom> | oh hiding information heh |
2023-11-17 20:07:08 +0100 | acidjnk | (~acidjnk@p200300d6e72b9332a5871c169e311c1a.dip0.t-ipconnect.de) |
2023-11-17 20:07:08 +0100 | <ski> | <https://en.wikipedia.org/wiki/Perlin_noise> -- smoothly varying spatial (or temporal) noise |
2023-11-17 20:07:39 +0100 | <haskellbridge> | 12<Celestial> ski: sorry; english bad. I meant to say that from a Void "value" you can derive anything (ex falso quodlibet). Basically `absurd` from base |
2023-11-17 20:07:43 +0100 | <ski> | (well, at least continuously) |
2023-11-17 20:08:01 +0100 | <ski> | ah, i was thinking maybe you meant something like that, Celestial |
2023-11-17 20:08:02 +0100 | <monochrom> | w00t an Oscar for math and CS. |
2023-11-17 20:09:33 +0100 | ski | . o O ( "Perlisisms - Epigrams in Programming" due to Alan Perlis at <https://www.cs.yale.edu/homes/perlis-alan/quotes.html> ) |
2023-11-17 20:09:36 +0100 | <EvanR> | Void -> a says from a Void you can derive "an a (any type)" but not necessarily any value. For non Void a perhaps it selects a special answer like axiom of choice xD |
2023-11-17 20:09:55 +0100 | <ski> | "3. Syntactic sugar causes cancer of the semicolon." is another well-known one |
2023-11-17 20:10:26 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 260 seconds) |
2023-11-17 20:10:56 +0100 | <ncf> | seven trees in one is cool here's a game about it https://lebarde.alwaysdata.net/seventrees/ |
2023-11-17 20:11:05 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2023-11-17 20:11:05 +0100 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2023-11-17 20:11:05 +0100 | finn_elija | FinnElija |
2023-11-17 20:11:09 +0100 | <monochrom> | Hrm, Perlis probably didn't realize that some of them are actually theorems. |
2023-11-17 20:12:00 +0100 | <ski> | (i'm kinda reminded of your "Wise Tautologies" <https://www.vex.net/~trebla/humour/tautologies.html>) |
2023-11-17 20:12:04 +0100 | euleritian | (~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de) (Read error: Connection reset by peer) |
2023-11-17 20:12:23 +0100 | <monochrom> | #2 "Functions delay binding; data structures induce binding. Moral: Structure data late in the programming process." is actually one way to design a type and its API: You start with deciding on the API, then its free algebra is almost your data structure. Then maybe you quotient it and optimize it. |
2023-11-17 20:12:25 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-11-17 20:12:47 +0100 | <monochrom> | For example, someone's pretty printer paper actually did that. |
2023-11-17 20:13:17 +0100 | <ski> | was that a Functional Pearl ? |
2023-11-17 20:13:25 +0100 | <monochrom> | #5 "5. If a program manipulates a large amount of data, it does so in a small number of ways." Suppose you replace "amount" by "variety". Then it is the parametricity theorem! |
2023-11-17 20:13:30 +0100 | <monochrom> | I think yes. |
2023-11-17 20:14:21 +0100 | <ski> | mauke ? |
2023-11-17 20:17:10 +0100 | <ski> | monochrom : hm, interesting |
2023-11-17 20:18:19 +0100 | misterfish | (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 255 seconds) |
2023-11-17 20:18:33 +0100 | <ski> | ah, also "8. A programming language is low level when its programs require attention to the irrelevant.","19. A language that doesn't affect the way you think about programming, is not worth knowing." |
2023-11-17 20:18:37 +0100 | <monochrom> | But #9 "It is better to have 100 functions operate on one data structure than 10 functions on 10 data structures." is where Haskell+SML etc disagrees with Scheme+Clojure etc. |
2023-11-17 20:18:49 +0100 | billchenchina- | (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Remote host closed the connection) |
2023-11-17 20:19:04 +0100 | billchenchina- | (~billchenc@2408:824e:d2e:38f1:1059:3d3e:1395:9ed2) |
2023-11-17 20:19:05 +0100 | <ski> | still, we use tuples (though mostly pairs) |
2023-11-17 20:19:24 +0100 | <monochrom> | Hrm, maybe actually all of FP disagrees. |
2023-11-17 20:20:38 +0100 | <monochrom> | Conceptually, even though you use lists all the time in Scheme Clojure etc, you don't view them "the same list type". You have 10 types in mind, it's just an implementation detail that all of them are backed by lists. |
2023-11-17 20:20:40 +0100 | <ski> | there's also an argument to (analogously with tuples, say) have lightweight variant types, possibly positional rather than labelled |
2023-11-17 20:20:54 +0100 | <ski> | `Either' kinda does that, except for when you have more than two alternatives |
2023-11-17 20:21:34 +0100 | <ski> | the use case is when you almost always do `case' on the alternatives computed by the call, and then not refer to the compound variant types more |
2023-11-17 20:22:37 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds) |
2023-11-17 20:22:37 +0100 | <ski> | ("lightweight" meaning that you don't have to declare the types, just like you don't have to declare tuple types. and with the record types of Trex in Hugs, these also were lightweight) |
2023-11-17 20:23:08 +0100 | euleritian | (~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de) |
2023-11-17 20:23:33 +0100 | euleritian | (~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de) (Read error: Connection reset by peer) |
2023-11-17 20:23:50 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2023-11-17 20:23:51 +0100 | <ski> | (OCaml has "polymorphic variants" <https://v2.ocaml.org/manual/polyvariant.html> (in addition to the usual heavyweight, non-row-based, variant types), which are lightweight, using row types) |
2023-11-17 20:24:00 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving) |
2023-11-17 20:25:39 +0100 | <ski> | (you could imagine `(Error | Result)' has values of shape `(err |)' and `(| res)', continuing the pattern of tuple types and tuples) |
2023-11-17 20:32:14 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:4c99:f3ba:7425:36f4) (Remote host closed the connection) |
2023-11-17 20:35:35 +0100 | <EvanR> | (x||), (|y|), (||z) has type... uh |
2023-11-17 20:35:47 +0100 | <EvanR> | <a|b|c> |
2023-11-17 20:36:30 +0100 | <EvanR> | or (a|b|c) if you reuse the value syntax |
2023-11-17 20:36:37 +0100 | <EvanR> | cool beans |
2023-11-17 20:38:22 +0100 | <ski> | yep |
2023-11-17 20:38:47 +0100 | <ski> | (i guess you'd need to write `(x| |)', though, otherwise it's a section) |
2023-11-17 20:39:02 +0100 | <ski> | (or `(x | | )', if you prefer) |
2023-11-17 20:39:11 +0100 | <EvanR> | I was wondering how to get something like that for a small language with types designed for advent of code |
2023-11-17 20:39:22 +0100 | <EvanR> | now it is clear |
2023-11-17 20:40:00 +0100 | <ski> | (in case it's unclear, this variant is not based on row-types, is just similar to tuples, except for, you know, sum type instead of product type) |
2023-11-17 20:40:56 +0100 | <EvanR> | idris (used to?) implement tuples over size 2 as nested pairs, (a,b,c) sugar for (a,(b,c)), you could do the same thing here... |
2023-11-17 20:41:00 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 20:41:23 +0100 | <EvanR> | but maybe it's simpler to just have them be any size |
2023-11-17 20:41:49 +0100 | <ski> | probably |
2023-11-17 20:41:53 +0100 | <ski> | .. one could even imagine, instead of writing `case ... of (x | |) -> ..x..; (| y |) -> ..y..; (| | z) -> ..z..', you could write `case ... of (x | y | z) -> ..x.. | ..y.. | ..z..' |
2023-11-17 20:43:39 +0100 | <EvanR> | tuples/variants of size 1 through 7 supported only xD |
2023-11-17 20:44:24 +0100 | sagax | (~sagax_nb@user/sagax) (Ping timeout: 246 seconds) |
2023-11-17 20:44:35 +0100 | <EvanR> | since 7 trees is all you can get before you wrap back to 1 |
2023-11-17 20:45:46 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
2023-11-17 20:50:48 +0100 | nckx | (~nckx@libera/staff/owl/nckx) (Server closed connection) |
2023-11-17 20:51:10 +0100 | nckx | (~nckx@libera/staff/owl/nckx) |
2023-11-17 20:54:21 +0100 | <EvanR> | the haskell report describes the parsing of layout by first translating to a form containing { ; }. Does this actually happen or is layout parsed directly somehow |
2023-11-17 20:54:43 +0100 | <EvanR> | and which is easier xD |
2023-11-17 21:01:20 +0100 | notzmv | (~zmv@user/notzmv) |
2023-11-17 21:01:53 +0100 | <monochrom> | There was a recent thread on haskell-cafe about it. https://mail.haskell.org/pipermail/haskell-cafe/2023-November/136423.html |
2023-11-17 21:03:00 +0100 | forell | (~forell@user/forell) (Server closed connection) |
2023-11-17 21:03:17 +0100 | forell | (~forell@user/forell) |
2023-11-17 21:03:59 +0100 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2023-11-17 21:10:15 +0100 | <EvanR> | lovely |
2023-11-17 21:11:20 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:4c99:f3ba:7425:36f4) |
2023-11-17 21:18:42 +0100 | eL_Bart0 | (eL_Bart0@dietunichtguten.org) (Server closed connection) |
2023-11-17 21:18:43 +0100 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
2023-11-17 21:18:53 +0100 | eL_Bart0 | (eL_Bart0@dietunichtguten.org) |
2023-11-17 21:19:25 +0100 | euleritian | (~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de) |
2023-11-17 21:19:43 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 21:21:28 +0100 | billchenchina | (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) |
2023-11-17 21:22:25 +0100 | dcoutts | (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 276 seconds) |
2023-11-17 21:23:43 +0100 | billchenchina- | (~billchenc@2408:824e:d2e:38f1:1059:3d3e:1395:9ed2) (Ping timeout: 276 seconds) |
2023-11-17 21:24:54 +0100 | sajith | (~sajith@user/sajith) (Server closed connection) |
2023-11-17 21:25:01 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 276 seconds) |
2023-11-17 21:25:13 +0100 | sajith | (~sajith@user/sajith) |
2023-11-17 21:32:07 +0100 | johnw | (~johnw@69.62.242.138) (Quit: ZNC - http://znc.in) |
2023-11-17 21:48:10 +0100 | shapr | (~user@2600:1700:c640:3100:5b4c:3811:4e1e:b4e5) (Remote host closed the connection) |
2023-11-17 21:48:23 +0100 | shapr | (~user@2600:1700:c640:3100:3499:6a6b:ae1a:22d5) |
2023-11-17 21:48:41 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2023-11-17 21:49:39 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 21:50:27 +0100 | dsrt^ | (~cd@c-98-242-74-66.hsd1.ga.comcast.net) (Ping timeout: 256 seconds) |
2023-11-17 21:50:40 +0100 | dsrt^ | (~cd@c-98-242-74-66.hsd1.ga.comcast.net) |
2023-11-17 21:51:01 +0100 | sawilagar | (~sawilagar@user/sawilagar) (Ping timeout: 276 seconds) |
2023-11-17 21:51:01 +0100 | johnw | (~johnw@69.62.242.138) |
2023-11-17 21:54:21 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 268 seconds) |
2023-11-17 21:57:18 +0100 | minigrim0 | (~minigrim0@2a01:4f9:6b:3416:68ba:8dff:fe58:a5ea) (Ping timeout: 256 seconds) |
2023-11-17 21:59:36 +0100 | minigrim0 | (~minigrim0@mordor.urlab.be) |
2023-11-17 22:01:52 +0100 | trev | (~trev@user/trev) (Quit: trev) |
2023-11-17 22:02:29 +0100 | trev | (~trev@user/trev) |
2023-11-17 22:09:00 +0100 | misterfish | (~misterfis@84-53-85-146.bbserv.nl) |
2023-11-17 22:09:01 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 255 seconds) |
2023-11-17 22:11:57 +0100 | trev | (~trev@user/trev) (Quit: trev) |
2023-11-17 22:13:52 +0100 | billchenchina | (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Remote host closed the connection) |
2023-11-17 22:16:02 +0100 | _ht | (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection) |
2023-11-17 22:21:25 +0100 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
2023-11-17 22:24:55 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2023-11-17 22:26:14 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 22:28:34 +0100 | euleritian | (~euleritia@dynamic-002-247-250-221.2.247.pool.telefonica.de) (Read error: Connection reset by peer) |
2023-11-17 22:28:51 +0100 | euleritian | (~euleritia@77.22.252.56) |
2023-11-17 22:31:09 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
2023-11-17 22:33:04 +0100 | defanor | (~defanor@tart.uberspace.net) (Server closed connection) |
2023-11-17 22:33:21 +0100 | defanor | (~defanor@tart.uberspace.net) |
2023-11-17 22:38:11 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-11-17 22:38:37 +0100 | Inst | (~Inst@120.244.192.250) (Ping timeout: 256 seconds) |
2023-11-17 22:39:24 +0100 | arahael | (~arahael@1.145.12.195) |
2023-11-17 22:44:06 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2023-11-17 22:45:24 +0100 | sawilagar | (~sawilagar@user/sawilagar) |
2023-11-17 22:45:57 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-11-17 22:49:00 +0100 | ystael | (~ystael@user/ystael) (Ping timeout: 246 seconds) |
2023-11-17 22:53:21 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 256 seconds) |
2023-11-17 23:01:53 +0100 | cross | (~cross@spitfire.i.gajendra.net) (Quit: leaving) |
2023-11-17 23:02:35 +0100 | cross | (~cross@spitfire.i.gajendra.net) |
2023-11-17 23:06:34 +0100 | <dmj`> | EvanR: making a new haskell? |
2023-11-17 23:08:17 +0100 | idgaen | (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.1.1) |
2023-11-17 23:08:39 +0100 | dhil | (~dhil@2001:8e0:2014:3100:a0:aa7c:41ab:e261) (Ping timeout: 256 seconds) |
2023-11-17 23:15:19 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 23:16:42 +0100 | gentauro | (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
2023-11-17 23:18:21 +0100 | kimiamania467 | (~65804703@user/kimiamania) |
2023-11-17 23:19:25 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:4c99:f3ba:7425:36f4) (Ping timeout: 276 seconds) |
2023-11-17 23:20:22 +0100 | kimiamania46 | (~65804703@user/kimiamania) (Ping timeout: 260 seconds) |
2023-11-17 23:20:22 +0100 | kimiamania467 | kimiamania46 |
2023-11-17 23:20:30 +0100 | <EvanR> | NeoNeoHaskell |
2023-11-17 23:20:41 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 268 seconds) |
2023-11-17 23:22:12 +0100 | gentauro | (~gentauro@user/gentauro) |
2023-11-17 23:22:22 +0100 | shapr | (~user@2600:1700:c640:3100:3499:6a6b:ae1a:22d5) (Remote host closed the connection) |
2023-11-17 23:26:42 +0100 | <dmj`> | ghc-new |
2023-11-17 23:31:46 +0100 | arahael | (~arahael@1.145.12.195) (Ping timeout: 276 seconds) |
2023-11-17 23:33:04 +0100 | Xe | (~cadey@perl/impostor/xe) (Ping timeout: 276 seconds) |
2023-11-17 23:37:24 +0100 | blackfield | (~aenima@85.255.4.218) (Server closed connection) |
2023-11-17 23:38:11 +0100 | blackfield | (~aenima@85.255.4.218) |
2023-11-17 23:39:21 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) |
2023-11-17 23:40:54 +0100 | gooba | (~gooba@90-231-13-185-no3430.tbcn.telia.com) (Remote host closed the connection) |
2023-11-17 23:41:15 +0100 | gooba | (~gooba@90-231-13-185-no3430.tbcn.telia.com) |
2023-11-17 23:44:25 +0100 | nate4 | (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
2023-11-17 23:45:19 +0100 | misterfish | (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 255 seconds) |
2023-11-17 23:46:51 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-11-17 23:57:44 +0100 | michalz | (~michalz@185.246.207.221) (Remote host closed the connection) |