2021-01-11 00:01:19 +0100 | mirrorbird | (~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d) (Remote host closed the connection) |
2021-01-11 00:02:09 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
2021-01-11 00:03:20 +0100 | coot | (~coot@37.30.56.46.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-01-11 00:04:16 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) (Ping timeout: 246 seconds) |
2021-01-11 00:06:21 +0100 | hekkaidekapus] | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2021-01-11 00:07:03 +0100 | hekkaidekapus[ | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
2021-01-11 00:07:10 +0100 | Tesseraction | (~Tesseract@unaffiliated/tesseraction) (Read error: Connection reset by peer) |
2021-01-11 00:08:48 +0100 | mirrorbird | (~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d) |
2021-01-11 00:08:56 +0100 | DavidEichmann | (~david@98.27.93.209.dyn.plus.net) (Ping timeout: 256 seconds) |
2021-01-11 00:09:47 +0100 | pavonia | (~user@unaffiliated/siracusa) |
2021-01-11 00:10:10 +0100 | edrx | (~Eduardo@2804:56c:d2ef:cf00:369c:6c3f:6681:423e) |
2021-01-11 00:11:35 +0100 | <dmj`> | oh, ghc's Parser.y has 0 shift/reduce conflicts ... |
2021-01-11 00:12:12 +0100 | <c_wraith> | ghc's parser doesn't try to parse everything correctly, though. It leaves a lot of things to be fixed by later passes |
2021-01-11 00:12:52 +0100 | <edrx> | is it possible to put this "do" in a single line? how should I separate the "return" from the rest? |
2021-01-11 00:12:56 +0100 | <edrx> | do a <- [0,1], b <- [a+1,a+2]; return (a+b) |
2021-01-11 00:13:05 +0100 | <c_wraith> | semicolons |
2021-01-11 00:13:31 +0100 | <edrx> | c_wraith: perfect! thanks! =) |
2021-01-11 00:13:51 +0100 | <c_wraith> | you can write haskell as a {;} language. Most people don't. :) |
2021-01-11 00:13:57 +0100 | <c_wraith> | But for one-liners, it's useful |
2021-01-11 00:14:18 +0100 | <edrx> | next question... I am trying to understand list comprehensions by desugaring them - as Vladimir Zavialov does in this presentation here: https://youtu.be/fty9QL4aSRc ("Haskell to Core: Understanding Haskell Features Through Their Desugaring")... |
2021-01-11 00:14:56 +0100 | Deide | (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
2021-01-11 00:14:56 +0100 | mirrorbird | (~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d) (Remote host closed the connection) |
2021-01-11 00:15:02 +0100 | <edrx> | I've been able to draw typing diagrams for some examples of the do notation - e.g.: http://angg.twu.net/e/haskell.e.html#typing-do-notation - but in the syntax for list comprehensions an omitted "<-" seems to do something different... for example, here |
2021-01-11 00:15:11 +0100 | <edrx> | [(a,b) | a <- [0,1], b <- [a+1,a+2], a+b < 4] |
2021-01-11 00:15:43 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fca4:9ad3:62d5:2599) (Remote host closed the connection) |
2021-01-11 00:15:57 +0100 | <c_wraith> | you can add filters to list comprehensions |
2021-01-11 00:16:10 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fca4:9ad3:62d5:2599) |
2021-01-11 00:16:23 +0100 | <c_wraith> | You can desugar those as calls to guard |
2021-01-11 00:16:32 +0100 | <edrx> | translating "a+b < 4" to "_ <- a+b" doesn't work - it seems that the right translation generates a one-element list when the"a+b < 4" is true, and a [] when it is false... do you know where I can find the details? |
2021-01-11 00:16:49 +0100 | flux488 | (2fe3e53b@047-227-229-059.res.spectrum.com) (Ping timeout: 248 seconds) |
2021-01-11 00:16:49 +0100 | <edrx> | ah, let me try :t guard |
2021-01-11 00:17:17 +0100 | <edrx> | "Variable not in scope" |
2021-01-11 00:17:26 +0100 | <c_wraith> | @where guard |
2021-01-11 00:17:26 +0100 | <lambdabot> | I know nothing about guard. |
2021-01-11 00:17:30 +0100 | <c_wraith> | it's in Control.Monad |
2021-01-11 00:17:35 +0100 | <c_wraith> | :tguard |
2021-01-11 00:17:37 +0100 | <c_wraith> | :t guard |
2021-01-11 00:17:39 +0100 | <lambdabot> | Alternative f => Bool -> f () |
2021-01-11 00:18:02 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fca4:9ad3:62d5:2599) (Remote host closed the connection) |
2021-01-11 00:18:04 +0100 | Deide | (~Deide@217.155.19.23) |
2021-01-11 00:18:09 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fca4:9ad3:62d5:2599) |
2021-01-11 00:18:13 +0100 | <edrx> | beautiful! thanks! =) |
2021-01-11 00:18:14 +0100 | lambda-11235 | (~lambda-11@2600:1700:7c70:4600:2560:f230:a66e:db8d) |
2021-01-11 00:18:18 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fca4:9ad3:62d5:2599) (Remote host closed the connection) |
2021-01-11 00:18:51 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fca4:9ad3:62d5:2599) |
2021-01-11 00:19:07 +0100 | joshualit140[m] | (joshualit1@gateway/shell/matrix.org/x-whhblwmaoulboefx) |
2021-01-11 00:19:11 +0100 | <joshualit140[m]> | Hi. I'm paying 100€ for a Haskell developer to complete a project in 24 hours (Nothing too extreme, just a simple IO program). Please DM me if you are interested. |
2021-01-11 00:19:11 +0100 | <joshualit140[m]> | Not sure if I can post that here, but I need the project done asap. |
2021-01-11 00:20:43 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Remote host closed the connection) |
2021-01-11 00:21:11 +0100 | <dmj`> | c_wraith: I noticed ghc doesn't try to parse patterns, yea. It has a post-processing step for that, wonder if it stole that from jhc |
2021-01-11 00:21:23 +0100 | ogamita | (~t@2a01cb04063ec500d4be9ffe0c684211.ipv6.abo.wanadoo.fr) (Read error: Connection reset by peer) |
2021-01-11 00:22:07 +0100 | <dmj`> | c_wraith: too bad patterns can't be represented in happy |
2021-01-11 00:22:25 +0100 | <c_wraith> | dmj`: it also doesn't handle operator precedence, as that's context-sensitive |
2021-01-11 00:22:35 +0100 | urek | (~urek@2804:7f1:e10a:8920:8158:2ad1:b01b:bb41) |
2021-01-11 00:23:10 +0100 | urek | (~urek@2804:7f1:e10a:8920:8158:2ad1:b01b:bb41) () |
2021-01-11 00:23:26 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fca4:9ad3:62d5:2599) (Ping timeout: 264 seconds) |
2021-01-11 00:23:38 +0100 | <dmj`> | c_wraith: is that because custom operators specify their own precedence, so it'd have to know ahead of time what the precedence was before parsing |
2021-01-11 00:24:14 +0100 | mirrorbird | (~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d) |
2021-01-11 00:24:31 +0100 | <c_wraith> | yes |
2021-01-11 00:25:04 +0100 | <dmj`> | rip |
2021-01-11 00:25:26 +0100 | <c_wraith> | at least haskell syntax is decideable, even if it is context-sensitive! |
2021-01-11 00:25:38 +0100 | c_wraith | taunts perl |
2021-01-11 00:25:44 +0100 | <dmj`> | c_wraith: purescript avoids patterns altogether, I see why |
2021-01-11 00:25:53 +0100 | pera | (pera@gateway/vpn/mullvad/pera) (Quit: leaving) |
2021-01-11 00:28:49 +0100 | <dmj`> | c_wraith: I just want a nice declarative parser for Haskell is that too much to ask for? |
2021-01-11 00:29:19 +0100 | <c_wraith> | technically no. You could make a context-sensitive declarative tool. |
2021-01-11 00:29:27 +0100 | <c_wraith> | But it would probably be slow. |
2021-01-11 00:29:45 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-01-11 00:30:11 +0100 | Tesseraction | (~Tesseract@unaffiliated/tesseraction) |
2021-01-11 00:31:31 +0100 | son0p | (~son0p@181.136.122.143) (Quit: Lost terminal) |
2021-01-11 00:35:37 +0100 | <c_wraith> | also, I have *no idea* how to extend the formalisms you can prove handle context-sensitive grammars declaratively into a practical system. |
2021-01-11 00:38:01 +0100 | <dmj`> | c_wraith: the time I'd lose in parse time I could make up by not implementing a bunch of extensions that aren't used anymore |
2021-01-11 00:38:06 +0100 | ransom | (~c4264035@c-67-176-3-106.hsd1.co.comcast.net) |
2021-01-11 00:45:16 +0100 | darjeeling_ | (~darjeelin@115.215.40.96) (Ping timeout: 256 seconds) |
2021-01-11 00:47:48 +0100 | jess | (jess@freenode/staff/jess) (Quit: updates) |
2021-01-11 00:48:10 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fca4:9ad3:62d5:2599) |
2021-01-11 00:51:32 +0100 | vappend | (~ezrakilty@75-172-99-84.tukw.qwest.net) (Remote host closed the connection) |
2021-01-11 00:53:25 +0100 | ransom | (~c4264035@c-67-176-3-106.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-11 00:54:02 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fca4:9ad3:62d5:2599) (Ping timeout: 260 seconds) |
2021-01-11 00:55:28 +0100 | Kaiepi | (~Kaiepi@47.54.252.148) (Remote host closed the connection) |
2021-01-11 00:55:35 +0100 | ThaDon | (~ThaDon@185.103.96.147) (Remote host closed the connection) |
2021-01-11 00:55:43 +0100 | Kaiepi | (~Kaiepi@47.54.252.148) |
2021-01-11 00:58:45 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Quit: p-core) |
2021-01-11 00:59:07 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) |
2021-01-11 01:00:21 +0100 | Guest19797 | (~textual@2603-7000-3040-0000-ad3e-16ae-7559-7e68.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-11 01:04:05 +0100 | atk | (~Arch-TK@ircpuzzles/staff/Arch-TK) (Quit: Well this is unexpected.) |
2021-01-11 01:04:57 +0100 | atk | (~Arch-TK@ircpuzzles/staff/Arch-TK) |
2021-01-11 01:05:19 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fca4:9ad3:62d5:2599) |
2021-01-11 01:06:04 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-11 01:06:45 +0100 | <edrx> | ok, guard is here: libraries/base/Control/Monad.hs... |
2021-01-11 01:07:14 +0100 | <edrx> | what do I need to do in the ghci prompt to put "guard" in the current scope? some kind of import? |
2021-01-11 01:07:43 +0100 | <monochrom> | "import Control.Monad" or ":module +Control.Monad" |
2021-01-11 01:08:28 +0100 | <edrx> | monochrom: perfect!!! thanks!!! =) |
2021-01-11 01:10:14 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fca4:9ad3:62d5:2599) (Ping timeout: 264 seconds) |
2021-01-11 01:11:08 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) |
2021-01-11 01:11:21 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) (Quit: dandart) |
2021-01-11 01:11:37 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-01-11 01:12:07 +0100 | unknown | (~unknown@185.204.1.185) |
2021-01-11 01:18:36 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:5947:e9b7:38e6:9425) |
2021-01-11 01:21:01 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-01-11 01:21:08 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-11 01:21:35 +0100 | matryoshka` | (~matryoshk@184.75.223.227) |
2021-01-11 01:21:35 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Read error: Connection reset by peer) |
2021-01-11 01:22:46 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-01-11 01:23:06 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) |
2021-01-11 01:23:21 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Remote host closed the connection) |
2021-01-11 01:23:30 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-11 01:24:00 +0100 | usr25 | (~usr25@unaffiliated/usr25) |
2021-01-11 01:24:09 +0100 | usr25 | (~usr25@unaffiliated/usr25) () |
2021-01-11 01:26:07 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:5947:e9b7:38e6:9425) (Ping timeout: 260 seconds) |
2021-01-11 01:27:56 +0100 | matryoshka` | (~matryoshk@184.75.223.227) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-01-11 01:28:13 +0100 | Deide | (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
2021-01-11 01:28:56 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) |
2021-01-11 01:35:01 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Ping timeout: 264 seconds) |
2021-01-11 01:35:40 +0100 | remby | (~remby@bras-base-london1483w-grc-11-76-69-70-199.dsl.bell.ca) |
2021-01-11 01:35:46 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:255c:18d1:c1a9:13be:6f9e) |
2021-01-11 01:35:49 +0100 | <remby> | does haskell have offline documentation? |
2021-01-11 01:37:51 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:5947:e9b7:38e6:9425) |
2021-01-11 01:38:33 +0100 | <monochrom> | Yes. |
2021-01-11 01:39:24 +0100 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Remote host closed the connection) |
2021-01-11 01:40:44 +0100 | mputz | (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 260 seconds) |
2021-01-11 01:41:29 +0100 | <remby> | ok, I guess that decides it then |
2021-01-11 01:41:55 +0100 | <shapr> | hoogle is really handy |
2021-01-11 01:42:17 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) |
2021-01-11 01:42:28 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:5947:e9b7:38e6:9425) (Ping timeout: 260 seconds) |
2021-01-11 01:42:32 +0100 | sagax | (~sagax_nb@213.138.71.146) (Quit: Konversation terminated!) |
2021-01-11 01:43:51 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-11 01:46:54 +0100 | kupi | (uid212005@gateway/web/irccloud.com/x-dnfwwxqcgyemldny) (Quit: Connection closed for inactivity) |
2021-01-11 01:47:48 +0100 | electricityZZZZ | (~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net) (Quit: Leaving) |
2021-01-11 01:49:19 +0100 | <edrx> | how do I make cabal update its installed packages to the latest versions? here's what I tried... http://ix.io/2LBD |
2021-01-11 01:52:05 +0100 | vappend | (~ezrakilty@75-172-99-84.tukw.qwest.net) |
2021-01-11 01:55:04 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:5947:e9b7:38e6:9425) |
2021-01-11 01:59:58 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:5947:e9b7:38e6:9425) (Ping timeout: 260 seconds) |
2021-01-11 02:00:00 +0100 | Alleria | (~textual@2603-7000-3040-0000-ad3e-16ae-7559-7e68.res6.spectrum.com) |
2021-01-11 02:00:24 +0100 | Alleria | Guest81850 |
2021-01-11 02:02:08 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Remote host closed the connection) |
2021-01-11 02:03:15 +0100 | <monochrom> | "cabal install ghc" reflects two misconceptions, not just one. |
2021-01-11 02:03:37 +0100 | <monochrom> | cabal is not responsible for installing the compiler. |
2021-01-11 02:04:18 +0100 | <monochrom> | the package name "ghc" does not refer to the compiler either. It refers to a library. |
2021-01-11 02:04:50 +0100 | Guest81850 | (~textual@2603-7000-3040-0000-ad3e-16ae-7559-7e68.res6.spectrum.com) (Ping timeout: 264 seconds) |
2021-01-11 02:07:51 +0100 | <edrx> | monochrom: ooops |
2021-01-11 02:08:41 +0100 | <edrx> | yeah, I was making some not-very-educated guesses and checking if they would work... |
2021-01-11 02:08:45 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-11 02:10:41 +0100 | xff0x_ | (~fox@2001:1a81:53b9:9a00:e5cb:577b:4380:8a0f) (Ping timeout: 272 seconds) |
2021-01-11 02:11:13 +0100 | zaquest | (~notzaques@5.128.210.178) (Quit: Leaving) |
2021-01-11 02:11:15 +0100 | xff0x | (~fox@2001:1a81:53b9:9a00:e9ba:2994:380d:244a) |
2021-01-11 02:16:29 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:6523:6211:1be0:a1d0) |
2021-01-11 02:16:42 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
2021-01-11 02:16:55 +0100 | zaquest | (~notzaques@5.128.210.178) |
2021-01-11 02:18:13 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-01-11 02:20:58 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:6523:6211:1be0:a1d0) (Ping timeout: 260 seconds) |
2021-01-11 02:24:38 +0100 | xff0x | (~fox@2001:1a81:53b9:9a00:e9ba:2994:380d:244a) (Ping timeout: 264 seconds) |
2021-01-11 02:25:28 +0100 | xff0x | (~fox@2001:1a81:53b9:9a00:3eee:771:334a:a242) |
2021-01-11 02:25:40 +0100 | columbarius1 | (~columbari@i5E86B32C.versanet.de) (Ping timeout: 246 seconds) |
2021-01-11 02:26:23 +0100 | natechan | (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Quit: WeeChat 2.9) |
2021-01-11 02:27:59 +0100 | columbarius1 | (~columbari@87.123.198.160) |
2021-01-11 02:31:39 +0100 | mirrorbird | (~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d) (Remote host closed the connection) |
2021-01-11 02:32:07 +0100 | mirrorbird | (~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d) |
2021-01-11 02:35:43 +0100 | natechan | (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-01-11 02:36:00 +0100 | ArConan | (~ArConan@202.74.1.147) |
2021-01-11 02:36:26 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:c0dd:aaee:98bd:df7) |
2021-01-11 02:36:57 +0100 | ArConan | (~ArConan@202.74.1.147) (Remote host closed the connection) |
2021-01-11 02:37:18 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:32fa:5861:e6a3:7ef9) (Ping timeout: 260 seconds) |
2021-01-11 02:37:19 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
2021-01-11 02:37:52 +0100 | ArConan | (~ArConan@pcd459180.netvigator.com) |
2021-01-11 02:38:26 +0100 | noctux | (~noctux@unaffiliated/noctux) (Ping timeout: 264 seconds) |
2021-01-11 02:38:54 +0100 | <ArConan> | hm |
2021-01-11 02:39:36 +0100 | AWizzArd | (~code@unaffiliated/awizzard) (Ping timeout: 240 seconds) |
2021-01-11 02:39:37 +0100 | cocreature | (~cocreatur@eirene.uberspace.de) (Ping timeout: 265 seconds) |
2021-01-11 02:40:08 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
2021-01-11 02:40:19 +0100 | ArConan | (~ArConan@pcd459180.netvigator.com) (Remote host closed the connection) |
2021-01-11 02:41:23 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:c0dd:aaee:98bd:df7) (Ping timeout: 260 seconds) |
2021-01-11 02:41:36 +0100 | Gurkenglas_ | (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 256 seconds) |
2021-01-11 02:42:16 +0100 | vappend | (~ezrakilty@75-172-99-84.tukw.qwest.net) (Remote host closed the connection) |
2021-01-11 02:44:54 +0100 | jmchael | (~jmchael@87.112.235.234) (Ping timeout: 260 seconds) |
2021-01-11 02:47:20 +0100 | ArConan | (~ArConan@pcd459180.netvigator.com) |
2021-01-11 02:48:03 +0100 | conal_ | (~conal@66.115.176.210) (Quit: Computer has gone to sleep.) |
2021-01-11 02:48:18 +0100 | ArConan | (~ArConan@pcd459180.netvigator.com) (Remote host closed the connection) |
2021-01-11 02:49:26 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:5c80:7e91:5436:7bd4) |
2021-01-11 02:50:57 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-11 02:52:34 +0100 | shinobi_ | (~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) |
2021-01-11 02:54:22 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:c0dd:aaee:98bd:df7) |
2021-01-11 02:56:24 +0100 | shinobi | (~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) (Ping timeout: 272 seconds) |
2021-01-11 02:56:25 +0100 | niekvand_ | (~niekvande@2001:985:bebc:1:bd2c:61bf:46f:59d0) |
2021-01-11 02:56:34 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-01-11 02:58:52 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:c0dd:aaee:98bd:df7) (Ping timeout: 260 seconds) |
2021-01-11 02:59:29 +0100 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
2021-01-11 02:59:32 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) |
2021-01-11 03:01:13 +0100 | niekvand_ | (~niekvande@2001:985:bebc:1:bd2c:61bf:46f:59d0) (Ping timeout: 260 seconds) |
2021-01-11 03:03:20 +0100 | guest111 | (~user@49.5.6.87) |
2021-01-11 03:10:13 +0100 | mirrorbird | (~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d) (Ping timeout: 272 seconds) |
2021-01-11 03:12:17 +0100 | acidjnk_new | (~acidjnk@p200300d0c704e77520873290fe3f7255.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2021-01-11 03:18:21 +0100 | heron | (~owner@198.52.165.210) |
2021-01-11 03:20:20 +0100 | conal | (~conal@66.115.176.210) |
2021-01-11 03:27:12 +0100 | AWizzArd | (~code@gehrels.uberspace.de) |
2021-01-11 03:27:13 +0100 | dwts | (pid@gateway/shell/blinkenshell.org/x-yvyypwvhqlmptmog) (Ping timeout: 264 seconds) |
2021-01-11 03:27:58 +0100 | niekvandepas | (~niekvande@80-100-16-191.ip.xs4all.nl) |
2021-01-11 03:28:00 +0100 | noctux | (~noctux@unaffiliated/noctux) |
2021-01-11 03:28:57 +0100 | dwts | (pid@gateway/shell/blinkenshell.org/x-rpycedoficifxmhn) |
2021-01-11 03:29:16 +0100 | cocreature | (~cocreatur@eirene.uberspace.de) |
2021-01-11 03:30:24 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-11 03:32:45 +0100 | noctux | (~noctux@unaffiliated/noctux) (Ping timeout: 240 seconds) |
2021-01-11 03:32:54 +0100 | noctux | (~noctux@unaffiliated/noctux) |
2021-01-11 03:33:05 +0100 | niekvandepas | (~niekvande@80-100-16-191.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-01-11 03:33:08 +0100 | yahb | (xsbot@haskell/bot/yahb) (Ping timeout: 272 seconds) |
2021-01-11 03:37:27 +0100 | xff0x | (~fox@2001:1a81:53b9:9a00:3eee:771:334a:a242) (Ping timeout: 272 seconds) |
2021-01-11 03:37:37 +0100 | noctux | (~noctux@unaffiliated/noctux) (Ping timeout: 265 seconds) |
2021-01-11 03:38:41 +0100 | xff0x | (~fox@2001:1a81:53ed:d500:65a5:563d:c1b5:1e59) |
2021-01-11 03:38:43 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-01-11 03:38:49 +0100 | rajivr | (uid269651@gateway/web/irccloud.com/x-xvvnrltyuwuuhove) |
2021-01-11 03:39:03 +0100 | yahb | (xsbot@haskell/bot/yahb) |
2021-01-11 03:39:49 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 264 seconds) |
2021-01-11 03:42:20 +0100 | dmiles | (dmiles@c-98-232-203-68.hsd1.wa.comcast.net) () |
2021-01-11 03:43:25 +0100 | dwts | (pid@gateway/shell/blinkenshell.org/x-rpycedoficifxmhn) (Ping timeout: 240 seconds) |
2021-01-11 03:43:46 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 256 seconds) |
2021-01-11 03:45:03 +0100 | srk | (~sorki@gateway/tor-sasl/sorki) (Ping timeout: 240 seconds) |
2021-01-11 03:45:23 +0100 | hexo | (~hexo@gateway/tor-sasl/hexo) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-01-11 03:46:10 +0100 | Entertainment | (~entertain@104.246.132.210) (Ping timeout: 246 seconds) |
2021-01-11 03:46:19 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2021-01-11 03:49:37 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Read error: Connection reset by peer) |
2021-01-11 03:51:52 +0100 | Wuzzy | (~Wuzzy@p5790e648.dip0.t-ipconnect.de) (Quit: Wuzzy) |
2021-01-11 03:52:17 +0100 | pedrorubster[m] | sent a long message: < https://matrix.org/_matrix/media/r0/download/matrix.org/GiyGDoHyIzMWlKVnaWBFSYak/message.txt > |
2021-01-11 03:52:26 +0100 | dwts | (pid@gateway/shell/blinkenshell.org/x-ctstbhsfeyhihnsa) |
2021-01-11 03:54:20 +0100 | noctux | (~noctux@unaffiliated/noctux) |
2021-01-11 03:55:08 +0100 | conal | (~conal@66.115.176.210) (Quit: Computer has gone to sleep.) |
2021-01-11 03:55:35 +0100 | <pedrorubster[m]> | ephemient: Don't want to take advantage of you, but you helped me last time haha |
2021-01-11 03:57:33 +0100 | dcbdnl | (~dcbdnl@c-73-76-129-120.hsd1.tx.comcast.net) (Quit: dcbdnl) |
2021-01-11 04:00:03 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2021-01-11 04:01:44 +0100 | dcbdnl | (~dcbdnl@c-73-76-129-120.hsd1.tx.comcast.net) |
2021-01-11 04:04:48 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-01-11 04:05:04 +0100 | noctux | (~noctux@unaffiliated/noctux) (Ping timeout: 246 seconds) |
2021-01-11 04:05:12 +0100 | noctux | (~noctux@unaffiliated/noctux) |
2021-01-11 04:11:27 +0100 | drbean | (~drbean@TC210-63-209-203.static.apol.com.tw) |
2021-01-11 04:16:34 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection) |
2021-01-11 04:17:34 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-11 04:18:48 +0100 | darjeeling_ | (~darjeelin@115.215.40.96) |
2021-01-11 04:21:15 +0100 | urodna | (~urodna@unaffiliated/urodna) (Quit: urodna) |
2021-01-11 04:21:52 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 246 seconds) |
2021-01-11 04:23:00 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-01-11 04:23:10 +0100 | remby | (~remby@bras-base-london1483w-grc-11-76-69-70-199.dsl.bell.ca) (Quit: remby) |
2021-01-11 04:24:52 +0100 | <glguy> | pedrorubster[m], that message ended up being too long to come through directly to IRC |
2021-01-11 04:25:18 +0100 | heron | (~owner@198.52.165.210) (Quit: WeeChat 3.1-dev) |
2021-01-11 04:28:09 +0100 | petersen | (~petersen@redhat/juhp) |
2021-01-11 04:32:35 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-11 04:33:17 +0100 | jedws | (~jedws@121.209.139.157) |
2021-01-11 04:37:37 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-01-11 04:37:44 +0100 | dyeplexer | (~lol@unaffiliated/terpin) |
2021-01-11 04:37:47 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:bd2c:61bf:46f:59d0) |
2021-01-11 04:43:17 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:bd2c:61bf:46f:59d0) (Ping timeout: 260 seconds) |
2021-01-11 04:45:13 +0100 | xff0x | (~fox@2001:1a81:53ed:d500:65a5:563d:c1b5:1e59) (Ping timeout: 272 seconds) |
2021-01-11 04:45:54 +0100 | xff0x | (~fox@2001:1a81:53ed:d500:ffc4:2540:c5b7:b45c) |
2021-01-11 04:47:04 +0100 | theDon | (~td@94.134.91.57) (Ping timeout: 246 seconds) |
2021-01-11 04:49:02 +0100 | theDon | (~td@94.134.91.199) |
2021-01-11 04:50:36 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-11 04:50:56 +0100 | ransom | (~c4264035@c-67-176-3-106.hsd1.co.comcast.net) |
2021-01-11 04:51:50 +0100 | maxsu | (~maxsu@ip-64-72-99-232.lasvegas.net) |
2021-01-11 04:52:56 +0100 | jonatanb | (~jonatanb@83.24.29.180.ipv4.supernova.orange.pl) |
2021-01-11 04:56:05 +0100 | jedws | (~jedws@121.209.139.157) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-11 04:56:36 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 240 seconds) |
2021-01-11 04:57:05 +0100 | jonatanb | (~jonatanb@83.24.29.180.ipv4.supernova.orange.pl) (Ping timeout: 240 seconds) |
2021-01-11 04:57:07 +0100 | gxt | (~gxt@gateway/tor-sasl/gxt) |
2021-01-11 04:58:38 +0100 | xirhtogal | (~lagothrix@unaffiliated/lagothrix) |
2021-01-11 04:58:38 +0100 | lagothrix | Guest22145 |
2021-01-11 04:58:38 +0100 | Guest22145 | (~lagothrix@unaffiliated/lagothrix) (Killed (orwell.freenode.net (Nickname regained by services))) |
2021-01-11 04:58:38 +0100 | xirhtogal | lagothrix |
2021-01-11 04:58:44 +0100 | higherkinded | (~dm223@ip68-225-238-234.oc.oc.cox.net) |
2021-01-11 05:00:00 +0100 | Taneb | (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) (Quit: I seem to have stopped.) |
2021-01-11 05:01:30 +0100 | Taneb | (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) |
2021-01-11 05:03:27 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-11 05:03:43 +0100 | lambda-11235 | (~lambda-11@2600:1700:7c70:4600:2560:f230:a66e:db8d) (Max SendQ exceeded) |
2021-01-11 05:04:07 +0100 | higherkinded | (~dm223@ip68-225-238-234.oc.oc.cox.net) (Quit: Leaving) |
2021-01-11 05:04:16 +0100 | lambda-11235 | (~lambda-11@2600:1700:7c70:4600:2560:f230:a66e:db8d) |
2021-01-11 05:06:02 +0100 | Tops2 | (~Tobias@dyndsl-095-033-095-004.ewe-ip-backbone.de) |
2021-01-11 05:06:28 +0100 | krofe | (kevin@gateway/vpn/protonvpn/krofe) |
2021-01-11 05:06:31 +0100 | iridescent | (2fe3e53b@047-227-229-059.res.spectrum.com) |
2021-01-11 05:06:42 +0100 | <iridescent> | could anyone explain how `(fmap . fmap) sum Just [1, 2, 3]`works |
2021-01-11 05:06:50 +0100 | <iridescent> | `(fmap . fmap) sum Just [1, 2, 3]` |
2021-01-11 05:09:00 +0100 | <glguy> | > (fmap . fmap) sum Just [1, 2, 3] |
2021-01-11 05:09:03 +0100 | <lambdabot> | Just 6 |
2021-01-11 05:09:12 +0100 | <glguy> | Let's inline the use of (.) |
2021-01-11 05:09:24 +0100 | <glguy> | fmap (fmap sum) Just [1,2,3] |
2021-01-11 05:09:33 +0100 | <iridescent> | right |
2021-01-11 05:09:38 +0100 | <glguy> | the (->) r instance of fmap is (.) |
2021-01-11 05:09:41 +0100 | <glguy> | so now we have: |
2021-01-11 05:09:47 +0100 | <glguy> | (fmap sum . Just) [1,2,3] |
2021-01-11 05:09:52 +0100 | <iridescent> | how do we know we're dealing with a (->) r instance? |
2021-01-11 05:10:05 +0100 | <glguy> | :t fmap |
2021-01-11 05:10:07 +0100 | <lambdabot> | Functor f => (a -> b) -> f a -> f b |
2021-01-11 05:10:23 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:bd2c:61bf:46f:59d0) |
2021-01-11 05:10:24 +0100 | <glguy> | And the use of fmap is: fmap _ Just |
2021-01-11 05:10:36 +0100 | tama2 | (~tama@unaffiliated/tama00) |
2021-01-11 05:10:40 +0100 | <glguy> | so in that use, f is chosen to be: (Int -> Maybe Int) |
2021-01-11 05:10:42 +0100 | <iridescent> | so "Just" is the "f a" here? |
2021-01-11 05:10:44 +0100 | <glguy> | err |
2021-01-11 05:10:52 +0100 | <glguy> | f is: (->) Int |
2021-01-11 05:10:57 +0100 | tama2 | tama00 |
2021-01-11 05:10:59 +0100 | heronwr | (~heronwr@198.52.165.210) |
2021-01-11 05:11:19 +0100 | <iridescent> | shouldn't we have "f a" = Int -> Maybe Int |
2021-01-11 05:11:28 +0100 | <glguy> | yeah, f applied to *a* is that |
2021-01-11 05:11:37 +0100 | <glguy> | f is (->) Int; a is (Maybe Int) |
2021-01-11 05:11:42 +0100 | <iridescent> | oh ok |
2021-01-11 05:11:46 +0100 | <glguy> | so f a is: Int -> Maybe Int |
2021-01-11 05:11:54 +0100 | <glguy> | Do you know the rest or should I keep going? |
2021-01-11 05:12:35 +0100 | <iridescent> | i'm good |
2021-01-11 05:12:36 +0100 | tama1 | (~tama@unaffiliated/tama00) (Ping timeout: 240 seconds) |
2021-01-11 05:12:45 +0100 | <iridescent> | i guess that's what i didn't get |
2021-01-11 05:13:56 +0100 | chirpsalot | (~Chirps@pool-98-115-239-235.phlapa.fios.verizon.net) (Ping timeout: 240 seconds) |
2021-01-11 05:15:58 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:bd2c:61bf:46f:59d0) (Ping timeout: 260 seconds) |
2021-01-11 05:20:10 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-11 05:21:24 +0100 | Codaraxis__ | (~Codaraxis@141.98.255.144) |
2021-01-11 05:21:43 +0100 | dcbdnl | (~dcbdnl@c-73-76-129-120.hsd1.tx.comcast.net) (Quit: dcbdnl) |
2021-01-11 05:23:36 +0100 | heronwr | (~heronwr@198.52.165.210) (Quit: WeeChat 3.1-dev) |
2021-01-11 05:24:18 +0100 | chirpsalot | (~Chirps@pool-98-115-239-235.phlapa.fios.verizon.net) |
2021-01-11 05:24:52 +0100 | Codaraxis_ | (~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Ping timeout: 246 seconds) |
2021-01-11 05:25:25 +0100 | Tario | (~Tario@201.192.165.173) (Ping timeout: 264 seconds) |
2021-01-11 05:26:49 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:bd2c:61bf:46f:59d0) |
2021-01-11 05:30:10 +0100 | <iridescent> | could anyone give some example of how the sequence operator is useful? |
2021-01-11 05:30:25 +0100 | <iridescent> | like I understand what it does but I can't imagine why i would want to do such an operation |
2021-01-11 05:31:14 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:bd2c:61bf:46f:59d0) (Ping timeout: 264 seconds) |
2021-01-11 05:34:21 +0100 | jedws | (~jedws@121.209.139.157) |
2021-01-11 05:37:16 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-01-11 05:37:26 +0100 | ome | (uid36537@gateway/web/irccloud.com/x-ccqrafxmodzzqrro) |
2021-01-11 05:37:33 +0100 | Tario | (~Tario@201.192.165.173) |
2021-01-11 05:38:17 +0100 | <ome> | In Lambda Calculus, how do you read out a term like this: λx. λy. x y x |
2021-01-11 05:40:59 +0100 | owner | (~heronwr@198.52.165.210) |
2021-01-11 05:41:28 +0100 | owner | heronwr |
2021-01-11 05:42:19 +0100 | <ski> | the function that maps an input, call it ⌜x⌝, to the function that maps an input, call it ⌜y⌝, to the application of the application of ⌜x⌝ to ⌜y⌝, to ⌜x⌝ |
2021-01-11 05:42:50 +0100 | <ome> | Thanks. |
2021-01-11 05:44:17 +0100 | dcbdnl | (~dcbdnl@c-73-76-129-120.hsd1.tx.comcast.net) |
2021-01-11 05:44:20 +0100 | <ome> | So this would be acceptable: lambda x maps to lambda y that maps to x applied to y applied to x ? |
2021-01-11 05:44:43 +0100 | <ski> | yes (if you associate the applications in the right way) |
2021-01-11 05:45:59 +0100 | <ski> | i guess sometimes people read the ⌜.⌝ as dot (as least i do, at times), making it "lambda ex dot lambda why dot ex of why, of ex" |
2021-01-11 05:46:01 +0100 | <ome> | cheers |
2021-01-11 05:46:58 +0100 | <ski> | another ("mathy") way to spell it would be ⌜x ↦ (y ↦ x(y)(x))⌝ (⌜↦⌝ is read as "maps to") |
2021-01-11 05:47:53 +0100 | <ski> | (i also used the usual math notation for application there, bracketting parameters, rather than simply using juxtaposition, as is the convention in the lambda calculus) |
2021-01-11 05:52:29 +0100 | ryantrinkle | (~ryan@cpe-24-168-87-184.si.res.rr.com) (Quit: Leaving.) |
2021-01-11 05:56:54 +0100 | heronwr | (~heronwr@198.52.165.210) (Quit: WeeChat 3.1-dev) |
2021-01-11 05:58:34 +0100 | niekvandepas | (~niekvande@80-100-16-191.ip.xs4all.nl) |
2021-01-11 05:58:52 +0100 | albel727 | (~albel727@unaffiliated/albel727) (Quit: KVIrc 5.0.1 Aria http://www.kvirc.net/) |
2021-01-11 06:00:20 +0100 | Alleria | (~textual@2603-7000-3040-0000-ad3e-16ae-7559-7e68.res6.spectrum.com) |
2021-01-11 06:00:44 +0100 | Alleria | Guest9894 |
2021-01-11 06:04:50 +0100 | Guest9894 | (~textual@2603-7000-3040-0000-ad3e-16ae-7559-7e68.res6.spectrum.com) (Ping timeout: 264 seconds) |
2021-01-11 06:05:31 +0100 | Tario | (~Tario@201.192.165.173) (Ping timeout: 265 seconds) |
2021-01-11 06:06:34 +0100 | Vulfe_ | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) (Remote host closed the connection) |
2021-01-11 06:07:04 +0100 | niekvandepas | (~niekvande@80-100-16-191.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-01-11 06:08:27 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-11 06:08:54 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-01-11 06:12:36 +0100 | m0rphism | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 240 seconds) |
2021-01-11 06:13:31 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-01-11 06:13:38 +0100 | christo | (~chris@81.96.113.213) |
2021-01-11 06:14:06 +0100 | ystael | (~ystael@209.6.50.55) (Ping timeout: 256 seconds) |
2021-01-11 06:16:29 +0100 | <iridescent> | could soembody please explain why `(sequence .) . fmap = \f xs -> sequence (fmap f xs)` |
2021-01-11 06:17:18 +0100 | <glguy> | (sequence .) . fmap |
2021-01-11 06:17:27 +0100 | unknown | (~unknown@185.204.1.185) (Remote host closed the connection) |
2021-01-11 06:17:33 +0100 | <glguy> | (\f g x -> f (g x)) (sequence .) fmap |
2021-01-11 06:17:49 +0100 | <glguy> | \x -> (sequence .) (fmap x) |
2021-01-11 06:17:56 +0100 | <glguy> | \x -> sequence . fmap x |
2021-01-11 06:18:19 +0100 | <glguy> | err, alpharename: \f -> sequence . fmap f |
2021-01-11 06:18:37 +0100 | <glguy> | \f -> (\a b xs -> a (b xs)) sequence (fmap f) |
2021-01-11 06:18:40 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) |
2021-01-11 06:18:51 +0100 | <glguy> | \f -> \xs -> sequence (fmap f xs) |
2021-01-11 06:18:57 +0100 | <glguy> | \f xs -> sequence (fmap f xs) |
2021-01-11 06:22:44 +0100 | Tops21 | (~Tobias@dyndsl-091-249-083-248.ewe-ip-backbone.de) |
2021-01-11 06:23:26 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) (Ping timeout: 264 seconds) |
2021-01-11 06:24:49 +0100 | Tops2 | (~Tobias@dyndsl-095-033-095-004.ewe-ip-backbone.de) (Ping timeout: 260 seconds) |
2021-01-11 06:27:52 +0100 | gonemad3 | (~gonemad3@s91904426.blix.com) |
2021-01-11 06:31:33 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:255c:18d1:c1a9:13be:6f9e) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-11 06:32:57 +0100 | dcbdnl | (~dcbdnl@c-73-76-129-120.hsd1.tx.comcast.net) (Quit: dcbdnl) |
2021-01-11 06:32:59 +0100 | ransom | (~c4264035@c-67-176-3-106.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-11 06:33:38 +0100 | Orbstheorem | (~roosember@hellendaal.orbstheorem.ch) (Ping timeout: 264 seconds) |
2021-01-11 06:34:58 +0100 | Jd007 | (~Jd007@d154-5-83-24.bchsia.telus.net) (Quit: Jd007) |
2021-01-11 06:35:46 +0100 | jedws | (~jedws@121.209.139.157) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-11 06:37:32 +0100 | jedws | (~jedws@121.209.139.157) |
2021-01-11 06:38:27 +0100 | jamestmartin | (james@jtmar.me) (Quit: ZNC 1.8.2+deb2 - https://znc.in) |
2021-01-11 06:39:16 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2021-01-11 06:42:47 +0100 | dcbdnl | (~dcbdnl@c-73-76-129-120.hsd1.tx.comcast.net) |
2021-01-11 06:42:54 +0100 | Jd007 | (~Jd007@d154-5-83-24.bchsia.telus.net) |
2021-01-11 06:42:56 +0100 | dcbdnl | (~dcbdnl@c-73-76-129-120.hsd1.tx.comcast.net) (Client Quit) |
2021-01-11 06:43:14 +0100 | Orbstheorem | (~roosember@hellendaal.orbstheorem.ch) |
2021-01-11 06:44:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-11 06:45:58 +0100 | Jd007 | (~Jd007@d154-5-83-24.bchsia.telus.net) (Client Quit) |
2021-01-11 06:48:05 +0100 | <maerwald> | is there any library that allows to do HTTP pipelining? |
2021-01-11 06:48:17 +0100 | jamestmartin | (~james@jtmar.me) |
2021-01-11 06:49:00 +0100 | iridescent | (2fe3e53b@047-227-229-059.res.spectrum.com) (Quit: Connection closed) |
2021-01-11 06:50:42 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:bd2c:61bf:46f:59d0) |
2021-01-11 06:50:48 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) |
2021-01-11 06:54:49 +0100 | krofe | (kevin@gateway/vpn/protonvpn/krofe) (Ping timeout: 265 seconds) |
2021-01-11 06:55:08 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:bd2c:61bf:46f:59d0) (Ping timeout: 260 seconds) |
2021-01-11 06:55:43 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) (Ping timeout: 260 seconds) |
2021-01-11 06:56:50 +0100 | idhugo | (~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) |
2021-01-11 06:56:55 +0100 | idhugo | (~idhugo@80-62-117-97-mobile.dk.customer.tdc.net) (Remote host closed the connection) |
2021-01-11 06:57:16 +0100 | jamestmartin | (~james@jtmar.me) (Quit: ZNC 1.8.2+deb2 - https://znc.in) |
2021-01-11 06:58:28 +0100 | <ephemient> | out of curiosity, why? HTTP pipelining is used approximately never. https://developer.mozilla.org/en-US/docs/Web/HTTP/Connection_management_in_HTTP_1.x#http_pipelining |
2021-01-11 07:03:21 +0100 | <maerwald> | that's for browsers |
2021-01-11 07:04:19 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2021-01-11 07:05:10 +0100 | <ephemient> | it is, but non-browser clients tend not to use piplining either, for similar reasons. https://daniel.haxx.se/blog/2019/04/06/curl-says-bye-bye-to-pipelining/ |
2021-01-11 07:06:11 +0100 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
2021-01-11 07:06:51 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-01-11 07:06:59 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:bd2c:61bf:46f:59d0) |
2021-01-11 07:08:14 +0100 | <maerwald> | so which http client library does HTTP2 multiplexing by default? |
2021-01-11 07:10:52 +0100 | <ephemient> | there's https://hackage.haskell.org/package/http2-client and I don't know of any others for Haskell |
2021-01-11 07:11:26 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:bd2c:61bf:46f:59d0) (Ping timeout: 264 seconds) |
2021-01-11 07:11:44 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
2021-01-11 07:18:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-01-11 07:23:35 +0100 | <maerwald> | and, does it support multiplexing? |
2021-01-11 07:29:58 +0100 | ADG1089__ | (~aditya@122.163.165.143) |
2021-01-11 07:31:45 +0100 | <DigitalKiwi> | https://github.com/lucasdicioccio/http2-client/issues/16 lol |
2021-01-11 07:33:21 +0100 | <DigitalKiwi> | found that when searching 'pipeline' |
2021-01-11 07:34:14 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) |
2021-01-11 07:37:35 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-01-11 07:37:47 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2021-01-11 07:38:53 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:bd2c:61bf:46f:59d0) |
2021-01-11 07:40:08 +0100 | ransom | (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) |
2021-01-11 07:40:46 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer) |
2021-01-11 07:41:25 +0100 | <maerwald> | Well, I didn't get much out of this ticket except passive-aggressive comments, lol: https://github.com/snoyberg/http-client/issues/452 |
2021-01-11 07:43:04 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:bd2c:61bf:46f:59d0) (Ping timeout: 240 seconds) |
2021-01-11 07:45:44 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
2021-01-11 07:46:04 +0100 | <MarcelineVQ> | especially as of this moment |
2021-01-11 07:46:52 +0100 | <maerwald> | lol |
2021-01-11 07:47:08 +0100 | shf | (~sheaf@2a01:cb19:80cc:7e00:ed22:5b3a:3fa:a0b7) |
2021-01-11 07:49:04 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 246 seconds) |
2021-01-11 07:49:31 +0100 | <maerwald> | was my question that complicated? |
2021-01-11 07:50:51 +0100 | <maerwald> | seems like a problem if we have neither HTTP 1.1 pipelining, nor HTTP 2 multiplexing |
2021-01-11 07:51:00 +0100 | Flonk | (~Flonk@ec2-52-40-29-25.us-west-2.compute.amazonaws.com) (Ping timeout: 256 seconds) |
2021-01-11 07:51:25 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-11 07:52:19 +0100 | phasespace | (~sar@89-162-33-21.fiber.signal.no) (Ping timeout: 260 seconds) |
2021-01-11 07:54:05 +0100 | jedws | (~jedws@121.209.139.157) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-11 07:55:01 +0100 | knupfer | (~Thunderbi@200116b82c62e300bcca5bfffe03a624.dip.versatel-1u1.de) |
2021-01-11 07:55:03 +0100 | jedws | (~jedws@121.209.139.157) |
2021-01-11 07:56:28 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fd9b:198b:bc6e:4127) |
2021-01-11 07:56:37 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-01-11 07:57:25 +0100 | knupfer | (~Thunderbi@200116b82c62e300bcca5bfffe03a624.dip.versatel-1u1.de) (Remote host closed the connection) |
2021-01-11 07:57:34 +0100 | knupfer | (~Thunderbi@200116b82c62e3005592499e46851a57.dip.versatel-1u1.de) |
2021-01-11 07:57:34 +0100 | ransom | (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-11 08:01:13 +0100 | <int-e> | maerwald: Well you did ask 5 questions (one trivial (you should share the same manager with concurrent requests...), one that is easy to infer (it keeps track of connections kept alive), another that's easy to infer (no), another that's easy to infer (it reuses connections if a suitable one was kept alive), and one that should be a feature request (you don't), all under a headline that doesn't... |
2021-01-11 08:01:14 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fd9b:198b:bc6e:4127) (Ping timeout: 264 seconds) |
2021-01-11 08:01:19 +0100 | <int-e> | ...apply to the package at hand because there is no HTTP pipelining support at all. |
2021-01-11 08:01:33 +0100 | <int-e> | maerwald: So... I'm not surprised that you didn't get a more constructive reply. |
2021-01-11 08:07:05 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) |
2021-01-11 08:09:40 +0100 | Lycurgus | (~niemand@cpe-45-46-139-165.buffalo.res.rr.com) |
2021-01-11 08:10:00 +0100 | ome | (uid36537@gateway/web/irccloud.com/x-ccqrafxmodzzqrro) (Quit: Connection closed for inactivity) |
2021-01-11 08:10:36 +0100 | Rudd0 | (~Rudd0@185.189.115.103) (Ping timeout: 240 seconds) |
2021-01-11 08:11:41 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:5c80:7e91:5436:7bd4) (Ping timeout: 272 seconds) |
2021-01-11 08:12:02 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) (Ping timeout: 264 seconds) |
2021-01-11 08:13:24 +0100 | xff0x | (~fox@2001:1a81:53ed:d500:ffc4:2540:c5b7:b45c) (Quit: xff0x) |
2021-01-11 08:13:34 +0100 | xff0x | (~xff0x@2001:1a81:53ed:d500:ffc4:2540:c5b7:b45c) |
2021-01-11 08:13:35 +0100 | phasespace | (~sar@80-89-47-117.inet.signal.no) |
2021-01-11 08:14:51 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fd9b:198b:bc6e:4127) |
2021-01-11 08:19:10 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) (Ping timeout: 246 seconds) |
2021-01-11 08:19:17 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fd9b:198b:bc6e:4127) (Ping timeout: 258 seconds) |
2021-01-11 08:22:18 +0100 | aerium | (~aerium@51.194.80.91) (Ping timeout: 265 seconds) |
2021-01-11 08:23:38 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:aa73:cc6a:b6a6:24ce) |
2021-01-11 08:24:13 +0100 | shailangsa | (~shailangs@host217-39-45-247.range217-39.btcentralplus.com) (Ping timeout: 264 seconds) |
2021-01-11 08:24:23 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2021-01-11 08:26:29 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2021-01-11 08:29:00 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-11 08:29:26 +0100 | jonatanb | (~jonatanb@83.24.29.180.ipv4.supernova.orange.pl) |
2021-01-11 08:32:24 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) |
2021-01-11 08:32:42 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2021-01-11 08:33:13 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-01-11 08:33:33 +0100 | puffnfresh_ | (~puffnfres@45.76.124.5) (Quit: ZNC 1.8.0 - https://znc.in) |
2021-01-11 08:35:37 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) |
2021-01-11 08:35:56 +0100 | elcaro | (~anonymous@45.32.191.75) (Ping timeout: 240 seconds) |
2021-01-11 08:36:01 +0100 | kuribas | (~user@ptr-25vy0i7ug01ndhtx56u.18120a2.ip6.access.telenet.be) |
2021-01-11 08:36:02 +0100 | BIG_JIMMY_D | (~jim@108.61.185.76) (Ping timeout: 264 seconds) |
2021-01-11 08:36:22 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fd9b:198b:bc6e:4127) |
2021-01-11 08:37:01 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) (Ping timeout: 272 seconds) |
2021-01-11 08:37:04 +0100 | elcaro | (~anonymous@45.32.191.75) |
2021-01-11 08:37:09 +0100 | puffnfresh_ | (~puffnfres@45.76.124.5) |
2021-01-11 08:37:21 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-01-11 08:37:35 +0100 | kyali | (~kyali@APN-123-255-45-gprs.simobil.net) |
2021-01-11 08:37:36 +0100 | m0rphism | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) |
2021-01-11 08:39:40 +0100 | kyali_ | (~kyali@APN-123-255-45-gprs.simobil.net) |
2021-01-11 08:40:39 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-01-11 08:41:16 +0100 | BIG_JIMMY_D | (~jim@108.61.185.76) |
2021-01-11 08:41:44 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) |
2021-01-11 08:42:03 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds) |
2021-01-11 08:42:29 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2021-01-11 08:44:47 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fd9b:198b:bc6e:4127) (Ping timeout: 260 seconds) |
2021-01-11 08:46:07 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) (Ping timeout: 246 seconds) |
2021-01-11 08:46:28 +0100 | cheater | (~user@unaffiliated/cheater) (Ping timeout: 246 seconds) |
2021-01-11 08:46:50 +0100 | petersen | (~petersen@redhat/juhp) (Quit: petersen) |
2021-01-11 08:48:23 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) (Ping timeout: 240 seconds) |
2021-01-11 08:48:24 +0100 | m0rphism | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 265 seconds) |
2021-01-11 08:52:03 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds) |
2021-01-11 08:52:45 +0100 | pera | (pera@gateway/vpn/mullvad/pera) |
2021-01-11 08:53:02 +0100 | petersen | (~petersen@redhat/juhp) |
2021-01-11 08:55:57 +0100 | petersen | (~petersen@redhat/juhp) (Remote host closed the connection) |
2021-01-11 08:56:25 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fd9b:198b:bc6e:4127) |
2021-01-11 08:56:36 +0100 | petersen | (~petersen@redhat/juhp) |
2021-01-11 08:58:18 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2021-01-11 09:00:54 +0100 | petersen | (~petersen@redhat/juhp) (Client Quit) |
2021-01-11 09:01:42 +0100 | petersen | (~petersen@redhat/juhp) |
2021-01-11 09:02:55 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-01-11 09:03:24 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fd9b:198b:bc6e:4127) (Ping timeout: 240 seconds) |
2021-01-11 09:03:47 +0100 | aerium | (~aerium@51.194.80.91) |
2021-01-11 09:06:59 +0100 | jespada | (~jespada@90.254.245.49) |
2021-01-11 09:07:36 +0100 | petersen_ | (~petersen@redhat/juhp) |
2021-01-11 09:07:40 +0100 | dlam | (~dlam@dlam.me) |
2021-01-11 09:09:13 +0100 | petersen | (~petersen@redhat/juhp) (Ping timeout: 264 seconds) |
2021-01-11 09:09:14 +0100 | petersen_ | petersen |
2021-01-11 09:13:53 +0100 | ubert | (~Thunderbi@p200300ecdf1ee049e6b318fffe838f33.dip0.t-ipconnect.de) |
2021-01-11 09:15:51 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fd9b:198b:bc6e:4127) |
2021-01-11 09:19:05 +0100 | cheater | (~user@unaffiliated/cheater) |
2021-01-11 09:20:26 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fd9b:198b:bc6e:4127) (Ping timeout: 264 seconds) |
2021-01-11 09:20:28 +0100 | <nshepperd2> | i'm not a fan of documentation that tells you what to do |
2021-01-11 09:20:48 +0100 | <nshepperd2> | "you should share a Manager" doesn't really tell you what happens if you do share a Manager |
2021-01-11 09:21:56 +0100 | deu | (de@uio.re) (Ping timeout: 240 seconds) |
2021-01-11 09:23:40 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer) |
2021-01-11 09:24:36 +0100 | kyali_ | (~kyali@APN-123-255-45-gprs.simobil.net) (Ping timeout: 240 seconds) |
2021-01-11 09:25:08 +0100 | kyali | (~kyali@APN-123-255-45-gprs.simobil.net) (Ping timeout: 265 seconds) |
2021-01-11 09:25:47 +0100 | <dminuoso> | nshepperd2: "Keeps track of open connections for keep-alive." |
2021-01-11 09:25:57 +0100 | <dminuoso> | To me, it's rather obvious.. so I dont know. |
2021-01-11 09:26:16 +0100 | <nshepperd2> | and what does that do |
2021-01-11 09:26:37 +0100 | <dminuoso> | It allows for persistent connections |
2021-01-11 09:27:06 +0100 | <nshepperd2> | persistent how |
2021-01-11 09:27:52 +0100 | <dminuoso> | nshepperd2: In HTTP persistent connections/keep-alive refers to re-using an existing TCP connection for subsequent requests. |
2021-01-11 09:28:33 +0100 | <dminuoso> | The notion of pipelining/multiplexing (which maerwald referred to earlier) takes this to the next level, where you can pump out multiple HTTP requests over the same TCP connection before you have gotten back any response yet. |
2021-01-11 09:28:59 +0100 | <dminuoso> | Though, admittedly, the documentation should be a bit more differentiated than that. |
2021-01-11 09:29:24 +0100 | <dminuoso> | There's legit reasons *not* to share keep-alive'd connections across multiple threads. |
2021-01-11 09:29:26 +0100 | <nshepperd2> | i've sort of inferred from reading the code that what happens when you make a request is that it either: reuses a previous idle connection if it's still alive; or opens a new connection if there aren't any currently idle connections |
2021-01-11 09:29:41 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-11 09:29:43 +0100 | <dminuoso> | Right. I suppose it's obvious if you know what keep-alive is |
2021-01-11 09:30:35 +0100 | <dminuoso> | If, for example, the remote server is slow to respond but supports concurrent connections, and you're bottlenecked on the slow responses, then sharing a manager would do no good. |
2021-01-11 09:30:40 +0100 | pera | (pera@gateway/vpn/mullvad/pera) (Quit: leaving) |
2021-01-11 09:30:50 +0100 | <dminuoso> | But if the remote server answers quickly, and most of the time you just have idle connections, then sharing a manager is worthwhile |
2021-01-11 09:31:08 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:255c:18d1:c1a9:13be:6f9e) |
2021-01-11 09:32:14 +0100 | jonatanb | (~jonatanb@83.24.29.180.ipv4.supernova.orange.pl) (Ping timeout: 272 seconds) |
2021-01-11 09:32:30 +0100 | gonemad3 | (~gonemad3@s91904426.blix.com) (Remote host closed the connection) |
2021-01-11 09:32:40 +0100 | drbean | (~drbean@TC210-63-209-203.static.apol.com.tw) (Ping timeout: 246 seconds) |
2021-01-11 09:33:23 +0100 | stree | (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception) |
2021-01-11 09:33:39 +0100 | jedws | (~jedws@121.209.139.157) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-11 09:33:41 +0100 | stree | (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) |
2021-01-11 09:34:07 +0100 | dhouthoo | (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) |
2021-01-11 09:35:07 +0100 | <nshepperd2> | makes sense |
2021-01-11 09:36:12 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0) |
2021-01-11 09:37:44 +0100 | chele | (~chele@ip5b40237d.dynamic.kabel-deutschland.de) |
2021-01-11 09:38:53 +0100 | coot | (~coot@37.30.56.46.nat.umts.dynamic.t-mobile.pl) |
2021-01-11 09:39:22 +0100 | LKoen | (~LKoen@152.172.9.109.rev.sfr.net) |
2021-01-11 09:39:50 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fd9b:198b:bc6e:4127) |
2021-01-11 09:40:10 +0100 | kyali | (~kyali@APN-123-255-45-gprs.simobil.net) |
2021-01-11 09:40:12 +0100 | kyali_ | (~kyali@APN-123-255-45-gprs.simobil.net) |
2021-01-11 09:42:11 +0100 | hexo | (~hexo@gateway/tor-sasl/hexo) |
2021-01-11 09:42:11 +0100 | srk | (~sorki@gateway/tor-sasl/sorki) |
2021-01-11 09:43:24 +0100 | kritzefitz | (~kritzefit@212.86.56.80) |
2021-01-11 09:43:28 +0100 | kritzefitz | (~kritzefit@212.86.56.80) (Client Quit) |
2021-01-11 09:44:24 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) () |
2021-01-11 09:44:48 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2021-01-11 09:48:15 +0100 | fendor | (~fendor@91.141.0.240.wireless.dyn.drei.com) |
2021-01-11 09:48:56 +0100 | oerjan | (~oerjan@178.162.209.171) |
2021-01-11 09:50:36 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
2021-01-11 09:53:16 +0100 | hexo | (~hexo@gateway/tor-sasl/hexo) (Remote host closed the connection) |
2021-01-11 09:53:16 +0100 | srk | (~sorki@gateway/tor-sasl/sorki) (Remote host closed the connection) |
2021-01-11 09:53:34 +0100 | hexo | (~hexo@gateway/tor-sasl/hexo) |
2021-01-11 09:53:37 +0100 | srk | (~sorki@gateway/tor-sasl/sorki) |
2021-01-11 09:57:21 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Remote host closed the connection) |
2021-01-11 09:57:51 +0100 | <kuribas> | why do you need to buffer log output, like fast-logger does, when the file system has a buffer of it's own? |
2021-01-11 10:01:01 +0100 | <maerwald> | int-e: "Manager *just* keeps connections alive and does nothing else. We don't support HTTP pipelining at all atm and HTTP 2 neither." -- 2 sentences that would have explained everything :) |
2021-01-11 10:01:27 +0100 | <maerwald> | maybe I'm expecting too much |
2021-01-11 10:02:11 +0100 | m0rphism | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) |
2021-01-11 10:03:29 +0100 | <maerwald> | but yeah, you can respond with counter questions instead and then insult the issue author to not have read the wikipedia article :p |
2021-01-11 10:04:17 +0100 | Lycurgus | (~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Quit: Exeunt) |
2021-01-11 10:05:14 +0100 | <maerwald> | And then we're surprised haskell community doesn't have such a good reputation elsewhere |
2021-01-11 10:05:22 +0100 | <dminuoso> | kuribas: Because system calls are still expensive? |
2021-01-11 10:06:22 +0100 | <kuribas> | could be... |
2021-01-11 10:06:46 +0100 | mputz | (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
2021-01-11 10:07:06 +0100 | <dminuoso> | Note, that a syscall makes you pay for not only the CPU dump/restore, but it also acts as a cooperative yield |
2021-01-11 10:07:16 +0100 | <dminuoso> | (At least most syscalls implicitly call the scheduler) |
2021-01-11 10:07:28 +0100 | thunderrd | (~thunderrd@183.182.115.7) (Quit: If it wasn't written down it didn't happen...) |
2021-01-11 10:07:46 +0100 | <dminuoso> | On linux anyway |
2021-01-11 10:08:00 +0100 | thunderrd | (~thunderrd@183.182.115.7) |
2021-01-11 10:15:33 +0100 | sw1nn | (~sw1nn@2a00:23c6:2385:3a00:8a08:ba4e:209b:1d11) (Ping timeout: 268 seconds) |
2021-01-11 10:16:23 +0100 | xff0x | (~xff0x@2001:1a81:53ed:d500:ffc4:2540:c5b7:b45c) (Ping timeout: 260 seconds) |
2021-01-11 10:16:47 +0100 | xff0x | (~xff0x@port-92-193-253-100.dynamic.as20676.net) |
2021-01-11 10:17:07 +0100 | kyali | (~kyali@APN-123-255-45-gprs.simobil.net) (Ping timeout: 246 seconds) |
2021-01-11 10:17:12 +0100 | kyali_ | (~kyali@APN-123-255-45-gprs.simobil.net) (Ping timeout: 256 seconds) |
2021-01-11 10:17:20 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-01-11 10:17:25 +0100 | lambda-11235 | (~lambda-11@2600:1700:7c70:4600:2560:f230:a66e:db8d) (Quit: Bye) |
2021-01-11 10:17:51 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-afbyogyvilwdnzfx) (Quit: Connection closed for inactivity) |
2021-01-11 10:18:07 +0100 | ArConan | (~ArConan@52.184.35.77) |
2021-01-11 10:20:19 +0100 | Gurkenglas_ | (~Gurkengla@unaffiliated/gurkenglas) |
2021-01-11 10:20:36 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds) |
2021-01-11 10:22:19 +0100 | edrx | (~Eduardo@2804:56c:d2ef:cf00:369c:6c3f:6681:423e) ("Killed buffer") |
2021-01-11 10:22:58 +0100 | jedws | (~jedws@121.209.139.157) |
2021-01-11 10:24:02 +0100 | Up39 | (5434a07f@tm.84.52.160.127.dc.cable.static.telemach.net) |
2021-01-11 10:24:19 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Quit: p-core) |
2021-01-11 10:24:20 +0100 | p-core1 | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) |
2021-01-11 10:24:45 +0100 | <Up39> | This is my naive solution to handling DB query results in hasql. Is there anything wrong with it? |
2021-01-11 10:24:46 +0100 | <Up39> | handleQueryResult :: (a -> b) -> (() -> b) -> (Session.QueryError -> b) -> Either Session.QueryError (Maybe a) -> b |
2021-01-11 10:24:47 +0100 | <Up39> | handleQueryResult _ _ errorFn (Left qe) = errorFn qe |
2021-01-11 10:24:47 +0100 | <Up39> | handleQueryResult _ missingFn _ (Right Nothing) = missingFn () |
2021-01-11 10:24:48 +0100 | <Up39> | handleQueryResult successFn _ _ (Right (Just x)) = successFn x |
2021-01-11 10:26:31 +0100 | misak | (~arconan@115.209.116.183) |
2021-01-11 10:26:40 +0100 | p-core1 | p-core |
2021-01-11 10:27:12 +0100 | <dminuoso> | Up39: Can you perhaps point out what you think would be wrong with it? |
2021-01-11 10:27:20 +0100 | <dminuoso> | Are you wondering whether such a function would be idiomatic Haskell? |
2021-01-11 10:27:44 +0100 | <dminuoso> | The argument of type `(() -> b)` is silly, in my opinion. Just make it `b` |
2021-01-11 10:28:10 +0100 | sw1nn | (~sw1nn@2a00:23c6:2385:3a00:f123:6af9:d5d5:5175) |
2021-01-11 10:28:21 +0100 | ArConan | (~ArConan@52.184.35.77) (Remote host closed the connection) |
2021-01-11 10:28:26 +0100 | <Up39> | dminuoso: Yes, that's basically what I'm wondering. Because there always seems to be a different solution to what I come up with |
2021-01-11 10:28:38 +0100 | <Up39> | oh right, it can be b beause of lazy eval |
2021-01-11 10:28:41 +0100 | <ij> | () -> b might be remnant of impure language callback idea |
2021-01-11 10:28:48 +0100 | <Up39> | yep! |
2021-01-11 10:28:56 +0100 | <Up39> | or non-lazy at least |
2021-01-11 10:29:13 +0100 | <dminuoso> | I guess it's usually a mix of both |
2021-01-11 10:29:25 +0100 | <dminuoso> | It's very JavaScriptesque |
2021-01-11 10:29:28 +0100 | <Up39> | yes |
2021-01-11 10:30:02 +0100 | <dminuoso> | c.f.: |
2021-01-11 10:30:03 +0100 | <dminuoso> | % :t maybe |
2021-01-11 10:30:03 +0100 | <yahb> | dminuoso: b -> (a -> b) -> Prelude.Maybe a -> b |
2021-01-11 10:30:28 +0100 | <dminuoso> | Your function is, roughly, a combination of `maybe` and `either` |
2021-01-11 10:31:28 +0100 | <dminuoso> | % :t \x y z -> either (maybe y x) z |
2021-01-11 10:31:28 +0100 | <yahb> | dminuoso: (a -> c) -> c -> (b -> c) -> Either (Prelude.Maybe a) b -> c |
2021-01-11 10:32:14 +0100 | <Up39> | hah, year, that's the sort of thing I thought I could be missing. |
2021-01-11 10:32:28 +0100 | <Up39> | yeah* |
2021-01-11 10:33:52 +0100 | <kuribas> | Up39: () -> b is used in non-pure languages because there can be an associated side-effect, but in haskell that's not possible. |
2021-01-11 10:34:42 +0100 | <dminuoso> | % :t unsafePerformIO |
2021-01-11 10:34:42 +0100 | <yahb> | dminuoso: IO a -> a |
2021-01-11 10:34:46 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-01-11 10:34:57 +0100 | <dminuoso> | It rather is about the lack of lazyness |
2021-01-11 10:36:51 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-11 10:37:05 +0100 | cgfbee | (~bot@oc1.itim-cj.ro) (Ping timeout: 240 seconds) |
2021-01-11 10:40:08 +0100 | bitmagie | (~Thunderbi@200116b806643e00d1c9a335a3f0c811.dip.versatel-1u1.de) |
2021-01-11 10:41:28 +0100 | LKoen | (~LKoen@152.172.9.109.rev.sfr.net) (Remote host closed the connection) |
2021-01-11 10:42:38 +0100 | ubert | (~Thunderbi@p200300ecdf1ee049e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2021-01-11 10:44:55 +0100 | cgfbee | (~bot@oc1.itim-cj.ro) |
2021-01-11 10:47:38 +0100 | bitmagie | (~Thunderbi@200116b806643e00d1c9a335a3f0c811.dip.versatel-1u1.de) (Quit: bitmagie) |
2021-01-11 10:50:46 +0100 | jmchael | (~jmchael@87.112.235.234) |
2021-01-11 10:51:17 +0100 | DavidEichmann | (~david@98.27.93.209.dyn.plus.net) |
2021-01-11 10:51:43 +0100 | hekkaidekapus | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2021-01-11 10:53:43 +0100 | hekkaidekapus] | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
2021-01-11 10:54:52 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) |
2021-01-11 10:55:40 +0100 | cgfbee | (~bot@oc1.itim-cj.ro) (Excess Flood) |
2021-01-11 10:57:45 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-11 10:57:56 +0100 | cgfbee | (~bot@oc1.itim-cj.ro) |
2021-01-11 10:59:05 +0100 | charukiewicz | (~quassel@irouteince04.i.subnet.rcn.com) (Quit: charukiewicz) |
2021-01-11 11:00:00 +0100 | ukari | (~ukari@unaffiliated/ukari) |
2021-01-11 11:00:00 +0100 | Alleria | (~textual@2603-7000-3040-0000-ad3e-16ae-7559-7e68.res6.spectrum.com) |
2021-01-11 11:00:02 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) (Ping timeout: 264 seconds) |
2021-01-11 11:00:24 +0100 | Alleria | Guest24594 |
2021-01-11 11:02:26 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Ping timeout: 264 seconds) |
2021-01-11 11:04:50 +0100 | Guest24594 | (~textual@2603-7000-3040-0000-ad3e-16ae-7559-7e68.res6.spectrum.com) (Ping timeout: 264 seconds) |
2021-01-11 11:04:59 +0100 | solarliner | (~solarline@243.81.10.109.rev.sfr.net) |
2021-01-11 11:05:42 +0100 | <Up39> | how come pure/return works as an identity function if you don't specify the type of f in pure :: Applicative f => a -> f a ? |
2021-01-11 11:05:49 +0100 | <kuribas> | dminuoso: I was conveniently ignoring unsafePerformIO |
2021-01-11 11:05:54 +0100 | seveg | (~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk) (Quit: WeeChat 3.0) |
2021-01-11 11:06:18 +0100 | <dminuoso> | Up39: What do you mean by that question exactly? |
2021-01-11 11:06:50 +0100 | <Up39> | dminuoso: in ghci if I run (pure 1) it returns 1 |
2021-01-11 11:07:03 +0100 | <Up39> | I would have expected a type error |
2021-01-11 11:07:19 +0100 | <kuribas> | dminuoso: lazyness is not even necessary for that to hold, except for bottom values. |
2021-01-11 11:07:20 +0100 | <dminuoso> | Up39: Ah. So in GHCi it defaults to picking `f ~ IO` in this |
2021-01-11 11:07:53 +0100 | lawid | (~quassel@dslb-090-186-127-244.090.186.pools.vodafone-ip.de) |
2021-01-11 11:07:57 +0100 | <Up39> | dminuoso: Ah, that makes sense! |
2021-01-11 11:08:32 +0100 | <dminuoso> | Up39: This is not the behavior for `pure` in general, just for naked top level expressions. |
2021-01-11 11:09:24 +0100 | Rudd0 | (~Rudd0@185.189.115.108) |
2021-01-11 11:09:43 +0100 | <kuribas> | dminuoso: note that using unsafePerformIO and a () -> a function is not the same as an imperative callback, as haskell isn't required to perform the side-effect any time. |
2021-01-11 11:09:45 +0100 | <dminuoso> | That is, the repl you're in is assumed to be a sort-of do-notation for IO |
2021-01-11 11:10:39 +0100 | <kuribas> | no, the repl detects when it is in IO, then executes the action. |
2021-01-11 11:10:42 +0100 | <dminuoso> | Which is why you can simply write something like `Prelude> f <- readFile "foo"` |
2021-01-11 11:10:56 +0100 | <dminuoso> | Or just `Prelude> putStrLn "foo"` |
2021-01-11 11:11:08 +0100 | <kuribas> | the repl it's is not in do notation |
2021-01-11 11:12:01 +0100 | <kuribas> | otherwise pure functions wouldn't work... |
2021-01-11 11:12:43 +0100 | <kuribas> | hmm, perhaps they do... |
2021-01-11 11:12:49 +0100 | <kuribas> | > do 1 + 1 |
2021-01-11 11:12:49 +0100 | <lortabac> | kuribas: the REPL used to require "let" for all definitions |
2021-01-11 11:12:51 +0100 | <lambdabot> | 2 |
2021-01-11 11:13:05 +0100 | esp32_prog | (yoann@gateway/vpn/protonvpn/esp32prog/x-46565127) |
2021-01-11 11:13:08 +0100 | <lortabac> | in fact you can still used "let" |
2021-01-11 11:13:08 +0100 | <kuribas> | lortabac: yeah I remember |
2021-01-11 11:14:49 +0100 | <dminuoso> | kuribas: Note I said "sort-of". |
2021-01-11 11:18:56 +0100 | seveg | (~gabriel@2a02-ab04-0249-8d00-dea6-32ff-fe17-0993.dynamic.v6.chello.sk) |
2021-01-11 11:21:08 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) (Remote host closed the connection) |
2021-01-11 11:21:55 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Quit: p-core) |
2021-01-11 11:22:13 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) |
2021-01-11 11:24:40 +0100 | Graypup_ | (Graypup@lfcode.ca) (Quit: ZNC 1.6.1 - http://znc.in) |
2021-01-11 11:25:17 +0100 | Graypup_ | (Graypup@lfcode.ca) |
2021-01-11 11:25:29 +0100 | Franciman | (~francesco@host-82-48-174-127.retail.telecomitalia.it) |
2021-01-11 11:25:30 +0100 | Alleria__ | (~textual@mskresolve-a.mskcc.org) |
2021-01-11 11:31:21 +0100 | acidjnk_new | (~acidjnk@p200300d0c704e7934412496f05d02b0d.dip0.t-ipconnect.de) |
2021-01-11 11:31:25 +0100 | Lowl3v3l | (~Lowl3v3l@dslb-084-062-101-233.084.062.pools.vodafone-ip.de) (Ping timeout: 264 seconds) |
2021-01-11 11:32:01 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Quit: Reconnecting) |
2021-01-11 11:32:06 +0100 | comerijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-11 11:32:35 +0100 | jedws | (~jedws@121.209.139.157) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-11 11:32:39 +0100 | comerijn | merijn |
2021-01-11 11:33:38 +0100 | seveg | (~gabriel@2a02-ab04-0249-8d00-dea6-32ff-fe17-0993.dynamic.v6.chello.sk) (Ping timeout: 264 seconds) |
2021-01-11 11:35:27 +0100 | amiri | (~amiri@cpe-76-91-154-9.socal.res.rr.com) (Ping timeout: 260 seconds) |
2021-01-11 11:36:13 +0100 | ulidtko | (~ulidtko@193.111.48.79) |
2021-01-11 11:37:06 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) |
2021-01-11 11:38:03 +0100 | ulidtko|k | (~ulidtko@194.54.80.38) |
2021-01-11 11:39:15 +0100 | berberman_ | (~berberman@unaffiliated/berberman) |
2021-01-11 11:39:38 +0100 | berberman | (~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds) |
2021-01-11 11:40:25 +0100 | mputz | (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 264 seconds) |
2021-01-11 11:40:45 +0100 | berberman_ | (~berberman@unaffiliated/berberman) (Max SendQ exceeded) |
2021-01-11 11:40:57 +0100 | ulidtko | (~ulidtko@193.111.48.79) (Ping timeout: 265 seconds) |
2021-01-11 11:41:13 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2021-01-11 11:41:29 +0100 | Ishutin_ | (~Ishutin@92-249-185-150.pool.digikabel.hu) (Ping timeout: 256 seconds) |
2021-01-11 11:41:43 +0100 | amiri | (~amiri@cpe-76-91-154-9.socal.res.rr.com) |
2021-01-11 11:45:58 +0100 | <gentauro> | top-level functions in modules don't need `let`. Why not propagate that everywhere? |
2021-01-11 11:46:21 +0100 | thc202 | (~thc202@unaffiliated/thc202) |
2021-01-11 11:46:26 +0100 | <gentauro> | `let-it-go` (badum tsh) |
2021-01-11 11:46:27 +0100 | <gentauro> | xD |
2021-01-11 11:48:37 +0100 | Ishutin | (~Ishutin@92-249-179-46.pool.digikabel.hu) |
2021-01-11 11:49:45 +0100 | svc0[m] | (svc0matrix@gateway/shell/matrix.org/x-cgayodjircveqtkr) |
2021-01-11 11:51:21 +0100 | LKoen | (~LKoen@152.172.9.109.rev.sfr.net) |
2021-01-11 11:54:28 +0100 | son0p | (~son0p@181.58.39.182) |
2021-01-11 11:56:28 +0100 | <ski> | propagate it how ? |
2021-01-11 11:56:48 +0100 | <ski> | they already don't need `let' inside other `where's |
2021-01-11 11:58:07 +0100 | <dminuoso> | I tried to think of a way where we could describe a module as a `let bindings = ... in ModSpec { ... }` |
2021-01-11 11:58:21 +0100 | <dminuoso> | But all of that crumbled together when thinking of typeclasses. |
2021-01-11 11:58:40 +0100 | <ski> | why ? |
2021-01-11 11:59:04 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-11 11:59:36 +0100 | <dminuoso> | Oh, I was thinking of just `let decls = ... in ModSpec { exportList = ...; }` |
2021-01-11 11:59:51 +0100 | <int-e> | gentauro: a = b = 42; b:a |
2021-01-11 11:59:57 +0100 | <int-e> | gentauro: have fun parsing |
2021-01-11 11:59:59 +0100 | <dminuoso> | But that doesn't work, because a module would rather need a full blown declaration field (since typeclass instances are part of the public interface) |
2021-01-11 12:00:31 +0100 | <int-e> | let/in seems essential for sanity |
2021-01-11 12:00:33 +0100 | guest111` | (~user@49.5.6.87) |
2021-01-11 12:00:48 +0100 | guest111 | (~user@49.5.6.87) (Read error: Connection reset by peer) |
2021-01-11 12:00:53 +0100 | <dminuoso> | Even nix has let/in, presumably for the same reasons |
2021-01-11 12:02:00 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:aa73:cc6a:b6a6:24ce) (Ping timeout: 258 seconds) |
2021-01-11 12:02:23 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2021-01-11 12:03:14 +0100 | kyali | (~kyali@APN-123-255-45-gprs.simobil.net) |
2021-01-11 12:03:38 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Ping timeout: 264 seconds) |
2021-01-11 12:08:23 +0100 | kyali_ | (~kyali@APN-123-255-45-gprs.simobil.net) |
2021-01-11 12:09:03 +0100 | __monty__ | (~toonn@unaffiliated/toonn) |
2021-01-11 12:11:06 +0100 | <ukari> | For data Foo = Foo {getX::Int, getY::Int} deriving (Storable), how to write a magic function to get all field label functions of (undefined::Foo) to calculate it's offset like cpp offsetof? |
2021-01-11 12:11:12 +0100 | seveg | (~gabriel@188-167-252-202.dynamic.chello.sk) |
2021-01-11 12:11:37 +0100 | <merijn> | Define "offset" |
2021-01-11 12:11:59 +0100 | <merijn> | ukari: If you mean in terms of memory, you can't, because records don't have a defined memory layout |
2021-01-11 12:12:06 +0100 | <merijn> | In fact *nothing* has a defined memory layout |
2021-01-11 12:12:09 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2021-01-11 12:13:28 +0100 | <merijn> | also, how are you deriving Storable, because that's not derivable |
2021-01-11 12:13:40 +0100 | christo | (~chris@81.96.113.213) |
2021-01-11 12:13:46 +0100 | boxscape | (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) |
2021-01-11 12:13:49 +0100 | <ukari> | I could calculate offset manually by stuffs like `sizeOf . getX $ (undefined::Foo)` |
2021-01-11 12:14:15 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:7e9d:7180:3ecf:ff43) |
2021-01-11 12:14:27 +0100 | <ukari> | there is a GStroable plugin to help deriving Stroable |
2021-01-11 12:14:41 +0100 | <merijn> | Well, that sounds like a downright bad idea |
2021-01-11 12:15:43 +0100 | <merijn> | If there's one thing where I wouldn't want weird magic it's "pointer twiddling" |
2021-01-11 12:20:09 +0100 | <ukari> | does it mean it's better to manually calculate offset for Foo, Foo1, Foo2 ... every time? like `fooXOffset = 0, fooYOffset = 0 + sizeOf . getY $ (undefined::Foo)` |
2021-01-11 12:21:15 +0100 | cmcma20 | (~cmcma20@l37-192-2-125.novotelecom.ru) |
2021-01-11 12:21:53 +0100 | <__monty__> | Why do you need the offsets on the haskell side of things? |
2021-01-11 12:22:22 +0100 | <misak> | > quicksort ::(Ord a) =>[a]->[a] |
2021-01-11 12:22:24 +0100 | <lambdabot> | error: |
2021-01-11 12:22:25 +0100 | <lambdabot> | Variable not in scope: quicksort :: [a1] -> [a1] |
2021-01-11 12:22:41 +0100 | <misak> | why that? |
2021-01-11 12:22:46 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds) |
2021-01-11 12:23:08 +0100 | <ukari> | vertexAttributeDescriptions in vulkan need it |
2021-01-11 12:23:16 +0100 | <gentauro> | 11:59 < int-e> gentauro: a = b = 42; b:a |
2021-01-11 12:23:31 +0100 | <misak> | i copy the code in the textbook |
2021-01-11 12:23:34 +0100 | <gentauro> | let a = let b = 42 in b? |
2021-01-11 12:23:57 +0100 | <misak> | but error |
2021-01-11 12:24:13 +0100 | <gentauro> | let a = let b = 42 in b:a? (forgot the `a`) |
2021-01-11 12:24:18 +0100 | <__monty__> | @hoogle quicksort |
2021-01-11 12:24:19 +0100 | <lambdabot> | Data.Massiv.Array quicksort :: (Mutable r Ix1 e, Ord e) => Array r Ix1 e -> Array r Ix1 e |
2021-01-11 12:24:19 +0100 | <lambdabot> | Data.Massiv.Array.Mutable.Algorithms quicksortM_ :: (Ord e, Mutable r Ix1 e, PrimMonad m) => Scheduler m () -> MArray (PrimState m) r Ix1 e -> m () |
2021-01-11 12:24:28 +0100 | <__monty__> | @hoogle sort |
2021-01-11 12:24:28 +0100 | <lambdabot> | Data.List sort :: Ord a => [a] -> [a] |
2021-01-11 12:24:28 +0100 | <lambdabot> | Data.List.NonEmpty sort :: Ord a => NonEmpty a -> NonEmpty a |
2021-01-11 12:24:28 +0100 | <lambdabot> | GHC.OldList sort :: Ord a => [a] -> [a] |
2021-01-11 12:24:45 +0100 | <__monty__> | misak: Maybe you're looking for `sort` instead? |
2021-01-11 12:24:52 +0100 | <int-e> | gentauro: which I find far more readable |
2021-01-11 12:25:06 +0100 | <misak> | >let quicksort' :: (Ord a) => [a] -> [a] |
2021-01-11 12:25:07 +0100 | <__monty__> | misak: Otherwise I suspect the quicksort function was defined earlier in the book. |
2021-01-11 12:25:45 +0100 | <__monty__> | Actually, since you're providing a type signature. Do you intend to define the function or use it? |
2021-01-11 12:26:17 +0100 | <int-e> | gentauro: But maybe you only suggested this for sake of the pun? |
2021-01-11 12:27:06 +0100 | Codaraxis__ | (~Codaraxis@141.98.255.144) (Remote host closed the connection) |
2021-01-11 12:27:20 +0100 | <misak> | i want to define a function |
2021-01-11 12:27:26 +0100 | Codaraxis__ | (~Codaraxis@141.98.255.144) |
2021-01-11 12:27:43 +0100 | <__monty__> | misak: Are you trying to do so in a file or in GHCi? |
2021-01-11 12:28:09 +0100 | <misak> | <__monty__:ghci |
2021-01-11 12:28:14 +0100 | revprez_anzio | (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 260 seconds) |
2021-01-11 12:28:34 +0100 | <misak> | although i use the function name as others |
2021-01-11 12:28:37 +0100 | <__monty__> | misak: Start multi-line input with :{ and end it with :} |
2021-01-11 12:29:09 +0100 | revprez_anzio | (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) |
2021-01-11 12:29:17 +0100 | <__monty__> | GHCi expects it can evaluate line by line unless you use those. |
2021-01-11 12:29:34 +0100 | <misak> | my compliler told me'The type signature for ‘quicksort'’ lacks an accompanying binding' |
2021-01-11 12:30:12 +0100 | <__monty__> | Yes, you have to define the function. Can't have a type signature by itself. |
2021-01-11 12:30:34 +0100 | mirrorbird | (~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d) |
2021-01-11 12:31:13 +0100 | <misak> | but how to rule the type of function in ghci? |
2021-01-11 12:32:06 +0100 | <__monty__> | What do you mean? |
2021-01-11 12:34:02 +0100 | <ski> | misak : either do what __monty__ said, or write both the type signature and the defining equation(s) in a single interactor command, separated by `;'s |
2021-01-11 12:34:09 +0100 | <misak> | _monty_:do i need to declare my function in ghci? |
2021-01-11 12:34:17 +0100 | <ski> | no |
2021-01-11 12:34:28 +0100 | <cmcma20> | !paste |
2021-01-11 12:34:33 +0100 | <ski> | you could define it in a source file, and load that, instead |
2021-01-11 12:34:35 +0100 | <__monty__> | @where paste |
2021-01-11 12:34:36 +0100 | <lambdabot> | Help us help you: please paste full code, input and/or output at eg https://paste.tomsmeding.com |
2021-01-11 12:34:40 +0100 | <cmcma20> | @where paste |
2021-01-11 12:34:41 +0100 | <lambdabot> | Help us help you: please paste full code, input and/or output at eg https://paste.tomsmeding.com |
2021-01-11 12:35:16 +0100 | seveg | (~gabriel@188-167-252-202.dynamic.chello.sk) (Ping timeout: 272 seconds) |
2021-01-11 12:35:53 +0100 | seveg | (~gabriel@2a02-ab04-0249-8d00-dea6-32ff-fe17-0993.dynamic.v6.chello.sk) |
2021-01-11 12:36:46 +0100 | <cmcma20> | https://paste.tomsmeding.com/M6sePssO I'm deeply stuck on implementing this function though it's a nobrainer with deptypes. Can you enlighten me? |
2021-01-11 12:37:02 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) |
2021-01-11 12:37:39 +0100 | <ski> | how's `Fin' defined ? |
2021-01-11 12:38:00 +0100 | <cmcma20> | it's from Data.Fin module |
2021-01-11 12:38:11 +0100 | <ski> | package ? |
2021-01-11 12:38:17 +0100 | <cmcma20> | package fin |
2021-01-11 12:38:40 +0100 | <cmcma20> | it's indexed by Nat, has two usual suspects as constructors |
2021-01-11 12:38:48 +0100 | <ski> | pattern-match ? |
2021-01-11 12:39:12 +0100 | <cmcma20> | how to pattern match on k? |
2021-01-11 12:39:25 +0100 | <ski> | don't |
2021-01-11 12:40:12 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection) |
2021-01-11 12:40:18 +0100 | <__monty__> | cmcma20: You should be able to simply pattern match on Fin's constructors. |
2021-01-11 12:40:48 +0100 | <cmcma20> | only if k ~ 'S n |
2021-01-11 12:41:04 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) (Ping timeout: 240 seconds) |
2021-01-11 12:41:09 +0100 | <cmcma20> | if k ~ 'Z this function should return Nothing as there are no values of Fin 'Z |
2021-01-11 12:41:12 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-11 12:41:13 +0100 | <__monty__> | Don't think so, cause your input type is `Fin ('S k)`. |
2021-01-11 12:41:13 +0100 | deu | (de@uio.re) |
2021-01-11 12:41:35 +0100 | <__monty__> | strengthen Z = Nothing |
2021-01-11 12:42:12 +0100 | <cmcma20> | it would be too easy. If k ~ 'S n I wanna actually return Just Z |
2021-01-11 12:42:45 +0100 | <ski> | @let data Nat = Z | S Nat deriving Show |
2021-01-11 12:42:46 +0100 | <lambdabot> | Defined. |
2021-01-11 12:42:50 +0100 | <__monty__> | Too easy? |
2021-01-11 12:42:53 +0100 | <ski> | @let data Fin (n :: Nat) where FZ :: Fin ('S n); FS :: Fin n -> Fin ('S n) |
2021-01-11 12:42:54 +0100 | <lambdabot> | Defined. |
2021-01-11 12:43:30 +0100 | <ski> | @let strengthen :: Fin ('S n) -> Maybe (Fin n); strengthen FZ = Nothing; strengthen (FS i) = Just i |
2021-01-11 12:43:31 +0100 | <lambdabot> | Defined. |
2021-01-11 12:43:43 +0100 | <int-e> | AIUI, you can't pattern match of k, and for a good reason: it'll be erased at runtime. |
2021-01-11 12:43:46 +0100 | drbean | (~drbean@TC210-63-209-211.static.apol.com.tw) |
2021-01-11 12:43:59 +0100 | seveg | (~gabriel@2a02-ab04-0249-8d00-dea6-32ff-fe17-0993.dynamic.v6.chello.sk) (Ping timeout: 244 seconds) |
2021-01-11 12:44:30 +0100 | <cmcma20> | yes it will be |
2021-01-11 12:44:37 +0100 | <cmcma20> | but have a look at this idris snippet |
2021-01-11 12:44:38 +0100 | <cmcma20> | https://paste.tomsmeding.com/ddAMppk6 |
2021-01-11 12:45:00 +0100 | seveg | (~gabriel@2a02-ab04-0249-8d00-dea6-32ff-fe17-0993.dynamic.v6.chello.sk) |
2021-01-11 12:45:01 +0100 | <cmcma20> | it captures the intended semantics |
2021-01-11 12:45:06 +0100 | <int-e> | So, no you can't have the code distinguish between k ~ 'S n and k ~ Z on this level. |
2021-01-11 12:45:32 +0100 | <boxscape> | if you really do have to pattern match on k to make this work you might have to use singletons |
2021-01-11 12:45:52 +0100 | <int-e> | And I hope this doesn't change |
2021-01-11 12:46:11 +0100 | <cmcma20> | don't you want -XDependentTypes? |
2021-01-11 12:46:14 +0100 | <int-e> | because reliable type erasure is too important to lose. |
2021-01-11 12:46:17 +0100 | <boxscape> | int-e Richard Eisenbergs plan is very much for it to not change |
2021-01-11 12:46:40 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 272 seconds) |
2021-01-11 12:46:41 +0100 | <boxscape> | the plan is to be able to decide for each type parameter whether it's relevant and not erased or irrelevant (as all are currently) and erased |
2021-01-11 12:46:47 +0100 | <gentauro> | 12:24 < int-e> gentauro: which I find far more readable |
2021-01-11 12:46:48 +0100 | <boxscape> | manually |
2021-01-11 12:46:49 +0100 | <__monty__> | Recurse a single level (kinda the function obv needs to change), if that returns Nothing, return Just Z? |
2021-01-11 12:47:08 +0100 | <gentauro> | int-e: the peeps from F# removed the `in` in `let binding` |
2021-01-11 12:47:26 +0100 | <gentauro> | I (less) verbose stuff better |
2021-01-11 12:47:26 +0100 | <gentauro> | :) |
2021-01-11 12:47:34 +0100 | <int-e> | gentauro: tbf Haskell did that for `do` blocks already |
2021-01-11 12:47:44 +0100 | <gentauro> | probably also the reason I use `where …` more than `let …` |
2021-01-11 12:48:11 +0100 | <cmcma20> | type erasure is possible with deptypes, just use QTT |
2021-01-11 12:48:17 +0100 | <int-e> | Oh I do use `where` a lot. But I would hate for the keyword to not be there. |
2021-01-11 12:48:55 +0100 | <cmcma20> | boxscape: yes, or manually annotate relevance |
2021-01-11 12:49:13 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) |
2021-01-11 12:49:22 +0100 | <ski> | cmcma20 : matching on a value of type `Fin n', you'll learn what shape `n' is. you don't have to know that `n' is of the right shape, before being able to match on the corresponding data constructors |
2021-01-11 12:50:48 +0100 | <int-e> | ski: FZ :: Fin (S n) <-- you learn nothing about n here |
2021-01-11 12:51:00 +0100 | <int-e> | Or at least, not enough. |
2021-01-11 12:51:19 +0100 | <ski> | that `FZ' had type `Fin (S n)', not `Fin n' |
2021-01-11 12:52:47 +0100 | <cmcma20> | it still doesn't allow you to construct a meaningful result |
2021-01-11 12:53:08 +0100 | <int-e> | ski: But you can't decide whether FZ :: Fin n, without inspecting n (which a dependently typed language could do) |
2021-01-11 12:53:37 +0100 | <int-e> | (And Haskell, at this point, can't) |
2021-01-11 12:53:48 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) (Ping timeout: 244 seconds) |
2021-01-11 12:54:16 +0100 | <misak> | @where paste |
2021-01-11 12:54:16 +0100 | <lambdabot> | Help us help you: please paste full code, input and/or output at eg https://paste.tomsmeding.com |
2021-01-11 12:54:23 +0100 | <boxscape> | well, you sort of can if you use a Nat singleton |
2021-01-11 12:56:43 +0100 | <int-e> | boxscape: You still won't be pattern matching on n. You'll be pattern matching a value that happens to reflect the type (which relation you can guarantee through the type system). |
2021-01-11 12:57:07 +0100 | <boxscape> | sure, but you get the same use out of it, at least |
2021-01-11 12:58:03 +0100 | <cmcma20> | the same use but verbosity is enormous |
2021-01-11 12:58:05 +0100 | <ski> | int-e : i don't know what you mean by "decide", there. `FZ :: Fin n' is not something that you may consider to check, it's something you're given |
2021-01-11 12:58:26 +0100 | <boxscape> | cmcma20 yes, hence the push for proper dependent types in haskell :) |
2021-01-11 12:58:55 +0100 | <ski> | % data Nat = Z | S Nat deriving Show |
2021-01-11 12:58:55 +0100 | <yahb> | ski: |
2021-01-11 12:59:15 +0100 | <int-e> | ski: in that forall (k :: Nat). Fin (S k) -> Maybe (Fin k) case you're only given FZ :: Fin (S k) |
2021-01-11 12:59:15 +0100 | <ski> | % data family Fin (n :: Nat) :: * where data Fin Z = FZ; newtype Fin (S n) = FS (Fin n) |
2021-01-11 12:59:15 +0100 | <yahb> | ski: ; <interactive>:90:33: error: parse error on input `where' |
2021-01-11 12:59:32 +0100 | <ski> | % data family Fin (n :: Nat) :: *; data instance Fin Z = FZ; newtype instance Fin (S n) = FS (Fin n) |
2021-01-11 12:59:32 +0100 | <yahb> | ski: |
2021-01-11 12:59:46 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-11 12:59:52 +0100 | <ski> | % let strengthen :: Fin ('S n) -> Maybe (Fin n); strengthen FZ = Nothing; strengthen (FS i) = Just i |
2021-01-11 12:59:52 +0100 | <yahb> | ski: ; <interactive>:92:59: error:; * Couldn't match type 'Z with 'S n; Expected type: Fin ('S n); Actual type: Fin 'Z; * In the pattern: FZ; In an equation for `strengthen': strengthen FZ = Nothing; * Relevant bindings include strengthen :: Fin ('S n) -> Maybe (Fin n) (bound at <interactive>:92:48) |
2021-01-11 13:00:14 +0100 | <int-e> | ski: I think you're missing a part of what cmcma20 wants: "<cmcma20> it would be too easy. If k ~ 'S n I wanna actually return Just Z" |
2021-01-11 13:00:31 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2021-01-11 13:00:39 +0100 | ArConan | (9de62a69@157.230.42.105) |
2021-01-11 13:00:53 +0100 | <int-e> | and strengthen FZ = Nothing doesn't do that. |
2021-01-11 13:01:28 +0100 | <gentauro> | 12:48 < int-e> Oh I do use `where` a lot. But I would hate for the keyword to not be there. |
2021-01-11 13:01:31 +0100 | Tops21 | (~Tobias@dyndsl-091-249-083-248.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
2021-01-11 13:01:36 +0100 | <ski> | int-e : i renamed to `strengthen :: Fin ('S n) -> Maybe (Fin n)' .. perhaps that's the confusion here ? |
2021-01-11 13:02:20 +0100 | <cmcma20> | btw some context: this function is needed to properly substitute the outer de Brujin index of a locally nameless lambda |
2021-01-11 13:02:21 +0100 | <gentauro> | int-e: I only use `let` very rarely. It's monstly in `monad` blocks cos you can define `let` bidings that depend on results of monadic code |
2021-01-11 13:02:21 +0100 | <int-e> | ski: AIUI, they want strengthen FZ = Just FZ whenever the type n would allow that. |
2021-01-11 13:02:53 +0100 | <int-e> | ski: and only result in Nothing if it's absolutely necessary, that is, if n = Z. |
2021-01-11 13:03:19 +0100 | <ski> | hm |
2021-01-11 13:03:20 +0100 | <int-e> | ski: And that's the part where I've stated that Haskell can't do that. |
2021-01-11 13:03:39 +0100 | <gentauro> | but I have always thought about, syntaks like: `do getEffects <- doIO(); foo := getEffects` |
2021-01-11 13:03:40 +0100 | <int-e> | (without being more explicit about what n is, for example through a singleton) |
2021-01-11 13:03:49 +0100 | <gentauro> | replacing `let … in` with `:=` |
2021-01-11 13:03:53 +0100 | <gentauro> | does it give sense? |
2021-01-11 13:04:06 +0100 | <gentauro> | also it looks nice (OCD) when placing under each other :) |
2021-01-11 13:04:14 +0100 | <gentauro> | do |
2021-01-11 13:04:19 +0100 | <gentauro> | a <- foo () |
2021-01-11 13:04:24 +0100 | <gentauro> | b := a |
2021-01-11 13:04:25 +0100 | <gentauro> | :) |
2021-01-11 13:04:28 +0100 | <int-e> | gentauro: Let's cut this short... I don't really want to think about changing Haskell's syntax. |
2021-01-11 13:04:31 +0100 | ski | doesn't think `:=' looks nice |
2021-01-11 13:04:43 +0100 | <ski> | (not in math, either) |
2021-01-11 13:04:45 +0100 | <gentauro> | ski: if you have a math brain it does ;) |
2021-01-11 13:04:49 +0100 | <ski> | nope |
2021-01-11 13:04:50 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Ping timeout: 264 seconds) |
2021-01-11 13:04:59 +0100 | <int-e> | The current one has its warts but I've grown used to it. |
2021-01-11 13:05:13 +0100 | <gentauro> | int-e: I understand that |
2021-01-11 13:05:16 +0100 | <ski> | i don't want to think of a definition as a "property of equality" |
2021-01-11 13:05:19 +0100 | <__monty__> | Let without in is also less clear about when the definitions stop and the body starts. |
2021-01-11 13:05:20 +0100 | <gentauro> | time to make a new language xD |
2021-01-11 13:05:45 +0100 | <ski> | i want to be able to think of a defining equation as (also) being a true equality |
2021-01-11 13:06:22 +0100 | <ski> | (and not all definitions use equality, anyway) |
2021-01-11 13:06:24 +0100 | <gentauro> | __monty__: that's perhaps why F# has `forced` intendation rules |
2021-01-11 13:06:27 +0100 | <merijn> | Equality is so easy! |
2021-01-11 13:06:29 +0100 | <gentauro> | I like that A LOT |
2021-01-11 13:06:33 +0100 | <merijn> | Until you start learning dependent types |
2021-01-11 13:06:36 +0100 | <gentauro> | that makes people write "readable code" |
2021-01-11 13:06:36 +0100 | <int-e> | gentauro: But I do feel strongly that keywords serve a purpose when reading code, so dropping them carries a cost. And I read a lot more code than I write. |
2021-01-11 13:06:42 +0100 | <merijn> | Then you realise equality is *hard* |
2021-01-11 13:07:06 +0100 | <merijn> | gentauro: In short: No |
2021-01-11 13:07:17 +0100 | <gentauro> | merijn: no what? |
2021-01-11 13:07:23 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2021-01-11 13:07:30 +0100 | <merijn> | gentauro: In long: I will start dispatching hitman squads if people keep suggesting trivial syntactic changes with no semantic benefit |
2021-01-11 13:07:30 +0100 | <int-e> | (For example, I *like* if ... then ... else ..., even though we could easily have if :: Bool -> a -> a -> a instead) |
2021-01-11 13:07:40 +0100 | Lowl3v3l | (~Lowl3v3l@dslb-084-062-101-233.084.062.pools.vodafone-ip.de) |
2021-01-11 13:07:42 +0100 | <ski> | (being able to think of a defining equation as a true equality is also why i dislike deviations between the pattern and the expression language) |
2021-01-11 13:07:50 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:7e9d:7180:3ecf:ff43) (Ping timeout: 264 seconds) |
2021-01-11 13:07:52 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-01-11 13:08:29 +0100 | Entertainment | (~entertain@104.246.132.210) |
2021-01-11 13:08:36 +0100 | <merijn> | gentauro: Dropping let achieves nothing. It doesn't make programs that were previously impossible possible, it doesn't make it harder to make mistakes...all it does is "type 3 letters less for no real benefit, while breaking years of education, experience and tooling" |
2021-01-11 13:08:40 +0100 | <merijn> | No thanks |
2021-01-11 13:09:16 +0100 | <int-e> | merijn: it makes parsing harder though... another place where the compiler has to look far ahead to decide whether something is a pattern or an expression |
2021-01-11 13:09:19 +0100 | <gentauro> | merijn: fair points |
2021-01-11 13:09:22 +0100 | <merijn> | Any change to syntax better have a *damn* good reason |
2021-01-11 13:09:36 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 240 seconds) |
2021-01-11 13:09:38 +0100 | <merijn> | *especially* changes that invalidate existing code |
2021-01-11 13:09:59 +0100 | <gentauro> | nevertheless, I'm of the believers that a language should have one-way (for simplicity) to provide basic logic |
2021-01-11 13:10:11 +0100 | <ski> | "one-way" ? |
2021-01-11 13:10:12 +0100 | <gentauro> | so let/in vs where vs let vs … |
2021-01-11 13:10:22 +0100 | <gentauro> | to much confusion to new commers |
2021-01-11 13:10:29 +0100 | <merijn> | It's simple |
2021-01-11 13:10:33 +0100 | ski | thinks of one-way streets |
2021-01-11 13:10:34 +0100 | <__monty__> | Well, let in would probably be more useful than where, since it's an expression. |
2021-01-11 13:10:37 +0100 | <merijn> | never use let unless you must, problem solved |
2021-01-11 13:10:46 +0100 | <gentauro> | merijn: that's my approach !!! |
2021-01-11 13:11:16 +0100 | new_haskeller | (ae72a197@cpe00fc8d386d93-cm00fc8d386d90.cpe.net.cable.rogers.com) |
2021-01-11 13:11:28 +0100 | <int-e> | They feel different though... let/in is often about the flow of information; `where` is more of an ambient environment for the whole definition. |
2021-01-11 13:11:46 +0100 | ski | looks at new_haskeller |
2021-01-11 13:12:01 +0100 | <gentauro> | int-e: I use `where` for data-transformations and local functions |
2021-01-11 13:12:13 +0100 | <gentauro> | I very rareley need `let/in` bindings |
2021-01-11 13:12:37 +0100 | ski | sometimes attaches `where's to `case'-`of' branches |
2021-01-11 13:13:08 +0100 | <gentauro> | ski: are those `where` local to each case branch? |
2021-01-11 13:13:13 +0100 | <ski> | yes |
2021-01-11 13:13:14 +0100 | <int-e> | gentauro: Anyway, feel free to do whatever in your own language. |
2021-01-11 13:13:33 +0100 | <ski> | (also scopes over the guards) |
2021-01-11 13:13:42 +0100 | <int-e> | gentauro: Or in your own Haskell style guide, for that matter :P |
2021-01-11 13:13:56 +0100 | <boxscape> | if you have something like `f x = Ctr \y -> let z = g y in ...` it seems like you can't easily replace that with case of |
2021-01-11 13:14:08 +0100 | <boxscape> | err |
2021-01-11 13:14:10 +0100 | <boxscape> | sorry |
2021-01-11 13:14:11 +0100 | <boxscape> | with where |
2021-01-11 13:14:13 +0100 | <merijn> | boxscape: sure you can |
2021-01-11 13:14:13 +0100 | <__monty__> | I kinda want a where that scopes over all equations of a function. |
2021-01-11 13:14:17 +0100 | <gentauro> | int-e: my own language is `hibernating` at the moment. I guess at some point I will `wake` it up :) |
2021-01-11 13:14:19 +0100 | <merijn> | boxscape: Just get rid of the lambda |
2021-01-11 13:14:27 +0100 | <ski> | f x = Ctr \(g -> z) -> ..z.. |
2021-01-11 13:14:29 +0100 | <int-e> | __monty__: Yeah that would be nice on occasion |
2021-01-11 13:14:43 +0100 | <__monty__> | But then I think good modules fix all of these silly scoping concerns and am saddened by the state of haskell's "module system." |
2021-01-11 13:14:50 +0100 | <merijn> | __monty__: Let me introduce you to "case of" :p |
2021-01-11 13:14:59 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds) |
2021-01-11 13:15:00 +0100 | <ski> | __monty__ : it's called `local'-`in'-`end', in SML, and i've wanted it for a long time, in Haskell |
2021-01-11 13:15:06 +0100 | <boxscape> | merijn what would be your preferred way to get rid of the lambda? |
2021-01-11 13:15:19 +0100 | <merijn> | __monty__: I'm sure that backpack could use your love with ezyang busy on pytorch |
2021-01-11 13:15:33 +0100 | <merijn> | boxscape: Give it a name, put it in the where block of 'f' |
2021-01-11 13:15:45 +0100 | <boxscape> | okay |
2021-01-11 13:15:48 +0100 | <ski> | merijn : `case'-`of' doesn't cover the case when you want to define multiple things after the `in' |
2021-01-11 13:15:57 +0100 | <gentauro> | speaking about `cases … of`. I like that in OCaml, if two branches are the same. You can handle their code in one by omitting arrows |
2021-01-11 13:16:05 +0100 | <gentauro> | that's is nice. I wouldn't mind getting that to Haskell |
2021-01-11 13:16:14 +0100 | <merijn> | ski: I meant that where scopes over the entire case-of then :p |
2021-01-11 13:16:19 +0100 | <gentauro> | case FooBar of |
2021-01-11 13:16:21 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-01-11 13:16:24 +0100 | <gentauro> | Foo |
2021-01-11 13:16:26 +0100 | <gentauro> | Bar -> |
2021-01-11 13:16:36 +0100 | <gentauro> | that's really usefull in OCaml |
2021-01-11 13:16:36 +0100 | <ski> | merijn : i meant `local ... in f x = ..x..; g y = ..y..' |
2021-01-11 13:17:03 +0100 | <dminuoso> | gentauro: I guess it's not that useful in Haskell, since we rarely have nullary-only sum types. |
2021-01-11 13:17:05 +0100 | <ski> | merijn : are you suggesting `(f,g) = (\x -> ..x..,\y -> ..y..) where ...' ? |
2021-01-11 13:17:09 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-11 13:17:11 +0100 | <merijn> | ski: That's not what I was replying to? |
2021-01-11 13:17:15 +0100 | Profpatsch | (~Profpatsc@static.88-198-193-255.clients.your-server.de) |
2021-01-11 13:17:22 +0100 | <__monty__> | merijn: I like what backpack does. But having seen Agda's modules I'm still left wanting. |
2021-01-11 13:17:27 +0100 | <merijn> | ski: I was replying to __monty__'s complaint that where doesn't scope over multiple equations |
2021-01-11 13:17:28 +0100 | <dminuoso> | gentauro: And most of the time we do pattern matching, we do do want to bind some of the fields. |
2021-01-11 13:17:45 +0100 | <merijn> | dminuoso: You can do that in ocaml |
2021-01-11 13:17:55 +0100 | <ski> | merijn : yea, i was replying to the same thing, except i also want those multiple equations to possibly define more than one identifier |
2021-01-11 13:17:59 +0100 | <merijn> | dminuoso: "Foo x | Bar x -> stuff x" works iirc |
2021-01-11 13:18:05 +0100 | <Profpatsch> | Is it possible to use deriving via for a restricted instance? e.g. I have newtype Foo r = Foo (Op r) and (Op r) is Divisible if Monoid r |
2021-01-11 13:18:08 +0100 | <dminuoso> | merijn: Assuming both fields are of the same type? |
2021-01-11 13:18:16 +0100 | <merijn> | dminuoso: Yes |
2021-01-11 13:18:27 +0100 | <dminuoso> | Profpatsch: Standalone deriving |
2021-01-11 13:18:29 +0100 | <Profpatsch> | But `deriving Divisible via (Op r)` doesn’t work because of the Monoid restriction |
2021-01-11 13:18:36 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection) |
2021-01-11 13:18:45 +0100 | <ski> | iow, being able to define some helpers, that scope over multiple definitions |
2021-01-11 13:18:46 +0100 | <dminuoso> | (you can also do standalone deriving via) |
2021-01-11 13:18:51 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-11 13:19:00 +0100 | <ski> | (which is what `local'-`in'-`end' in SML allows, in general) |
2021-01-11 13:19:06 +0100 | <gentauro> | case FooBar of |
2021-01-11 13:19:09 +0100 | <gentauro> | Foo x |
2021-01-11 13:19:12 +0100 | <gentauro> | Bar x -> |
2021-01-11 13:19:18 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:e268:f1af:eeaa:71ac) |
2021-01-11 13:19:33 +0100 | <gentauro> | dminuoso: `x` can be reused from both cases |
2021-01-11 13:19:37 +0100 | <ski> | `let <decls> in <expr> end' is an expression (in SML). `local <decls> in <decls> end' is a declaration |
2021-01-11 13:19:38 +0100 | <gentauro> | it's pretty nice |
2021-01-11 13:20:03 +0100 | <dminuoso> | Honestly, out of all the wishes what Haskell should have, I'd say circular imports is on top #1 of my list. |
2021-01-11 13:20:07 +0100 | <ski> | gentauro : unfortunately no disjunctive / OR- patterns, in Haskell |
2021-01-11 13:20:13 +0100 | <dminuoso> | It's my single largest annoyance with Haskell |
2021-01-11 13:20:23 +0100 | <merijn> | dminuoso: Word |
2021-01-11 13:20:29 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection) |
2021-01-11 13:20:32 +0100 | <gentauro> | dminuoso: I would say submodules |
2021-01-11 13:20:34 +0100 | <gentauro> | done right |
2021-01-11 13:20:42 +0100 | <int-e> | dminuoso: That's technically not a Haskell problem, but a problem with the implementation. |
2021-01-11 13:20:48 +0100 | <gentauro> | right now the module system is pretty `flat` and somehow `useless` :| |
2021-01-11 13:20:52 +0100 | <merijn> | Naah, I don't care so much about submodules, but recursive imports are just so painful |
2021-01-11 13:21:00 +0100 | <__monty__> | ski: It does sound exactly like what I want. Though otoh with agda style modules you don't end up not being able to get at the definitions, like what haskell's *.Internal convention is meant to circumvent. |
2021-01-11 13:21:00 +0100 | gentauro | coming from an OCaml/F# module world |
2021-01-11 13:21:05 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-11 13:21:10 +0100 | <dminuoso> | int-e: I guess the distinction is meaningless these days. |
2021-01-11 13:21:19 +0100 | <Profpatsch> | dminuoso: do you have an example? I don’t see how this fits together |
2021-01-11 13:21:23 +0100 | <Up39> | so how do you deal with cases where imports would be circular? |
2021-01-11 13:21:45 +0100 | Entertainment | (~entertain@104.246.132.210) () |
2021-01-11 13:21:56 +0100 | <merijn> | Up39: Try for an hour to get .hs-boot files to work, cry, give up, refactor circularlity away by tossing half the types into a .Types module >.> |
2021-01-11 13:22:13 +0100 | <ArConan> | ah,i think i miss a splendid discussion |
2021-01-11 13:22:13 +0100 | <ski> | __monty__ : sorry, i didn't get that about Agda style modules |
2021-01-11 13:22:32 +0100 | <dminuoso> | Profpatsch: `deriving via (Op r) instance (Monoid r) => Divisible (Foo r)` |
2021-01-11 13:22:41 +0100 | <dminuoso> | (I know, that syntax is eye clawing...) |
2021-01-11 13:22:41 +0100 | <int-e> | merijn: . o O ( And pray that you'll never need Template Haskell ) |
2021-01-11 13:22:54 +0100 | <merijn> | int-e: Trigger warning, please :( |
2021-01-11 13:22:59 +0100 | <int-e> | hah |
2021-01-11 13:23:02 +0100 | <ArConan> | for i usually use let..in and reported error |
2021-01-11 13:23:20 +0100 | <Profpatsch> | dminuoso: I get a parse error |
2021-01-11 13:23:24 +0100 | <Profpatsch> | Is that a GHC 8.10 thing? |
2021-01-11 13:23:25 +0100 | <Up39> | lol, so what if you need circular imports and template haskell? |
2021-01-11 13:23:35 +0100 | <int-e> | merijn: I think the thought bubble actually is a trigger warning, the way I use it. :-P |
2021-01-11 13:23:35 +0100 | <merijn> | Profpatsch: You need -XStandaloneDeriving |
2021-01-11 13:23:44 +0100 | <dminuoso> | And -XDerivingVia |
2021-01-11 13:23:49 +0100 | <__monty__> | ski: So let/where/local all have the problem that the definitions are inaccessible from outside the body. If you used modules for scoping then you could always get at those helpers without having to crowd the top-level namespace. |
2021-01-11 13:23:52 +0100 | <Profpatsch> | dminuoso: It’s both enabled |
2021-01-11 13:23:55 +0100 | Tops2 | (~Tobias@dyndsl-091-249-083-248.ewe-ip-backbone.de) |
2021-01-11 13:24:00 +0100 | <merijn> | Up39: Quit your job, move into the mountains and become a goat herd |
2021-01-11 13:24:25 +0100 | <ski> | __monty__ : why do you say it's a problem ? it's the intent of them |
2021-01-11 13:24:28 +0100 | <Up39> | merijn: not the worst thing ever :P |
2021-01-11 13:24:41 +0100 | <merijn> | Up39: Fortunately that cursed combination is fairly rare |
2021-01-11 13:24:53 +0100 | mputz | (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
2021-01-11 13:24:55 +0100 | <ski> | __monty__ : unless maybe if you're talking about debugging ? |
2021-01-11 13:25:33 +0100 | <__monty__> | ski: Same reason the *.Internal convention exists. Even the wisest of us sometimes hides away something that's useful or even necessary. |
2021-01-11 13:25:44 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 256 seconds) |
2021-01-11 13:25:47 +0100 | <int-e> | Up39: you cry, cry, cry... |
2021-01-11 13:25:57 +0100 | <int-e> | . o O ( module Cry where import Cry ) |
2021-01-11 13:26:03 +0100 | seveg | (~gabriel@2a02-ab04-0249-8d00-dea6-32ff-fe17-0993.dynamic.v6.chello.sk) (Ping timeout: 246 seconds) |
2021-01-11 13:26:24 +0100 | <ski> | __monty__ : it's a different need, requiring a different solution |
2021-01-11 13:26:27 +0100 | <dminuoso> | Profpatsch: Mmm, are you sure you dont have an unrelated syntax error? |
2021-01-11 13:26:48 +0100 | <dminuoso> | % deriving via (Op r) instance (Monoid r) => Divisible (Foo r) |
2021-01-11 13:26:49 +0100 | <yahb> | dminuoso: ; <interactive>:94:15: error:; Not in scope: type constructor or class `Op'; Perhaps you meant `Ap' (imported from Control.Monad.RWS); <interactive>:94:44: error: Not in scope: type constructor or class `Divisible' |
2021-01-11 13:26:56 +0100 | <dminuoso> | It parses fine with this GHCi at least |
2021-01-11 13:27:03 +0100 | <merijn> | __monty__: THat's why we have |
2021-01-11 13:27:07 +0100 | <merijn> | @hackage true-name ;) |
2021-01-11 13:27:07 +0100 | <lambdabot> | https://hackage.haskell.org/package/true-name ;) |
2021-01-11 13:27:45 +0100 | <Profpatsch> | dminuoso: oh, it has to be on toplevel |
2021-01-11 13:27:51 +0100 | <Profpatsch> | I put it indented behind the type |
2021-01-11 13:27:57 +0100 | <dminuoso> | Yes. |
2021-01-11 13:27:58 +0100 | <__monty__> | ski: Are you familiar with Agda's modules? I think SML's Functors are similar. They're the nicest solution to scoping I've come across in any language. |
2021-01-11 13:28:03 +0100 | <ski> | __monty__ : do you also think it's a problem that you can't access `m' and `n', if you're given the value of `m * n' ? |
2021-01-11 13:28:27 +0100 | <__monty__> | And if `local in end` isn't a scoping construct I guess I'm missing the point. |
2021-01-11 13:28:33 +0100 | <ski> | i'm familiar with SML module functors |
2021-01-11 13:28:43 +0100 | <ski> | it is a scoping construct |
2021-01-11 13:28:47 +0100 | <dminuoso> | Admittedly, it's poorly documented in the GHC manual. |
2021-01-11 13:28:50 +0100 | <int-e> | Up39: It's not really about the imports though; circular modules will still need a .hs-boot file somwhere in the loop, and {-# SOURCE #-} imports... the issue with TH is that it breaks up modules into sections that can only refer to themselves and earlier sections... so you can have more fun with cyclic definitions. And those are ordinarily not a problem at all in Haskell. |
2021-01-11 13:29:01 +0100 | <ski> | it's intended to hide local definitions |
2021-01-11 13:29:15 +0100 | <Profpatsch> | dminuoso: But I noticed I can’t do it really, because I don’t have a * -> * but specialized it to * |
2021-01-11 13:29:17 +0100 | <ski> | (not just to qualify them, packaging them up) |
2021-01-11 13:29:20 +0100 | <Profpatsch> | So maybe I should sketch out my interface first |
2021-01-11 13:29:53 +0100 | <dminuoso> | 13:21:56 merijn | Up39: Try for an hour to get .hs-boot files to work, cry, give up, refactor circularlity away by tossing half the types into a .Types module >.> |
2021-01-11 13:30:05 +0100 | <dminuoso> | merijn: This works so long until your Types depend on one-another! |
2021-01-11 13:30:12 +0100 | <dminuoso> | Starting the cycle anew. |
2021-01-11 13:30:17 +0100 | <merijn> | dminuoso: No |
2021-01-11 13:30:27 +0100 | <dminuoso> | Oh, you meant a *singular* types module? :P |
2021-01-11 13:30:30 +0100 | <merijn> | Yes |
2021-01-11 13:30:32 +0100 | <ski> | yes |
2021-01-11 13:30:34 +0100 | <dminuoso> | Ah. |
2021-01-11 13:31:04 +0100 | <int-e> | Up39: "template haskell" "stages" is the proper keyword combination for this particular dark corner of Haskell/GHC. |
2021-01-11 13:31:21 +0100 | <ski> | (you could try to parameterize the types, breaking the loop. or maybe backpack could be used here ?) |
2021-01-11 13:31:28 +0100 | <merijn> | Up39: One (easier) trick is to try and avoid having datatypes depend on each other directly |
2021-01-11 13:32:21 +0100 | <__monty__> | ski: Pretty sure the entire field of crypto is concerned with the m * n problem : ) Granted, I don't come across the problem much in haskell. But it plagues nixpkgs for example. |
2021-01-11 13:32:23 +0100 | <dminuoso> | GHC itself actually uses boot modules. I recall a discussion with several GHC core developers, where none of them appeared to know how to use boot modules... |
2021-01-11 13:32:25 +0100 | <ski> | in place of `data Foo = ..Foo.Bar..; data Bar = ..Foo..Bar..', you can do `data Foo bar = ..(Foo bar)..bar..; data Bar = ..(Foo Bar)..Bar..' |
2021-01-11 13:32:28 +0100 | <dminuoso> | That situation was tellig.. |
2021-01-11 13:32:44 +0100 | <merijn> | Up39: i.e. instead of having "data Foo = Foo Int Bar" and "data Bar = Bar Bool Foo" do something like "data Foo f = Foo Int (f (Foo f))" and "data Bar f = Bar Bool (f (Bar f))" or something like that |
2021-01-11 13:32:52 +0100 | <ski> | (but having to do that can be quite annoying) |
2021-01-11 13:33:30 +0100 | ski | low fours merijn |
2021-01-11 13:33:43 +0100 | <dminuoso> | And dealing with higher kinded data types introduces other annoyances, like you cant just derive instances out of the box anymore |
2021-01-11 13:33:51 +0100 | <dminuoso> | % data Foo f = Foo { t :: f Int } deriving (Eq, Ord, Show) |
2021-01-11 13:33:51 +0100 | <yahb> | dminuoso: ; <interactive>:96:43: error:; * No instance for (Eq (f Int)) arising from the first field of `Foo' (type `f Int'); Possible fix: use a standalone 'deriving instance' declaration, so you can specify the instance context yourself; * When deriving the instance for (Eq (Foo f)); <interactive>:96:47: error:; * No instance for (Ord (f Int)) arising from the first field of `Foo' (type `f In |
2021-01-11 13:34:11 +0100 | <dminuoso> | Once you start with this, you soon have the modern equivalent of -fglasgow-exts enabled. |
2021-01-11 13:35:01 +0100 | <int-e> | . o O ( Given this discussion I've decided that Haskell is the worst language on Earth and will now switch to C++. ) |
2021-01-11 13:35:17 +0100 | <merijn> | int-e: lol |
2021-01-11 13:35:26 +0100 | <merijn> | C++ is so much worse >.> |
2021-01-11 13:35:33 +0100 | <merijn> | It's not even funny |
2021-01-11 13:35:34 +0100 | <dminuoso> | I think that was the joke. |
2021-01-11 13:35:57 +0100 | <int-e> | :) |
2021-01-11 13:36:03 +0100 | <merijn> | dminuoso: Most people think C++ is bad, but only a few have pushed enough to realise *how* bad :p |
2021-01-11 13:36:25 +0100 | <ski> | __monty__ : i don't really see why you think the `*.Internal' situation is similar to `let'/`where' or `local' |
2021-01-11 13:36:58 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 246 seconds) |
2021-01-11 13:37:53 +0100 | <__monty__> | I see *.Internal as a way of circumventing the scoping restrictions modules impose. let et al impose similar restrictions on the scope of their definitions. |
2021-01-11 13:37:59 +0100 | <dminuoso> | One other thing I found that slightly helps in mutually dependent modules, is mtl-style code. It's a sort of late-binding. |
2021-01-11 13:38:21 +0100 | <dminuoso> | Which can help break up cyclic dependencies if it's just a few functions that introduce the circularity |
2021-01-11 13:38:22 +0100 | chirpsalot | (~Chirps@pool-98-115-239-235.phlapa.fios.verizon.net) (Ping timeout: 256 seconds) |
2021-01-11 13:38:32 +0100 | <ski> | i have occasionally wanted to be able to access internal `where' (or `let') bindings, for debugging/testing .. (although, iirc you can actually do that, with the GHCi tracer, if the breakpoint is within the scope of the relevant bindings) |
2021-01-11 13:38:56 +0100 | <Up39> | So what's the reason behind circular imports not being handled by the compiler? |
2021-01-11 13:39:01 +0100 | <ski> | but other than that, i don't see why you want to break encapsulation / lexical scoping |
2021-01-11 13:39:05 +0100 | <dminuoso> | Up39: It was never considered in the implementation of GHC. |
2021-01-11 13:39:23 +0100 | <dminuoso> | The Haskell reports itself already permits (but not requires) circular imports. |
2021-01-11 13:39:45 +0100 | <dminuoso> | It'd require a major rehaul of GHC to allow for circular imports. |
2021-01-11 13:39:48 +0100 | <ski> | __monty__ : they would also preclude more aggressive optimization |
2021-01-11 13:39:51 +0100 | <merijn> | dminuoso: It does, actually? |
2021-01-11 13:39:56 +0100 | <merijn> | dminuoso: iirc anyway |
2021-01-11 13:40:08 +0100 | <merijn> | Up39: "too hard to implement" |
2021-01-11 13:40:45 +0100 | <dminuoso> | If GHC had been designed with circular dependencies from the beginning, it's conceivable a suitable implementation could have been derived. |
2021-01-11 13:40:52 +0100 | <__monty__> | ski: Don't think they would. It's known statically whether or not modules are opened. |
2021-01-11 13:41:16 +0100 | Chobbes | (~Chobbes@pool-98-115-239-235.phlapa.fios.verizon.net) (Ping timeout: 240 seconds) |
2021-01-11 13:41:21 +0100 | seveg | (~gabriel@2a02-ab04-0249-8d00-dea6-32ff-fe17-0993.dynamic.v6.chello.sk) |
2021-01-11 13:41:31 +0100 | <ski> | __monty__ : whole-program / global knowledge ? |
2021-01-11 13:42:12 +0100 | <__monty__> | I guess. |
2021-01-11 13:42:13 +0100 | ski | idly ponders building modules at run-time |
2021-01-11 13:42:35 +0100 | Flonk | (~Flonk@ec2-52-40-29-25.us-west-2.compute.amazonaws.com) |
2021-01-11 13:42:43 +0100 | <ski> | (OCaml and Alice ML supports that. e.g. sending a module over the wire) |
2021-01-11 13:42:50 +0100 | Entertainment | (~entertain@104.246.132.210) |
2021-01-11 13:45:47 +0100 | usr25 | (~usr25@unaffiliated/usr25) |
2021-01-11 13:45:54 +0100 | ahf_ | ahf |
2021-01-11 13:45:54 +0100 | ome | (uid36537@gateway/web/irccloud.com/x-vxnalybdhvqhuavb) |
2021-01-11 13:47:51 +0100 | <Uniaika> | ski: getting some Erlang vibes from that :P |
2021-01-11 13:49:52 +0100 | new_haskeller | (ae72a197@cpe00fc8d386d93-cm00fc8d386d90.cpe.net.cable.rogers.com) (Quit: Ping timeout (120 seconds)) |
2021-01-11 13:49:57 +0100 | <ski> | i recall a discussion about parameterizing Erlang modules, something like `-module foo(X,Y). ..X..Y..' |
2021-01-11 13:50:31 +0100 | <Uniaika> | can't quite recall, but Elixir's 'use' macro enables you to call a module with parameters |
2021-01-11 13:50:36 +0100 | <Uniaika> | it's very used |
2021-01-11 13:53:54 +0100 | Chobbes | (~Chobbes@pool-98-115-239-235.phlapa.fios.verizon.net) |
2021-01-11 13:54:28 +0100 | mputz | (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 246 seconds) |
2021-01-11 13:54:39 +0100 | Dark_Ethereal | (~Drew@84.93.106.197) |
2021-01-11 13:54:49 +0100 | __monty__ | (~toonn@unaffiliated/toonn) (Ping timeout: 264 seconds) |
2021-01-11 13:55:08 +0100 | __monty__ | (~toonn@unaffiliated/toonn) |
2021-01-11 13:55:32 +0100 | <ArConan> | almost every time i run my haskell code,my compiler told me` Variable not in scope:`,is it something wrong with my ghc? |
2021-01-11 13:55:42 +0100 | <ArConan> | https://paste.tomsmeding.com/tXnBy7hM |
2021-01-11 13:56:29 +0100 | <merijn> | ArConan: You are trying to do multiline definitions in ghci |
2021-01-11 13:56:29 +0100 | <Uniaika> | ArConan: okay so |
2021-01-11 13:56:32 +0100 | <merijn> | That doesn't work well |
2021-01-11 13:56:56 +0100 | <Uniaika> | ArConan: did you activate multiline mode for GHCi? |
2021-01-11 13:57:04 +0100 | <merijn> | My recommended solution is: Don't write multiline definitions in ghci |
2021-01-11 13:57:15 +0100 | <Uniaika> | ^ what he says |
2021-01-11 13:57:18 +0100 | <merijn> | Just write them in a file and load the file in ghci |
2021-01-11 13:58:04 +0100 | son0p | (~son0p@181.58.39.182) (Quit: Lost terminal) |
2021-01-11 13:58:38 +0100 | <ArConan> | Uniaika: but it is just writen in a file |
2021-01-11 13:58:47 +0100 | LKoen | (~LKoen@152.172.9.109.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”) |
2021-01-11 13:59:21 +0100 | <merijn> | ArConan: Well, that error is from ghci, so if you wrote it in a file, then you haven't shown us what you typed to get that error |
2021-01-11 13:59:41 +0100 | <boxscape> | the error seems to indicate that you defined it as quicksort' but are calling it as quicksort without the prime |
2021-01-11 14:00:40 +0100 | <ArConan> | ah,wait a minute |
2021-01-11 14:00:54 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-11 14:00:59 +0100 | <__monty__> | Is ArConan the same person as misak? Because I'm having a dèja vu. |
2021-01-11 14:02:15 +0100 | <ski> | most likely no |
2021-01-11 14:03:29 +0100 | <boxscape> | /whois says most likely yes |
2021-01-11 14:03:33 +0100 | <ArConan> | err ,deja vu?a music? |
2021-01-11 14:05:00 +0100 | solarliner | (~solarline@243.81.10.109.rev.sfr.net) (Ping timeout: 256 seconds) |
2021-01-11 14:05:04 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2021-01-11 14:05:23 +0100 | mputz | (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
2021-01-11 14:06:22 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 246 seconds) |
2021-01-11 14:07:06 +0100 | geekosaur | (ac3a8b5c@172.58.139.92) |
2021-01-11 14:07:14 +0100 | pera | (pera@gateway/vpn/mullvad/pera) |
2021-01-11 14:07:29 +0100 | <ArConan> | so strange. |
2021-01-11 14:07:29 +0100 | <ArConan> | My program is working well now..... |
2021-01-11 14:07:53 +0100 | <ArConan> | what happened=$ |
2021-01-11 14:08:44 +0100 | maxsu | (~maxsu@ip-64-72-99-232.lasvegas.net) (Ping timeout: 256 seconds) |
2021-01-11 14:08:49 +0100 | oerjan | (~oerjan@178.162.209.171) (Ping timeout: 246 seconds) |
2021-01-11 14:10:06 +0100 | phasespace | (~sar@80-89-47-117.inet.signal.no) (Ping timeout: 256 seconds) |
2021-01-11 14:10:35 +0100 | hekkaidekapus | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection) |
2021-01-11 14:11:07 +0100 | hekkaidekapus | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2021-01-11 14:12:03 +0100 | seveg | (~gabriel@2a02-ab04-0249-8d00-dea6-32ff-fe17-0993.dynamic.v6.chello.sk) (Ping timeout: 272 seconds) |
2021-01-11 14:12:08 +0100 | thefybe | (~thefybe@249-147-161-N2.customer.vsm.sh) |
2021-01-11 14:13:01 +0100 | <ArConan> | __monty__: a new word accknowledged:') |
2021-01-11 14:13:21 +0100 | <ArConan> | misak is my nickname on my client |
2021-01-11 14:15:31 +0100 | jchia__ | (~jchia@58.32.32.252) |
2021-01-11 14:15:37 +0100 | xelxebar_ | (~xelxebar@gateway/tor-sasl/xelxebar) |
2021-01-11 14:16:23 +0100 | xelxebar | (~xelxebar@gateway/tor-sasl/xelxebar) (Ping timeout: 240 seconds) |
2021-01-11 14:18:13 +0100 | Chobbes | (~Chobbes@pool-98-115-239-235.phlapa.fios.verizon.net) (Ping timeout: 264 seconds) |
2021-01-11 14:18:25 +0100 | Tario | (~Tario@201.192.165.173) |
2021-01-11 14:19:21 +0100 | <Dark_Ethereal> | ArConan: what did you change? |
2021-01-11 14:19:27 +0100 | phasespace | (~sar@89-162-33-21.fiber.signal.no) |
2021-01-11 14:20:18 +0100 | <ArConan> | emmm,maybe for i restarted my windows terminal..... |
2021-01-11 14:20:36 +0100 | Chobbes | (~Chobbes@pool-98-115-239-235.phlapa.fios.verizon.net) |
2021-01-11 14:21:09 +0100 | nullifidian | (~nullifidi@unaffiliated/nullifidian) |
2021-01-11 14:22:51 +0100 | chirpsalot | (~Chirps@pool-98-115-239-235.phlapa.fios.verizon.net) |
2021-01-11 14:24:15 +0100 | Codaraxis__ | (~Codaraxis@141.98.255.144) (Remote host closed the connection) |
2021-01-11 14:24:35 +0100 | Codaraxis__ | (~Codaraxis@141.98.255.144) |
2021-01-11 14:25:00 +0100 | argento | (~argent0@168.227.96.26) |
2021-01-11 14:25:21 +0100 | guest111` | (~user@49.5.6.87) (Read error: Connection reset by peer) |
2021-01-11 14:25:29 +0100 | guest111` | (~user@49.5.6.87) |
2021-01-11 14:29:53 +0100 | kyali__ | (~kyali@APN-123-251-120-gprs.simobil.net) |
2021-01-11 14:30:05 +0100 | kyali___ | (~kyali@APN-123-251-120-gprs.simobil.net) |
2021-01-11 14:31:58 +0100 | urodna | (~urodna@unaffiliated/urodna) |
2021-01-11 14:32:09 +0100 | <Dark_Ethereal> | ArConan: Restarting ghci will cause the file to be loaded afresh, so could it be that you made a fixing change but forgot to reload it in ghci? |
2021-01-11 14:32:58 +0100 | kyali | (~kyali@APN-123-255-45-gprs.simobil.net) (Ping timeout: 246 seconds) |
2021-01-11 14:33:05 +0100 | kyali_ | (~kyali@APN-123-255-45-gprs.simobil.net) (Ping timeout: 240 seconds) |
2021-01-11 14:34:14 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-11 14:34:48 +0100 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
2021-01-11 14:35:01 +0100 | aerium | (~aerium@51.194.80.91) (Ping timeout: 264 seconds) |
2021-01-11 14:36:24 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 265 seconds) |
2021-01-11 14:36:40 +0100 | <ArConan> | i guess ,the old file be loaded into memory and when i use :l to load my fixed file, the windows terminal(wt) use the old filenode to find file in memory.so after restarting the wt,my code works normally@Dark_Ethereal |
2021-01-11 14:37:00 +0100 | <merijn> | ArConan: You need to run ":reload" to reload the file after you change it |
2021-01-11 14:37:14 +0100 | knupfer | (~Thunderbi@200116b82c62e3005592499e46851a57.dip.versatel-1u1.de) (Read error: Connection reset by peer) |
2021-01-11 14:37:21 +0100 | knupfer | (~Thunderbi@200116b82c62e3007dce87ecfcf2f682.dip.versatel-1u1.de) |
2021-01-11 14:37:32 +0100 | <__monty__> | Doesn't :load samefile work too though? |
2021-01-11 14:37:39 +0100 | son0p | (~son0p@181.136.122.143) |
2021-01-11 14:37:49 +0100 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) |
2021-01-11 14:38:15 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0) |
2021-01-11 14:38:31 +0100 | seveg | (~gabriel@2a02-ab04-0249-8d00-dea6-32ff-fe17-0993.dynamic.v6.chello.sk) |
2021-01-11 14:39:07 +0100 | <merijn> | maybe? |
2021-01-11 14:39:11 +0100 | <merijn> | I dunno xD |
2021-01-11 14:39:16 +0100 | Codaraxis__ | (~Codaraxis@141.98.255.144) (Ping timeout: 246 seconds) |
2021-01-11 14:40:41 +0100 | <__monty__> | I'd be surprised if it didn't. Though I'd be at least equally surprised if windows decides on a whim to store a file at a new inode. |
2021-01-11 14:41:03 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 256 seconds) |
2021-01-11 14:41:17 +0100 | Codaraxis__ | (~Codaraxis@141.98.255.144) |
2021-01-11 14:42:26 +0100 | xchg | (~xchg@s91904426.blix.com) |
2021-01-11 14:44:07 +0100 | <__monty__> | For a platform without censorship they were beholden to quite a bit of strongly censoring platforms >.< |
2021-01-11 14:44:19 +0100 | <__monty__> | Woops. |
2021-01-11 14:44:21 +0100 | LKoen | (~LKoen@152.172.9.109.rev.sfr.net) |
2021-01-11 14:46:15 +0100 | mirrorbird | (~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d) (Remote host closed the connection) |
2021-01-11 14:47:17 +0100 | Codaraxis__ | (~Codaraxis@141.98.255.144) (Remote host closed the connection) |
2021-01-11 14:47:36 +0100 | Codaraxis__ | (~Codaraxis@141.98.255.144) |
2021-01-11 14:47:37 +0100 | drbean | (~drbean@TC210-63-209-211.static.apol.com.tw) (Ping timeout: 264 seconds) |
2021-01-11 14:49:44 +0100 | mouseghost | (~draco@wikipedia/desperek) |
2021-01-11 14:51:19 +0100 | shailangsa | (~shailangs@host86-186-142-117.range86-186.btcentralplus.com) |
2021-01-11 14:51:22 +0100 | mirrorbird | (~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d) |
2021-01-11 14:52:53 +0100 | Chobbes | (~Chobbes@pool-98-115-239-235.phlapa.fios.verizon.net) (Changing host) |
2021-01-11 14:52:53 +0100 | Chobbes | (~Chobbes@unaffiliated/chobbes) |
2021-01-11 14:53:32 +0100 | xchg | (~xchg@s91904426.blix.com) (Remote host closed the connection) |
2021-01-11 14:54:07 +0100 | <pedrorubster[m]> | <glguy "pedrorubster, that message ended"> https://paste.tomsmeding.com/5lNChHLn |
2021-01-11 14:54:09 +0100 | Codaraxis__ | (~Codaraxis@141.98.255.144) (Remote host closed the connection) |
2021-01-11 14:54:22 +0100 | <pedrorubster[m]> | If anyone could help me with this, I would really appreciate it! ^^ |
2021-01-11 14:54:29 +0100 | Codaraxis__ | (~Codaraxis@141.98.255.144) |
2021-01-11 14:54:34 +0100 | misak | (~arconan@115.209.116.183) (Quit: Leaving) |
2021-01-11 14:54:40 +0100 | ADG1089__ | (~aditya@122.163.165.143) (Remote host closed the connection) |
2021-01-11 15:00:59 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-11 15:03:14 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2021-01-11 15:04:06 +0100 | <__monty__> | pedrorubster[m]: I think you should focus less on the UI and more on the implementation part first. Start by coming up with a data structure which will best support the transformations you want to apply. A list of tuples? A list of lists? A map of records? |
2021-01-11 15:04:24 +0100 | ViCi | (daniel@10PLM.ro) |
2021-01-11 15:06:02 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Ping timeout: 264 seconds) |
2021-01-11 15:11:05 +0100 | jespada | (~jespada@90.254.245.49) (Ping timeout: 256 seconds) |
2021-01-11 15:11:29 +0100 | aerium | (~aerium@51.194.80.91) |
2021-01-11 15:12:42 +0100 | slewis | (~slewis@84.39.117.57) |
2021-01-11 15:13:35 +0100 | jespada | (~jespada@90.254.245.49) |
2021-01-11 15:15:23 +0100 | hyperisco | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
2021-01-11 15:15:51 +0100 | carldd | (~carldd@90-224-49-113-no56.tbcn.telia.com) (Read error: Connection reset by peer) |
2021-01-11 15:15:56 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) |
2021-01-11 15:16:29 +0100 | carldd | (~carldd@90-224-49-113-no56.tbcn.telia.com) |
2021-01-11 15:19:43 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds) |
2021-01-11 15:20:26 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) (Ping timeout: 264 seconds) |
2021-01-11 15:23:45 +0100 | <kyali__> | quit |
2021-01-11 15:23:49 +0100 | kyali___ | (~kyali@APN-123-251-120-gprs.simobil.net) (Quit: leaving) |
2021-01-11 15:23:49 +0100 | kyali__ | (~kyali@APN-123-251-120-gprs.simobil.net) (Quit: leaving) |
2021-01-11 15:24:06 +0100 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
2021-01-11 15:25:19 +0100 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) |
2021-01-11 15:26:08 +0100 | seveg | (~gabriel@2a02-ab04-0249-8d00-dea6-32ff-fe17-0993.dynamic.v6.chello.sk) (Ping timeout: 260 seconds) |
2021-01-11 15:29:49 +0100 | mrchampion | (~mrchampio@38.18.109.23) (Read error: No route to host) |
2021-01-11 15:31:51 +0100 | ystael | (~ystael@209.6.50.55) |
2021-01-11 15:32:08 +0100 | hyiltiz | (~quassel@unaffiliated/hyiltiz) (Remote host closed the connection) |
2021-01-11 15:33:18 +0100 | mrchampion | (~mrchampio@38.18.109.23) |
2021-01-11 15:33:21 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) |
2021-01-11 15:33:44 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 260 seconds) |
2021-01-11 15:34:55 +0100 | ADG1089__ | (~aditya@122.163.165.143) |
2021-01-11 15:35:58 +0100 | esp32_prog | (yoann@gateway/vpn/protonvpn/esp32prog/x-46565127) (Ping timeout: 246 seconds) |
2021-01-11 15:36:24 +0100 | hyiltiz | (~quassel@unaffiliated/hyiltiz) |
2021-01-11 15:41:37 +0100 | mmmattyx | (uid17782@gateway/web/irccloud.com/x-wzxcapgnieyfthce) |
2021-01-11 15:45:02 +0100 | geekosaur | (ac3a8b5c@172.58.139.92) (Quit: Connection closed) |
2021-01-11 15:47:33 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2021-01-11 15:52:04 +0100 | Codaraxis__ | (~Codaraxis@141.98.255.144) (Ping timeout: 246 seconds) |
2021-01-11 15:58:26 +0100 | nullifidian | (~nullifidi@unaffiliated/nullifidian) (Quit: Leaving) |
2021-01-11 16:00:25 +0100 | thefybe | (~thefybe@249-147-161-N2.customer.vsm.sh) (Ping timeout: 240 seconds) |
2021-01-11 16:00:49 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
2021-01-11 16:00:53 +0100 | <pedrorubster[m]> | <__monty__ "pedrorubster: I think you should"> I'm not worried about the UI at all, I just need the logic to make the groupby work, that's all, I couldn't care less about the UI |
2021-01-11 16:01:44 +0100 | darjeeling_ | (~darjeelin@115.215.40.96) (Ping timeout: 260 seconds) |
2021-01-11 16:02:23 +0100 | gxt | (~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds) |
2021-01-11 16:02:23 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-11 16:02:52 +0100 | gxt | (~gxt@gateway/tor-sasl/gxt) |
2021-01-11 16:03:49 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2021-01-11 16:05:23 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) |
2021-01-11 16:06:58 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Ping timeout: 260 seconds) |
2021-01-11 16:07:29 +0100 | hrdl | (~ef24a0e6@unaffiliated/hrdl) |
2021-01-11 16:09:17 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) |
2021-01-11 16:09:50 +0100 | LKoen | (~LKoen@152.172.9.109.rev.sfr.net) (Remote host closed the connection) |
2021-01-11 16:10:45 +0100 | piezoid | (~piezoid@82-64-150-32.subs.proxad.net) |
2021-01-11 16:10:50 +0100 | acidjnk_new | (~acidjnk@p200300d0c704e7934412496f05d02b0d.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2021-01-11 16:11:34 +0100 | Jd007 | (~Jd007@d154-5-83-24.bchsia.telus.net) |
2021-01-11 16:16:49 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 256 seconds) |
2021-01-11 16:18:08 +0100 | darjeeling_ | (~darjeelin@115.215.40.96) |
2021-01-11 16:21:43 +0100 | boxscape | (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Ping timeout (120 seconds)) |
2021-01-11 16:22:36 +0100 | <__monty__> | pedrorubster[m]: I'd simply use the groupby statements to tell me which columns should be part of the keys then keep a map of values which represent the "state to every one of them" you mention. You'd take input, derive the key, fetch the value, do the operation on the value and the new value and store that at the key and also output it. |
2021-01-11 16:22:49 +0100 | <__monty__> | Is this enough to get you started? |
2021-01-11 16:22:54 +0100 | hyiltiz | (~quassel@unaffiliated/hyiltiz) (Quit: No Ping reply in 180 seconds.) |
2021-01-11 16:23:26 +0100 | fendor_ | (~fendor@77.119.128.187.wireless.dyn.drei.com) |
2021-01-11 16:25:46 +0100 | pythag76[m] | (pythag76ma@gateway/shell/matrix.org/x-uokvpcmzafuiszqm) |
2021-01-11 16:26:14 +0100 | fendor | (~fendor@91.141.0.240.wireless.dyn.drei.com) (Ping timeout: 260 seconds) |
2021-01-11 16:26:53 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fd9b:198b:bc6e:4127) (Remote host closed the connection) |
2021-01-11 16:27:19 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fd9b:198b:bc6e:4127) |
2021-01-11 16:31:33 +0100 | mputz | (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 256 seconds) |
2021-01-11 16:31:47 +0100 | LKoen | (~LKoen@152.172.9.109.rev.sfr.net) |
2021-01-11 16:32:02 +0100 | niekvandepas | (~niekvande@2001:985:bebc:1:fd9b:198b:bc6e:4127) (Ping timeout: 260 seconds) |
2021-01-11 16:33:24 +0100 | knupfer | (~Thunderbi@200116b82c62e3007dce87ecfcf2f682.dip.versatel-1u1.de) (Ping timeout: 258 seconds) |
2021-01-11 16:35:21 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) |
2021-01-11 16:37:52 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-11 16:40:06 +0100 | ArConan | (9de62a69@157.230.42.105) (Quit: Connection closed) |
2021-01-11 16:40:47 +0100 | thefybe | (~thefybe@249-147-161-N2.customer.vsm.sh) |
2021-01-11 16:42:49 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 264 seconds) |
2021-01-11 16:43:44 +0100 | miklcct | (quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7) (Remote host closed the connection) |
2021-01-11 16:44:53 +0100 | miklcct | (quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7) |
2021-01-11 16:45:22 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-01-11 16:47:22 +0100 | hyiltiz | (~quassel@unaffiliated/hyiltiz) |
2021-01-11 16:47:25 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-01-11 16:48:24 +0100 | niekvandepas | (~niekvande@89.205.132.36) |
2021-01-11 16:48:57 +0100 | <pedrorubster[m]> | <__monty__ "Is this enough to get you starte"> Sorry, I'm a bit newbie on haskell, I really didn't got what you said :( |
2021-01-11 16:49:03 +0100 | hyiltiz | (~quassel@unaffiliated/hyiltiz) (Excess Flood) |
2021-01-11 16:50:46 +0100 | hyiltiz | (~quassel@93.119.106.77) |
2021-01-11 16:50:46 +0100 | hyiltiz | (~quassel@93.119.106.77) (Changing host) |
2021-01-11 16:50:46 +0100 | hyiltiz | (~quassel@unaffiliated/hyiltiz) |
2021-01-11 16:51:37 +0100 | <__monty__> | Ok, do you know what a Map is? |
2021-01-11 16:53:28 +0100 | niekvand_ | (~niekvande@84.241.193.122) |
2021-01-11 16:54:43 +0100 | niekvandepas | (~niekvande@89.205.132.36) (Ping timeout: 246 seconds) |
2021-01-11 16:55:25 +0100 | darjeeling_ | (~darjeelin@115.215.40.96) (Ping timeout: 246 seconds) |
2021-01-11 16:56:28 +0100 | argento | (~argent0@168.227.96.26) (Ping timeout: 246 seconds) |
2021-01-11 16:57:14 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-lyrlgqqxxqbznztz) |
2021-01-11 16:59:22 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-11 17:00:04 +0100 | theduke | (thedukem1@gateway/shell/matrix.org/x-hegbybueqtkglolp) (Quit: Idle for 30+ days) |
2021-01-11 17:01:53 +0100 | <pedrorubster[m]> | Yes, I do |
2021-01-11 17:01:53 +0100 | carlomagno | (~cararell@148.87.23.11) (Remote host closed the connection) |
2021-01-11 17:01:54 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) (Remote host closed the connection) |
2021-01-11 17:02:03 +0100 | <pedrorubster[m]> | Not that newbie, the issue is mainly |
2021-01-11 17:02:20 +0100 | <pedrorubster[m]> | Imagine that I do average 1 groupby 2 groupby 3 |
2021-01-11 17:02:30 +0100 | <pedrorubster[m]> | I need to keep state on every pair on the 2nd and 3rd column |
2021-01-11 17:02:48 +0100 | <pedrorubster[m]> | But how do I do if it's 3? |
2021-01-11 17:02:59 +0100 | <texasmynsted> | anybody here use haskell on macOS and integrate it with a GUI? |
2021-01-11 17:03:01 +0100 | <pedrorubster[m]> | because if it was only just 2, it would be easier |
2021-01-11 17:03:07 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-11 17:03:14 +0100 | mastarija | (~mastarija@188.252.198.137) |
2021-01-11 17:03:23 +0100 | <pedrorubster[m]> | I just don't know how to do when the number of groupby's can change to whatever you want __monty__ |
2021-01-11 17:05:10 +0100 | <__monty__> | pedrorubster[m]: Ah, right. You can use lists as keys into the map. |
2021-01-11 17:05:28 +0100 | <pedrorubster[m]> | How so? Sorry, I'm really really confused |
2021-01-11 17:05:54 +0100 | hyiltiz | (~quassel@unaffiliated/hyiltiz) (Ping timeout: 260 seconds) |
2021-01-11 17:06:52 +0100 | thefybe | (~thefybe@249-147-161-N2.customer.vsm.sh) (Remote host closed the connection) |
2021-01-11 17:07:09 +0100 | thefybe | (~thefybe@249-147-161-N2.customer.vsm.sh) |
2021-01-11 17:07:50 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Ping timeout: 264 seconds) |
2021-01-11 17:07:53 +0100 | niekvand_ | (~niekvande@84.241.193.122) (Remote host closed the connection) |
2021-01-11 17:08:28 +0100 | niekvandepas | (~niekvande@84.241.193.122) |
2021-01-11 17:08:38 +0100 | hyiltiz | (~quassel@93.119.106.77) |
2021-01-11 17:08:38 +0100 | hyiltiz | (~quassel@93.119.106.77) (Changing host) |
2021-01-11 17:08:38 +0100 | hyiltiz | (~quassel@unaffiliated/hyiltiz) |
2021-01-11 17:10:33 +0100 | <__monty__> | So, the groupby's tell you which columns to collect in a list and then you can use that list as a key into the Map. |
2021-01-11 17:10:37 +0100 | ransom | (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) |
2021-01-11 17:11:00 +0100 | pavonia | (~user@unaffiliated/siracusa) (Quit: Bye!) |
2021-01-11 17:11:26 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) |
2021-01-11 17:11:55 +0100 | knupfer | (~Thunderbi@mue-88-130-61-056.dsl.tropolys.de) |
2021-01-11 17:12:07 +0100 | knupfer | (~Thunderbi@mue-88-130-61-056.dsl.tropolys.de) (Client Quit) |
2021-01-11 17:12:10 +0100 | knupfer1 | (~Thunderbi@200116b82c62e30071e812f479534363.dip.versatel-1u1.de) |
2021-01-11 17:12:25 +0100 | niekvandepas | (~niekvande@84.241.193.122) (Ping timeout: 240 seconds) |
2021-01-11 17:12:31 +0100 | <pedrorubster[m]> | yes, but how do you keep state for every combination to each value that each collumn can take? |
2021-01-11 17:13:03 +0100 | hyiltiz | (~quassel@unaffiliated/hyiltiz) (Client Quit) |
2021-01-11 17:13:53 +0100 | darjeeling_ | (~darjeelin@115.215.40.96) |
2021-01-11 17:13:54 +0100 | <__monty__> | You mean because average needs past values? |
2021-01-11 17:14:18 +0100 | niekvandepas | (~niekvande@84.241.193.122) |
2021-01-11 17:14:33 +0100 | knupfer1 | knupfer |
2021-01-11 17:16:27 +0100 | <pedrorubster[m]> | No, I mean |
2021-01-11 17:16:32 +0100 | shailangsa | (~shailangs@host86-186-142-117.range86-186.btcentralplus.com) (Ping timeout: 256 seconds) |
2021-01-11 17:16:38 +0100 | <pedrorubster[m]> | for example |
2021-01-11 17:16:48 +0100 | pedrorubster[m] | sent a long message: < https://matrix.org/_matrix/media/r0/download/matrix.org/tVKfHWkowCYQvGWKDjSEHegC/message.txt > |
2021-01-11 17:16:50 +0100 | <pedrorubster[m]> | On this case |
2021-01-11 17:17:05 +0100 | <pedrorubster[m]> | you need to save state to every combination that the 2nd column and the 3rd can take |
2021-01-11 17:17:39 +0100 | <pedrorubster[m]> | it's 1,4 for the first 3, then it changes to 2,4 and then 2,2 back to 2,4 and then 2,2 and you need to save state to EVERY combination that can occur |
2021-01-11 17:18:20 +0100 | <__monty__> | 0 4 1 4 -> key is [1, 4] -> insertWith [1,4] avg 4 stateMap |
2021-01-11 17:18:21 +0100 | pedrorubster[m] | sent a long message: < https://matrix.org/_matrix/media/r0/download/matrix.org/EBelxKWsEYGkNuhBkxtejTBl/message.txt > |
2021-01-11 17:19:15 +0100 | <__monty__> | Does that next run operate on the data stored so far? |
2021-01-11 17:20:02 +0100 | <pedrorubster[m]> | No |
2021-01-11 17:20:03 +0100 | hexo | (~hexo@gateway/tor-sasl/hexo) (Ping timeout: 240 seconds) |
2021-01-11 17:20:08 +0100 | carlomagno | (~cararell@148.87.23.13) |
2021-01-11 17:20:13 +0100 | <pedrorubster[m]> | You start the program, you put the groupby line first |
2021-01-11 17:20:16 +0100 | <pedrorubster[m]> | then you can't change it |
2021-01-11 17:20:50 +0100 | hexo | (~hexo@gateway/tor-sasl/hexo) |
2021-01-11 17:20:52 +0100 | <__monty__> | Then I don't really see the problem. You read the groupby's and those fix which values you add to the list you'll use as a key each time. |
2021-01-11 17:21:30 +0100 | <pedrorubster[m]> | How do you scale from 2 groupby to 3 for example |
2021-01-11 17:21:46 +0100 | <ij> | is it possible to read from an mutable vector without effects? |
2021-01-11 17:22:09 +0100 | <xerox_> | what does that mean |
2021-01-11 17:22:12 +0100 | <pedrorubster[m]> | __monty__: Can I DM you? I'm willing to pay for your help, I'm stuck on this for over 10 hours |
2021-01-11 17:23:23 +0100 | Guest_81 | (782028db@120.32.40.219) |
2021-01-11 17:23:45 +0100 | <Guest_81> | Hey, I'd like to ask a question about "cabal install --only-dependencies", thank you so much! |
2021-01-11 17:24:03 +0100 | <merijn> | Guest_81: "it's mostly obsolete" ;) |
2021-01-11 17:24:09 +0100 | <Guest_81> | I ran this one in terminal, then show "cabal: Invalid package ID: ." |
2021-01-11 17:24:19 +0100 | nhs | (~nhs@c-67-180-177-103.hsd1.ca.comcast.net) (Read error: Connection reset by peer) |
2021-01-11 17:24:24 +0100 | <Guest_81> | :') oh |
2021-01-11 17:24:28 +0100 | <merijn> | Guest_81: Well, does you have a cabal file in that directory? |
2021-01-11 17:24:39 +0100 | <Guest_81> | our teacher let us do like that |
2021-01-11 17:24:40 +0100 | <ij> | xerox_, well, I know the only place where I would mutate the vector, so in-between the mutations I would like to be able to read it whole (just not to be required to type-check effects) in-between mutations |
2021-01-11 17:24:52 +0100 | <ij> | I'm not sure I explained it very well |
2021-01-11 17:24:53 +0100 | <Guest_81> | oh I'm not sure, merijn how could I check? |
2021-01-11 17:25:16 +0100 | <merijn> | Well, is there a file with the extension .cabal? |
2021-01-11 17:25:22 +0100 | <xerox_> | ij: maybe you can look at the api available for the various mutable vectors haskell has |
2021-01-11 17:25:30 +0100 | <Guest_81> | I use cabal-install version 3.2.0.0 and macOS 11.1 |
2021-01-11 17:25:38 +0100 | <ij> | xerox_, yeah, I'm looking |
2021-01-11 17:25:47 +0100 | <Guest_81> | merijn oh! |
2021-01-11 17:25:56 +0100 | <Guest_81> | where can I find it '=( |
2021-01-11 17:26:18 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-11 17:26:33 +0100 | ransom_ | (~c4264035@8.48.134.54) |
2021-01-11 17:26:35 +0100 | <merijn> | Guest_81: "cabal install --dependencies-only ." assumes there's a cabal file/package in the current directory, if you don't have one, then it's not gonna work, no |
2021-01-11 17:26:45 +0100 | <xerox_> | ij: maybe your point is you think there could be a pure way to read that wouldn't need the type to be in the effect monad like IO or ST, but that woudln't work very well because then the read wouldn't be sequenced, so it could happen before or after other writes which kind of makes it impossible to use? |
2021-01-11 17:27:08 +0100 | <Guest_81> | oh!!!!!!!!! |
2021-01-11 17:27:27 +0100 | <Guest_81> | so I need to " cd ...."? |
2021-01-11 17:27:28 +0100 | <ij> | xerox_, yeah, but this could work, if you had a lock on it that said "pure computation is using it, so no modifications possible until that's happened" |
2021-01-11 17:27:35 +0100 | <Guest_81> | oh! |
2021-01-11 17:27:38 +0100 | <Guest_81> | got it!!! |
2021-01-11 17:27:54 +0100 | <ij> | xerox_, does that make sense? I'm just wondering whether there's something that works that way\ |
2021-01-11 17:28:03 +0100 | <Guest_81> | Thank you so much!!!! merijn |
2021-01-11 17:28:17 +0100 | <xerox_> | ij: that is not needed because inside your io/st action you can go off in the pure world as long as you want and then come back for the next important-to-happen-in-order thing |
2021-01-11 17:28:21 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) |
2021-01-11 17:29:02 +0100 | <ij> | xerox_, but I can just pass it around in the pure world, I can't read it |
2021-01-11 17:29:03 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Ping timeout: 240 seconds) |
2021-01-11 17:29:08 +0100 | ransom | (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Ping timeout: 272 seconds) |
2021-01-11 17:29:36 +0100 | <ij> | xerox_, is the only option to model effects inside my logic that reads from vector? |
2021-01-11 17:29:52 +0100 | Guest_81 | (782028db@120.32.40.219) (Quit: Connection closed) |
2021-01-11 17:29:52 +0100 | turion | (~turion@2a02:810d:8abf:c4a8:d43a:b21:28bf:441a) |
2021-01-11 17:30:04 +0100 | <xerox_> | ij: I mean you can get an immutable array off of your (say) runST $ ... and then do stuff, and then do *another* runST $ ... with the new contents, nobody is stopping you |
2021-01-11 17:30:14 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-01-11 17:30:21 +0100 | <ij> | I want to have only one or two copies in memory |
2021-01-11 17:30:28 +0100 | <ij> | including abandoned ones |
2021-01-11 17:30:32 +0100 | <xerox_> | that achieves that |
2021-01-11 17:31:01 +0100 | <ij> | ah, alright. I don't know much about ST, I just have some random hunch from reading IRC |
2021-01-11 17:31:11 +0100 | niekvandepas | (~niekvande@84.241.193.122) (Remote host closed the connection) |
2021-01-11 17:31:43 +0100 | niekvandepas | (~niekvande@84.241.193.122) |
2021-01-11 17:31:55 +0100 | <xerox_> | 'thaw' copies the immutable one into a new mutable one |
2021-01-11 17:32:14 +0100 | <xerox_> | so you can resume your mutating mutating |
2021-01-11 17:33:17 +0100 | <ski> | ij : note that the elements aren't stored in the `IOArray'/`STArray'/`MVector'/whatever |
2021-01-11 17:33:17 +0100 | <ij> | I feel like ST should be able to solve my problems, but I can't piece it together in my head |
2021-01-11 17:33:38 +0100 | <merijn> | ij: What's your problem? |
2021-01-11 17:34:05 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:255c:18d1:c1a9:13be:6f9e) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-11 17:34:09 +0100 | solarliner | (~solarline@243.81.10.109.rev.sfr.net) |
2021-01-11 17:34:25 +0100 | niekvandepas | (~niekvande@84.241.193.122) (Read error: Connection reset by peer) |
2021-01-11 17:34:59 +0100 | <ij> | merijn, I realized the maze data I'm backtracking with on can be shared, because important data is in other structures |
2021-01-11 17:35:18 +0100 | <ij> | ski, in the unboxed ones they are, aren't they? |
2021-01-11 17:35:24 +0100 | <ski> | no |
2021-01-11 17:35:48 +0100 | <ski> | they're stored in the state passed around under the covers in `IO'/`ST' |
2021-01-11 17:36:11 +0100 | hyiltiz | (~quassel@93.119.106.77) |
2021-01-11 17:36:11 +0100 | hyiltiz | (~quassel@93.119.106.77) (Changing host) |
2021-01-11 17:36:11 +0100 | hyiltiz | (~quassel@unaffiliated/hyiltiz) |
2021-01-11 17:36:46 +0100 | <ski> | think of an `IORef'/`IOArray'/&c. as an index into an array (the memory array), or a key into a map, that, given the array/map, you'll be able to access the corresponding elements/values |
2021-01-11 17:37:52 +0100 | niekvandepas | (~niekvande@84.241.193.122) |
2021-01-11 17:38:02 +0100 | <ski> | (this is also how `Eq (IORef a)' can work without `Eq a'. it only compares the "index") |
2021-01-11 17:38:15 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Remote host closed the connection) |
2021-01-11 17:38:34 +0100 | <ij> | so basically a pointer to the actual data in somewhere in IO/ST context, if I understand what you're saying |
2021-01-11 17:38:38 +0100 | son0p | (~son0p@181.136.122.143) (Ping timeout: 256 seconds) |
2021-01-11 17:38:44 +0100 | <ski> | if you only have an `IOArray', then you don't have the corresponding elements |
2021-01-11 17:39:22 +0100 | <ski> | you must use `IO' to get access to the memory in which you can look up the elements. conceptually the elements are not in the `IOArray' itself |
2021-01-11 17:39:28 +0100 | <ij> | because it is boxed? (stores pointers) |
2021-01-11 17:39:31 +0100 | <ski> | no |
2021-01-11 17:39:44 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2021-01-11 17:40:23 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) |
2021-01-11 17:43:12 +0100 | <ski> | consider `Mem m' implemented as `State [m]', and `MemRef m' as `Int', and then give operations `newMemRef :: m -> Mem m (MemRef m)',`readMem :: MemRef m -> Mem m m',`writeMem :: MemRef m -> m -> Mem m ()' |
2021-01-11 17:44:14 +0100 | <ij> | wait, IOArray is just a pointer to actual data, so you can't access contents without reading more memory – is that it? |
2021-01-11 17:44:15 +0100 | <ski> | if you're given a `MemRef String', you actually only have an `Int' inside, not a `String'. you need to use `Mem' to access the `Strig' (using `readMem') |
2021-01-11 17:45:04 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Remote host closed the connection) |
2021-01-11 17:45:09 +0100 | <ski> | do you follow how one could implement these operations ? |
2021-01-11 17:45:51 +0100 | <ij> | yes, those are basic memory operations, but typed |
2021-01-11 17:46:10 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-01-11 17:46:38 +0100 | <ski> | e.g. `newMemRef m = MkMem (state (\ms -> (MkMemRef (length ms),ms ++ [m])))' |
2021-01-11 17:46:57 +0100 | <ij> | yes, that is clear |
2021-01-11 17:47:19 +0100 | <ski> | and it's clear that a `MemRef m' doesn't any `m', right ? |
2021-01-11 17:47:26 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-11 17:47:30 +0100 | <ij> | yes, it's a pointer :) |
2021-01-11 17:47:39 +0100 | <ski> | it's an index, into the list of `m's |
2021-01-11 17:47:46 +0100 | <ij> | pointers are indexes, aren't they |
2021-01-11 17:48:15 +0100 | <ski> | a pointer, if you like, with the understanding that it just tells you where to look, elsewhere, to find the location in which some particular `m' is stored |
2021-01-11 17:48:25 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2021-01-11 17:48:55 +0100 | <ij> | I think it's safe to call it a pointer – it is not required to be a pointer to actual computer's memory |
2021-01-11 17:49:01 +0100 | <ij> | to my head anyway |
2021-01-11 17:49:11 +0100 | <ski> | what i'm arguing here is that it's useful to view references to mutable cells, and to mutable arrays/vectors, with `IO'/`ST'/`STM', in a similar way |
2021-01-11 17:49:20 +0100 | geekosaur | (42d52137@66.213.33.55) |
2021-01-11 17:50:30 +0100 | <mniip> | if you yoneda a MemRef it's as good as containing a mutable m inside |
2021-01-11 17:50:39 +0100 | twopoint718 | (~cjw@fsf/member/twopoint718) |
2021-01-11 17:50:43 +0100 | <ski> | so, you can't have `IORef a -> a' for a similar reason that you can't have `MemRef m -> m' |
2021-01-11 17:51:44 +0100 | <ski> | if it couldn't change value, then it would be more arguable that one could get an operation like that |
2021-01-11 17:51:47 +0100 | <ski> | (see e.g. |
2021-01-11 17:51:49 +0100 | <mniip> | I guess the notion of "contain" is different in `Kleisli IO` |
2021-01-11 17:51:52 +0100 | <ski> | @hackage ivar-simple |
2021-01-11 17:51:53 +0100 | <lambdabot> | https://hackage.haskell.org/package/ivar-simple |
2021-01-11 17:51:54 +0100 | <ski> | ) |
2021-01-11 17:52:40 +0100 | <ij> | ski, but a vector is a pointer as well, isn't it? |
2021-01-11 17:52:49 +0100 | <ij> | v :: Vector a |
2021-01-11 17:53:02 +0100 | <merijn> | define "is" and "pointer" |
2021-01-11 17:53:03 +0100 | <ski> | ij : so, if you were to allow reads from the mutable array/vector, then those could happen later, because of a lazy implementation, and then those reads wouldn't be sequenced (as mentioned before) |
2021-01-11 17:53:10 +0100 | <monochrom> | Right, Haskell's -> is very different from SML's ->. "IORef a -> a" is perfectly normal in SML. |
2021-01-11 17:53:36 +0100 | devalot | (~ident@mail.pmade.com) |
2021-01-11 17:53:41 +0100 | <ski> | ij : so .. i think your best bet are `freeze' and `thaw' operations |
2021-01-11 17:54:01 +0100 | <ij> | ski, yeah, that probably means I'll have to have effectful reading |
2021-01-11 17:54:17 +0100 | <merijn> | ij: Why is that a problem, though? |
2021-01-11 17:54:32 +0100 | <ski> | (there are unsafe variants of those, that doesn't copy it, but to use those, one must be sure that one has no lingering reference to the old one ..) |
2021-01-11 17:54:58 +0100 | <ski> | (i guess maybe one could also imagine something like a diff-array ?) |
2021-01-11 17:55:01 +0100 | <ij> | merijn, I was just wondering whether that is somehow possible |
2021-01-11 17:55:18 +0100 | <ski> | perhaps ij wanted to avoid sequencing a batch of reads |
2021-01-11 17:55:28 +0100 | <ski> | (sequencing them wrt each other, that is) |
2021-01-11 17:56:04 +0100 | ransom | (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) |
2021-01-11 17:56:33 +0100 | ij | thinks... |
2021-01-11 17:56:35 +0100 | <ij> | yes, that is exactly it |
2021-01-11 17:56:51 +0100 | <monochrom> | But SML's -> is so messed up that "readIORef :: IORef a -> a" suggests that IORef Int contains the Int value, but "getChar :: () -> Char" does not suggest that () contains the Char value. |
2021-01-11 17:57:18 +0100 | ski | . o O ( SML (and OCaml) even allows matching on `ref'-patterns .. ) |
2021-01-11 17:57:20 +0100 | <monochrom> | (The same can be said of Haskell's IO. But at least the problem is not with -> now.) |
2021-01-11 17:57:54 +0100 | <monochrom> | Oh, that reminds me of Rust. Took me a while. |
2021-01-11 17:57:54 +0100 | ransom_ | (~c4264035@8.48.134.54) (Ping timeout: 256 seconds) |
2021-01-11 17:57:59 +0100 | dcbdnl | (~dcbdnl@c-73-76-129-120.hsd1.tx.comcast.net) |
2021-01-11 17:59:06 +0100 | hyiltiz | (~quassel@unaffiliated/hyiltiz) (Quit: No Ping reply in 180 seconds.) |
2021-01-11 17:59:13 +0100 | <ski> | (in the MLs, `readIORef :: IORef a -> a' would cause a type system hole (being able to implement `unsafeCoerce :: a -> b'), were it not for the "value restriction" (which is reminiscent of the DMR ..) .. (with `unsafePerformIO :: IO a -> a' for Haskell, one could implement `unsafeCoerce' in the same way)) |
2021-01-11 17:59:27 +0100 | <ski> | monochrom : in which way ? |
2021-01-11 17:59:29 +0100 | shailangsa | (~shailangs@host86-186-177-183.range86-186.btcentralplus.com) |
2021-01-11 17:59:30 +0100 | <ij> | ski, but freeze/thaw make copies |
2021-01-11 17:59:36 +0100 | <ij> | did you mean the unsafe version? |
2021-01-11 17:59:38 +0100 | <ij> | +s |
2021-01-11 17:59:38 +0100 | <monochrom> | It also has ref patterns. |
2021-01-11 17:59:51 +0100 | <ski> | ij : if you can ensure you actually use them in safe ways |
2021-01-11 18:00:15 +0100 | <ski> | monochrom : ah |
2021-01-11 18:00:22 +0100 | hyiltiz | (~quassel@unaffiliated/hyiltiz) |
2021-01-11 18:00:26 +0100 | xelxebar_ | (~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection) |
2021-01-11 18:00:36 +0100 | dcbdnl | (~dcbdnl@c-73-76-129-120.hsd1.tx.comcast.net) (Client Quit) |
2021-01-11 18:00:49 +0100 | xelxebar | (~xelxebar@gateway/tor-sasl/xelxebar) |
2021-01-11 18:01:16 +0100 | <ski> | monochrom : hm. does it treat variables in a pattern as (possibly) preexisting, assigning to them ? or does it always introduce new variables with patterns ? |
2021-01-11 18:02:03 +0100 | <ski> | @hoogle runSTUArray |
2021-01-11 18:02:03 +0100 | <lambdabot> | Data.Array.ST runSTUArray :: (forall s . ST s (STUArray s i e)) -> UArray i e |
2021-01-11 18:02:03 +0100 | <lambdabot> | Data.Array.ST.Safe runSTUArray :: (forall s . ST s (STUArray s i e)) -> UArray i e |
2021-01-11 18:02:22 +0100 | hekkaidekapus | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection) |
2021-01-11 18:02:26 +0100 | <ski> | (that one does include a safe use of `unsafeFreeze') |
2021-01-11 18:02:35 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-01-11 18:02:45 +0100 | hekkaidekapus | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2021-01-11 18:03:11 +0100 | <monochrom> | It is real and proper patterns like in SML and Haskell. It introduces new variables. |
2021-01-11 18:03:20 +0100 | <merijn> | ij: Why is the copy a problem, though? |
2021-01-11 18:03:26 +0100 | <ski> | ok |
2021-01-11 18:03:38 +0100 | <ij> | merijn, too many copies, they eat all RAM |
2021-01-11 18:03:43 +0100 | <ij> | and I have lots |
2021-01-11 18:03:47 +0100 | <merijn> | ij: The old copies get GCed, though? |
2021-01-11 18:04:09 +0100 | <ij> | merijn, could it be that they're not GCed fast enough? |
2021-01-11 18:04:33 +0100 | <monochrom> | GC is at least as fast as consumption. |
2021-01-11 18:04:57 +0100 | <monochrom> | But you can still be appalled at the time spent copying. |
2021-01-11 18:05:30 +0100 | <ij> | it's a one-time computation, CPU can churn as much as it pleases until it's done |
2021-01-11 18:06:19 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-01-11 18:06:22 +0100 | <ij> | I guess I have to profile it... (gotta figure out the right RTS option) |
2021-01-11 18:07:35 +0100 | <monochrom> | You can also be concerned if your physical RAM is less than 4 times the array size. |
2021-01-11 18:07:43 +0100 | <monochrom> | Yes, 4, not even 2. |
2021-01-11 18:08:20 +0100 | <monochrom> | If the computer copies, you need 2 times, at least for an intermittent moment. That much you know. |
2021-01-11 18:08:48 +0100 | <ephemient> | if you can't mutate objects, you never have data in older generations pointing to data in newer generations, which means there's less to scan to determine liveliness. granted, GHC RTS still has to use card tables to track some mutations, and GC hasn't gotten anywhere close to the same level of engineering work that (for example) Java's has... |
2021-01-11 18:08:55 +0100 | <monochrom> | Our GC is a copying GC, like double buffering in graphics. That's another 2 times. Congrats! |
2021-01-11 18:08:55 +0100 | <ij> | merijn, you bring up a good point and I'm now concerned |
2021-01-11 18:09:05 +0100 | <ij> | monochrom, :) gotcha |
2021-01-11 18:11:03 +0100 | <ephemient> | I believe there is an optional non-moving GC as of 8.10? I haven't used it though |
2021-01-11 18:11:18 +0100 | <ij> | right, it is the giant vectors that are hogging up memory |
2021-01-11 18:11:41 +0100 | <ij> | each next backtracking level deeper the previous is pinned as used, but they can be shared in this case |
2021-01-11 18:12:00 +0100 | <ij> | 85% alloc for Matrix.setElem (which is unboxed Vector under the hood) |
2021-01-11 18:12:59 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) |
2021-01-11 18:13:28 +0100 | xff0x | (~xff0x@port-92-193-253-100.dynamic.as20676.net) (Quit: xff0x) |
2021-01-11 18:13:57 +0100 | xff0x | (~xff0x@2001:1a81:53ed:d500:fd7a:b0e1:64e1:be91) |
2021-01-11 18:14:01 +0100 | <ephemient> | https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/runtime_control.html#rts-flag---no… (with quite a few limitations) |
2021-01-11 18:16:11 +0100 | <merijn> | tbh, rather than mutating the maze it's probably much simpler and efficient to have an immutable maze and have a Set/list/whatever to track which positions you finished |
2021-01-11 18:16:46 +0100 | <merijn> | Then your memory usage is linear in the part of the maze you've explored |
2021-01-11 18:17:19 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 246 seconds) |
2021-01-11 18:17:33 +0100 | <ij> | merijn, I do have tracking of solved pieces and other additional info, but changes are still baked into the maze |
2021-01-11 18:17:52 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2021-01-11 18:18:15 +0100 | <ephemient> | do they have to be? the representation could be "immutable base maze + diffs" |
2021-01-11 18:18:31 +0100 | <ij> | yeah, I'm now thinking that I could totally do that |
2021-01-11 18:18:50 +0100 | christo | (~chris@81.96.113.213) |
2021-01-11 18:18:58 +0100 | <ij> | which is what I got suggested yesterday and I didn't listen |
2021-01-11 18:20:18 +0100 | <ij> | I continue being wrong on a daily basis |
2021-01-11 18:23:13 +0100 | twopoint718 | (~cjw@fsf/member/twopoint718) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-11 18:24:42 +0100 | urodna_ | (~urodna@unaffiliated/urodna) |
2021-01-11 18:28:16 +0100 | urodna | (~urodna@unaffiliated/urodna) (Ping timeout: 256 seconds) |
2021-01-11 18:28:23 +0100 | Franciman | (~francesco@host-82-48-174-127.retail.telecomitalia.it) (Quit: Leaving) |
2021-01-11 18:28:37 +0100 | Aquazi | (uid312403@gateway/web/irccloud.com/x-uolkbeaqxmvkvibt) |
2021-01-11 18:29:13 +0100 | urodna__ | (~urodna@pool-108-53-252-14.nwrknj.fios.verizon.net) |
2021-01-11 18:29:49 +0100 | niekvandepas | (~niekvande@84.241.193.122) (Remote host closed the connection) |
2021-01-11 18:30:22 +0100 | niekvandepas | (~niekvande@84.241.193.122) |
2021-01-11 18:31:04 +0100 | mmmattyx | (uid17782@gateway/web/irccloud.com/x-wzxcapgnieyfthce) (Quit: Connection closed for inactivity) |
2021-01-11 18:31:35 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-01-11 18:32:08 +0100 | christo | (~chris@81.96.113.213) |
2021-01-11 18:32:27 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-01-11 18:32:43 +0100 | christo | (~chris@81.96.113.213) |
2021-01-11 18:33:00 +0100 | <nf> | can anyone explain this comment in the Distributive doc? "Due to the lack of non-trivial comonoids in Haskell, we can restrict ourselves to requiring a Functor rather than some Coapplicative class." |
2021-01-11 18:33:02 +0100 | urodna_ | (~urodna@unaffiliated/urodna) (Ping timeout: 256 seconds) |
2021-01-11 18:33:27 +0100 | <nf> | i guess this refers to the constraint in distribute's type signature, and i understand why there are no non-trivial comonoids, but i don't know what comonoids have to do with anything |
2021-01-11 18:34:01 +0100 | niekvandepas | (~niekvande@84.241.193.122) (Read error: Connection reset by peer) |
2021-01-11 18:34:02 +0100 | urodna | (~urodna@unaffiliated/urodna) |
2021-01-11 18:34:09 +0100 | <nf> | (ping edwardk) |
2021-01-11 18:34:15 +0100 | twopoint718 | (~cjw@fsf/member/twopoint718) |
2021-01-11 18:35:24 +0100 | mastarija | (~mastarija@188.252.198.137) (Remote host closed the connection) |
2021-01-11 18:35:47 +0100 | mastarija | (~mastarija@188.252.198.137) |
2021-01-11 18:36:12 +0100 | dfeuer | (~dfeuer@pool-173-79-253-62.washdc.fios.verizon.net) |
2021-01-11 18:36:26 +0100 | urodna__ | (~urodna@pool-108-53-252-14.nwrknj.fios.verizon.net) (Ping timeout: 256 seconds) |
2021-01-11 18:37:25 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-01-11 18:37:26 +0100 | juuandyy | (~juuandyy@90.166.144.65) |
2021-01-11 18:39:13 +0100 | geekosaur | (42d52137@66.213.33.55) (Ping timeout: 248 seconds) |
2021-01-11 18:39:35 +0100 | juuandyy | (~juuandyy@90.166.144.65) (Read error: Connection reset by peer) |
2021-01-11 18:39:50 +0100 | juuandyy | (~juuandyy@90.166.144.65) |
2021-01-11 18:42:05 +0100 | conal | (~conal@64.71.133.70) |
2021-01-11 18:42:15 +0100 | niekvandepas | (~niekvande@dhcp-077-249-088-250.chello.nl) |
2021-01-11 18:43:14 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 272 seconds) |
2021-01-11 18:44:39 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) |
2021-01-11 18:45:37 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) |
2021-01-11 18:46:28 +0100 | niekvandepas | (~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 256 seconds) |
2021-01-11 18:51:01 +0100 | conal | (~conal@64.71.133.70) (Ping timeout: 256 seconds) |
2021-01-11 18:52:37 +0100 | dyeplexer | (~lol@unaffiliated/terpin) (Read error: Connection reset by peer) |
2021-01-11 18:52:48 +0100 | conal | (~conal@198.8.81.231) |
2021-01-11 18:53:18 +0100 | dyeplexer | (~lol@unaffiliated/terpin) |
2021-01-11 18:53:36 +0100 | fendor_ | fendor |
2021-01-11 18:54:02 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-11 18:54:59 +0100 | zaquest | (~notzaques@5.128.210.178) (Ping timeout: 260 seconds) |
2021-01-11 18:55:04 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Remote host closed the connection) |
2021-01-11 18:55:07 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 246 seconds) |
2021-01-11 18:57:20 +0100 | hyiltiz | (~quassel@unaffiliated/hyiltiz) (Quit: No Ping reply in 180 seconds.) |
2021-01-11 18:57:34 +0100 | hyiltiz | (~quassel@93.119.106.77) |
2021-01-11 18:57:34 +0100 | hyiltiz | (~quassel@93.119.106.77) (Changing host) |
2021-01-11 18:57:34 +0100 | hyiltiz | (~quassel@unaffiliated/hyiltiz) |
2021-01-11 18:58:21 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-11 18:59:23 +0100 | <dminuoso> | % type family Asg x where Asg x = x |
2021-01-11 18:59:23 +0100 | <yahb> | dminuoso: |
2021-01-11 18:59:26 +0100 | <dminuoso> | % data D f = D (f Int) |
2021-01-11 18:59:27 +0100 | <yahb> | dminuoso: |
2021-01-11 18:59:30 +0100 | <dminuoso> | % instance Eq (D Asg) |
2021-01-11 18:59:30 +0100 | <yahb> | dminuoso: ; <interactive>:106:10: error:; * The type family `Asg' should have 1 argument, but has been given none; * In the instance declaration for `Eq (D Asg)' |
2021-01-11 18:59:45 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-01-11 18:59:48 +0100 | <dminuoso> | Is there an alternate way to do this? |
2021-01-11 19:00:08 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-11 19:00:18 +0100 | geekosaur | (42d52137@66.213.33.55) |
2021-01-11 19:02:34 +0100 | conal | (~conal@198.8.81.231) (Quit: Computer has gone to sleep.) |
2021-01-11 19:04:18 +0100 | <dminuoso> | % data C; type family F mode y; type instance F C y = y |
2021-01-11 19:04:19 +0100 | <yahb> | dminuoso: |
2021-01-11 19:04:23 +0100 | <dminuoso> | % data D m = D (F m Int) |
2021-01-11 19:04:23 +0100 | <yahb> | dminuoso: |
2021-01-11 19:04:25 +0100 | <dminuoso> | % instance Eq (D C) |
2021-01-11 19:04:25 +0100 | <yahb> | dminuoso: ; <interactive>:123:10: warning: [-Wmissing-methods]; * No explicit implementation for; either `==' or `/='; * In the instance declaration for `Eq (D C)' |
2021-01-11 19:04:31 +0100 | <dminuoso> | Mmm. This works I guess |
2021-01-11 19:05:01 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds) |
2021-01-11 19:07:30 +0100 | twopoint718 | (~cjw@fsf/member/twopoint718) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-11 19:08:35 +0100 | ome | (uid36537@gateway/web/irccloud.com/x-vxnalybdhvqhuavb) (Quit: Connection closed for inactivity) |
2021-01-11 19:08:52 +0100 | conal | (~conal@198.8.81.231) |
2021-01-11 19:09:11 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Remote host closed the connection) |
2021-01-11 19:09:29 +0100 | christo | (~chris@81.96.113.213) |
2021-01-11 19:09:57 +0100 | Guest71 | (~textual@64.71.174.175) |
2021-01-11 19:10:33 +0100 | dyeplexer | (~lol@unaffiliated/terpin) (Remote host closed the connection) |
2021-01-11 19:10:52 +0100 | Guest71 | (~textual@64.71.174.175) () |
2021-01-11 19:11:14 +0100 | twopoint718 | (~cjw@fsf/member/twopoint718) |
2021-01-11 19:11:55 +0100 | _________ | (~textual@64.71.174.175) |
2021-01-11 19:12:18 +0100 | _________ | Guest65500 |
2021-01-11 19:12:47 +0100 | <Guest65500> | t5 |
2021-01-11 19:14:33 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-11 19:15:30 +0100 | sujeet | (sujeet@unaffiliated/freeboson) (Quit: bye) |
2021-01-11 19:16:22 +0100 | Ariakenom | (~Ariakenom@2001:9b1:efb:fc00:55e4:e64e:d0d2:62ce) |
2021-01-11 19:17:27 +0100 | sujeet | (sujeet@unaffiliated/freeboson) |
2021-01-11 19:18:44 +0100 | Guest65500 | _0x4b42 |
2021-01-11 19:20:03 +0100 | _0x4b42 | (~textual@64.71.174.175) (Quit: Textual IRC Client: www.textualapp.com) |
2021-01-11 19:21:00 +0100 | xsperry | (~as@unaffiliated/xsperry) () |
2021-01-11 19:28:04 +0100 | argento | (~argent0@168.227.97.34) |
2021-01-11 19:29:24 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
2021-01-11 19:39:45 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-01-11 19:39:54 +0100 | hyiltiz | (~quassel@unaffiliated/hyiltiz) (Quit: hyiltiz) |
2021-01-11 19:40:05 +0100 | rajivr | (uid269651@gateway/web/irccloud.com/x-xvvnrltyuwuuhove) (Quit: Connection closed for inactivity) |
2021-01-11 19:40:37 +0100 | howdoi | (uid224@gateway/web/irccloud.com/x-yjigqeaqwzhgddjd) |
2021-01-11 19:40:43 +0100 | Deide | (~Deide@217.155.19.23) |
2021-01-11 19:41:20 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-01-11 19:41:43 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-11 19:41:52 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-11 19:42:01 +0100 | hyiltiz | (~quassel@93.119.106.77) |
2021-01-11 19:42:01 +0100 | hyiltiz | (~quassel@93.119.106.77) (Changing host) |
2021-01-11 19:42:01 +0100 | hyiltiz | (~quassel@unaffiliated/hyiltiz) |
2021-01-11 19:44:11 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
2021-01-11 19:44:37 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2021-01-11 19:44:42 +0100 | juuandyy | (~juuandyy@90.166.144.65) (Quit: Konversation terminated!) |
2021-01-11 19:46:00 +0100 | jamm | (~jamm@unaffiliated/jamm) |
2021-01-11 19:46:13 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds) |
2021-01-11 19:46:36 +0100 | thefybe | (~thefybe@249-147-161-N2.customer.vsm.sh) (Ping timeout: 240 seconds) |
2021-01-11 19:51:26 +0100 | eacameron | (uid256985@gateway/web/irccloud.com/x-ccigqlpvwahmrvhs) |
2021-01-11 19:51:38 +0100 | jamm | (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds) |
2021-01-11 19:55:31 +0100 | bennofs | (~quassel@2a01:4f8:c17:5579::1) (Remote host closed the connection) |
2021-01-11 19:55:47 +0100 | bennofs | (~quassel@2a01:4f8:c17:5579::1) |
2021-01-11 20:00:30 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2021-01-11 20:00:32 +0100 | Lord_of_Life_ | (~Lord@unaffiliated/lord-of-life/x-0885362) |
2021-01-11 20:00:52 +0100 | mputz | (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
2021-01-11 20:02:37 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 264 seconds) |
2021-01-11 20:03:22 +0100 | Lord_of_Life_ | Lord_of_Life |
2021-01-11 20:03:33 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:e268:f1af:eeaa:71ac) (Ping timeout: 272 seconds) |
2021-01-11 20:03:39 +0100 | berberman_ | (~berberman@unaffiliated/berberman) |
2021-01-11 20:04:08 +0100 | mputz | (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Client Quit) |
2021-01-11 20:04:25 +0100 | Alleria | (~textual@mskresolve-a.mskcc.org) |
2021-01-11 20:04:49 +0100 | Alleria | Guest94505 |
2021-01-11 20:04:57 +0100 | berberman | (~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds) |
2021-01-11 20:05:13 +0100 | twopoint718 | (~cjw@fsf/member/twopoint718) (Quit: Textual IRC Client: www.textualapp.com) |
2021-01-11 20:05:24 +0100 | _deepfire | (~user@80.92.100.69) (Remote host closed the connection) |
2021-01-11 20:06:50 +0100 | Alleria__ | (~textual@mskresolve-a.mskcc.org) (Ping timeout: 272 seconds) |
2021-01-11 20:07:16 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) (Ping timeout: 240 seconds) |
2021-01-11 20:07:48 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) |
2021-01-11 20:08:54 +0100 | Tario | (~Tario@201.192.165.173) |
2021-01-11 20:09:39 +0100 | dandart1 | (~Thunderbi@home.dandart.co.uk) |
2021-01-11 20:10:45 +0100 | pera | (pera@gateway/vpn/mullvad/pera) (Ping timeout: 240 seconds) |
2021-01-11 20:12:05 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) (Ping timeout: 240 seconds) |
2021-01-11 20:12:05 +0100 | dandart1 | dandart |
2021-01-11 20:13:15 +0100 | knupfer | (~Thunderbi@200116b82c62e30071e812f479534363.dip.versatel-1u1.de) (Remote host closed the connection) |
2021-01-11 20:13:24 +0100 | knupfer | (~Thunderbi@200116b82c62e3007cb54228cd86c296.dip.versatel-1u1.de) |
2021-01-11 20:15:35 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:a978:5a86:791:f563) |
2021-01-11 20:15:36 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Remote host closed the connection) |
2021-01-11 20:17:37 +0100 | gentauro | (~gentauro@unaffiliated/gentauro) (Quit: leaving) |
2021-01-11 20:17:53 +0100 | gentauro | (~gentauro@unaffiliated/gentauro) |
2021-01-11 20:24:05 +0100 | thefybe | (~thefybe@249-147-161-N2.customer.vsm.sh) |
2021-01-11 20:26:01 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-11 20:33:06 +0100 | puffnfresh | (~puffnfres@119-17-138-164.77118a.mel.static.aussiebb.net) (Ping timeout: 265 seconds) |
2021-01-11 20:33:58 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-11 20:35:01 +0100 | puffnfresh | (~puffnfres@119-17-138-164.77118a.mel.static.aussiebb.net) |
2021-01-11 20:41:40 +0100 | hive-mind | (~hivemind@rrcs-67-53-148-69.west.biz.rr.com) (Ping timeout: 256 seconds) |
2021-01-11 20:44:10 +0100 | conal | (~conal@198.8.81.231) (Quit: Computer has gone to sleep.) |
2021-01-11 20:45:40 +0100 | hive-mind | (~hivemind@rrcs-67-53-148-69.west.biz.rr.com) |
2021-01-11 20:46:08 +0100 | mastarija | (~mastarija@188.252.198.137) (Quit: Leaving) |
2021-01-11 20:46:44 +0100 | jess | (jess@freenode/staff/jess) |
2021-01-11 20:47:40 +0100 | jess | (jess@freenode/staff/jess) (Client Quit) |
2021-01-11 20:47:40 +0100 | jamm | (~jamm@unaffiliated/jamm) |
2021-01-11 20:48:15 +0100 | jess | (jess@freenode/staff/jess) |
2021-01-11 20:48:19 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Remote host closed the connection) |
2021-01-11 20:49:56 +0100 | boxscape | (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) |
2021-01-11 20:50:58 +0100 | acidjnk_new | (~acidjnk@p200300d0c704e7934412496f05d02b0d.dip0.t-ipconnect.de) |
2021-01-11 20:51:45 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) |
2021-01-11 20:52:14 +0100 | jamm | (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds) |
2021-01-11 20:55:10 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 246 seconds) |
2021-01-11 20:56:10 +0100 | thefybe | (~thefybe@249-147-161-N2.customer.vsm.sh) (Ping timeout: 256 seconds) |
2021-01-11 20:56:17 +0100 | geekosaur | (42d52137@66.213.33.55) (Ping timeout: 248 seconds) |
2021-01-11 20:56:19 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 260 seconds) |
2021-01-11 20:57:26 +0100 | conal | (~conal@64.71.133.70) |
2021-01-11 20:58:52 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-01-11 20:59:14 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-11 20:59:54 +0100 | <loli> | is there a way to jump to definition in haskell LSP for emacs for dependencies? |
2021-01-11 21:00:27 +0100 | <loli> | The project I'm currently working on has a bunch of the functionality split up into many different libraries, trying to traverse them by digging in by hand instead of jump to source has gotten quite tiring |
2021-01-11 21:01:49 +0100 | xff0x | (~xff0x@2001:1a81:53ed:d500:fd7a:b0e1:64e1:be91) (Ping timeout: 272 seconds) |
2021-01-11 21:02:12 +0100 | xff0x | (~xff0x@2001:1a81:53ed:d500:fb41:db64:748c:e168) |
2021-01-11 21:02:34 +0100 | owner | (~heronwr@198.52.165.210) |
2021-01-11 21:02:40 +0100 | owner | heronwr |
2021-01-11 21:02:59 +0100 | Up39 | (5434a07f@tm.84.52.160.127.dc.cable.static.telemach.net) (Quit: Connection closed) |
2021-01-11 21:04:25 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds) |
2021-01-11 21:05:41 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-01-11 21:06:36 +0100 | Neuromancer | (~Neuromanc@unaffiliated/neuromancer) (Ping timeout: 256 seconds) |
2021-01-11 21:06:38 +0100 | <kuribas> | LSP in emacs is pretty aweful compared to vscode |
2021-01-11 21:06:45 +0100 | <ezzieyguywuf> | `less -RS` is _awesome_, it's changed my life |
2021-01-11 21:07:08 +0100 | vicfred | (vicfred@gateway/vpn/mullvad/vicfred) |
2021-01-11 21:07:33 +0100 | <loli> | is it? that is a shame |
2021-01-11 21:07:38 +0100 | <loli> | I was using intero until it died |
2021-01-11 21:08:40 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-11 21:10:55 +0100 | geekosaur | (42d52137@66.213.33.55) |
2021-01-11 21:11:38 +0100 | conal | (~conal@64.71.133.70) |
2021-01-11 21:11:51 +0100 | <dminuoso> | loli: Mmm, I use hasktags so I can just jump to definition for that. |
2021-01-11 21:12:09 +0100 | <loli> | hasktags solves this issue? |
2021-01-11 21:12:24 +0100 | <dminuoso> | If the definition is inside the same package, yes. |
2021-01-11 21:12:31 +0100 | <loli> | no |
2021-01-11 21:12:43 +0100 | <loli> | the lsp mode gives me jump to definition for definitions in the same package |
2021-01-11 21:12:53 +0100 | Neuromancer | (~Neuromanc@unaffiliated/neuromancer) |
2021-01-11 21:12:58 +0100 | seveg | (~gabriel@188-167-252-202.dynamic.chello.sk) |
2021-01-11 21:13:00 +0100 | <loli> | however the codebase I work in has it's code spread out between many different libraries |
2021-01-11 21:14:25 +0100 | <loli> | I think I read an issue at one point about it? I can't seem to find it again... it's just a shame, as it makes moving around, finding definitions, tedious |
2021-01-11 21:16:43 +0100 | seveg | (~gabriel@188-167-252-202.dynamic.chello.sk) (Client Quit) |
2021-01-11 21:18:20 +0100 | klardots1 | klardotsh |
2021-01-11 21:19:32 +0100 | <dminuoso> | Im not sure how that would be doable, sensibly. |
2021-01-11 21:19:50 +0100 | ADG1089__ | (~aditya@122.163.165.143) (Remote host closed the connection) |
2021-01-11 21:19:59 +0100 | seveg | (~gabriel@2a02-ab04-0249-8d00-dea6-32ff-fe17-0993.dynamic.v6.chello.sk) |
2021-01-11 21:20:11 +0100 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds) |
2021-01-11 21:20:14 +0100 | <sm[m]> | loli: in vs code if I mouse over something from a dependency, the haddock pops up, and also a link to the online haddock where you can click the source link |
2021-01-11 21:20:15 +0100 | <dminuoso> | That would need some interesting interaction with cabal, to pluck the cabal archives used in the build.. |
2021-01-11 21:20:52 +0100 | <dminuoso> | sm[m]: How does it identify that thing? |
2021-01-11 21:21:04 +0100 | <sm[m]> | ah you asked about emacs, but maybe it gives an idea |
2021-01-11 21:21:12 +0100 | <dminuoso> | Does it use the build plan to find the correct package on hackage? |
2021-01-11 21:21:21 +0100 | <loli> | sm[m]: yeah I get something similar, modulo being able to click the link |
2021-01-11 21:21:25 +0100 | <sm[m]> | no idea dminuoso. Magic! |
2021-01-11 21:21:42 +0100 | <loli> | often mod :: T -> Mod \n _Defined in Code.Base.Here |
2021-01-11 21:22:10 +0100 | <dminuoso> | Well, that much is easy. |
2021-01-11 21:22:35 +0100 | <loli> | well ghci knows where the code is, if you :i it |
2021-01-11 21:22:45 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-01-11 21:22:48 +0100 | <loli> | at least for local packages which are external to the current one |
2021-01-11 21:22:53 +0100 | PietPtr | (~pieter@unaffiliated/pietdagamer) |
2021-01-11 21:22:55 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Read error: Connection reset by peer) |
2021-01-11 21:22:56 +0100 | <dminuoso> | Sure, but that wont give you access to any haddock |
2021-01-11 21:23:05 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) |
2021-01-11 21:23:11 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) |
2021-01-11 21:23:37 +0100 | <loli> | sure, but I'd rather just use that to jump to source |
2021-01-11 21:23:57 +0100 | <loli> | since it knows where it is defined and possibly even the line number, I'd rather just have my emacs dive to the page |
2021-01-11 21:24:18 +0100 | thefybe | (~thefybe@249-147-161-N2.customer.vsm.sh) |
2021-01-11 21:24:22 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-01-11 21:25:36 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-11 21:27:15 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection) |
2021-01-11 21:27:57 +0100 | nineonine | (~nineonine@50.216.62.2) |
2021-01-11 21:28:38 +0100 | jonatanb | (~jonatanb@83.24.29.180.ipv4.supernova.orange.pl) |
2021-01-11 21:28:55 +0100 | <sm[m]> | #haskell-ide-engine will know |
2021-01-11 21:29:50 +0100 | ystael | (~ystael@209.6.50.55) (Ping timeout: 256 seconds) |
2021-01-11 21:30:06 +0100 | knupfer | (~Thunderbi@200116b82c62e3007cb54228cd86c296.dip.versatel-1u1.de) (Remote host closed the connection) |
2021-01-11 21:30:21 +0100 | knupfer | (~Thunderbi@200116b82c62e300d9ff7a8eb0f2bc98.dip.versatel-1u1.de) |
2021-01-11 21:30:51 +0100 | <idnar> | how do I `take` on a `Data.Text.Lazy.Builder`? |
2021-01-11 21:31:08 +0100 | <merijn> | idnar: You turn it into Text first |
2021-01-11 21:31:45 +0100 | <monochrom> | Possible XY problem. |
2021-01-11 21:32:45 +0100 | jonatanb | (~jonatanb@83.24.29.180.ipv4.supernova.orange.pl) (Ping timeout: 240 seconds) |
2021-01-11 21:33:02 +0100 | <idnar> | let me pastebin |
2021-01-11 21:35:12 +0100 | <idnar> | https://gist.github.com/mithrandi/bddb422c9b751d104f85fd926d896a95 |
2021-01-11 21:41:13 +0100 | kuribas | (~user@ptr-25vy0i7ug01ndhtx56u.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
2021-01-11 21:45:04 +0100 | mht | (~mht@mht.wtf) |
2021-01-11 21:45:44 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-11 21:52:56 +0100 | <loli> | thanks sm[m] |
2021-01-11 21:55:33 +0100 | <monochrom> | Perhaps "go" should count down from len to 0, too. This would not destroy the efficency benefits of using builder. |
2021-01-11 21:56:49 +0100 | <monochrom> | builder's efficiency is gained from never looking back, aka "streaming". |
2021-01-11 21:59:19 +0100 | Jd007 | (~Jd007@d154-5-83-24.bchsia.telus.net) (Quit: Jd007) |
2021-01-11 21:59:59 +0100 | knupfer | (~Thunderbi@200116b82c62e300d9ff7a8eb0f2bc98.dip.versatel-1u1.de) (Quit: knupfer) |
2021-01-11 22:00:05 +0100 | coot | (~coot@37.30.56.46.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-01-11 22:00:14 +0100 | knupfer | (~Thunderbi@200116b82c62e3006c32357b74a11b0b.dip.versatel-1u1.de) |
2021-01-11 22:02:58 +0100 | <idnar> | monochrom: good idea |
2021-01-11 22:03:08 +0100 | Jd007 | (~Jd007@d154-5-83-24.bchsia.telus.net) |
2021-01-11 22:05:17 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Remote host closed the connection) |
2021-01-11 22:05:41 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-01-11 22:06:08 +0100 | alx741 | (~alx741@181.196.69.216) (Quit: alx741) |
2021-01-11 22:06:13 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-01-11 22:06:38 +0100 | conal | (~conal@64.71.133.70) |
2021-01-11 22:06:53 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2021-01-11 22:07:23 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds) |
2021-01-11 22:07:55 +0100 | alx741 | (~alx741@181.196.69.216) |
2021-01-11 22:07:57 +0100 | p3n | (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) |
2021-01-11 22:12:54 +0100 | tsrt^ | (~hph@ip98-184-89-2.mc.at.cox.net) () |
2021-01-11 22:14:32 +0100 | nrh^ | (~hph@ip98-184-89-2.mc.at.cox.net) |
2021-01-11 22:17:13 +0100 | Twey | (~twey@unaffiliated/twey) (Quit: ZNC - http://znc.in) |
2021-01-11 22:18:44 +0100 | aveltras | (uid364989@gateway/web/irccloud.com/x-xykekrezuzwmeque) |
2021-01-11 22:19:12 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2021-01-11 22:19:44 +0100 | statusfailed | (~statusfai@statusfailed.com) (Ping timeout: 260 seconds) |
2021-01-11 22:20:07 +0100 | ransom | (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-11 22:22:23 +0100 | ulidtko|k | (~ulidtko@194.54.80.38) (Ping timeout: 256 seconds) |
2021-01-11 22:22:54 +0100 | piezoid | (~piezoid@82-64-150-32.subs.proxad.net) (Quit: leaving...) |
2021-01-11 22:23:41 +0100 | Twey | (~twey@unaffiliated/twey) |
2021-01-11 22:24:24 +0100 | danso | (~dan@23-233-104-25.cpe.pppoe.ca) (Ping timeout: 260 seconds) |
2021-01-11 22:25:25 +0100 | turion | (~turion@2a02:810d:8abf:c4a8:d43a:b21:28bf:441a) (Ping timeout: 272 seconds) |
2021-01-11 22:27:49 +0100 | statusfailed | (~statusfai@statusfailed.com) |
2021-01-11 22:27:53 +0100 | justsomeguy | (~Srain@unaffiliated/--/x-3805311) |
2021-01-11 22:27:56 +0100 | <koz_> | @unmtl ExceptT e (State s) a |
2021-01-11 22:27:56 +0100 | <lambdabot> | s -> (Either e a, s) |
2021-01-11 22:29:52 +0100 | <monochrom> | I always like to pose the question to my students "should I use s->(Either e a,s)? or should it be s->Either e (a,s)?" given a particular scenerio. |
2021-01-11 22:30:17 +0100 | <Rembane> | It depends. |
2021-01-11 22:30:21 +0100 | <monochrom> | Yes. |
2021-01-11 22:30:59 +0100 | <monochrom> | But I always describe a scenerio to requires exactly one of them. |
2021-01-11 22:31:17 +0100 | <monochrom> | To test their understanding of the consequences of each. |
2021-01-11 22:31:22 +0100 | <Rembane> | ^^ good stuff |
2021-01-11 22:31:31 +0100 | justsomeguy | (~Srain@unaffiliated/--/x-3805311) (Remote host closed the connection) |
2021-01-11 22:32:06 +0100 | <koz_> | monochrom: Bonus points - all the possible stackings of LogicT, StateT and ExceptT and the varying semantics of each. |
2021-01-11 22:32:37 +0100 | <monochrom> | Ah yeah, I should do that one day. Student marks are too high. |
2021-01-11 22:32:58 +0100 | <koz_> | I actually whiteboarded that up for myself recently. |
2021-01-11 22:32:59 +0100 | <Rembane> | IIRC you can break things in really fun ways if you include ContT too |
2021-01-11 22:33:00 +0100 | <koz_> | Good stuff. |
2021-01-11 22:33:10 +0100 | <koz_> | Rembane: LogicT is a special case of ContT. |
2021-01-11 22:34:04 +0100 | <monochrom> | But it's such a special case you can use the simpler [] model. |
2021-01-11 22:34:13 +0100 | <Rembane> | koz_: Nice. Which one is the most fun? |
2021-01-11 22:34:19 +0100 | <koz_> | Yeah, and I'd actually recommend it because otherwise your brain will break. |
2021-01-11 22:34:55 +0100 | <koz_> | Rembane: ContT is the harder of the two. Depends on your definition of 'fun' I guess. |
2021-01-11 22:35:00 +0100 | <monochrom> | To some extent ContT is not fair because I don't have time to teach them. |
2021-01-11 22:35:24 +0100 | danso | (~dan@23-233-104-25.cpe.pppoe.ca) |
2021-01-11 22:35:52 +0100 | <Rembane> | koz_: I'm having a hard time deciding which definition is the most suitable here. :) |
2021-01-11 22:36:08 +0100 | <koz_> | Rembane: The real question should be 'for whom is it the most fun?'. |
2021-01-11 22:36:16 +0100 | <koz_> | If your answer is 'monochrom', definitely ContT. |
2021-01-11 22:36:22 +0100 | <monochrom> | :) |
2021-01-11 22:36:26 +0100 | <koz_> | If your answer is 'the students', then definitely LogicT. |
2021-01-11 22:36:40 +0100 | <koz_> | If your answer is '#haskell', the correct response is 'porque no los dos?'. |
2021-01-11 22:36:51 +0100 | <koz_> | Or, depending on where you're from, 'les deux, mon capitaine!'. |
2021-01-11 22:36:51 +0100 | jonatanb | (~jonatanb@83.24.29.180.ipv4.supernova.orange.pl) |
2021-01-11 22:37:02 +0100 | <monochrom> | I indirectly inflicted Cont on my students in an assignment. It's by way of the monad of "from random variable to expected value". |
2021-01-11 22:37:33 +0100 | <Rembane> | koz_: :D |
2021-01-11 22:37:35 +0100 | <monochrom> | (which is one of many versions of "the" probability monad) |
2021-01-11 22:38:15 +0100 | <monochrom> | Let X be your sample space. A random variable is a function from X to numbers. Let's say X->Double |
2021-01-11 22:38:24 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-01-11 22:38:59 +0100 | <monochrom> | Err bad name choice X because people want to use X for the random variable! |
2021-01-11 22:39:13 +0100 | <monochrom> | Let S be your sample space. A random variable is a function from S to numbers. Let's say R->Double. |
2021-01-11 22:39:58 +0100 | <monochrom> | err typo, s/R/S/ |
2021-01-11 22:40:01 +0100 | <monochrom> | Let S be your sample space. A random variable is a function from S to numbers. Let's say S->Double. |
2021-01-11 22:40:24 +0100 | Guest_8 | (cdfaa09d@d205-250-160-157.bchsia.telus.net) |
2021-01-11 22:40:34 +0100 | xwvvvvwx | (xwvvvvwx@gateway/vpn/mullvad/xwvvvvwx) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-01-11 22:40:36 +0100 | son0p | (~son0p@181.136.122.143) |
2021-01-11 22:40:43 +0100 | Guest_8 | (cdfaa09d@d205-250-160-157.bchsia.telus.net) (Client Quit) |
2021-01-11 22:40:44 +0100 | <monochrom> | If you write "E(X)" for the expected value of X::S->Double, the logical conclusion is E :: (S->Double)->Double. |
2021-01-11 22:40:53 +0100 | xwvvvvwx | (xwvvvvwx@gateway/vpn/mullvad/xwvvvvwx) |
2021-01-11 22:40:56 +0100 | jonatanb | (~jonatanb@83.24.29.180.ipv4.supernova.orange.pl) (Ping timeout: 240 seconds) |
2021-01-11 22:40:59 +0100 | <monochrom> | Hey that looks suspiciously like Cont Double S |
2021-01-11 22:41:46 +0100 | <monochrom> | What really surprised me is that if fmap, pure, <*>, and >>= are to make sense in terms of expected values, they are also Cont's fmap, pure, <*>, >>= |
2021-01-11 22:42:27 +0100 | <koz_> | monochrom: This is further proof that you can build an entire career on Cont(T). |
2021-01-11 22:44:49 +0100 | danso | (~dan@23-233-104-25.cpe.pppoe.ca) (Quit: WeeChat 3.0) |
2021-01-11 22:47:19 +0100 | danso | (~dan@23-233-104-25.cpe.pppoe.ca) |
2021-01-11 22:47:26 +0100 | debclair | (~debclair@host-181-39-120-169.netlife.ec) |
2021-01-11 22:48:27 +0100 | <monochrom> | And my ingenius stroke of finishing touch of that assignment is the following. |
2021-01-11 22:49:07 +0100 | <monochrom> | I reckoned that if I called it the "probability monad" as in the research literature, it's way too googlable. I needed a more obscure name. |
2021-01-11 22:49:47 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-11 22:49:53 +0100 | <monochrom> | Hrm, probability, randomness... Eureka! "random monad". |
2021-01-11 22:50:01 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
2021-01-11 22:50:34 +0100 | <monochrom> | My certification of success came when a very weak student emailed me to ask "may I import Control.Monad.Random"? Gotcha! |
2021-01-11 22:51:11 +0100 | <monochrom> | I.e., why give it an obscure name when you can give it a misleading name bwhahahaha |
2021-01-11 22:51:45 +0100 | danso | (~dan@23-233-104-25.cpe.pppoe.ca) (Client Quit) |
2021-01-11 22:52:30 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) |
2021-01-11 22:53:27 +0100 | geekosaur | (42d52137@66.213.33.55) (Quit: Connection closed) |
2021-01-11 22:53:39 +0100 | <glguy> | monochrom: misleading names have the potential to give people a false sense of familiarity. obscure ones are just scary :nod: |
2021-01-11 22:53:56 +0100 | Aquazi | (uid312403@gateway/web/irccloud.com/x-uolkbeaqxmvkvibt) (Quit: Connection closed for inactivity) |
2021-01-11 22:54:23 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Remote host closed the connection) |
2021-01-11 22:54:24 +0100 | conal | (~conal@64.71.133.70) |
2021-01-11 22:56:08 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-01-11 22:57:31 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 256 seconds) |
2021-01-11 22:58:40 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Quit: jpds) |
2021-01-11 22:59:02 +0100 | dfeuer | (~dfeuer@pool-173-79-253-62.washdc.fios.verizon.net) (Remote host closed the connection) |
2021-01-11 23:00:15 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-01-11 23:00:46 +0100 | TheCommieDuck | (~mark@host-78-146-136-48.as13285.net) |
2021-01-11 23:01:52 +0100 | sparsity | (5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) |
2021-01-11 23:02:44 +0100 | conal | (~conal@64.71.133.70) |
2021-01-11 23:02:44 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2021-01-11 23:02:54 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 260 seconds) |
2021-01-11 23:02:56 +0100 | argento | (~argent0@168.227.97.34) (Ping timeout: 240 seconds) |
2021-01-11 23:05:27 +0100 | danso | (~dan@23-233-104-25.cpe.pppoe.ca) |
2021-01-11 23:06:10 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
2021-01-11 23:07:41 +0100 | danso | (~dan@23-233-104-25.cpe.pppoe.ca) (Client Quit) |
2021-01-11 23:09:08 +0100 | <monochrom> | If you're interested: the assignment handout is at http://www.cs.utoronto.ca/~trebla/x/0J50KOV5UH/CSCC24-2020-Winter/a2/ |
2021-01-11 23:09:34 +0100 | ke4pcx | (~ke4pcx@024-158-093-129.res.spectrum.com) (Read error: Connection reset by peer) |
2021-01-11 23:09:48 +0100 | <dolio> | The real probability monad isn't just Cont Double, though. |
2021-01-11 23:09:51 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2021-01-11 23:09:53 +0100 | danso | (~dan@23-233-104-25.cpe.pppoe.ca) |
2021-01-11 23:10:04 +0100 | <dolio> | That's just the limit of what you can reasonably encode in Haskell. |
2021-01-11 23:10:23 +0100 | ke4pcx | (~ke4pcx@024-158-093-129.res.spectrum.com) |
2021-01-11 23:10:54 +0100 | <monochrom> | Do you mean: We need suitable restrictions on the function space, it is not the full S->SuitableNumberType? |
2021-01-11 23:11:01 +0100 | hyperisco | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 264 seconds) |
2021-01-11 23:11:29 +0100 | <dolio> | Yeah, `X -> Double` should be some kind of 'guaranteed to be a probability measure' thing. |
2021-01-11 23:11:53 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-11 23:11:55 +0100 | maxsu | (~maxsu@ip-64-72-99-232.lasvegas.net) |
2021-01-11 23:12:50 +0100 | knupfer | (~Thunderbi@200116b82c62e3006c32357b74a11b0b.dip.versatel-1u1.de) (Ping timeout: 258 seconds) |
2021-01-11 23:13:20 +0100 | boxscape | (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed) |
2021-01-11 23:14:39 +0100 | edge563 | (~edge563@gateway/tor-sasl/edge563) |
2021-01-11 23:15:09 +0100 | SrainUser | (~Srain@216.186.218.241) |
2021-01-11 23:15:15 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-01-11 23:15:19 +0100 | <dolio> | I'm not informed enough to know how it actually works. `X -> Double` might not be quite correct at all, because it's probably treating types like discrete spaces, but people studying probability want to work with measurable spaces, where you assign probabilities to subspaces, not points. |
2021-01-11 23:15:56 +0100 | alx741 | (~alx741@181.196.69.216) (Ping timeout: 240 seconds) |
2021-01-11 23:16:16 +0100 | alx741 | (~alx741@186.178.110.185) |
2021-01-11 23:16:25 +0100 | <monochrom> | When X is continuous, the Double becomes probability density. And you're to do integration. Then it still works out. |
2021-01-11 23:16:27 +0100 | SrainUser | (~Srain@216.186.218.241) (Quit: SrainUser) |
2021-01-11 23:16:55 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-01-11 23:17:10 +0100 | <dolio> | Yeah, I guess that does make sense. |
2021-01-11 23:17:11 +0100 | <monochrom> | There is a paper that does all of this. Full-blown measure theory, no compromise. |
2021-01-11 23:18:57 +0100 | <monochrom> | I think it's this: https://www.cs.tufts.edu/~nr/pubs/pmonad-abstract.html |
2021-01-11 23:19:56 +0100 | <dolio> | Anyhow, it happens that the monad operations on Cont r stay valid when you want to consider only restricted classes of continuations. |
2021-01-11 23:20:15 +0100 | ddere | (uid110888@gateway/web/irccloud.com/x-qihpsouqwjjvfzge) |
2021-01-11 23:22:44 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-01-11 23:23:05 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) |
2021-01-11 23:24:05 +0100 | <dolio> | Or, for instance, they also work for 'free r-vector space with basis a', I believe, where the outer arrow is supposed to be linear. |
2021-01-11 23:25:01 +0100 | <dolio> | But not every value of `Cont r a` makes sense as part of that vector space. |
2021-01-11 23:25:24 +0100 | danso | (~dan@23-233-104-25.cpe.pppoe.ca) (Quit: WeeChat 3.0) |
2021-01-11 23:27:50 +0100 | Deide | (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
2021-01-11 23:29:37 +0100 | ke4pcx | (~ke4pcx@024-158-093-129.res.spectrum.com) () |
2021-01-11 23:29:52 +0100 | dhouthoo | (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9) |
2021-01-11 23:30:41 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) |
2021-01-11 23:30:55 +0100 | niekvandepas | (~niekvande@dhcp-077-249-088-250.chello.nl) |
2021-01-11 23:36:42 +0100 | solarliner | (~solarline@243.81.10.109.rev.sfr.net) (Quit: solarliner) |
2021-01-11 23:36:53 +0100 | ADG1089__ | (~aditya@122.163.165.143) |
2021-01-11 23:38:16 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds) |
2021-01-11 23:39:39 +0100 | chele | (~chele@ip5b40237d.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
2021-01-11 23:39:52 +0100 | mputz | (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
2021-01-11 23:40:34 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-01-11 23:42:34 +0100 | edge563 | (~edge563@gateway/tor-sasl/edge563) (Quit: edge563) |
2021-01-11 23:42:34 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 265 seconds) |
2021-01-11 23:43:06 +0100 | chpatrick | (sid239395@gateway/web/irccloud.com/x-okkeakcurpolpskn) () |
2021-01-11 23:46:33 +0100 | klardotsh | (~klardotsh@c-71-231-242-112.hsd1.wa.comcast.net) (Quit: WeeChat 2.9) |
2021-01-11 23:47:00 +0100 | danso | (~dan@23-233-104-25.cpe.pppoe.ca) |
2021-01-11 23:50:38 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-11 23:53:48 +0100 | fendor | (~fendor@77.119.128.187.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-01-11 23:55:41 +0100 | ep1ctetus | (b8bba2a3@ip184-187-162-163.sb.sd.cox.net) |
2021-01-11 23:56:36 +0100 | inkbottle | (~inkbottle@aaubervilliers-654-1-109-134.w86-212.abo.wanadoo.fr) |
2021-01-11 23:56:56 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Ping timeout: 256 seconds) |
2021-01-11 23:57:09 +0100 | <ep1ctetus> | idk if this is the best place to ask this, but I am having a problem with the VS Code Haskell add-in and Stack. I just get an error message that says "ghcide compiled against GHC 8.10.2 but currently using 8.8.4" |
2021-01-11 23:57:24 +0100 | <ep1ctetus> | I can't use 8.10.2 on Windows because it doesn't work |
2021-01-11 23:59:01 +0100 | heronwr | (~heronwr@198.52.165.210) (Ping timeout: 264 seconds) |
2021-01-11 23:59:11 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |