2022-04-19 00:00:36 +0200 | myme | (~myme@40.51-175-185.customer.lyse.net) (Ping timeout: 240 seconds) |
2022-04-19 00:00:48 +0200 | coot | (~coot@213.134.190.95) (Client Quit) |
2022-04-19 00:01:13 +0200 | <jerry99> | ok thanks hpc. I will toy with it a bit, and see how it fits my actual problem |
2022-04-19 00:02:12 +0200 | cosimone | (~user@93-47-228-79.ip115.fastwebnet.it) |
2022-04-19 00:02:17 +0200 | cosimone | (~user@93-47-228-79.ip115.fastwebnet.it) (Remote host closed the connection) |
2022-04-19 00:02:26 +0200 | <RevoGen> | hpc: ty, the environment explanation helped, I got "(<*>) :: (r -> (a -> b)) -> (r -> a) -> (r -> b)" |
2022-04-19 00:02:58 +0200 | bahamas | (~lucian@84.232.140.158) |
2022-04-19 00:03:04 +0200 | cosimone | (~user@93-47-228-79.ip115.fastwebnet.it) |
2022-04-19 00:05:13 +0200 | <hpc> | :t (<*>) |
2022-04-19 00:05:15 +0200 | <lambdabot> | Applicative f => f (a -> b) -> f a -> f b |
2022-04-19 00:05:35 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds) |
2022-04-19 00:06:38 +0200 | <hpc> | so what would this be if you didn't have that extra x? (this will make the idea /really/ click) |
2022-04-19 00:07:16 +0200 | <hpc> | mentally erase all the "x" stuff in the value, and all the "f" stuff in the above type |
2022-04-19 00:07:31 +0200 | bahamas | (~lucian@84.232.140.158) (Ping timeout: 246 seconds) |
2022-04-19 00:07:35 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-04-19 00:08:43 +0200 | <RevoGen> | just a map? |
2022-04-19 00:10:20 +0200 | <hpc> | here's a hint: (a -> b) -> a -> b |
2022-04-19 00:12:01 +0200 | xff0x_ | (~xff0x@om126033110024.35.openmobile.ne.jp) |
2022-04-19 00:12:13 +0200 | <RevoGen> | ic |
2022-04-19 00:14:34 +0200 | Guest27 | (~Guest27@2601:281:d47f:1590::7e6a) |
2022-04-19 00:14:57 +0200 | motherfsck | (~motherfsc@user/motherfsck) (Ping timeout: 256 seconds) |
2022-04-19 00:15:22 +0200 | motherfsck | (~motherfsc@user/motherfsck) |
2022-04-19 00:20:59 +0200 | acidjnk | (~acidjnk@p200300d0c722df2060ad2e552287866a.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-04-19 00:22:24 +0200 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) |
2022-04-19 00:23:41 +0200 | Guest27 | (~Guest27@2601:281:d47f:1590::7e6a) (Quit: Client closed) |
2022-04-19 00:24:09 +0200 | sseefried | (~sseefried@1.146.69.153) |
2022-04-19 00:25:07 +0200 | <sseefried> | Is https://www.haskell.org down? |
2022-04-19 00:25:34 +0200 | <davean> | sseefried: its about to be back! |
2022-04-19 00:25:45 +0200 | <sseefried> | Haha, just as I jumped on the channel |
2022-04-19 00:27:14 +0200 | <sseefried> | What happened? |
2022-04-19 00:27:28 +0200 | <sseefried> | davean: What happened? |
2022-04-19 00:27:55 +0200 | <davean> | sseefried: HW failures at the datacenter, and a holiday weekend slowing down recovery. Its back up actually, just took the chance of it being down for a system upgrade |
2022-04-19 00:28:07 +0200 | <davean> | its up now |
2022-04-19 00:28:13 +0200 | <sseefried> | Yeah, I saw :-) |
2022-04-19 00:28:18 +0200 | <sseefried> | Great work. Thanks. |
2022-04-19 00:28:35 +0200 | <davean> | Well, I had to wait for you to get here to fix it ;) |
2022-04-19 00:29:32 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 00:29:33 +0200 | <statusbot> | Status update: The server was not able to boot due to an efuse issue with the power. The host has repaired the hardware and haskell.org is again running. -- http://status.haskell.org/pages/incident/537c07b0cf1fad5830000093/625c69cdfcbdd204d4df5603 |
2022-04-19 00:30:22 +0200 | <hpc> | yay |
2022-04-19 00:32:25 +0200 | <abastro[m]> | Finally! :) |
2022-04-19 00:32:41 +0200 | <abastro[m]> | (So haskell is not dying) |
2022-04-19 00:33:19 +0200 | RevoGen | (~RevoGen@c-76-24-25-81.hsd1.ma.comcast.net) (Remote host closed the connection) |
2022-04-19 00:33:37 +0200 | RevoGen | (~RevoGen@c-76-24-25-81.hsd1.ma.comcast.net) |
2022-04-19 00:34:25 +0200 | mmhat | (~mmh@55d48a03.access.ecotel.net) (Quit: WeeChat 3.5) |
2022-04-19 00:35:21 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 256 seconds) |
2022-04-19 00:36:06 +0200 | sseefried | (~sseefried@1.146.69.153) (Quit: Client closed) |
2022-04-19 00:37:18 +0200 | <hpc> | what is dead can never die! :D |
2022-04-19 00:37:50 +0200 | RevoGen | (~RevoGen@c-76-24-25-81.hsd1.ma.comcast.net) (Ping timeout: 250 seconds) |
2022-04-19 00:38:25 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-04-19 00:39:14 +0200 | RevoGen | (~RevoGen@c-76-24-25-81.hsd1.ma.comcast.net) |
2022-04-19 00:42:43 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2022-04-19 00:45:19 +0200 | mikoto-chan | (~mikoto-ch@213.177.151.239) (Ping timeout: 240 seconds) |
2022-04-19 00:46:59 +0200 | RevoGen | (~RevoGen@c-76-24-25-81.hsd1.ma.comcast.net) (Remote host closed the connection) |
2022-04-19 00:47:15 +0200 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 256 seconds) |
2022-04-19 00:47:51 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 00:48:47 +0200 | finsternis | (~X@23.226.237.192) |
2022-04-19 00:51:59 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 240 seconds) |
2022-04-19 00:54:28 +0200 | kaph | (~kaph@151.35.4.96) |
2022-04-19 00:56:27 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-04-19 00:57:18 +0200 | TonyStone | (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) (Remote host closed the connection) |
2022-04-19 00:59:26 +0200 | <abastro[m]> | :? |
2022-04-19 01:02:38 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2022-04-19 01:02:49 +0200 | neceve | (~quassel@2.29.116.221) (Ping timeout: 246 seconds) |
2022-04-19 01:02:59 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2022-04-19 01:03:40 +0200 | x_kuru | (~xkuru@user/xkuru) |
2022-04-19 01:03:48 +0200 | TonyStone | (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) |
2022-04-19 01:05:54 +0200 | kaph_ | (~kaph@151.43.109.170) |
2022-04-19 01:06:38 +0200 | xkuru | (~xkuru@user/xkuru) (Ping timeout: 250 seconds) |
2022-04-19 01:08:19 +0200 | kaph | (~kaph@151.35.4.96) (Ping timeout: 240 seconds) |
2022-04-19 01:12:43 +0200 | <sclv> | its a joking quote from game of thrones |
2022-04-19 01:13:20 +0200 | <sclv> | https://gameofthrones.fandom.com/wiki/What_Is_Dead_May_Never_Die#:~:text=%22What%20is%20dead%20may… |
2022-04-19 01:13:35 +0200 | <sclv> | "But rises again harder and stronger" |
2022-04-19 01:16:14 +0200 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
2022-04-19 01:17:04 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2022-04-19 01:19:33 +0200 | chomwitt | (~chomwitt@ppp-94-67-221-107.home.otenet.gr) (Ping timeout: 256 seconds) |
2022-04-19 01:20:47 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 01:21:35 +0200 | machinedgod | (~machinedg@24.105.81.50) |
2022-04-19 01:24:09 +0200 | <abastro[m]> | Whh |
2022-04-19 01:26:19 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 240 seconds) |
2022-04-19 01:34:26 +0200 | stackdroid18 | (14094@user/stackdroid) (Quit: hasta la vista... tchau!) |
2022-04-19 01:39:13 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds) |
2022-04-19 01:40:23 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2022-04-19 01:42:10 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 250 seconds) |
2022-04-19 01:42:27 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-04-19 01:43:51 +0200 | sammelweis_ | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-04-19 01:44:01 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Read error: Connection reset by peer) |
2022-04-19 01:44:19 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2022-04-19 01:48:42 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 01:48:58 +0200 | cosimone | (~user@93-47-228-79.ip115.fastwebnet.it) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.1)) |
2022-04-19 01:49:22 +0200 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
2022-04-19 01:50:24 +0200 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) |
2022-04-19 01:54:17 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::85f6) |
2022-04-19 01:54:30 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-04-19 01:54:30 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-04-19 01:54:30 +0200 | wroathe | (~wroathe@user/wroathe) |
2022-04-19 01:57:36 +0200 | werneta | (~werneta@137.79.218.82) (Remote host closed the connection) |
2022-04-19 02:00:26 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-98.elisa-laajakaista.fi) (Quit: Leaving.) |
2022-04-19 02:01:36 +0200 | xff0x_ | (~xff0x@om126033110024.35.openmobile.ne.jp) (Read error: Connection reset by peer) |
2022-04-19 02:02:59 +0200 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 240 seconds) |
2022-04-19 02:06:10 +0200 | JimL | (~quassel@89-162-2-132.fiber.signal.no) (Ping timeout: 246 seconds) |
2022-04-19 02:06:13 +0200 | <dibblego> | <maerwald> the confusion probably comes from not understanding that `a -> (a -> a)` is `a -> a -> a` |
2022-04-19 02:06:18 +0200 | <dibblego> | aka "all functions take one argument" |
2022-04-19 02:07:57 +0200 | <Axman6> | Need to tattoo that to the back of every Haskell beginner's hand |
2022-04-19 02:09:17 +0200 | <dibblego> | would be nice if it was well understood as a matter of fact, from which we then make approximations — especially in teaching |
2022-04-19 02:12:22 +0200 | mxs | (~mxs@user/mxs) |
2022-04-19 02:23:33 +0200 | <abastro[m]> | Well, isn't it just currying by default |
2022-04-19 02:29:18 +0200 | <jackdk> | no, because even an "uncurried" function of type `(x, y) -> z` still takes a single argument |
2022-04-19 02:32:13 +0200 | <abastro[m]> | I mean, that one might not be uncurried for real. |
2022-04-19 02:41:51 +0200 | jgeerds | (~jgeerds@d5364b87.access.ecotel.net) (Ping timeout: 276 seconds) |
2022-04-19 02:44:07 +0200 | renzhi | (~xp@2607:fa49:6500:b100::19a0) (Ping timeout: 240 seconds) |
2022-04-19 02:46:15 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-04-19 02:48:23 +0200 | vysn | (~vysn@user/vysn) |
2022-04-19 02:48:55 +0200 | chenqisu1 | (~chenqisu1@183.217.200.38) |
2022-04-19 02:54:26 +0200 | RevoGen | (~RevoGen@laptop-grs098eo.bc.edu) |
2022-04-19 02:55:39 +0200 | <Axman6> | Years after learning about the pitfalls of precision in floating point representations and how to maintain accuracy in the context of high performance computing, I have finally been able to use this knowledge to fix a rounding bug in a (surprisingly important) financial system (that isn't yet in production, so no Office Space sheninigans for me) |
2022-04-19 02:57:06 +0200 | renzhi | (~xp@2607:fa49:6500:b100::229c) |
2022-04-19 02:59:48 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-04-19 02:59:50 +0200 | yauhsien | (~yauhsien@61-231-24-129.dynamic-ip.hinet.net) |
2022-04-19 03:01:06 +0200 | <sm> | sweet |
2022-04-19 03:02:24 +0200 | <Axman6> | fix was to change ((x / y) - z) * q to ((x * q) / y) - (z * q) |
2022-04-19 03:02:55 +0200 | <Axman6> | @check \x y z q -> z /= 0 ==> ((x / y) - z) * q == (x * q / y) - z * q |
2022-04-19 03:02:55 +0200 | <lambdabot> | :-1:-1:Ambiguous infix expression |
2022-04-19 03:03:18 +0200 | Unicorn_Princess | (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Quit: Leaving) |
2022-04-19 03:03:20 +0200 | <Axman6> | @check \x y z q -> (y /= 0) ==> (((x / y) - z) * q == (x * q / y) - z * q) |
2022-04-19 03:03:22 +0200 | <lambdabot> | *** Failed! Falsifiable (after 1 test and 11 shrinks): |
2022-04-19 03:03:22 +0200 | <lambdabot> | -0.8623034840690951 -0.5487141738649985 -0.13193816659739946 0.3886086030777... |
2022-04-19 03:03:37 +0200 | oxide | (~lambda@user/oxide) |
2022-04-19 03:04:23 +0200 | yauhsien | (~yauhsien@61-231-24-129.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2022-04-19 03:06:19 +0200 | gurkenglas | (~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
2022-04-19 03:06:25 +0200 | abastro | (~abab9579@220.75.216.63) |
2022-04-19 03:06:54 +0200 | <Axman6> | (I am expecting that to fail btw) |
2022-04-19 03:07:16 +0200 | <Axman6> | Do we have anything that can test if two expressions are algebraically equivalent? |
2022-04-19 03:07:32 +0200 | <Axman6> | @check \x y z q -> (y /= 0) ==> (((x / y) - z) * q == (x * q / y) - z * (q :: Rational)) |
2022-04-19 03:07:33 +0200 | <lambdabot> | +++ OK, passed 100 tests. |
2022-04-19 03:08:55 +0200 | xff0x_ | (~xff0x@125x102x200x106.ap125.ftth.ucom.ne.jp) |
2022-04-19 03:11:15 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-04-19 03:13:46 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2022-04-19 03:14:22 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-04-19 03:14:23 +0200 | mtjm | (~mutantmel@2604:a880:2:d0::208b:d001) (Remote host closed the connection) |
2022-04-19 03:14:46 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-04-19 03:15:27 +0200 | mtjm | (~mutantmel@2604:a880:2:d0::208b:d001) |
2022-04-19 03:20:54 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4) |
2022-04-19 03:21:12 +0200 | andrey__ | (~andrey@p200300dbcf108600f3fd07f727d014bd.dip0.t-ipconnect.de) |
2022-04-19 03:23:39 +0200 | andrey_ | (~andrey@p508d5b8f.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2022-04-19 03:36:49 +0200 | EvanR | (~EvanR@user/evanr) |
2022-04-19 03:37:31 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
2022-04-19 03:41:44 +0200 | <dmj`> | vacuous is insane, might I even say absurd. |
2022-04-19 03:44:55 +0200 | anomal | (~anomal@87.227.196.109) (Remote host closed the connection) |
2022-04-19 03:46:06 +0200 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 250 seconds) |
2022-04-19 03:46:38 +0200 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
2022-04-19 03:47:29 +0200 | <abastro> | XD |
2022-04-19 03:49:33 +0200 | Me-me | (~me-me@user/me-me) (Read error: Connection reset by peer) |
2022-04-19 03:50:26 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 250 seconds) |
2022-04-19 03:50:53 +0200 | <EvanR> | so uh |
2022-04-19 03:51:00 +0200 | Me-me | (~me-me@tunnel690570-pt.tunnel.tserv12.mia1.ipv6.he.net) |
2022-04-19 03:51:02 +0200 | <EvanR> | > decodeFloat (3.14 :: Float) |
2022-04-19 03:51:04 +0200 | <lambdabot> | (13170115,-22) |
2022-04-19 03:51:16 +0200 | <EvanR> | > 13170115 / 2^22 |
2022-04-19 03:51:18 +0200 | <lambdabot> | 3.140000104904175 |
2022-04-19 03:51:31 +0200 | <EvanR> | > showFFloat (Just 100) (3.14 :: Float) "" |
2022-04-19 03:51:33 +0200 | <lambdabot> | "3.1400000000000000000000000000000000000000000000000000000000000000000000000... |
2022-04-19 03:51:57 +0200 | <EvanR> | how or why is showFFloat giving... the "decimal" expansion of all zeros |
2022-04-19 03:53:11 +0200 | <EvanR> | > showFFloat (Just 100) (3.140000104904175 :: Float) "" |
2022-04-19 03:53:13 +0200 | <lambdabot> | "3.1400000000000000000000000000000000000000000000000000000000000000000000000... |
2022-04-19 03:53:16 +0200 | <EvanR> | o_O |
2022-04-19 03:54:20 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-04-19 03:54:21 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2022-04-19 03:55:18 +0200 | <EvanR> | is it that 3.14 parses to the same float and has less characters |
2022-04-19 03:55:42 +0200 | Midjak | (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
2022-04-19 03:57:02 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2022-04-19 03:57:39 +0200 | oxide | (~lambda@user/oxide) (Ping timeout: 240 seconds) |
2022-04-19 03:59:28 +0200 | <EvanR> | I could have sworn there was a way to get the real expansion of floats |
2022-04-19 03:59:46 +0200 | oxide | (~lambda@user/oxide) |
2022-04-19 04:00:02 +0200 | <abastro> | > showEFloat (Just 10) (3.14 :: Float) |
2022-04-19 04:00:06 +0200 | <lambdabot> | <[Char] -> [Char]> |
2022-04-19 04:00:13 +0200 | <abastro> | Oh meh |
2022-04-19 04:00:17 +0200 | <abastro> | > showEFloat (Just 10) (3.14 :: Float) "" |
2022-04-19 04:00:20 +0200 | <lambdabot> | "3.1400000000e0" |
2022-04-19 04:00:23 +0200 | Me-me | (~me-me@tunnel690570-pt.tunnel.tserv12.mia1.ipv6.he.net) (Changing host) |
2022-04-19 04:00:23 +0200 | Me-me | (~me-me@user/me-me) |
2022-04-19 04:00:31 +0200 | <abastro> | Hmm yea, this is weird |
2022-04-19 04:00:41 +0200 | <abastro> | Actually |
2022-04-19 04:01:07 +0200 | <abastro> | > (13170115 / 2^22) :: Float |
2022-04-19 04:01:10 +0200 | <lambdabot> | 3.14 |
2022-04-19 04:01:16 +0200 | <EvanR> | yeah I caught that after, but still |
2022-04-19 04:01:17 +0200 | <abastro> | ^ That is the reason I guess |
2022-04-19 04:01:56 +0200 | <EvanR> | if I corrected it to not switch types how do I print the right far digits of '3.14' |
2022-04-19 04:02:03 +0200 | Me-me | (~me-me@user/me-me) (Quit: Disconnecting on purpose.) |
2022-04-19 04:02:26 +0200 | <EvanR> | or 0.1 |
2022-04-19 04:02:44 +0200 | Me-me | (~me-me@v.working.name) |
2022-04-19 04:04:16 +0200 | Me-me | (~me-me@v.working.name) (Changing host) |
2022-04-19 04:04:16 +0200 | Me-me | (~me-me@user/me-me) |
2022-04-19 04:05:05 +0200 | <abastro> | > floatToDigits 10 (3.14 :: Float) |
2022-04-19 04:05:08 +0200 | <lambdabot> | ([3,1,4],1) |
2022-04-19 04:05:18 +0200 | <EvanR> | lol |
2022-04-19 04:05:22 +0200 | <abastro> | > floatToDigits 10 (3.14 :: Double) |
2022-04-19 04:05:24 +0200 | <lambdabot> | ([3,1,4],1) |
2022-04-19 04:05:34 +0200 | <EvanR> | :t floatToDigits |
2022-04-19 04:05:35 +0200 | <abastro> | Hmm I meant |
2022-04-19 04:05:36 +0200 | <lambdabot> | RealFloat a => Integer -> a -> ([Int], Int) |
2022-04-19 04:06:36 +0200 | <EvanR> | to read 3.14 or 0.1 as a float, then present it as 0.100000000000000000... is hella confusing |
2022-04-19 04:06:36 +0200 | <abastro> | > floatToDigits 10 (realToFrac @_ @Double (3.14 :: Float)) |
2022-04-19 04:06:38 +0200 | <lambdabot> | <hint>:1:33: error: parse error on input ‘@’ |
2022-04-19 04:06:56 +0200 | <abastro> | % floatToDigits 10 (realToFrac @Float @Double 3.14) |
2022-04-19 04:06:57 +0200 | <yahb> | abastro: ([3,1,4,0,0,0,0,1,0,4,9,0,4,1,7,5],1) |
2022-04-19 04:07:35 +0200 | <abastro> | % floatToDigits 10 (3.14 :: Float) |
2022-04-19 04:07:35 +0200 | <yahb> | abastro: ([3,1,4],1) |
2022-04-19 04:07:40 +0200 | <EvanR> | that's doing the same precision shenanigan as before |
2022-04-19 04:07:45 +0200 | <abastro> | So.. it comes from there |
2022-04-19 04:08:14 +0200 | <EvanR> | > (13170115 / 2^22) :: CReal |
2022-04-19 04:08:16 +0200 | <lambdabot> | 3.1400001049041748046875 |
2022-04-19 04:09:18 +0200 | <EvanR> | > 7070651414971679 / 2 ^ 51 :: CReal |
2022-04-19 04:09:20 +0200 | <lambdabot> | 3.1400000000000001243449787580175325274467 |
2022-04-19 04:09:32 +0200 | deadmarshal_ | (~deadmarsh@95.38.228.226) |
2022-04-19 04:09:57 +0200 | <EvanR> | could have sworn there was a way to get this info without CReal |
2022-04-19 04:10:14 +0200 | <EvanR> | since the input is rational |
2022-04-19 04:10:17 +0200 | Macbethwin | (~chargen@D964062A.static.ziggozakelijk.nl) |
2022-04-19 04:10:38 +0200 | <abastro> | Wdym get info? |
2022-04-19 04:11:00 +0200 | <EvanR> | the tail in the last example isn't infinite zeros like showFFloat shows |
2022-04-19 04:11:09 +0200 | <abastro> | Uh |
2022-04-19 04:11:26 +0200 | <abastro> | That's because there is less precision loss |
2022-04-19 04:11:35 +0200 | <abastro> | (If you use CReal) |
2022-04-19 04:12:21 +0200 | <abastro> | I think it is reasonable for the algorithm to compensate for possible errors from calculation |
2022-04-19 04:12:35 +0200 | <EvanR> | the number 3.1400000000000001243449787580175325274467... is the actual value you get when you parse 3.14 |
2022-04-19 04:12:43 +0200 | <EvanR> | it just doesn't display that way |
2022-04-19 04:12:51 +0200 | <abastro> | No |
2022-04-19 04:13:01 +0200 | <abastro> | It's not the "actual value" or anything |
2022-04-19 04:13:13 +0200 | <EvanR> | yes that's what the double value represents |
2022-04-19 04:13:18 +0200 | <abastro> | You should never consider a floating number as a concrete number. |
2022-04-19 04:13:20 +0200 | <EvanR> | that particular rational number |
2022-04-19 04:13:38 +0200 | <abastro> | I mean, Float -> Double conversion is lossful |
2022-04-19 04:13:45 +0200 | <EvanR> | I'm not talking about that conversion |
2022-04-19 04:14:04 +0200 | <abastro> | What are you talking about then? |
2022-04-19 04:14:04 +0200 | <EvanR> | also no it isn't |
2022-04-19 04:14:08 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-04-19 04:14:08 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-04-19 04:14:08 +0200 | wroathe | (~wroathe@user/wroathe) |
2022-04-19 04:14:22 +0200 | <Axman6> | > showFFloat (Just 100) (read "3.140000104904175" :: Float) "" |
2022-04-19 04:14:24 +0200 | <lambdabot> | "3.1400000000000000000000000000000000000000000000000000000000000000000000000... |
2022-04-19 04:14:26 +0200 | <abastro> | It is, there is conversion error still involved |
2022-04-19 04:14:30 +0200 | <Axman6> | > showFFloat (Just 100) (read "3.14" :: Float) "" |
2022-04-19 04:14:32 +0200 | <lambdabot> | "3.1400000000000000000000000000000000000000000000000000000000000000000000000... |
2022-04-19 04:14:50 +0200 | <EvanR> | Axman6, right |
2022-04-19 04:14:53 +0200 | <abastro> | The thing is, floating point number should never be considered as a concrete number. |
2022-04-19 04:15:01 +0200 | <abastro> | It never is. |
2022-04-19 04:15:03 +0200 | <EvanR> | it definitely is a concrete number |
2022-04-19 04:15:22 +0200 | <EvanR> | unless it's NaN |
2022-04-19 04:15:27 +0200 | <Axman6> | Sorry, just checking if the read instance directly (rather than the Rational instance -> Float conversion) would do anything different |
2022-04-19 04:15:57 +0200 | <EvanR> | it must be from the obscure rule where you display the number with the least amount of digits necessary to reproduce it |
2022-04-19 04:16:00 +0200 | <Axman6> | abastro: every non NaN ieee-754 number represents some exact value, it is possible to know exactly what number that is |
2022-04-19 04:16:46 +0200 | <Axman6> | EvanR: bringing back memories of a bug in PHP (and subsequently several other languages) which caused an infinite loop when parsing a certain floating point number |
2022-04-19 04:16:55 +0200 | <EvanR> | that was a good one |
2022-04-19 04:17:21 +0200 | <abastro> | I mean, even different architectures have different rules for computing floating number |
2022-04-19 04:17:47 +0200 | <abastro> | By rules, I mean it computes different number for same operation modulo some errors |
2022-04-19 04:18:09 +0200 | <EvanR> | I would believe that for something like inverse sine function |
2022-04-19 04:18:13 +0200 | <abastro> | While it is true that you could have it represent specific number, it is never meant to be used like that. |
2022-04-19 04:18:19 +0200 | deadmarshal_ | (~deadmarsh@95.38.228.226) (Ping timeout: 240 seconds) |
2022-04-19 04:18:42 +0200 | <EvanR> | yeah, you describe it as a sort of random function |
2022-04-19 04:18:51 +0200 | <EvanR> | I don't like that picture |
2022-04-19 04:18:51 +0200 | <Axman6> | abastro: I think you are missing the problem EvanR is having |
2022-04-19 04:18:54 +0200 | <abastro> | I did not say random function |
2022-04-19 04:19:09 +0200 | <abastro> | I mean, I did not mean it as a random function |
2022-04-19 04:19:20 +0200 | <EvanR> | we're not even doing a computation here, just talking about the value |
2022-04-19 04:19:23 +0200 | <abastro> | Rather, it is not supposed to be used without consideration for the calculation errors. |
2022-04-19 04:19:24 +0200 | <EvanR> | > decodeFloat 3.14 |
2022-04-19 04:19:26 +0200 | <lambdabot> | (7070651414971679,-51) |
2022-04-19 04:19:40 +0200 | <EvanR> | after parsing that is the value |
2022-04-19 04:19:45 +0200 | <Axman6> | abastro: EvanRis trying to see what the errors are |
2022-04-19 04:19:51 +0200 | <abastro> | Converting (3.14 :: Float) to Double is computation |
2022-04-19 04:20:02 +0200 | <EvanR> | that's not on topic |
2022-04-19 04:20:13 +0200 | <EvanR> | it's "3.14" to Double, or Float |
2022-04-19 04:20:18 +0200 | <EvanR> | and back |
2022-04-19 04:21:18 +0200 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 276 seconds) |
2022-04-19 04:21:20 +0200 | <abastro> | Well, why would that represent the exact number of (3.14 :: Float) |
2022-04-19 04:21:25 +0200 | <Axman6> | I swear bos has a package for past parsing/rendering of ieee-754 doubles and floats |
2022-04-19 04:21:34 +0200 | <Axman6> | it doesn't, and that's the point abastro |
2022-04-19 04:21:47 +0200 | <EvanR> | the longer decimal expansion is the exact value |
2022-04-19 04:21:48 +0200 | <abastro> | I mean, why do you want that behavior? |
2022-04-19 04:21:57 +0200 | <abastro> | Duh, what is this "exact" thing |
2022-04-19 04:21:59 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-04-19 04:22:02 +0200 | <EvanR> | you would want that to compare to the approximation |
2022-04-19 04:22:11 +0200 | <Axman6> | the string "3.14" is parsed into some specific Float value, and EvanR is trying to see exactly whatch float value it is, including the error in the parsing |
2022-04-19 04:22:15 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
2022-04-19 04:22:34 +0200 | <abastro> | You want to print "3.14 :: Float" to find the error? |
2022-04-19 04:22:35 +0200 | <abastro> | What? |
2022-04-19 04:22:39 +0200 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 240 seconds) |
2022-04-19 04:22:46 +0200 | <EvanR> | I'm very surprised to see all those zeros, which is usually how you express increased precision |
2022-04-19 04:23:01 +0200 | <EvanR> | which in this case shows the wrong value |
2022-04-19 04:23:24 +0200 | <abastro> | That's because it isn't supposed to be for that purpose |
2022-04-19 04:23:40 +0200 | abastro | (~abab9579@220.75.216.63) (Remote host closed the connection) |
2022-04-19 04:23:52 +0200 | <EvanR> | in any case it can't be used for that purpose, but I could have sworn it acted differently before |
2022-04-19 04:23:58 +0200 | <Axman6> | fucksake, abastro if you don't undertstand the problem, stop commenting on it, you're negatively contributing to this discussion at this piont |
2022-04-19 04:24:14 +0200 | abastro | (~abab9579@220.75.216.63) |
2022-04-19 04:24:27 +0200 | <EvanR> | like, to display the digits, you just need a division algorithm and not a real number library |
2022-04-19 04:24:29 +0200 | <abastro[m]> | What |
2022-04-19 04:24:53 +0200 | <abastro> | Like, whining about something that is not supposed to be working as you suggest is okay then? |
2022-04-19 04:25:45 +0200 | <EvanR> | at least I confirmed showFFloat is "supposed" to act like this, which I'll call "wrong" for the sake of argument xD |
2022-04-19 04:25:47 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-04-19 04:26:18 +0200 | <Axman6> | let me try to spell it out for you again: The string "3.14" is parsed into _some_ Float value, whose actual value is 3.140000104904175. EvanR is trying to print out that actual value to see what the error is from the idealised 3.14 which cannot be represented in a Float. do you understand? |
2022-04-19 04:26:26 +0200 | <abastro> | .... |
2022-04-19 04:26:39 +0200 | <abastro> | The printing isn't just for that. |
2022-04-19 04:27:20 +0200 | <Axman6> | what are you talking about? |
2022-04-19 04:28:12 +0200 | <Axman6> | % import Data.Double.Conversion.Text |
2022-04-19 04:28:12 +0200 | <yahb> | Axman6: ; <no location info>: error:; Could not find module `Data.Double.Conversion.Text'; It is not a module in the current program, or in any known package. |
2022-04-19 04:28:15 +0200 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 256 seconds) |
2022-04-19 04:28:16 +0200 | <EvanR> | up to this point I would have said printing is for seeing the value |
2022-04-19 04:28:36 +0200 | <Axman6> | Are you able to test what https://hackage.haskell.org/package/double-conversion-2.0.4.1/docs/Data-Double-Conversion-Text.html does? |
2022-04-19 04:28:59 +0200 | <EvanR> | alright hold my beer |
2022-04-19 04:30:15 +0200 | travisb_ | tabemann |
2022-04-19 04:30:50 +0200 | deadmarshal_ | (~deadmarsh@95.38.228.226) |
2022-04-19 04:30:50 +0200 | <abastro> | Showing as string is for giving rough representation |
2022-04-19 04:31:11 +0200 | <abastro> | Exact value is more the implementation detail anyway |
2022-04-19 04:31:16 +0200 | <EvanR> | Data.Double.Conversion.Text> toFixed 100 3.14 |
2022-04-19 04:31:16 +0200 | <EvanR> | "*** Exception: Data.Double.Conversion.Text.toFixed: conversion failed (invalid precision requested) |
2022-04-19 04:31:18 +0200 | <EvanR> | xD |
2022-04-19 04:31:41 +0200 | <Axman6> | abastro: and it's exactly the details that EvanR is trying to find out. how hard is that to understand? |
2022-04-19 04:32:12 +0200 | <EvanR> | *Main Data.Double.Conversion.Text> toFixed 30 3.14 => "3.140000000000000124344978758018" |
2022-04-19 04:32:24 +0200 | <abastro> | Then just do not use the showFFloat lol |
2022-04-19 04:32:30 +0200 | <abastro> | It isn't for the purpose |
2022-04-19 04:32:36 +0200 | <Axman6> | you absolutely should not treat your numeric types as black boxes which produce unpredictable results, you should be able to find out what the errors are and categorise them |
2022-04-19 04:32:43 +0200 | <abastro> | Lol |
2022-04-19 04:32:54 +0200 | <Axman6> | jesus chrtist, that's literally the whole point of this conversation |
2022-04-19 04:33:06 +0200 | <EvanR> | yeah as a wise man once said "I like to understand my code" or something |
2022-04-19 04:33:10 +0200 | <abastro> | I guess that aligns with your point about storing literal utf-8 bitstream |
2022-04-19 04:33:42 +0200 | <abastro> | Well, the "I like to understand" could go the way of "I want to understand what a transistor does when I run this program" |
2022-04-19 04:33:44 +0200 | <Axman6> | EvanR: glag double-conversion worked for you, and good to know it can be used for that |
2022-04-19 04:33:47 +0200 | <Axman6> | glad* |
2022-04-19 04:34:14 +0200 | <EvanR> | it doesn't go up to 100 though |
2022-04-19 04:34:25 +0200 | <EvanR> | which you might need in order to see the repeating decimals |
2022-04-19 04:35:14 +0200 | <EvanR> | there's probably a slick one liner that gives the decimal expansion |
2022-04-19 04:35:23 +0200 | <sm> | EvanR: how about using Decimal instead ? |
2022-04-19 04:35:36 +0200 | <EvanR> | yeah if the goal was to use literal 3.14 |
2022-04-19 04:35:59 +0200 | <EvanR> | I was curious about the float |
2022-04-19 04:36:12 +0200 | <sm> | ah |
2022-04-19 04:36:14 +0200 | <Axman6> | abastro: a word of advice: Whenever you think that the answer to someone's question should begin with "Just do X", that is a good time to stop and think whether you actually understand the question. When someone tells you you don't understand the question is an even better time to have that thought |
2022-04-19 04:36:17 +0200 | <abastro> | Anyway, this is quite a niche usage so it was not implemented |
2022-04-19 04:36:32 +0200 | <abastro> | Why do you think I do not understand lol |
2022-04-19 04:36:47 +0200 | <abastro> | I am saying that it is not implemented this way for a reason |
2022-04-19 04:36:54 +0200 | <EvanR> | yeah we should stick to mainstream usage of Haskell |
2022-04-19 04:36:55 +0200 | <Axman6> | the overwhelming torrent of evidence from the last half an hour showing that was the case? |
2022-04-19 04:36:57 +0200 | <abastro> | And what you are doing is just whining |
2022-04-19 04:37:23 +0200 | <abastro> | Bunch of whines |
2022-04-19 04:37:45 +0200 | <EvanR> | arnold sound board from the late 90s "STOP WHINING" |
2022-04-19 04:37:51 +0200 | <abastro> | ... |
2022-04-19 04:38:01 +0200 | <sm> | can we agree to disagree on this |
2022-04-19 04:38:35 +0200 | <Axman6> | I literally just one hour ago fixed a very closely related bug in our financial system because of knowing about problems like this. This is a system which will handle hundreds of millions of dollars of financial transactions per day. this shit matters. just because you don't think it does doesn't mean it doesn't |
2022-04-19 04:38:48 +0200 | <EvanR> | end of the day, showFFloat is doing something more akin to toShortest which is oddly described as "Compute the shortest string of digits that correct represent the input number" |
2022-04-19 04:39:08 +0200 | <abastro> | ...well why are you using floating point number for financial system at all... |
2022-04-19 04:39:37 +0200 | <EvanR> | if your money is made of base 2 fractions then you're good |
2022-04-19 04:39:41 +0200 | <abastro> | Fixed precision numbers are for that precise reason, isn't it.. |
2022-04-19 04:39:57 +0200 | <Axman6> | no |
2022-04-19 04:40:09 +0200 | <abastro> | The point you get into floating point number with financials, you are asking for trouble |
2022-04-19 04:40:20 +0200 | <Axman6> | and I'm not using floating point numbers, at least not IEEE-754 oves |
2022-04-19 04:40:35 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
2022-04-19 04:40:42 +0200 | <abastro> | Yea, I mean then that one is rather orthogonal issue. |
2022-04-19 04:41:27 +0200 | <Axman6> | that's why we're using Scala/Java's BigDecimal. there's possibly as better representation for this computation but this one works for all values we care about |
2022-04-19 04:41:36 +0200 | <EvanR> | earlier I was testing my game algorithm using rational numbers, then went to store them in sqlite and it went no |
2022-04-19 04:41:47 +0200 | <sm> | just no ? |
2022-04-19 04:41:50 +0200 | <EvanR> | haha |
2022-04-19 04:41:56 +0200 | <Axman6> | and our contract language, Daml, doesn't even have floats or doubles |
2022-04-19 04:41:57 +0200 | <EvanR> | more like, they don't have a rational number |
2022-04-19 04:42:07 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-04-19 04:42:13 +0200 | <abastro> | Yea, those issues are orthogonal to floating point numbers |
2022-04-19 04:42:32 +0200 | <Axman6> | sm: SQLite comes with JSON extensions by default now, just store them as an array of integers :P |
2022-04-19 04:42:37 +0200 | <abastro> | Well, I mean, the most uses of floating point numbers other than where precision doesn't matter is for physical simulations and such |
2022-04-19 04:42:59 +0200 | <Axman6> | except they aren't orthogonal, because the order of operations caused precision to be lost in computations |
2022-04-19 04:43:04 +0200 | <abastro> | And for physical simulations, you ALWAYS have to consider the error - and well, you won't calculate the deviation from precise value |
2022-04-19 04:43:07 +0200 | <EvanR> | you certainly need to know how accurate your physics simulation is |
2022-04-19 04:43:34 +0200 | <abastro> | This is not the way you would check the accuracy of physics simulation, btw |
2022-04-19 04:43:52 +0200 | <abastro> | It should rather be theoretically modelled without computing at runtime |
2022-04-19 04:43:57 +0200 | <EvanR> | you could check steps against the same steps using real numbers |
2022-04-19 04:44:07 +0200 | <EvanR> | just to see |
2022-04-19 04:44:15 +0200 | <abastro> | I mean, with BigDecimals and such, the logic should be completely different |
2022-04-19 04:44:30 +0200 | <EvanR> | exact real arithmetic is pretty snazzy |
2022-04-19 04:44:40 +0200 | <abastro> | Evan, that is not how physics simulation work in those labs I've been to |
2022-04-19 04:45:16 +0200 | <abastro> | Well many of them do consider the IEEE floats as a bit of black box, some doesn't but does not calculate those numbers in runtime anyway. |
2022-04-19 04:45:42 +0200 | <abastro> | They always consider the error ranges which are taken into account when they run the simulations. |
2022-04-19 04:45:46 +0200 | <abastro> | I mean |
2022-04-19 04:45:51 +0200 | <abastro> | When they design* the simulations |
2022-04-19 04:45:54 +0200 | <EvanR> | they're certainly not a black hole or black box |
2022-04-19 04:46:08 +0200 | <EvanR> | which was the entire point of having standards |
2022-04-19 04:46:16 +0200 | <abastro> | That is why I mentioned that some don't treat them as a black box |
2022-04-19 04:46:46 +0200 | <abastro> | That doesn't mean they check the exact value stored |
2022-04-19 04:47:11 +0200 | <abastro> | Also there are better ways to see exact values stored, you can get the fraction |
2022-04-19 04:47:15 +0200 | <EvanR> | don't ask don't tell, but for floats |
2022-04-19 04:47:16 +0200 | <Axman6> | I see you still don't understand what thew problem was -_- |
2022-04-19 04:47:18 +0200 | <abastro> | You don't need to convert them to strings |
2022-04-19 04:48:05 +0200 | <abastro> | I simply mean that you are trying to use `showFFloat` for wrong purpose |
2022-04-19 04:48:18 +0200 | <Axman6> | > (7070651414971679 / 2^51 :: CReal, (7070651414971679 - 1) / 2^51 :: CReal) |
2022-04-19 04:48:20 +0200 | <lambdabot> | (3.1400000000000001243449787580175325274467,3.139999999999999680255768907954... |
2022-04-19 04:48:22 +0200 | <abastro> | And possibly even misunderstanding floating point numbers, as everyone does |
2022-04-19 04:48:42 +0200 | <sm> | Axman6: is Daml your company's main product ? are there customers yet ? |
2022-04-19 04:51:01 +0200 | <Axman6> | I'm contracted to Digital Asset, so not technically "my company", but I'm not sure if I'd describe it as the main product - they've developed several large systems for various clients, but using Daml. I gues the language could be considered the secret sauce in some sense |
2022-04-19 04:51:41 +0200 | <Axman6> | https://www.digitalasset.com/customer-stories lists some of the projects they have built, including the project I'm on |
2022-04-19 04:52:26 +0200 | <EvanR> | you're using haskell? |
2022-04-19 04:52:38 +0200 | <EvanR> | (please say yes) |
2022-04-19 04:52:47 +0200 | <abastro> | I won't claim I understand floating point numbers as well, I just think everyone misunderstands them in a way or the other. I just mean that whining for some behavior where one behavior is clear-cut better is not great |
2022-04-19 04:52:58 +0200 | <abastro> | Lol who would use haskell for that purpose |
2022-04-19 04:53:05 +0200 | <Axman6> | I genuinelt think that Daml is a super interesting point in the space of contract languages though, it solves a lot of problems which others seem to be less interested in (the concept of what information is visible to which parties is a core concept in the language) |
2022-04-19 04:53:10 +0200 | <sm> | abastro, please stop accusing folks of whining, let's move on |
2022-04-19 04:53:20 +0200 | <abastro> | Well okaya |
2022-04-19 04:53:28 +0200 | <abastro> | s/okaya/okay |
2022-04-19 04:53:38 +0200 | <sm> | thank you :) |
2022-04-19 04:54:23 +0200 | <Axman6> | EvanR: The currently Daml imprlmentation is built on top of GHC, and it basically feels like Haskell++; several useful extensions are enabled by default, and it has some syntax additions for the contract specific stuff (which any haskell developer would immediately see through the veneer to the code that gets generated) |
2022-04-19 04:54:32 +0200 | <abastro> | Imagine building on haskell lol |
2022-04-19 04:54:47 +0200 | <sm> | Axman6: how does it compare to plutus , marlowe etc. ? |
2022-04-19 04:54:59 +0200 | <abastro> | Which is for now an unstable research language (which might change later but eh) |
2022-04-19 04:55:01 +0200 | <Axman6> | I'm not familliar enough with those to comment |
2022-04-19 04:55:42 +0200 | <sm> | Haskell++, sounds more complex than those then. Perhaps more for analysis than implementing contracts ? |
2022-04-19 04:56:32 +0200 | RevoGen | (~RevoGen@laptop-grs098eo.bc.edu) (Remote host closed the connection) |
2022-04-19 04:56:41 +0200 | <sm> | and sorry if it's all spelled out on this fine page, the field is a bit confusing |
2022-04-19 04:56:42 +0200 | <EvanR> | this is like the 4th or 5th thing I heard of that hijacks GHC for their own nefarious purposes, must be pretty feasible to do such things xD |
2022-04-19 04:56:50 +0200 | RevoGen | (~RevoGen@laptop-grs098eo.bc.edu) |
2022-04-19 04:57:09 +0200 | <Axman6> | It's literally a strict (as in not lazy) Haskell dialect, with some syntactic features added to the parser. It's definitely aimes at writing applications more than the relatively small contracts that most smart contract languages seem to target |
2022-04-19 04:57:46 +0200 | <Axman6> | I'd definitely recommend going through the Daml tutorial, I had a lot of fun doing it. |
2022-04-19 04:57:47 +0200 | <sm> | I see.. intended to run off chain, then ? |
2022-04-19 04:58:46 +0200 | <Axman6> | So, Daml is aimed at being ledger agnostic, it isn't written for a specific blockchain, and in fact their Canton system allows you to bridge multiple ledgers together |
2022-04-19 04:59:05 +0200 | <sm> | "Daml empowers developers to build, deploy, and run multi-party applications on a distributed ledger in days" |
2022-04-19 04:59:26 +0200 | <Axman6> | ignore the businessese =) |
2022-04-19 04:59:43 +0200 | <sm> | this is actually the clearest thing I've read so far :) |
2022-04-19 05:00:13 +0200 | <sm> | your comments excluded of course. Cool, thanks for the info |
2022-04-19 05:02:09 +0200 | <Axman6> | the videos on https://www.digitalasset.com/developers/learn should be more developer oriented. I honestly found doing the Daml tutorial was the easiest way to get a good idea of what it's all about. There's anice talk somewhere about how a doctor's office could use the Daml to facilitate payment for medical procedures involving the patient's insurance, their bank, etc. while maintain privacy of the medical data from the parties who don't need to know it |
2022-04-19 05:05:55 +0200 | kaph__ | (~kaph@bo-18-157-187.service.infuturo.it) |
2022-04-19 05:05:56 +0200 | <sm> | I found my way to https://docs.daml.com and https://www.digitalasset.com/developers/examples > Applications and Libraries |
2022-04-19 05:06:26 +0200 | <sm> | is there any publicly-visible real world application you know of ? |
2022-04-19 05:07:13 +0200 | <sm> | maybe some of these are |
2022-04-19 05:07:20 +0200 | <Axman6> | I'm not sure, being a contractor I don't see much of what goes on in the rest of the company |
2022-04-19 05:08:10 +0200 | kaph_ | (~kaph@151.43.109.170) (Ping timeout: 246 seconds) |
2022-04-19 05:08:24 +0200 | <Axman6> | trying to see if anyone has a good video introduction though |
2022-04-19 05:08:52 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::85f6) (Ping timeout: 250 seconds) |
2022-04-19 05:08:59 +0200 | abastro | (~abab9579@220.75.216.63) (Remote host closed the connection) |
2022-04-19 05:10:06 +0200 | abastro | (~abab9579@220.75.216.63) |
2022-04-19 05:10:21 +0200 | <Axman6> | I wouldn't recommend jumping into applications without understanding the basics though, the whole template/contract/choice, consuming choices, disclosure etc are pretty new concepts and the example code won't make sense without understand what they mean |
2022-04-19 05:10:29 +0200 | abastro | (~abab9579@220.75.216.63) (Remote host closed the connection) |
2022-04-19 05:10:42 +0200 | <sm> | I guess these are like simple (mostly) web apps, but distributed across multiple users, machines, and possibly blockchains, yet relatively easy to build with some correctness guarantees because of Daml |
2022-04-19 05:12:01 +0200 | abastro | (~abab9579@220.75.216.63) |
2022-04-19 05:12:03 +0200 | <Axman6> | they might have web apps, but Daml is mostly agnostic of that. We use Scala (sadly) to turn the handle, so to speak. you need something external putting data into the system to actually have the application "run" |
2022-04-19 05:13:49 +0200 | <Axman6> | I've been recommended https://www.youtube.com/watch?v=AGxt4yQceXA (dev focused) and https://www.youtube.com/watch?v=ztFPc6GOtlE (higher level) |
2022-04-19 05:14:24 +0200 | mbuf | (~Shakthi@136.185.79.70) |
2022-04-19 05:14:52 +0200 | <Axman6> | There are some subtlties to the contract model that have some really big ramifications in how you design things, which can complicate designs a bit, but the result is much more robust |
2022-04-19 05:15:27 +0200 | <sm> | thanks, I just was taking a shot at understanding more of what this is without having to watch a video or do a tutorial |
2022-04-19 05:17:32 +0200 | <sm> | my attention span vs their technical writing :) |
2022-04-19 05:19:28 +0200 | abastro | (~abab9579@220.75.216.63) (Remote host closed the connection) |
2022-04-19 05:21:17 +0200 | tvandinther | (~tvandinth@2406:e002:6815:1801:2c95:5009:a36c:8152) |
2022-04-19 05:22:07 +0200 | <tvandinther> | Hi all. I am just starting out with Haskell, and I am trying to set up an IDE to work with it. I have tried following various guides online to setting things up but they're all either incomplete or outdated. Are there any up-to-date and complete guides you can recommend to get me set up with a good integrated environment? I'd prefer to use IntelliJ |
2022-04-19 05:22:07 +0200 | <tvandinther> | or Atom as the editor. |
2022-04-19 05:23:24 +0200 | <glguy> | tvandinther: the easiest to get working is vscode |
2022-04-19 05:24:35 +0200 | <tvandinther> | Does that have an integrated repl? |
2022-04-19 05:27:11 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2022-04-19 05:27:37 +0200 | inversed_ | (~inversed@94.13.111.159) |
2022-04-19 05:27:50 +0200 | inversed | (~inversed@94.13.111.159) (Ping timeout: 272 seconds) |
2022-04-19 05:28:23 +0200 | <Axman6> | it has an integrated terminal which can run ghci, is there anything you need beyond that? |
2022-04-19 05:28:28 +0200 | <glguy> | The repl gets started with the 'cabal repl' command. vscode has embedded terminal windows, that part doesn't have much to do with editor integration |
2022-04-19 05:29:32 +0200 | <glguy> | I've also got vim+coc+hls working; that wasn't too hard |
2022-04-19 05:30:15 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
2022-04-19 05:30:21 +0200 | <tvandinther> | Cool, I can give it a go setting up VSCode, which extensions will I need? (I currently also have Stack installed) |
2022-04-19 05:30:23 +0200 | <Axman6> | VS code is definitely the way to go though if you're not a vim or emacs user, that's where most of the effort has gone with Haskell Language Server's integration, because it's definitely become the most popular IDE to work with Haskell on in the last few years |
2022-04-19 05:31:08 +0200 | <Axman6> | tvandinther: I would recommend going wiht using ghcup to manage GHC installs and haskell language server (this will be the default with the next version of the Haskell plugin for VS Code luckily) |
2022-04-19 05:31:09 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 256 seconds) |
2022-04-19 05:31:28 +0200 | <Axman6> | you can use ghcup to install and manage stack too |
2022-04-19 05:32:08 +0200 | <tvandinther> | So I understand it, is GHCup a similar tool to something like NVM for node.js? |
2022-04-19 05:33:10 +0200 | <Axman6> | I'm not sure what NVM does, but it's a tool that manages GHC installations, as well as cabal-install (haskell package manager command), hls (the haskell language server for VS code etc.), stack, etc. |
2022-04-19 05:33:24 +0200 | <Axman6> | it makes switching between compilers really easy, which sometimes you'll need to do |
2022-04-19 05:33:44 +0200 | <tvandinther> | cool, yeah sounds useful. I'll install it now |
2022-04-19 05:33:53 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-04-19 05:34:06 +0200 | <Axman6> | https://www.haskell.org/ghcup/ |
2022-04-19 05:35:16 +0200 | <Axman6> | you can do it with out the curl | sh if you prefer (I would do curl > install.sh; less install.sh, and then sh install.sh personally) |
2022-04-19 05:39:31 +0200 | <tvandinther> | alright, I got ghcup installed on WSL2 |
2022-04-19 05:40:15 +0200 | <Axman6> | nice - WSL should work ok, but be warned that development on windows can be a bit harder than *nix system. I think WSL should be fine though |
2022-04-19 05:41:18 +0200 | <tvandinther> | Yeah hopefully. Only issues I've seemed to have with it is IDE integration from a windows installation across to tools installed on WSL. But VS Code supposedly has that sorted. |
2022-04-19 05:41:27 +0200 | <tvandinther> | What's the next step? |
2022-04-19 05:41:41 +0200 | <Axman6> | fire up VS code, install the Haskell plugin |
2022-04-19 05:43:13 +0200 | <tvandinther> | Cool, got that now. |
2022-04-19 05:44:39 +0200 | <Axman6> | not sure what the best next step is - possible running `stack new MyNewProject simple` somewhere you want your code to be, then opening that folder in VS code (you can also use `cabal init -i` to make a cabal project without stack) |
2022-04-19 05:46:46 +0200 | <tvandinther> | Looks good. I guess from here my main 2 questions are 1) How do I run this from the VS Code as opposed to using the command line, and 2) How do I open a REPL terminal which loads my current project |
2022-04-19 05:47:06 +0200 | <Axman6> | once you have a haskell project, opening a .hs file should let you hover over things and get their types, and I think ctrl clicking (or something, I don't use windows) should take you to definitions if they're in your project |
2022-04-19 05:47:57 +0200 | <Axman6> | I don't think there's any integration that makes a new Haskell project in VS Code itself (would be a good plugin feature request). |
2022-04-19 05:48:34 +0200 | <Axman6> | I usually just use the built in terminal and run cabal repl. for stack it would be stack repl I think. Stack might have the ability to reload on save too, I can't remember |
2022-04-19 05:49:28 +0200 | <tvandinther> | ok yeah I see. So once I'm in the cabal repl, any time I save a file, the REPL will reload that file into it? |
2022-04-19 05:49:51 +0200 | <Axman6> | no |
2022-04-19 05:50:02 +0200 | <maerwald[m]> | tvandinther: https://www.haskell.org/ghcup/steps/ |
2022-04-19 05:50:13 +0200 | <maerwald[m]> | There is an introduction |
2022-04-19 05:50:22 +0200 | <Axman6> | maerwald[m]++ |
2022-04-19 05:50:29 +0200 | <Axman6> | maerwald++ |
2022-04-19 05:50:43 +0200 | <Axman6> | (just to make sure lambdabot's karma goes to the right place!) |
2022-04-19 05:51:07 +0200 | <tvandinther> | Thank you for that link |
2022-04-19 05:51:33 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-04-19 05:51:40 +0200 | <Axman6> | definitely a better idea to read all the docs than listen to me :P |
2022-04-19 05:51:59 +0200 | renzhi | (~xp@2607:fa49:6500:b100::229c) (Ping timeout: 240 seconds) |
2022-04-19 05:52:08 +0200 | <tvandinther> | So as far as IDE features go with VS Code, it's just the syntax highlighting and type information. The rest of the workflow is done through the terminal, is that correct? |
2022-04-19 05:52:16 +0200 | <tvandinther> | You've been very helpful |
2022-04-19 05:52:43 +0200 | <Axman6> | Haskell language server does a lot more than that, it runs hlint for you to give hints, and it can even write your code for you |
2022-04-19 05:54:14 +0200 | <Axman6> | https://haskell-language-server.readthedocs.io/en/latest/features.html covers them |
2022-04-19 05:54:16 +0200 | <tvandinther> | Nice, I suppose if nothing else needs configuration I will just have a play with what I've got here. |
2022-04-19 05:58:33 +0200 | RevoGen | (~RevoGen@laptop-grs098eo.bc.edu) (Remote host closed the connection) |
2022-04-19 05:58:50 +0200 | RevoGen | (~RevoGen@laptop-grs098eo.bc.edu) |
2022-04-19 05:59:09 +0200 | <Axman6> | tvandinther: if you've got it working, feel free to stick around and ask questions |
2022-04-19 06:00:22 +0200 | <tvandinther> | Thanks for the help Axman. I will certainly drop any questions that I am stuck with. For now I'm quite new that I'll go through some of the exercises on exercism.org and read through learnyouahaskell.com |
2022-04-19 06:00:39 +0200 | <tvandinther> | I'm very new to functional programming :) |
2022-04-19 06:00:39 +0200 | <Axman6> | good plan |
2022-04-19 06:01:30 +0200 | <Axman6> | have fun learning how to write the fibonacci sequence in many different ways! |
2022-04-19 06:01:55 +0200 | <tvandinther> | I look forward to having difficulty with fizzbuzz once again. |
2022-04-19 06:02:12 +0200 | <tvandinther> | Although tbh, haskell makes that one look easy with pattern matched function bodies |
2022-04-19 06:03:21 +0200 | <zzz> | tvandinther: you should watch this https://www.youtube.com/watch?v=VUhlNx_-wYk |
2022-04-19 06:04:33 +0200 | cdman | (~dcm@27.2.217.111) |
2022-04-19 06:04:33 +0200 | cdman | (~dcm@27.2.217.111) (Changing host) |
2022-04-19 06:04:33 +0200 | cdman | (~dcm@user/dmc/x-4369397) |
2022-04-19 06:04:59 +0200 | cdman | (~dcm@user/dmc/x-4369397) (Client Quit) |
2022-04-19 06:05:54 +0200 | Axman6 | is reminded of http://www.willamette.edu/~fruehr/haskell/evolution.html |
2022-04-19 06:06:00 +0200 | cdman | (~dcm@27.2.217.111) |
2022-04-19 06:06:00 +0200 | cdman | (~dcm@27.2.217.111) (Changing host) |
2022-04-19 06:06:00 +0200 | cdman | (~dcm@user/dmc/x-4369397) |
2022-04-19 06:11:32 +0200 | benin | (~benin@183.82.204.110) |
2022-04-19 06:11:56 +0200 | <zzz> | i hadn't thought of that one since i couldn't understand most of it |
2022-04-19 06:12:11 +0200 | <zzz> | nice throwback |
2022-04-19 06:14:00 +0200 | Macbethwin | (~chargen@D964062A.static.ziggozakelijk.nl) (Remote host closed the connection) |
2022-04-19 06:14:00 +0200 | chargen | (~chargen@D964062A.static.ziggozakelijk.nl) (Remote host closed the connection) |
2022-04-19 06:14:19 +0200 | Macbethwin | (~chargen@D964062A.static.ziggozakelijk.nl) |
2022-04-19 06:14:20 +0200 | chargen | (~chargen@D964062A.static.ziggozakelijk.nl) |
2022-04-19 06:14:55 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
2022-04-19 06:15:37 +0200 | <Axman6> | I haven't watched all that video... but is it going to just be lambda calculus in Ruby? |
2022-04-19 06:17:09 +0200 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
2022-04-19 06:18:18 +0200 | motherfsck | (~motherfsc@user/motherfsck) (Ping timeout: 276 seconds) |
2022-04-19 06:19:38 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-04-19 06:22:02 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-04-19 06:24:27 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2022-04-19 06:24:34 +0200 | <tvandinther> | Should the syntax highlighting in vs code differentiate functions from values? Although I know technically functions can be values but I'm getting a lot of white text which is a little hard to differentiate |
2022-04-19 06:25:10 +0200 | <tvandinther> | to be more precise, differentiating functions from the parameters |
2022-04-19 06:33:04 +0200 | motherfsck | (~motherfsc@user/motherfsck) |
2022-04-19 06:36:09 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2022-04-19 06:40:33 +0200 | motherfsck | (~motherfsc@user/motherfsck) (Quit: quit) |
2022-04-19 06:48:53 +0200 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2022-04-19 06:52:06 +0200 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 276 seconds) |
2022-04-19 07:11:08 +0200 | <tvandinther> | How do I use the `fromListWith` function? It says it is out of scope but I am unsure how to import it |
2022-04-19 07:13:08 +0200 | <tvandinther> | I want the one from the map module |
2022-04-19 07:14:32 +0200 | <Cale> | tvandinther: It would probably be good if it distinguished the value being defined from other variables, regardless of whether it was a function. |
2022-04-19 07:14:47 +0200 | cdman | (~dcm@user/dmc/x-4369397) (Remote host closed the connection) |
2022-04-19 07:15:20 +0200 | cdman | (~dcm@27.2.217.111) |
2022-04-19 07:15:20 +0200 | cdman | (~dcm@27.2.217.111) (Changing host) |
2022-04-19 07:15:20 +0200 | cdman | (~dcm@user/dmc/x-4369397) |
2022-04-19 07:15:54 +0200 | <Cale> | import Data.Map qualified as Map |
2022-04-19 07:16:02 +0200 | <Cale> | Map.fromListWith ... |
2022-04-19 07:16:09 +0200 | <Cale> | oops |
2022-04-19 07:16:16 +0200 | <Cale> | import qualified Data.Map as Map |
2022-04-19 07:18:22 +0200 | <Cale> | You may alongside that want to also have an import like import Data.Map (Map) so that you don't have to qualify Map in types. |
2022-04-19 07:19:52 +0200 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2022-04-19 07:24:50 +0200 | chargen | (~chargen@D964062A.static.ziggozakelijk.nl) (Remote host closed the connection) |
2022-04-19 07:25:10 +0200 | chargen | (~chargen@D964062A.static.ziggozakelijk.nl) |
2022-04-19 07:35:19 +0200 | Guest34 | (~Guest34@176.122.87.241) |
2022-04-19 07:35:31 +0200 | Guest34 | (~Guest34@176.122.87.241) (Client Quit) |
2022-04-19 07:36:25 +0200 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
2022-04-19 07:38:42 +0200 | hgolden | (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection) |
2022-04-19 07:40:13 +0200 | hgolden | (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) |
2022-04-19 07:42:31 +0200 | Me-me | (~me-me@user/me-me) (Ping timeout: 246 seconds) |
2022-04-19 07:43:17 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2022-04-19 07:44:48 +0200 | Me-me | (~me-me@tunnel690570-pt.tunnel.tserv12.mia1.ipv6.he.net) |
2022-04-19 07:45:19 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2022-04-19 07:45:48 +0200 | motherfsck | (~motherfsc@user/motherfsck) |
2022-04-19 07:45:49 +0200 | chargen | (~chargen@D964062A.static.ziggozakelijk.nl) (Quit: Leaving) |
2022-04-19 07:47:12 +0200 | Macbethwin | (~chargen@D964062A.static.ziggozakelijk.nl) (Quit: Leaving) |
2022-04-19 07:47:42 +0200 | Maxdamantus | (~Maxdamant@user/maxdamantus) |
2022-04-19 07:49:03 +0200 | hgolden | (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection) |
2022-04-19 07:49:26 +0200 | odnes | (~odnes@5-203-240-200.pat.nym.cosmote.net) |
2022-04-19 07:56:17 +0200 | Me-me | (~me-me@tunnel690570-pt.tunnel.tserv12.mia1.ipv6.he.net) (Changing host) |
2022-04-19 07:56:17 +0200 | Me-me | (~me-me@user/me-me) |
2022-04-19 07:59:47 +0200 | hgolden | (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) |
2022-04-19 08:03:47 +0200 | yauhsien | (~yauhsien@61-231-24-129.dynamic-ip.hinet.net) |
2022-04-19 08:06:41 +0200 | jerry99 | (~330f3e76@cerf.good1.com) (Quit: CGI:IRC (Session timeout)) |
2022-04-19 08:07:04 +0200 | statusbot | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Remote host closed the connection) |
2022-04-19 08:07:19 +0200 | statusbot | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) |
2022-04-19 08:08:48 +0200 | yauhsien | (~yauhsien@61-231-24-129.dynamic-ip.hinet.net) (Ping timeout: 276 seconds) |
2022-04-19 08:09:19 +0200 | mikoto-chan | (~mikoto-ch@213.177.151.239) |
2022-04-19 08:12:54 +0200 | phma_ | (phma@2001:5b0:215a:e258:fc67:1fe1:f22e:6962) |
2022-04-19 08:14:03 +0200 | phma | (~phma@host-67-44-208-158.hnremote.net) (Read error: Connection reset by peer) |
2022-04-19 08:15:04 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Quit: Lost terminal) |
2022-04-19 08:18:13 +0200 | dwt_ | (~dwt_@c-98-198-103-176.hsd1.tx.comcast.net) (Ping timeout: 246 seconds) |
2022-04-19 08:20:48 +0200 | dwt_ | (~dwt_@c-98-198-103-176.hsd1.tx.comcast.net) |
2022-04-19 08:23:45 +0200 | mikoto-chan | (~mikoto-ch@213.177.151.239) (Ping timeout: 276 seconds) |
2022-04-19 08:24:05 +0200 | _ht | (~quassel@231-169-21-31.ftth.glasoperator.nl) |
2022-04-19 08:27:16 +0200 | yauhsien | (~yauhsien@61-231-24-129.dynamic-ip.hinet.net) |
2022-04-19 08:33:31 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) |
2022-04-19 08:37:08 +0200 | machinedgod | (~machinedg@24.105.81.50) |
2022-04-19 08:39:14 +0200 | fendor | (~fendor@91.141.37.72.wireless.dyn.drei.com) |
2022-04-19 08:41:19 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-04-19 08:42:06 +0200 | Wstfgl0 | (~me-me@tunnel690570-pt.tunnel.tserv12.mia1.ipv6.he.net) |
2022-04-19 08:42:24 +0200 | Me-me | (~me-me@user/me-me) (Read error: Connection reset by peer) |
2022-04-19 08:42:53 +0200 | Wstfgl0 | Me-me |
2022-04-19 08:43:55 +0200 | chele | (~chele@user/chele) |
2022-04-19 08:44:50 +0200 | Me-me | (~me-me@tunnel690570-pt.tunnel.tserv12.mia1.ipv6.he.net) (Changing host) |
2022-04-19 08:44:50 +0200 | Me-me | (~me-me@user/me-me) |
2022-04-19 08:46:57 +0200 | <Axman6> | tvandinther: you might want to try switching your VS Code theme or installing new ones (through the same extensions tab you installed the Haskell plugin - see https://vscodethemes.com to easily fine ones you like). Some do a much better job than others differentiating between differents of sorts of lexemes than others - I particularly like the Monokai theme for HAskell in VS Code because it differentiated between more things than most themes |
2022-04-19 08:47:33 +0200 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
2022-04-19 08:48:31 +0200 | <Axman6> | once you have a few themes you like installed, hit ... whatever the equivalent of cmd-shift-p is, tyupe in "theme" and select Preferences: Color Theme. That'll give you a list of themes which will change as you move up and down them live so you can see what your actual code looks like |
2022-04-19 08:49:19 +0200 | kaph__ | (~kaph@bo-18-157-187.service.infuturo.it) (Ping timeout: 240 seconds) |
2022-04-19 08:50:51 +0200 | acidjnk | (~acidjnk@p200300d0c722df64b44bf627258f714f.dip0.t-ipconnect.de) |
2022-04-19 08:51:30 +0200 | akegalj | (~akegalj@93-138-136-145.adsl.net.t-com.hr) |
2022-04-19 08:52:14 +0200 | julian | (~julian@20.83.116.49) |
2022-04-19 08:56:32 +0200 | RevoGen | (~RevoGen@laptop-grs098eo.bc.edu) (Remote host closed the connection) |
2022-04-19 08:57:57 +0200 | _ht | (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection) |
2022-04-19 08:59:49 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2022-04-19 09:01:30 +0200 | Wstfgl0 | (~me-me@v.working.name) |
2022-04-19 09:01:37 +0200 | Me-me | (~me-me@user/me-me) (Read error: Connection reset by peer) |
2022-04-19 09:01:44 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:61e6:c8e5:1064:c52e) |
2022-04-19 09:03:19 +0200 | shriekingnoise | (~shrieking@201.231.16.156) (Quit: Quit) |
2022-04-19 09:03:43 +0200 | Wstfgl0 | Me-me |
2022-04-19 09:04:57 +0200 | <Axman6> | zzz: enjoying this Ruby video, even if I know everything that's going on it's still fun |
2022-04-19 09:16:18 +0200 | coot | (~coot@213.134.190.95) |
2022-04-19 09:16:22 +0200 | daniii_ | (uid550762@id-550762.ilkley.irccloud.com) () |
2022-04-19 09:17:09 +0200 | romesrf | (~romes@185.5.8.134) |
2022-04-19 09:19:35 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
2022-04-19 09:20:16 +0200 | yauhsien | (~yauhsien@61-231-24-129.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-04-19 09:20:53 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-04-19 09:22:33 +0200 | yauhsien | (~yauhsien@61-231-24-129.dynamic-ip.hinet.net) |
2022-04-19 09:24:04 +0200 | <tvandinther> | Thanks Axman6 |
2022-04-19 09:24:21 +0200 | julian | (~julian@20.83.116.49) (Remote host closed the connection) |
2022-04-19 09:25:02 +0200 | julian | (~julian@20.83.116.49) |
2022-04-19 09:27:11 +0200 | bahamas | (~lucian@84.232.140.158) |
2022-04-19 09:27:27 +0200 | yauhsien | (~yauhsien@61-231-24-129.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2022-04-19 09:29:47 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2022-04-19 09:30:24 +0200 | kaph | (~kaph@151.19.251.152) |
2022-04-19 09:30:42 +0200 | <romesrf> | o/ |
2022-04-19 09:31:11 +0200 | anomal | (~anomal@87.227.196.109) |
2022-04-19 09:32:18 +0200 | abastro | (~abab9579@220.75.216.63) |
2022-04-19 09:32:19 +0200 | <Axman6> | o/ |
2022-04-19 09:43:06 +0200 | zeenk | (~zeenk@2a02:2f04:a313:d600:8d26:ec9f:3ff6:fc94) |
2022-04-19 09:44:05 +0200 | mastarija | (~mastarija@2a05:4f46:e04:6000:2897:ab56:96f1:cca3) |
2022-04-19 09:46:37 +0200 | chomwitt | (~chomwitt@2a02:587:dc1b:da00:1339:e02b:9822:2360) |
2022-04-19 09:48:15 +0200 | yauhsien | (~yauhsien@61-231-24-129.dynamic-ip.hinet.net) |
2022-04-19 09:52:54 +0200 | michalz | (~michalz@185.246.204.61) |
2022-04-19 09:54:01 +0200 | kamyar | (~kamyar@91.184.78.171) |
2022-04-19 09:55:48 +0200 | kamyar71 | (~kamyar@91.184.78.171) |
2022-04-19 09:55:57 +0200 | <kamyar71> | Hello there |
2022-04-19 09:55:59 +0200 | <kamyar71> | please check this |
2022-04-19 09:56:00 +0200 | <kamyar71> | https://zerobin.net/?70b967b7e82b889b#jwW2a5GSS7iAHhiJuIzRtLedFfdTcdYXUtJKIDYD/rI= |
2022-04-19 09:56:13 +0200 | <kamyar71> | Help me fix the problem |
2022-04-19 09:56:28 +0200 | <kamyar71> | here: evaluate (PLAtomic p) f = f p |
2022-04-19 09:58:55 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
2022-04-19 09:59:27 +0200 | kamyar | (~kamyar@91.184.78.171) (Quit: Leaving...) |
2022-04-19 09:59:42 +0200 | <kamyar71> | Anyone can help please? |
2022-04-19 10:00:45 +0200 | phma_ | phma |
2022-04-19 10:00:53 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-04-19 10:00:59 +0200 | nahcetan | (~nate@98.45.169.16) (Read error: Connection reset by peer) |
2022-04-19 10:01:25 +0200 | <mastarija> | kamyar71, what exactly is the problem? |
2022-04-19 10:01:42 +0200 | <kamyar71> | Couldn't match expected type ‘a1’ with actual type ‘a’ |
2022-04-19 10:01:55 +0200 | nahcetan | (~nate@98.45.169.16) |
2022-04-19 10:03:26 +0200 | <mastarija> | Just a sec |
2022-04-19 10:05:47 +0200 | <mastarija> | kamyar71, your instance is too general |
2022-04-19 10:06:07 +0200 | <kamyar71> | How can I fix? |
2022-04-19 10:06:09 +0200 | hsw | (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) |
2022-04-19 10:06:10 +0200 | <mastarija> | why are you using a class instead of just implementing the evaluate function? |
2022-04-19 10:06:33 +0200 | foul_owl | (~kerry@23.82.193.87) (Ping timeout: 256 seconds) |
2022-04-19 10:06:49 +0200 | <kamyar71> | Since I want to be able to create multiple instances but with the same parts |
2022-04-19 10:07:14 +0200 | <mastarija> | I recommend you just use plain functions |
2022-04-19 10:07:24 +0200 | <kamyar71> | OK thanks letme try |
2022-04-19 10:07:27 +0200 | <mastarija> | There's no difference other than naming |
2022-04-19 10:08:19 +0200 | <mastarija> | kamyar71, https://zerobin.net/?a9aa438e3e9c81b0#cahom5dSwWuQS1GvmNAtg0w0ifXXiNVsX30/3FtR6DI= |
2022-04-19 10:09:09 +0200 | <kamyar71> | But the wanted thing is just one evaluate function |
2022-04-19 10:09:15 +0200 | <kamyar71> | there are more types like PLSentence |
2022-04-19 10:09:31 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 260 seconds) |
2022-04-19 10:10:00 +0200 | <mastarija> | For every instance you create a new function, it's just that they have the same name |
2022-04-19 10:10:08 +0200 | <mastarija> | This can cause type inference problems later |
2022-04-19 10:10:46 +0200 | <mastarija> | Anyway, in your case you had a class `class Interpretation p where evaluate :: p -> (a -> Bool) -> Bool` |
2022-04-19 10:10:46 +0200 | ccntrq | (~Thunderbi@2a01:e34:eccb:b060:b49f:b4db:d687:55bf) |
2022-04-19 10:11:32 +0200 | <mastarija> | however, you have a variable `a` in your `evaluate` type signature |
2022-04-19 10:12:54 +0200 | <mastarija> | And compiler doesn't know what that `a` is in relation to `p` so it can't match your `a` from `PLSentence a` to that `a` in `a -> Bool` |
2022-04-19 10:14:48 +0200 | <kamyar71> | Yes I know but I did not find any better way |
2022-04-19 10:14:58 +0200 | <kamyar71> | I do not want to use multi parameter class feature |
2022-04-19 10:15:04 +0200 | <mastarija> | You could use multiparam |
2022-04-19 10:15:15 +0200 | <mastarija> | Yes... not gonna work without that |
2022-04-19 10:15:29 +0200 | <mastarija> | But type classes aren't needed in this case |
2022-04-19 10:15:50 +0200 | <mastarija> | Does anyone know where I can find a detailed explanation on how to read inference rules? I did find some sources, but that is in relation to pure logic. I'm more interested in understanding symbol conventions in the context of programming languages. |
2022-04-19 10:17:01 +0200 | <mastarija> | I kind of understand what's going on, but it's never explicitly explained what certain symbols mean. They are just "presented" and I'm supposed to pick it up through osmosis or something. |
2022-04-19 10:18:38 +0200 | <mastarija> | Like, what's `Γ(x) = v | Γ ⊢ x ⇓ v` supposed to mean? |
2022-04-19 10:18:53 +0200 | <mastarija> | Or rather, how am I supposed to read that? |
2022-04-19 10:19:24 +0200 | <mastarija> | If there's v assigned to x in context Gamma, then x evaluates to v in context Gamma? |
2022-04-19 10:19:59 +0200 | <mastarija> | Also, I'm not sure what those parentheses around x mean. |
2022-04-19 10:20:31 +0200 | <abastro> | I do not have knowledge on this other than my uni class on Proglangs, but I think the meaning should be dependent on each paper. |
2022-04-19 10:20:45 +0200 | <abastro> | Usually papers begin with defining what they mean with these syntax |
2022-04-19 10:20:55 +0200 | foul_owl | (~kerry@23.82.193.88) |
2022-04-19 10:21:16 +0200 | Midjak | (~Midjak@82.66.147.146) |
2022-04-19 10:21:19 +0200 | <abastro> | Perhaps it was mentioned in papers this paper is referring to |
2022-04-19 10:21:37 +0200 | <abastro> | Never seen that `|` part, personally |
2022-04-19 10:22:47 +0200 | <mastarija> | That's just a horizontal dividing line separating premises from the conclusions |
2022-04-19 10:23:00 +0200 | <mastarija> | Adapted for our plain text experience :) |
2022-04-19 10:23:48 +0200 | <mastarija> | abastro, I've found some Harward lectures from CS153 so I'm looking through that |
2022-04-19 10:24:02 +0200 | <mastarija> | but that same notation is everywhere |
2022-04-19 10:24:37 +0200 | <mastarija> | with gamma and delta environments, where gamma is usually for types if I've figured it out correctly |
2022-04-19 10:26:19 +0200 | <abastro> | Oh in that case, I guess it makes sense |
2022-04-19 10:26:35 +0200 | <abastro> | I think this is for evaluation, tho I might be mistaken |
2022-04-19 10:26:57 +0200 | <abastro> | When the environment has mapped `x` to `v`, under that envionment, `x` evaluates to v. |
2022-04-19 10:27:13 +0200 | <mastarija> | abastro, yes, that is for evaluation from my understanding |
2022-04-19 10:27:31 +0200 | <mastarija> | but my problem is same as yours : "I might be mistaken" |
2022-04-19 10:27:50 +0200 | <abastro> | Haha |
2022-04-19 10:27:51 +0200 | <mastarija> | and I can't find any resource that explicitly states what this means |
2022-04-19 10:27:56 +0200 | <abastro> | Yea, I mean |
2022-04-19 10:28:01 +0200 | <abastro> | I learned similar expression |
2022-04-19 10:28:22 +0200 | kuribas | (~user@ptr-17d51end1q9g3xjtvcu.18120a2.ip6.access.telenet.be) |
2022-04-19 10:28:42 +0200 | <abastro> | Never seen ⇓ being used instead of => |
2022-04-19 10:28:59 +0200 | <abastro> | In this way* |
2022-04-19 10:29:11 +0200 | <abastro> | Tho, considering how it reads, I think that one should be evaluation |
2022-04-19 10:29:54 +0200 | <mastarija> | Yes, I've found => in another source |
2022-04-19 10:29:56 +0200 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2022-04-19 10:30:23 +0200 | <mastarija> | I mean, what's the point if everyone just writes things any way they like. |
2022-04-19 10:30:39 +0200 | <abastro> | Agreed! |
2022-04-19 10:31:57 +0200 | <mastarija> | abastro, also, when I'm manually trying to type check a piece of code, I'm assuming I'm building the derivation tree from bottom up |
2022-04-19 10:32:20 +0200 | <mastarija> | At the bottom is my whole piece of code that I'm trying to "check", and from there I build my premises? |
2022-04-19 10:32:33 +0200 | <mastarija> | Or is it other way around? |
2022-04-19 10:32:33 +0200 | <abastro> | Yep, conceptually. (Not always though, I think) |
2022-04-19 10:32:40 +0200 | <mastarija> | Goddamnit |
2022-04-19 10:32:47 +0200 | <abastro> | Yea you start from bottom *usually* |
2022-04-19 10:33:01 +0200 | <mastarija> | With the whole expression, which I then try to decompose |
2022-04-19 10:33:04 +0200 | <abastro> | Tho rules might be complicated enough so that you sometimes have to.. meh |
2022-04-19 10:33:25 +0200 | <mastarija> | Ok, so it's handwawy |
2022-04-19 10:33:38 +0200 | <mastarija> | *handwavy |
2022-04-19 10:34:29 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 10:34:37 +0200 | <abastro> | At least HM type system allows you to build tree from bottom to up |
2022-04-19 10:34:52 +0200 | <abastro> | Dividing into pieces, and then at the top you decide the type |
2022-04-19 10:35:03 +0200 | <abastro> | Then you come back down combining the types |
2022-04-19 10:35:15 +0200 | <abastro> | Oh wait, perhaps you still need variables to unify with HM. hmm |
2022-04-19 10:37:19 +0200 | <lortabac> | mastarija: "Does anyone know where I can find..." -> Types and Programming Languages by Pierce is a good introduction to the topic |
2022-04-19 10:39:18 +0200 | frost | (~frost@user/frost) |
2022-04-19 10:39:26 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 272 seconds) |
2022-04-19 10:40:35 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-04-19 10:45:13 +0200 | gurkenglas | (~gurkengla@178.12.18.212) |
2022-04-19 10:45:16 +0200 | mastarija | (~mastarija@2a05:4f46:e04:6000:2897:ab56:96f1:cca3) (Quit: Leaving) |
2022-04-19 10:45:47 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-04-19 10:47:57 +0200 | aman | (~aman@user/aman) |
2022-04-19 10:48:47 +0200 | kamyar71 | (~kamyar@91.184.78.171) (Quit: Client closed) |
2022-04-19 10:51:42 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 10:53:35 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
2022-04-19 10:53:45 +0200 | krappix | (~krappix@nat-inria-interne-72-gw-01-lne.lille.inria.fr) |
2022-04-19 10:55:33 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-04-19 10:56:10 +0200 | x_kuru | (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
2022-04-19 10:56:30 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 276 seconds) |
2022-04-19 10:57:29 +0200 | mastarija | (~mastarija@2a05:4f46:e04:6000:2897:ab56:96f1:cca3) |
2022-04-19 10:58:33 +0200 | xkuru | (~xkuru@user/xkuru) |
2022-04-19 10:58:54 +0200 | Unicorn_Princess | (~Unicorn_P@93-103-228-248.dynamic.t-2.net) |
2022-04-19 11:00:09 +0200 | Artem[m] | (~artemtype@2001:470:69fc:105::75b) (Quit: You have been kicked for being idle) |
2022-04-19 11:00:15 +0200 | hughjfchen[m] | (~hughjfche@2001:470:69fc:105::c29d) (Quit: You have been kicked for being idle) |
2022-04-19 11:01:36 +0200 | bahamas | (~lucian@84.232.140.158) (Ping timeout: 272 seconds) |
2022-04-19 11:07:31 +0200 | rembo10 | (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-04-19 11:08:25 +0200 | rembo10 | (~rembo10@main.remulis.com) |
2022-04-19 11:10:04 +0200 | krappix | (~krappix@nat-inria-interne-72-gw-01-lne.lille.inria.fr) (Ping timeout: 250 seconds) |
2022-04-19 11:10:13 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-04-19 11:12:13 +0200 | ubert | (~Thunderbi@2a02:8109:9880:303c:bbe6:420f:2b6c:e0f7) |
2022-04-19 11:24:00 +0200 | coot_ | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2022-04-19 11:24:57 +0200 | titi | (~Srain@sunp.ient.rwth-aachen.de) |
2022-04-19 11:25:28 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 11:27:03 +0200 | coot | (~coot@213.134.190.95) (Ping timeout: 276 seconds) |
2022-04-19 11:29:03 +0200 | xkuru | (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
2022-04-19 11:29:37 +0200 | titi | (~Srain@sunp.ient.rwth-aachen.de) (Remote host closed the connection) |
2022-04-19 11:29:39 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 240 seconds) |
2022-04-19 11:31:36 +0200 | acidjnk | (~acidjnk@p200300d0c722df64b44bf627258f714f.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
2022-04-19 11:40:17 +0200 | <abastro> | Is there a safe replacement for `zip l (tail l)`? |
2022-04-19 11:40:44 +0200 | <abastro> | Like, the one which gives empty list or something |
2022-04-19 11:42:08 +0200 | nattiestnate | (~nate@202.138.250.17) |
2022-04-19 11:46:28 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-04-19 11:48:20 +0200 | <tomsmeding> | abastro: `zip l (drop 1 l)` |
2022-04-19 11:50:15 +0200 | abastro | (~abab9579@220.75.216.63) (Ping timeout: 256 seconds) |
2022-04-19 11:51:06 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 276 seconds) |
2022-04-19 11:51:06 +0200 | nattiestnate | (~nate@202.138.250.17) (Quit: WeeChat 3.5) |
2022-04-19 11:51:13 +0200 | <tomsmeding> | mastarija: perhaps https://www.cs.uu.nl/docs/vakken/mcpd/2021/website/notes/Semantics_notes.pdf together with section 1.3 of https://www.cs.uu.nl/docs/vakken/mcpd/2021/website/notes/MinHs_notes.pdf ? |
2022-04-19 11:53:55 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
2022-04-19 11:55:05 +0200 | yauhsien | (~yauhsien@61-231-24-129.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-04-19 11:57:37 +0200 | deadmarshal_ | (~deadmarsh@95.38.228.226) (Ping timeout: 256 seconds) |
2022-04-19 11:58:46 +0200 | <tomsmeding> | abastro[m]: mastarija: that ⇓ for evaluation is super common and indicates big-step semantics |
2022-04-19 11:58:49 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 11:58:49 +0200 | phma | (phma@2001:5b0:215a:e258:fc67:1fe1:f22e:6962) (Read error: Connection reset by peer) |
2022-04-19 11:58:57 +0200 | <tomsmeding> | it is indeed read as "evaluates to" with low precedence |
2022-04-19 11:59:50 +0200 | phma | (~phma@host-67-44-208-45.hnremote.net) |
2022-04-19 12:00:03 +0200 | <tomsmeding> | horizontal arrows are generally used for small-step semantics (small-step means "single step at a time", non-recursive, single atomic operation; big-step means basically tree-walking interpreter as you'd naturally write in haskell over an AST) |
2022-04-19 12:01:35 +0200 | littlebobeep | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-04-19 12:02:38 +0200 | CiaoSen | (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2022-04-19 12:03:17 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 256 seconds) |
2022-04-19 12:10:16 +0200 | xff0x_ | (~xff0x@125x102x200x106.ap125.ftth.ucom.ne.jp) (Ping timeout: 246 seconds) |
2022-04-19 12:17:55 +0200 | Null_A_ | (~null_a@2601:645:8700:2290:ed24:4c30:909e:37d0) |
2022-04-19 12:18:51 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2022-04-19 12:19:05 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit) |
2022-04-19 12:19:10 +0200 | Null_A | (~null_a@2601:645:8700:2290:9c14:dd1b:c930:439d) (Ping timeout: 250 seconds) |
2022-04-19 12:20:40 +0200 | <abastro[m]> | tomsmeding: Oh I was dumb.. |
2022-04-19 12:20:57 +0200 | <abastro[m]> | I forgot about drop 1 |
2022-04-19 12:20:58 +0200 | <abastro[m]> | Btw |
2022-04-19 12:21:09 +0200 | <abastro[m]> | In my uni, the notation was inverted. |
2022-04-19 12:21:24 +0200 | <abastro[m]> | => was used for big step semantics |
2022-04-19 12:21:57 +0200 | <abastro[m]> | ⇓ was used for small step semantics |
2022-04-19 12:22:16 +0200 | <abastro[m]> | Which was why I was somewhat confused. |
2022-04-19 12:22:37 +0200 | <tomsmeding> | O.o |
2022-04-19 12:22:40 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2022-04-19 12:23:46 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2022-04-19 12:24:31 +0200 | tvandinther | (~tvandinth@2406:e002:6815:1801:2c95:5009:a36c:8152) (Quit: Client closed) |
2022-04-19 12:26:55 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
2022-04-19 12:28:42 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-04-19 12:32:59 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 12:36:15 +0200 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2022-04-19 12:36:18 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-04-19 12:36:43 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds) |
2022-04-19 12:36:59 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 240 seconds) |
2022-04-19 12:39:00 +0200 | Lord_of_Life_ | Lord_of_Life |
2022-04-19 12:39:32 +0200 | odnes | (~odnes@5-203-240-200.pat.nym.cosmote.net) (Remote host closed the connection) |
2022-04-19 12:39:54 +0200 | odnes | (~odnes@5-203-240-200.pat.nym.cosmote.net) |
2022-04-19 12:40:56 +0200 | abastro[m] | uploaded an image: (120KiB) < https://libera.ems.host/_matrix/media/r0/download/matrix.org/CduWXAxUUmHTibMxijZbeyVC/Screenshot_2… > |
2022-04-19 12:41:40 +0200 | <tomsmeding> | interesting |
2022-04-19 12:41:53 +0200 | <abastro[m]> | tomsmeding: I guess I was taught wrong |
2022-04-19 12:41:57 +0200 | <tomsmeding> | ¯\_(ツ)_/¯ |
2022-04-19 12:42:02 +0200 | <tomsmeding> | it's just notation in the end |
2022-04-19 12:42:02 +0200 | kaph | (~kaph@151.19.251.152) (Read error: Connection reset by peer) |
2022-04-19 12:42:07 +0200 | theproffesor | (~theprofff@user/theproffesor) (Ping timeout: 246 seconds) |
2022-04-19 12:42:16 +0200 | <abastro[m]> | By a stubborm professor |
2022-04-19 12:42:17 +0200 | <abastro[m]> | Oh. |
2022-04-19 12:42:37 +0200 | <tomsmeding> | maybe the common notation changed over time, or customs differ between sub-communities within theoretical CS? |
2022-04-19 12:42:42 +0200 | theproffesor | (~theprofff@user/theproffesor) |
2022-04-19 12:42:49 +0200 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
2022-04-19 12:43:25 +0200 | <abastro[m]> | Yep, I guess |
2022-04-19 12:44:22 +0200 | <tomsmeding> | I mean, people get all flame-war about notation, but in the end it's just notation :p |
2022-04-19 12:44:42 +0200 | <tomsmeding> | it's good and useful to have a single standard notation for stuff though |
2022-04-19 12:46:32 +0200 | <abastro[m]> | Well I remembered the small step thing wrong, '->' was used in the class |
2022-04-19 12:46:46 +0200 | <abastro[m]> | The downward arrow is used for continuation-involving evaluation |
2022-04-19 12:47:08 +0200 | abastro[m] | uploaded an image: (235KiB) < https://libera.ems.host/_matrix/media/r0/download/matrix.org/tuCHZAsDZrjMxrrKMtJAzSUo/Screenshot_2… > |
2022-04-19 12:48:07 +0200 | <abastro[m]> | Likely wanted to use fancy arrows at one place |
2022-04-19 12:48:26 +0200 | <abastro[m]> | (I disliked how the class was taught in scala btw) |
2022-04-19 12:50:44 +0200 | <tomsmeding> | ooh continuations |
2022-04-19 12:51:04 +0200 | <tomsmeding> | ah scala, maybe this is standard in the scala community? That's exactly my point, my custom is from the haskell community |
2022-04-19 12:52:24 +0200 | odnes | (~odnes@5-203-240-200.pat.nym.cosmote.net) (Quit: Leaving) |
2022-04-19 12:54:02 +0200 | raym | (~raym@user/raym) (Quit: kernel update, rebooting...) |
2022-04-19 12:55:35 +0200 | raym | (~raym@user/raym) |
2022-04-19 13:05:24 +0200 | <abastro[m]> | Programming language semantics differ for scala community vs haskell community? |
2022-04-19 13:05:24 +0200 | <abastro[m]> | Wow |
2022-04-19 13:06:38 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 13:07:47 +0200 | cdman | (~dcm@user/dmc/x-4369397) (Remote host closed the connection) |
2022-04-19 13:10:16 +0200 | deadmarshal_ | (~deadmarsh@95.38.228.226) |
2022-04-19 13:10:39 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 240 seconds) |
2022-04-19 13:11:55 +0200 | <tomsmeding> | programming language semantics _notation_ |
2022-04-19 13:12:18 +0200 | <abastro[m]> | Aah |
2022-04-19 13:12:20 +0200 | <tomsmeding> | but I don't know, too lazy to check |
2022-04-19 13:13:58 +0200 | akegalj | (~akegalj@93-138-136-145.adsl.net.t-com.hr) (Ping timeout: 246 seconds) |
2022-04-19 13:14:19 +0200 | deadmarshal_ | (~deadmarsh@95.38.228.226) (Ping timeout: 240 seconds) |
2022-04-19 13:21:03 +0200 | abastro | (~abab9579@220.75.216.63) |
2022-04-19 13:27:21 +0200 | chele | (~chele@user/chele) (Remote host closed the connection) |
2022-04-19 13:29:34 +0200 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
2022-04-19 13:29:47 +0200 | chele | (~chele@user/chele) |
2022-04-19 13:30:46 +0200 | CAT_S | (~apic@brezn3.muc.ccc.de) (Ping timeout: 246 seconds) |
2022-04-19 13:30:46 +0200 | simeon | (~pi@dslb-088-076-113-221.088.076.pools.vodafone-ip.de) (Ping timeout: 246 seconds) |
2022-04-19 13:31:01 +0200 | DNH | (~DNH@8.44.0.68) |
2022-04-19 13:31:15 +0200 | Lears | (~Leary]@122-58-90-96-vdsl.sparkbb.co.nz) (Remote host closed the connection) |
2022-04-19 13:31:37 +0200 | simeon | (~pi@dslb-088-076-113-221.088.076.pools.vodafone-ip.de) |
2022-04-19 13:31:44 +0200 | CAT_S | (apic@brezn3.muc.ccc.de) |
2022-04-19 13:32:15 +0200 | [Leary] | (~Leary]@122-58-90-96-vdsl.sparkbb.co.nz) |
2022-04-19 13:32:26 +0200 | cdman | (~dcm@user/dmc/x-4369397) |
2022-04-19 13:32:35 +0200 | off^ | (~off@50-192-56-193-static.hfc.comcastbusiness.net) |
2022-04-19 13:36:15 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 13:38:19 +0200 | kaph | (~kaph@151.43.200.113) |
2022-04-19 13:39:25 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-04-19 13:40:34 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 246 seconds) |
2022-04-19 13:41:52 +0200 | yauhsien | (~yauhsien@61-231-24-129.dynamic-ip.hinet.net) |
2022-04-19 13:43:04 +0200 | MajorBiscuit | (~MajorBisc@145.94.234.148) |
2022-04-19 13:44:03 +0200 | bahamas | (~lucian@84.232.140.158) |
2022-04-19 13:46:59 +0200 | yauhsien | (~yauhsien@61-231-24-129.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
2022-04-19 13:53:35 +0200 | schuelermine | (~anselmsch@user/schuelermine) |
2022-04-19 13:53:53 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 13:54:16 +0200 | <schuelermine> | Wouldn’t it (maybe) be a good idea to extend record syntax from constructors to arbitrary functions to allow named parameters? |
2022-04-19 13:54:33 +0200 | <schuelermine> | It seems like a natural and convenient extension of the syntax |
2022-04-19 13:55:02 +0200 | <schuelermine> | You could also allow defining defaults in the record parameters lazily |
2022-04-19 13:55:20 +0200 | <schuelermine> | This is used, for instance, in Nix, to great effect, to make smart “constructors” |
2022-04-19 13:55:28 +0200 | schuelermine | (~anselmsch@user/schuelermine) () |
2022-04-19 13:58:11 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 260 seconds) |
2022-04-19 13:58:36 +0200 | <geekosaur> | bit late since they left, but I think most people consider record syntax a mistake |
2022-04-19 14:09:41 +0200 | <abastro> | Which record syntax? |
2022-04-19 14:10:29 +0200 | <merijn> | schuelermine[m]: I mean, you can just change your function to accept a record as input and get 100% of that functionality without any changes? |
2022-04-19 14:10:43 +0200 | <merijn> | geekosaur: Record syntax is fine, derived field selectors are a mistake |
2022-04-19 14:10:56 +0200 | <merijn> | All hail -XNoFieldSelectors |
2022-04-19 14:11:01 +0200 | <abastro> | derived field selectors? |
2022-04-19 14:11:16 +0200 | <abastro> | Oh you mean the autogenerated functions for each field of record? |
2022-04-19 14:11:22 +0200 | <abastro> | Obtaining that field from record |
2022-04-19 14:11:30 +0200 | <geekosaur> | yes |
2022-04-19 14:11:30 +0200 | <merijn> | abastro: The fact that "data Foo = Foo { bar :: Int }" generates a function "bar :: Foo -> Int" |
2022-04-19 14:11:42 +0200 | <abastro> | Yea, eww |
2022-04-19 14:11:46 +0200 | schuelermine | (~anselmsch@user/schuelermine) |
2022-04-19 14:12:00 +0200 | <abastro> | I also dislike it. Tho I guess it was good for brevity |
2022-04-19 14:12:17 +0200 | <merijn> | I say make NoFieldSelectors and NamedFieldPuns the default in Haskell Prime (ha! as if that'll happen) |
2022-04-19 14:12:28 +0200 | <merijn> | And then records are already a ton nicer |
2022-04-19 14:12:50 +0200 | <abastro> | NamedFieldPuns? |
2022-04-19 14:12:52 +0200 | <schuelermine> | you could use record syntax for map literals |
2022-04-19 14:13:08 +0200 | <schuelermine> | abastro: means you can pattern match by writing |
2022-04-19 14:13:10 +0200 | <schuelermine> | f { foo } = foo |
2022-04-19 14:13:14 +0200 | <abastro> | Eh |
2022-04-19 14:13:18 +0200 | <abastro> | Ehhhh |
2022-04-19 14:13:21 +0200 | <merijn> | Instead of having to write |
2022-04-19 14:13:24 +0200 | <abastro> | I guess that is good for brevity |
2022-04-19 14:13:32 +0200 | <merijn> | 'f Foo{foo = x} = x' |
2022-04-19 14:13:36 +0200 | <merijn> | Which, frankly, sucks |
2022-04-19 14:13:41 +0200 | <abastro> | Yea indeed, provides great brevity |
2022-04-19 14:14:04 +0200 | <abastro> | Oh right, with NoFieldSelectors those won't be shadowing the field selectors right? |
2022-04-19 14:14:10 +0200 | <abastro> | That was why I was concerned |
2022-04-19 14:14:14 +0200 | <abastro> | Hmmm |
2022-04-19 14:14:16 +0200 | <schuelermine> | 'foo (Foo . bar) (\Foo {foo = foo} = foo)' |
2022-04-19 14:15:06 +0200 | abastro | (~abab9579@220.75.216.63) (Quit: testing xmonad) |
2022-04-19 14:16:44 +0200 | <schuelermine> | oh god xmonad |
2022-04-19 14:16:46 +0200 | <schuelermine> | I just hoogled '(||*)' and it turns out xmonad provides a horrendous family of operators |
2022-04-19 14:16:48 +0200 | <schuelermine> | (****||*), (****||***), (***||*), (***||**), (**||*), (**||***), (*||*) |
2022-04-19 14:21:35 +0200 | benin | (~benin@183.82.204.110) (Quit: The Lounge - https://thelounge.chat) |
2022-04-19 14:22:25 +0200 | <schuelermine> | Oh also puns means you can do `f foo = Foo { foo }` instead of `f foo = Foo { foo = foo }` |
2022-04-19 14:23:46 +0200 | abastro | (~abab9579@220.75.216.63) |
2022-04-19 14:24:04 +0200 | schuelermine | (~anselmsch@user/schuelermine) (Quit: WeeChat 3.4.1) |
2022-04-19 14:25:48 +0200 | zincy | (~zincy@host86-160-236-152.range86-160.btcentralplus.com) |
2022-04-19 14:26:35 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 14:26:35 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
2022-04-19 14:29:41 +0200 | frost | (~frost@user/frost) (Quit: Client closed) |
2022-04-19 14:29:56 +0200 | zincy | (~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Remote host closed the connection) |
2022-04-19 14:30:22 +0200 | chexum | (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
2022-04-19 14:30:35 +0200 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2022-04-19 14:31:39 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 276 seconds) |
2022-04-19 14:33:05 +0200 | <geekosaur> | those are trying to visually indicate how they divide up the screen |
2022-04-19 14:33:25 +0200 | <geekosaur> | and yes, some parts of contrib are … interesting |
2022-04-19 14:35:12 +0200 | Pickchea | (~private@user/pickchea) |
2022-04-19 14:39:15 +0200 | kjak | (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Ping timeout: 260 seconds) |
2022-04-19 14:39:31 +0200 | oxide | (~lambda@user/oxide) (Quit: oxide) |
2022-04-19 14:41:37 +0200 | yauhsien | (~yauhsien@61-231-24-129.dynamic-ip.hinet.net) |
2022-04-19 14:42:24 +0200 | xff0x_ | (~xff0x@om126194210237.10.openmobile.ne.jp) |
2022-04-19 14:43:50 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2022-04-19 14:44:53 +0200 | ishaan | (~ishaan@122.161.48.109) |
2022-04-19 14:44:59 +0200 | ishaan | (~ishaan@122.161.48.109) (Client Quit) |
2022-04-19 14:45:39 +0200 | yauhsien | (~yauhsien@61-231-24-129.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
2022-04-19 14:46:35 +0200 | kjak | (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) |
2022-04-19 14:51:55 +0200 | ldlework | (~hexeme@user/hexeme) (Quit: co'o ro do) |
2022-04-19 14:52:47 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2022-04-19 14:54:27 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2022-04-19 14:55:16 +0200 | hexeme | (~hexeme@user/hexeme) |
2022-04-19 14:55:54 +0200 | acidjnk | (~acidjnk@p200300d0c722df64b44bf627258f714f.dip0.t-ipconnect.de) |
2022-04-19 14:57:29 +0200 | sprout | (~quassel@2a02-a467-ccd6-1-61ea-c654-ec6a-777e.fixed6.kpn.net) (Ping timeout: 248 seconds) |
2022-04-19 14:58:01 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 14:58:51 +0200 | tomboy64 | (~tomboy64@user/tomboy64) (Ping timeout: 256 seconds) |
2022-04-19 14:59:44 +0200 | DNH | (~DNH@8.44.0.68) (Ping timeout: 272 seconds) |
2022-04-19 15:00:54 +0200 | chexum_ | (~quassel@gateway/tor-sasl/chexum) |
2022-04-19 15:01:13 +0200 | chenqisu1 | (~chenqisu1@183.217.200.38) (Quit: Leaving) |
2022-04-19 15:01:35 +0200 | chexum | (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 240 seconds) |
2022-04-19 15:02:32 +0200 | <raehik> | I'm upgrading some code to GHC 9.2 . GHC is complaining about places I've used `_typevar` to explicitly not bind a typevar, asking me to use PartialTypeSigs. Is there another way to do this, that doesn't need that extension? |
2022-04-19 15:02:51 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 276 seconds) |
2022-04-19 15:02:57 +0200 | <raehik> | or is it right to use that extension here? (haven't touched it before) |
2022-04-19 15:03:59 +0200 | kjak | (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
2022-04-19 15:04:09 +0200 | <raehik> | code snippet, one of the signatures that errors https://github.com/raehik/gtvm-hs/blob/main/app/Common/Util.hs#L37 |
2022-04-19 15:05:03 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex) |
2022-04-19 15:05:45 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2022-04-19 15:07:10 +0200 | neurocyte8614492 | (~neurocyte@IP-045136169156.dynamic.medianet-world.de) |
2022-04-19 15:07:10 +0200 | neurocyte8614492 | (~neurocyte@IP-045136169156.dynamic.medianet-world.de) (Changing host) |
2022-04-19 15:07:10 +0200 | neurocyte8614492 | (~neurocyte@user/neurocyte) |
2022-04-19 15:07:26 +0200 | <raehik> | ah not to worry. I think I wrote that when I didn't understand bringing typevar scoping. Not putting it in forall means it's not bound anyway. |
2022-04-19 15:07:37 +0200 | <raehik> | s/bringing// |
2022-04-19 15:09:19 +0200 | acidjnk | (~acidjnk@p200300d0c722df64b44bf627258f714f.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-04-19 15:09:51 +0200 | kaph | (~kaph@151.43.200.113) (Read error: Connection reset by peer) |
2022-04-19 15:12:51 +0200 | <merijn> | raehik: None of the type names on line 37 are defined in that file, so it's impossible to tell |
2022-04-19 15:13:48 +0200 | <raehik> | merijn: Sorry, I didn't send the unique commit so it's showing the updated version. I had `Stream 'StreamOut _s` in place of `Stream 'StreamOut s` |
2022-04-19 15:14:14 +0200 | MajorBiscuit | (~MajorBisc@145.94.234.148) (Ping timeout: 250 seconds) |
2022-04-19 15:14:45 +0200 | <raehik> | That now breaks on GHC 9.2 with a note about PartialTypeSignatures. But now I realize I don't need the underscore, since by not explicitly quantifying it stays out of my way |
2022-04-19 15:14:57 +0200 | MajorBiscuit | (~MajorBisc@145.94.234.148) |
2022-04-19 15:15:24 +0200 | <raehik> | had only just learned about datakinds I think |
2022-04-19 15:15:34 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2022-04-19 15:15:51 +0200 | oxide | (~lambda@user/oxide) |
2022-04-19 15:17:21 +0200 | mikoto-chan | (~mikoto-ch@213.177.151.239) |
2022-04-19 15:17:31 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 15:19:42 +0200 | sprout | (~quassel@2a02-a45f-f170-1-2c70-4ee9-c067-7549.fixed6.kpn.net) |
2022-04-19 15:20:30 +0200 | aeka | (~aeka@2606:6080:1001:13:a777:ff73:dfdc:3ab0) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-04-19 15:21:00 +0200 | mastarija_ | (~mastarija@2a05:4f46:e04:6000:2897:ab56:96f1:cca3) |
2022-04-19 15:23:44 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2022-04-19 15:23:46 +0200 | akegalj_ | (~akegalj@93-138-136-145.adsl.net.t-com.hr) |
2022-04-19 15:24:08 +0200 | mastarija | (~mastarija@2a05:4f46:e04:6000:2897:ab56:96f1:cca3) (Ping timeout: 248 seconds) |
2022-04-19 15:26:16 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 248 seconds) |
2022-04-19 15:26:26 +0200 | zebrag | (~chris@user/zebrag) |
2022-04-19 15:33:22 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-04-19 15:37:03 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 15:37:24 +0200 | tomboy64 | (~tomboy64@user/tomboy64) |
2022-04-19 15:37:32 +0200 | akegalj_ | (~akegalj@93-138-136-145.adsl.net.t-com.hr) (Quit: leaving) |
2022-04-19 15:38:03 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 256 seconds) |
2022-04-19 15:39:39 +0200 | sprout | (~quassel@2a02-a45f-f170-1-2c70-4ee9-c067-7549.fixed6.kpn.net) (Ping timeout: 240 seconds) |
2022-04-19 15:40:40 +0200 | vysn | (~vysn@user/vysn) (Ping timeout: 250 seconds) |
2022-04-19 15:41:27 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 256 seconds) |
2022-04-19 15:41:52 +0200 | pavonia | (~user@user/siracusa) (Read error: Connection reset by peer) |
2022-04-19 15:42:59 +0200 | MajorBiscuit | (~MajorBisc@145.94.234.148) (Ping timeout: 240 seconds) |
2022-04-19 15:44:09 +0200 | sprout | (~quassel@2a02-a45f-f170-1-2c70-4ee9-c067-7549.fixed6.kpn.net) |
2022-04-19 15:44:53 +0200 | aman | (~aman@user/aman) (Quit: aman) |
2022-04-19 15:45:25 +0200 | pavonia | (~user@user/siracusa) |
2022-04-19 15:46:24 +0200 | MajorBiscuit | (~MajorBisc@145.94.234.148) |
2022-04-19 15:47:49 +0200 | abastro | (~abab9579@220.75.216.63) (Remote host closed the connection) |
2022-04-19 15:49:00 +0200 | <tomsmeding> | Why can I not use a [t| |] splice in a typed $$( ) splice? |
2022-04-19 15:49:15 +0200 | <tomsmeding> | s/[t| |] splice/[t| |] quote/ |
2022-04-19 15:50:38 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-04-19 15:50:38 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-04-19 15:50:38 +0200 | wroathe | (~wroathe@user/wroathe) |
2022-04-19 15:50:40 +0200 | mastarija__ | (~mastarija@2a05:4f46:e04:6000:3db0:a561:6353:b491) |
2022-04-19 15:53:51 +0200 | aeka | (~aeka@user/hiruji) |
2022-04-19 15:53:58 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-04-19 15:53:59 +0200 | mastarija_ | (~mastarija@2a05:4f46:e04:6000:2897:ab56:96f1:cca3) (Ping timeout: 240 seconds) |
2022-04-19 15:54:27 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-04-19 15:55:00 +0200 | <geekosaur> | looks like you need to use a typed quotation in a typed splice? [t|| ... ||] |
2022-04-19 15:55:32 +0200 | <tomsmeding> | geekosaur: [t|| doesn't exist, and wouldn't make sense, because it should return a Type and not an Exp |
2022-04-19 15:55:39 +0200 | Guest85 | (~Guest85@165.134.212.71) |
2022-04-19 15:56:01 +0200 | <tomsmeding> | it would make sense if there was a phantom-typed wrapper TType or something, just like there is 'TExp a' around 'Exp' |
2022-04-19 15:56:29 +0200 | <geekosaur> | as of 9.2.2 it's Code Q Type, looks as if |
2022-04-19 15:56:44 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 15:56:52 +0200 | <tomsmeding> | I'm on 9.2.2 |
2022-04-19 15:57:04 +0200 | Guest85 | (~Guest85@165.134.212.71) (Client Quit) |
2022-04-19 15:57:52 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2022-04-19 15:58:49 +0200 | <tomsmeding> | geekosaur: 'Code Q Type' is ismomorphic (newtype wrapper) to 'Q (TExp Type)', which is isomorphic (newtype wrapper) to 'Q Exp' |
2022-04-19 15:58:58 +0200 | <tomsmeding> | it's an expression that returns a type at runtime, which is not what I want |
2022-04-19 15:59:16 +0200 | <tomsmeding> | (and not what [t| does, which is return the Type at compile-time) |
2022-04-19 15:59:25 +0200 | <tomsmeding> | I was confused for a while too :p |
2022-04-19 15:59:55 +0200 | <tomsmeding> | (but thanks for checking!) |
2022-04-19 16:00:36 +0200 | bahamas | (~lucian@84.232.140.158) (Ping timeout: 250 seconds) |
2022-04-19 16:01:17 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 256 seconds) |
2022-04-19 16:01:58 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 16:02:59 +0200 | mastarija__ | (~mastarija@2a05:4f46:e04:6000:3db0:a561:6353:b491) (Ping timeout: 240 seconds) |
2022-04-19 16:04:41 +0200 | mastarija__ | (~mastarija@2a05:4f46:e04:6000:a5e2:63ce:2368:50db) |
2022-04-19 16:07:32 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 250 seconds) |
2022-04-19 16:07:55 +0200 | <schuelermine[m]> | Can you generate setters for only some properties using the lens library? |
2022-04-19 16:10:36 +0200 | <Taneb> | schuelermine[m]: you can use https://hackage.haskell.org/package/lens-5.1/docs/Control-Lens-TH.html#v:makeLensesFor makeLensesFor |
2022-04-19 16:10:47 +0200 | <schuelermine[m]> | thanks! |
2022-04-19 16:11:11 +0200 | Pickchea | (~private@user/pickchea) |
2022-04-19 16:12:59 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2022-04-19 16:13:11 +0200 | stefan-_ | (~cri@42dots.de) (Ping timeout: 256 seconds) |
2022-04-19 16:14:48 +0200 | haritz | (~hrtz@82-69-11-11.dsl.in-addr.zen.co.uk) |
2022-04-19 16:14:48 +0200 | haritz | (~hrtz@82-69-11-11.dsl.in-addr.zen.co.uk) (Changing host) |
2022-04-19 16:14:48 +0200 | haritz | (~hrtz@user/haritz) |
2022-04-19 16:18:57 +0200 | kjak | (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) |
2022-04-19 16:19:03 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-04-19 16:22:09 +0200 | <maerwald> | tomsmeding: is it time to move the playground out of beta? |
2022-04-19 16:23:00 +0200 | <tomsmeding> | maerwald: I haven't had time to work on it anymore in the past weeks sorry |
2022-04-19 16:23:46 +0200 | <tomsmeding> | maerwald: I feel like there are a few items in this list that would need to be fixed first https://github.com/tomsmeding/pastebin-haskell/blob/play/TODO.txt |
2022-04-19 16:24:41 +0200 | <tomsmeding> | in particular: https (I should do that), tab key, -N (I should do that), handshake, memory limit, SIGKILL |
2022-04-19 16:25:17 +0200 | <tomsmeding> | I will probably have some time coming weekend |
2022-04-19 16:26:39 +0200 | shriekingnoise | (~shrieking@201.231.16.156) |
2022-04-19 16:26:39 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 16:26:47 +0200 | stefan-_ | (~cri@42dots.de) |
2022-04-19 16:27:08 +0200 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) |
2022-04-19 16:28:00 +0200 | <maerwald> | make it so :D |
2022-04-19 16:28:05 +0200 | <tomsmeding> | :p |
2022-04-19 16:28:07 +0200 | <tomsmeding> | I'll try |
2022-04-19 16:28:41 +0200 | <maerwald> | arjun wanted to work on the CSS, but I'm worried he ragequitted |
2022-04-19 16:28:47 +0200 | <tomsmeding> | lol |
2022-04-19 16:28:50 +0200 | <tomsmeding> | I can have a look at css too |
2022-04-19 16:28:57 +0200 | <maerwald> | well, css can only give you grief, so |
2022-04-19 16:29:05 +0200 | <tomsmeding> | I won't be as fast and won't be as """modern""" probably, but eh |
2022-04-19 16:29:13 +0200 | <tomsmeding> | perhaps I can use the same framework as I used for paste.tomsmeding.com |
2022-04-19 16:29:20 +0200 | <maerwald> | it's like harvesting asparagus |
2022-04-19 16:29:22 +0200 | <tomsmeding> | might be nice if the theme is consistent as well |
2022-04-19 16:29:32 +0200 | tomsmeding | doesn't know anything about harvesting asparagus |
2022-04-19 16:29:51 +0200 | <maerwald> | bleeding hands |
2022-04-19 16:31:54 +0200 | gurkenglas | (~gurkengla@178.12.18.212) (Ping timeout: 276 seconds) |
2022-04-19 16:33:47 +0200 | <schuelermine[m]> | Do you have to explicitly declare your library as a dependency of your test suite in cabal? |
2022-04-19 16:33:57 +0200 | bahamas | (~lucian@84.232.140.158) |
2022-04-19 16:34:23 +0200 | <tomsmeding> | eys |
2022-04-19 16:34:26 +0200 | <tomsmeding> | schuelermine[m]: *yes |
2022-04-19 16:34:51 +0200 | <schuelermine[m]> | goodness |
2022-04-19 16:34:56 +0200 | <schuelermine[m]> | should I just write == <current-version> |
2022-04-19 16:35:03 +0200 | <tomsmeding> | just don't put a version |
2022-04-19 16:35:18 +0200 | <tomsmeding> | cabal will always use the version produced in the current package |
2022-04-19 16:35:27 +0200 | <tomsmeding> | so in fact a version annotation there is always redundant |
2022-04-19 16:35:40 +0200 | <tomsmeding> | (and cabal will even warn on that, IIRC) |
2022-04-19 16:35:52 +0200 | abastro | (~abab9579@220.75.216.63) |
2022-04-19 16:36:53 +0200 | jlamothe | (~jlamothe@198.251.61.229) (Quit: leaving) |
2022-04-19 16:38:42 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-04-19 16:38:55 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2022-04-19 16:39:03 +0200 | bahamas | (~lucian@84.232.140.158) (Ping timeout: 276 seconds) |
2022-04-19 16:39:49 +0200 | aeka | (~aeka@user/hiruji) (Ping timeout: 256 seconds) |
2022-04-19 16:40:09 +0200 | vysn | (~vysn@user/vysn) |
2022-04-19 16:40:23 +0200 | bahamas | (~lucian@84.232.140.158) |
2022-04-19 16:40:53 +0200 | aeka | (~aeka@user/hiruji) |
2022-04-19 16:43:23 +0200 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
2022-04-19 16:44:48 +0200 | bahamas | (~lucian@84.232.140.158) (Ping timeout: 250 seconds) |
2022-04-19 16:45:06 +0200 | DNH | (~DNH@2a02:8109:b740:2c4:39b1:39b8:aa61:2e31) |
2022-04-19 16:46:27 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-04-19 16:46:39 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2022-04-19 16:49:04 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Quit: Leaving) |
2022-04-19 16:49:08 +0200 | CiaoSen | (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2022-04-19 16:49:40 +0200 | dyeplexer | (~dyeplexer@user/dyeplexer) |
2022-04-19 16:49:55 +0200 | sibnull[m] | (~sibnullma@2001:470:69fc:105::1:1291) |
2022-04-19 16:51:46 +0200 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) |
2022-04-19 16:53:25 +0200 | Pickchea | (~private@user/pickchea) (Ping timeout: 256 seconds) |
2022-04-19 16:54:17 +0200 | jlamothe | (~jlamothe@198.251.61.229) |
2022-04-19 16:55:31 +0200 | hgolden | (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection) |
2022-04-19 16:56:30 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2022-04-19 16:57:07 +0200 | hgolden | (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) |
2022-04-19 16:57:28 +0200 | yauhsien | (~yauhsien@61-231-24-129.dynamic-ip.hinet.net) |
2022-04-19 16:59:56 +0200 | Andrew | AndrewYu |
2022-04-19 17:00:02 +0200 | _ht | (~quassel@231-169-21-31.ftth.glasoperator.nl) |
2022-04-19 17:02:29 +0200 | yauhsien | (~yauhsien@61-231-24-129.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2022-04-19 17:07:21 +0200 | anomal | (~anomal@87.227.196.109) (Remote host closed the connection) |
2022-04-19 17:08:39 +0200 | kuribas | (~user@ptr-17d51end1q9g3xjtvcu.18120a2.ip6.access.telenet.be) (Ping timeout: 240 seconds) |
2022-04-19 17:12:36 +0200 | MajorBiscuit | (~MajorBisc@145.94.234.148) (Ping timeout: 240 seconds) |
2022-04-19 17:12:45 +0200 | jgeerds | (~jgeerds@d5364b87.access.ecotel.net) |
2022-04-19 17:13:01 +0200 | MajorBiscuit | (~MajorBisc@145.94.234.148) |
2022-04-19 17:19:21 +0200 | MajorBiscuit | (~MajorBisc@145.94.234.148) (Ping timeout: 276 seconds) |
2022-04-19 17:20:22 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:61e6:c8e5:1064:c52e) (Quit: WeeChat 2.8) |
2022-04-19 17:20:34 +0200 | Natch | (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) |
2022-04-19 17:22:27 +0200 | TCZ | (~tcz@ip-91.246.66.101.skyware.pl) |
2022-04-19 17:22:59 +0200 | TCZ | (~tcz@ip-91.246.66.101.skyware.pl) (...) |
2022-04-19 17:24:42 +0200 | krappix | (~krappix@nat-inria-interne-72-gw-01-lne.lille.inria.fr) |
2022-04-19 17:25:09 +0200 | fciocan | (~fciocan@188.24.47.102) |
2022-04-19 17:25:46 +0200 | xff0x_ | (~xff0x@om126194210237.10.openmobile.ne.jp) (Read error: Connection reset by peer) |
2022-04-19 17:26:32 +0200 | fciocan | (~fciocan@188.24.47.102) (Client Quit) |
2022-04-19 17:29:08 +0200 | gurkenglas | (~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de) |
2022-04-19 17:30:39 +0200 | abiss27 | (~abiss27@user/abiss) |
2022-04-19 17:33:15 +0200 | bahamas | (~lucian@84.232.140.158) |
2022-04-19 17:33:56 +0200 | stackdroid18 | (14094@user/stackdroid) |
2022-04-19 17:35:18 +0200 | krappix | (~krappix@nat-inria-interne-72-gw-01-lne.lille.inria.fr) (Ping timeout: 250 seconds) |
2022-04-19 17:35:18 +0200 | <albet70> | what's the join implement for Cont? |
2022-04-19 17:37:31 +0200 | bahamas | (~lucian@84.232.140.158) (Ping timeout: 246 seconds) |
2022-04-19 17:41:01 +0200 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 256 seconds) |
2022-04-19 17:41:40 +0200 | <kritzefitz> | albet70: join is not a method, so it's the same for Cont as for any other monad. |
2022-04-19 17:42:06 +0200 | <kritzefitz> | namely: `join x = x >>= id` |
2022-04-19 17:44:26 +0200 | zer0bitz | (~zer0bitz@2001:2003:f444:8f00:d86f:477d:4b86:10fd) |
2022-04-19 17:45:37 +0200 | <albet70> | https://hackage.haskell.org/package/transformers-0.6.0.4/docs/src/Control.Monad.Trans.Cont.html#Co… |
2022-04-19 17:46:05 +0200 | ccntrq | (~Thunderbi@2a01:e34:eccb:b060:b49f:b4db:d687:55bf) (Remote host closed the connection) |
2022-04-19 17:46:43 +0200 | <albet70> | join is not required to make type as an instance of monad? |
2022-04-19 17:47:08 +0200 | abastro | (~abab9579@220.75.216.63) (Remote host closed the connection) |
2022-04-19 17:47:47 +0200 | <kritzefitz> | No, join is defined in terms of `>>=` for all Monads. |
2022-04-19 17:47:58 +0200 | <kritzefitz> | i.e. it is not required. |
2022-04-19 17:49:03 +0200 | <geekosaur> | in Haskell the fundamental Monad operations are return and >>= |
2022-04-19 17:49:19 +0200 | <geekosaur> | not the mathematical version which uses join instead of >>= |
2022-04-19 17:50:02 +0200 | <albet70> | join (*) = \x -> x * x, so join (*) = (*) >>= id? |
2022-04-19 17:50:44 +0200 | <albet70> | > (*) >>= id $ 3 |
2022-04-19 17:50:46 +0200 | <lambdabot> | 9 |
2022-04-19 17:51:15 +0200 | <albet70> | > join (*) 3 |
2022-04-19 17:51:17 +0200 | <lambdabot> | 9 |
2022-04-19 17:51:41 +0200 | fciocan | (~fciocan@188.24.47.102) |
2022-04-19 17:51:42 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-04-19 17:51:49 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-04-19 17:52:04 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-04-19 17:52:30 +0200 | fciocan | (~fciocan@188.24.47.102) (Client Quit) |
2022-04-19 17:52:41 +0200 | <geekosaur> | so if I recall correctly m >>= f is mathematically join (fmap f m), so given the functor laws you recover join by making f id |
2022-04-19 17:54:50 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-04-19 17:55:44 +0200 | Vajb | (~Vajb@2001:999:504:1dda:267d:6860:bdf7:f68b) |
2022-04-19 17:55:56 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2022-04-19 17:57:45 +0200 | <albet70> | > join (fmap (+1) [1..]) |
2022-04-19 17:57:47 +0200 | <lambdabot> | error: |
2022-04-19 17:57:47 +0200 | <lambdabot> | • No instance for (Num [()]) arising from a use of ‘e_111’ |
2022-04-19 17:57:47 +0200 | <lambdabot> | • In the expression: e_111 |
2022-04-19 17:57:57 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2022-04-19 17:59:09 +0200 | abastro | (~abab9579@220.75.216.63) |
2022-04-19 17:59:20 +0200 | lbseale | (~ep1ctetus@user/ep1ctetus) |
2022-04-19 17:59:52 +0200 | lbseale | (~ep1ctetus@user/ep1ctetus) (Client Quit) |
2022-04-19 18:00:11 +0200 | chele | (~chele@user/chele) (Remote host closed the connection) |
2022-04-19 18:00:14 +0200 | lbseale | (~ep1ctetus@user/ep1ctetus) |
2022-04-19 18:02:19 +0200 | Vajb | (~Vajb@2001:999:504:1dda:267d:6860:bdf7:f68b) (Read error: Connection reset by peer) |
2022-04-19 18:02:48 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2022-04-19 18:04:45 +0200 | <geekosaur> | that looks wrong |
2022-04-19 18:06:05 +0200 | <monochrom> | Yeah, join m = m >>= id |
2022-04-19 18:07:04 +0200 | <monochrom> | More concretely m >>= \foo -> foo so it's like saying "obtain the procedure, now run it". |
2022-04-19 18:07:04 +0200 | <abastro[m]> | And I thought `[()] ~ Natural` |
2022-04-19 18:07:31 +0200 | <albet70> | m >>= id, id is same as return? |
2022-04-19 18:07:33 +0200 | ubert | (~Thunderbi@2a02:8109:9880:303c:bbe6:420f:2b6c:e0f7) (Remote host closed the connection) |
2022-04-19 18:07:41 +0200 | <albet70> | m >>= return? |
2022-04-19 18:09:06 +0200 | cdman | (~dcm@user/dmc/x-4369397) (Ping timeout: 272 seconds) |
2022-04-19 18:09:52 +0200 | <monochrom> | Ugh why would you think that? But no. |
2022-04-19 18:09:54 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-04-19 18:10:16 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-04-19 18:10:22 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 272 seconds) |
2022-04-19 18:10:54 +0200 | <monochrom> | If you work at the layperson level of "they are similar therefore they are equal" you will never get anywhere in STEM. |
2022-04-19 18:11:11 +0200 | <albet70> | > [3] >>= id |
2022-04-19 18:11:12 +0200 | <lambdabot> | error: |
2022-04-19 18:11:12 +0200 | <lambdabot> | • No instance for (Num [()]) arising from a use of ‘e_13’ |
2022-04-19 18:11:13 +0200 | <lambdabot> | • In the expression: e_13 |
2022-04-19 18:11:28 +0200 | vysn | (~vysn@user/vysn) (Ping timeout: 250 seconds) |
2022-04-19 18:11:49 +0200 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
2022-04-19 18:11:53 +0200 | <albet70> | > (Just 3) >>= id |
2022-04-19 18:11:55 +0200 | <lambdabot> | error: |
2022-04-19 18:11:55 +0200 | <lambdabot> | • No instance for (Num (Maybe ())) arising from a use of ‘e_13’ |
2022-04-19 18:11:55 +0200 | <lambdabot> | • In the expression: e_13 |
2022-04-19 18:12:20 +0200 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 250 seconds) |
2022-04-19 18:13:27 +0200 | <geekosaur> | it's join, you gave it nothing to join |
2022-04-19 18:13:31 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2022-04-19 18:13:35 +0200 | <geekosaur> | > Just (Just 3) >>= id |
2022-04-19 18:13:36 +0200 | <lambdabot> | Just 3 |
2022-04-19 18:14:25 +0200 | <albet70> | :t (Just 3) >>= |
2022-04-19 18:14:26 +0200 | <lambdabot> | error: |
2022-04-19 18:14:26 +0200 | <lambdabot> | parse error (possibly incorrect indentation or mismatched brackets) |
2022-04-19 18:14:51 +0200 | <albet70> | :t (>>=) (Just 3) |
2022-04-19 18:14:52 +0200 | <lambdabot> | Num a => (a -> Maybe b) -> Maybe b |
2022-04-19 18:15:49 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2022-04-19 18:15:49 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2022-04-19 18:15:49 +0200 | finn_elija | FinnElija |
2022-04-19 18:15:50 +0200 | <albet70> | :t id |
2022-04-19 18:15:51 +0200 | <lambdabot> | a -> a |
2022-04-19 18:17:14 +0200 | fjmorazan | (~quassel@user/fjmorazan) (Quit: fjmorazan) |
2022-04-19 18:17:28 +0200 | fjmorazan | (~quassel@user/fjmorazan) |
2022-04-19 18:19:04 +0200 | jgeerds | (~jgeerds@d5364b87.access.ecotel.net) (Ping timeout: 248 seconds) |
2022-04-19 18:20:03 +0200 | cheategg | (~Username@user/cheater) (Quit: BitchX: the official IRC client of the 2004 Olympic Games) |
2022-04-19 18:20:08 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-04-19 18:21:13 +0200 | fjmorazan | (~quassel@user/fjmorazan) (Client Quit) |
2022-04-19 18:21:28 +0200 | bahamas | (~lucian@84.232.140.158) |
2022-04-19 18:21:38 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2022-04-19 18:21:53 +0200 | fjmorazan | (~quassel@user/fjmorazan) |
2022-04-19 18:26:02 +0200 | <abastro[m]> | Recognizing similarity as equality would not serve well in any context imho |
2022-04-19 18:26:18 +0200 | bahamas | (~lucian@84.232.140.158) (Ping timeout: 276 seconds) |
2022-04-19 18:26:37 +0200 | <albet70> | I wonder join Fix(Fix a) would get |
2022-04-19 18:26:52 +0200 | abastro | (~abab9579@220.75.216.63) (Ping timeout: 246 seconds) |
2022-04-19 18:27:07 +0200 | jerry99 | (~330f6b9c@cerf.good1.com) |
2022-04-19 18:30:15 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 18:30:19 +0200 | cheater | (~Username@user/cheater) |
2022-04-19 18:30:54 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-04-19 18:33:49 +0200 | bahamas | (~lucian@84.232.140.158) |
2022-04-19 18:34:42 +0200 | odnes | (~odnes@5-203-242-183.pat.nym.cosmote.net) |
2022-04-19 18:37:07 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 256 seconds) |
2022-04-19 18:39:59 +0200 | stackdroid18 | (14094@user/stackdroid) (Quit: hasta la vista... tchau!) |
2022-04-19 18:40:45 +0200 | deadmarshal_ | (~deadmarsh@95.38.228.226) |
2022-04-19 18:42:27 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 18:44:03 +0200 | <EvanR> | abastro[m], if we're talking strict data structures, then yeah they are bijective |
2022-04-19 18:44:28 +0200 | off^ | (~off@50-192-56-193-static.hfc.comcastbusiness.net) (Remote host closed the connection) |
2022-04-19 18:45:09 +0200 | stackdroid18 | (~stackdroi@user/stackdroid) |
2022-04-19 18:47:31 +0200 | <EvanR> | but strict data structures is a terrible default! |
2022-04-19 18:48:22 +0200 | <janus> | but how would stuff like 'zip [1..]' work if lists were strict? |
2022-04-19 18:48:52 +0200 | <janus> | what's the point of some weird mix? isn't it better to be consistent? |
2022-04-19 18:51:03 +0200 | <EvanR> | strict data fits into the framework haskell gives us, it has a flat definedness hierarchy. It's fine |
2022-04-19 18:51:30 +0200 | <EvanR> | i.e. wouldn't machine int work better if the bits were lazy? no |
2022-04-19 18:51:44 +0200 | <EvanR> | not in this century maybe |
2022-04-19 18:55:01 +0200 | slaydr | (~slaydr@173.239.197.74) (Remote host closed the connection) |
2022-04-19 18:55:35 +0200 | <janus> | what do people mean when they say 'data'? if a record contains a function, is it data or not? |
2022-04-19 18:57:59 +0200 | <EvanR> | that leads to the next question, what do you mean by "function" xD |
2022-04-19 18:58:19 +0200 | <EvanR> | because a lambda expression is cromulent data |
2022-04-19 18:58:34 +0200 | <janus> | every time somebody says 'zero argument function' they get scolded... |
2022-04-19 18:58:57 +0200 | <EvanR> | yeah not those |
2022-04-19 18:59:12 +0200 | cheater | cheategg |
2022-04-19 18:59:52 +0200 | <janus> | what do you mean by 'cromulent'? |
2022-04-19 18:59:56 +0200 | <EvanR> | lol |
2022-04-19 19:00:06 +0200 | <janus> | you can't get Eq on functions, i think that is a big difference |
2022-04-19 19:00:07 +0200 | <EvanR> | I guess I deserve that |
2022-04-19 19:00:59 +0200 | <janus> | i don't mean to be daft, it's just that i don't understand whether there even is a technically correct definition or not |
2022-04-19 19:01:00 +0200 | <EvanR> | you think deciding the extensional equality of functions is bad? Let me introduce you to the value of real numbers |
2022-04-19 19:01:17 +0200 | <EvanR> | decidable equality is not a given, generally, it's a special power |
2022-04-19 19:01:23 +0200 | <EvanR> | only some data types can do it |
2022-04-19 19:01:54 +0200 | <janus> | Idris has the Dec type |
2022-04-19 19:01:57 +0200 | <EvanR> | another example is comparing two infinite lists |
2022-04-19 19:01:59 +0200 | <janus> | do you think that makes sense? |
2022-04-19 19:02:14 +0200 | <EvanR> | Dec is for talking about decidable equality so yes |
2022-04-19 19:02:17 +0200 | <janus> | they have strict data structures by default, no? so you consider that wrong? |
2022-04-19 19:02:27 +0200 | <EvanR> | rather, for decidable things |
2022-04-19 19:03:44 +0200 | <EvanR> | earlier I said strict data is a terrible default, this was supposed to be a throw away strong opinion based on nothing but audience |
2022-04-19 19:04:10 +0200 | <EvanR> | particular situations could use strict data for fun and profit |
2022-04-19 19:04:40 +0200 | <janus> | right, so i gather that since Idris has Lazy, it isn't so bad that it is the default |
2022-04-19 19:04:58 +0200 | <janus> | but in haskell, there is no Lazy, so it would be a bad default? |
2022-04-19 19:05:16 +0200 | <EvanR> | you get to decide because there's a pragma for it |
2022-04-19 19:06:06 +0200 | <EvanR> | I feel like typical use of haskell would break badly if everything was strict |
2022-04-19 19:06:38 +0200 | <geekosaur> | so do I |
2022-04-19 19:06:55 +0200 | <janus> | but it seems that you can write Idris programs that looks a lot like Haskell programs |
2022-04-19 19:07:04 +0200 | <geekosaur> | there are people who are convinced that haskell should default to strict and make you annotate the lazy stuff though |
2022-04-19 19:07:04 +0200 | <EvanR> | I haven't seen that |
2022-04-19 19:07:05 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-04-19 19:07:33 +0200 | <EvanR> | idris programs are more like classic functional programming, with accumulating parameters, carefully avoiding stack use |
2022-04-19 19:07:55 +0200 | <janus> | to me, a typical haskell program is a HTTP server that talks to a postgres database |
2022-04-19 19:07:56 +0200 | <EvanR> | when doing recursion |
2022-04-19 19:08:14 +0200 | <janus> | the only things that need lazyness, that i can think of, is stuff like `zip [1..]` |
2022-04-19 19:08:35 +0200 | <EvanR> | a web request handler is a very special case environment, you almost don't even need garbage collection |
2022-04-19 19:08:35 +0200 | <janus> | and when i write my http2 library in idris, i don't seem to run into any hurdles |
2022-04-19 19:08:52 +0200 | <EvanR> | just handle the request and tear everything down |
2022-04-19 19:09:02 +0200 | <janus> | ok, so seems like we have different definitions of 'typical' ;) |
2022-04-19 19:09:03 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-04-19 19:09:17 +0200 | <Franciman> | my typical haskell program is an interpreter |
2022-04-19 19:09:29 +0200 | <Franciman> | i really enjoy the interpreter point of view |
2022-04-19 19:09:29 +0200 | <EvanR> | yeah I'm on stage 11 of recovering from "web programming is typical" |
2022-04-19 19:09:43 +0200 | <Franciman> | a web server is an interpreter |
2022-04-19 19:09:54 +0200 | gdd | (~gdd@129.199.146.230) (Ping timeout: 272 seconds) |
2022-04-19 19:09:58 +0200 | <Franciman> | fortunately haskell is very smart about its runtime |
2022-04-19 19:10:02 +0200 | <janus> | yeah, it's interpreting RealWorld# which comes from Postgres :P |
2022-04-19 19:10:22 +0200 | gdd | (~gdd@129.199.146.230) |
2022-04-19 19:10:28 +0200 | <EvanR> | I still see everything as a database, it's not good |
2022-04-19 19:10:35 +0200 | <Franciman> | EvanR: is ghc a database? |
2022-04-19 19:10:47 +0200 | <EvanR> | it probably has many |
2022-04-19 19:11:05 +0200 | <EvanR> | many databases with some compiler caked on the outside |
2022-04-19 19:11:15 +0200 | <Franciman> | dope |
2022-04-19 19:11:24 +0200 | <Franciman> | i see databases as logic programming |
2022-04-19 19:11:34 +0200 | <Franciman> | am i totally astray? |
2022-04-19 19:11:48 +0200 | <EvanR> | if it was logical that would be better |
2022-04-19 19:12:02 +0200 | <janus> | Franciman: yes, because if you try swapping out your postgres layer for LogicT, you're gonna have a hard time |
2022-04-19 19:12:29 +0200 | <EvanR> | sqlite takes a table definition that says floats go in column, and allows "strings" |
2022-04-19 19:12:32 +0200 | <janus> | databases are about indexing and query optimization ;) |
2022-04-19 19:12:55 +0200 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection) |
2022-04-19 19:13:04 +0200 | <EvanR> | databases could have nice laws and logic but usually don't |
2022-04-19 19:13:36 +0200 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) |
2022-04-19 19:13:49 +0200 | odnes | (~odnes@5-203-242-183.pat.nym.cosmote.net) (Quit: Leaving) |
2022-04-19 19:13:50 +0200 | <Franciman> | janus: uh uhuh thanks |
2022-04-19 19:14:26 +0200 | <EvanR> | some of it can't be avoided, some of it entrenched 1980s ideology. Join the 90s, like haskell |
2022-04-19 19:14:32 +0200 | <janus> | Franciman: do you disagree? i am genuinely curious whether you could use LogicT instead of Postgres |
2022-04-19 19:14:58 +0200 | <Franciman> | if you speak of performance, i don't think it's possible |
2022-04-19 19:15:09 +0200 | <Franciman> | but conceptually it seemed to me a pretty straightforward thing to do |
2022-04-19 19:15:10 +0200 | RevoGen | (~RevoGen@laptop-grs098eo.bc.edu) |
2022-04-19 19:15:28 +0200 | <EvanR> | datalog exists |
2022-04-19 19:16:07 +0200 | <janus> | but datomic doesn't allow you to work like you do with LogicT |
2022-04-19 19:16:16 +0200 | <EvanR> | well datomic is datomic |
2022-04-19 19:16:18 +0200 | <dolio> | LogicT isn't a logic language, it's just part of an implementation strategy for one. |
2022-04-19 19:16:41 +0200 | dyeplexer | (~dyeplexer@user/dyeplexer) (Remote host closed the connection) |
2022-04-19 19:17:30 +0200 | <geekosaur> | logic language? https://curry.pages.ps.informatik.uni-kiel.de/curry-lang.org/ |
2022-04-19 19:17:42 +0200 | <Franciman> | so you get to code in both haskell and burry |
2022-04-19 19:17:44 +0200 | <Franciman> | curry* |
2022-04-19 19:17:52 +0200 | <Franciman> | you just have to also learn B, and you'll know |
2022-04-19 19:17:54 +0200 | <Franciman> | haskell b curry |
2022-04-19 19:18:07 +0200 | <janus> | hahah :D |
2022-04-19 19:19:13 +0200 | turlando | (~turlando@user/turlando) (Ping timeout: 260 seconds) |
2022-04-19 19:19:40 +0200 | turlando | (~turlando@93-42-250-112.ip89.fastwebnet.it) |
2022-04-19 19:19:40 +0200 | turlando | (~turlando@93-42-250-112.ip89.fastwebnet.it) (Changing host) |
2022-04-19 19:19:40 +0200 | turlando | (~turlando@user/turlando) |
2022-04-19 19:22:12 +0200 | MajorBiscuit | (~MajorBisc@2a02-a461-129d-1-6d4c-38a4-18b7-4b48.fixed6.kpn.net) |
2022-04-19 19:22:55 +0200 | jerry99 | (~330f6b9c@cerf.good1.com) (Quit: CGI:IRC (Ping timeout)) |
2022-04-19 19:23:12 +0200 | RevoGen | (~RevoGen@laptop-grs098eo.bc.edu) (Ping timeout: 250 seconds) |
2022-04-19 19:25:43 +0200 | mrosenbe | (~mrosenbe@4.7.173.100) |
2022-04-19 19:25:46 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2022-04-19 19:26:10 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2022-04-19 19:30:15 +0200 | merijn | (~merijn@c-001-002-001.client.esciencecenter.eduvpn.nl) |
2022-04-19 19:30:48 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-04-19 19:30:48 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-04-19 19:30:48 +0200 | wroathe | (~wroathe@user/wroathe) |
2022-04-19 19:32:57 +0200 | JordiGH | (~jordi@user/jordigh) |
2022-04-19 19:33:15 +0200 | <JordiGH> | Is there a simple way to syntactically transliterate `int x = y = 42` from C? |
2022-04-19 19:33:50 +0200 | <geekosaur> | not if you expect them to subsequently be C-like variables |
2022-04-19 19:34:06 +0200 | RevoGen | (~RevoGen@136.167.196.105) |
2022-04-19 19:34:25 +0200 | euandreh | (~euandreh@2804:14c:33:9fe5:2165:73d6:1630:f174) (Quit: WeeChat 3.5) |
2022-04-19 19:34:31 +0200 | <JordiGH> | That's what I thought, Haskell doesn't really have an assingment operator, right? Like, you can't do (=) x 5 |
2022-04-19 19:34:42 +0200 | <JordiGH> | (I forget the syntax for calling operators without infix notation) |
2022-04-19 19:35:17 +0200 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) |
2022-04-19 19:35:18 +0200 | <geekosaur> | right |
2022-04-19 19:35:41 +0200 | rawley | (~rawley@142.99.241.242) |
2022-04-19 19:35:44 +0200 | <geekosaur> | closest you get is writeIORef/writeSTRef, I think |
2022-04-19 19:36:21 +0200 | <JordiGH> | Oh that is the syntax. |
2022-04-19 19:36:21 +0200 | <geekosaur> | unless you count State in which case lens has some operators that look like assignment and modification |
2022-04-19 19:36:37 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 256 seconds) |
2022-04-19 19:40:07 +0200 | <JordiGH> | So in particular, there are no associativity rules for = because you just can't put more than one per statement. |
2022-04-19 19:40:14 +0200 | jgeerds | (~jgeerds@d5364b87.access.ecotel.net) |
2022-04-19 19:40:38 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4) |
2022-04-19 19:41:16 +0200 | mstksg | jle` |
2022-04-19 19:42:47 +0200 | <geekosaur> | it's not even a statement, really, unless you mean do syntax |
2022-04-19 19:42:56 +0200 | <geekosaur> | let … in is an expression |
2022-04-19 19:43:34 +0200 | <geekosaur> | let {<bindings>} in <expression> (braces are usually replaced by layout) |
2022-04-19 19:43:49 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 19:44:00 +0200 | <geekosaur> | and a binding is <pattern> = <expression> |
2022-04-19 19:44:01 +0200 | euandreh | (~euandreh@2804:14c:33:9fe5:2165:73d6:1630:f174) |
2022-04-19 19:44:20 +0200 | <geekosaur> | (which can be quite useful, but watch out for failed pattern matches) |
2022-04-19 19:47:01 +0200 | clever | (~clever@99.192.114.98) (Ping timeout: 240 seconds) |
2022-04-19 19:47:24 +0200 | econo | (uid147250@user/econo) |
2022-04-19 19:48:31 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 256 seconds) |
2022-04-19 19:50:43 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-04-19 19:51:15 +0200 | niemand | (~niemand@p2e52fdfd.dip0.t-ipconnect.de) |
2022-04-19 19:52:06 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 276 seconds) |
2022-04-19 19:53:41 +0200 | niemand | (~niemand@p2e52fdfd.dip0.t-ipconnect.de) (Client Quit) |
2022-04-19 19:55:19 +0200 | deadmarshal_ | (~deadmarsh@95.38.228.226) (Ping timeout: 256 seconds) |
2022-04-19 19:58:11 +0200 | RevoGen | (~RevoGen@136.167.196.105) (Remote host closed the connection) |
2022-04-19 19:59:19 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-04-19 19:59:22 +0200 | merijn | (~merijn@c-001-002-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds) |
2022-04-19 19:59:42 +0200 | slack1256 | (~slack1256@191.125.99.208) |
2022-04-19 20:02:53 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-04-19 20:06:28 +0200 | machinedgod | (~machinedg@24.105.81.50) |
2022-04-19 20:06:33 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 20:10:39 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 240 seconds) |
2022-04-19 20:11:35 +0200 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2022-04-19 20:12:32 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 20:13:00 +0200 | sprout | (~quassel@2a02-a45f-f170-1-2c70-4ee9-c067-7549.fixed6.kpn.net) (Ping timeout: 240 seconds) |
2022-04-19 20:17:49 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 246 seconds) |
2022-04-19 20:22:58 +0200 | <slack1256> | Does a complementary package for aeson exist to parsed malformed JSONs on a best effort basis? |
2022-04-19 20:24:57 +0200 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
2022-04-19 20:25:37 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 20:26:42 +0200 | <mrosenbe> | the docs for withMVar say it is atomic if there are no other producers, does that mean that two withMVars will be atomic, but withMVar and putMVar aren't atomic? |
2022-04-19 20:28:26 +0200 | sprout | (~quassel@2a02-a45f-f170-1-2c70-4ee9-c067-7549.fixed6.kpn.net) |
2022-04-19 20:30:55 +0200 | fryguybob | (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) (Quit: leaving) |
2022-04-19 20:31:18 +0200 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.5) |
2022-04-19 20:32:02 +0200 | coot_ | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot_) |
2022-04-19 20:32:26 +0200 | myme | (~myme@2a01:799:d5a:cd00:e3b:86e:c55b:7eff) |
2022-04-19 20:33:20 +0200 | coot | (~coot@213.134.190.95) |
2022-04-19 20:38:29 +0200 | neceve | (~quassel@2.29.116.221) |
2022-04-19 20:38:48 +0200 | sprout | (~quassel@2a02-a45f-f170-1-2c70-4ee9-c067-7549.fixed6.kpn.net) (Ping timeout: 248 seconds) |
2022-04-19 20:47:54 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-04-19 20:49:19 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 246 seconds) |
2022-04-19 20:49:29 +0200 | acidjnk | (~acidjnk@p200300d0c722df64b44bf627258f714f.dip0.t-ipconnect.de) |
2022-04-19 20:50:15 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 20:52:49 +0200 | mbuf | (~Shakthi@136.185.79.70) (Quit: Leaving) |
2022-04-19 20:53:57 +0200 | bollu4 | (~bollu@159.65.151.13) |
2022-04-19 20:55:02 +0200 | bollu | (~bollu@159.65.151.13) (Ping timeout: 272 seconds) |
2022-04-19 20:55:03 +0200 | bollu4 | bollu |
2022-04-19 20:55:24 +0200 | jinsun__ | (~jinsun@user/jinsun) |
2022-04-19 20:55:42 +0200 | MajorBiscuit | (~MajorBisc@2a02-a461-129d-1-6d4c-38a4-18b7-4b48.fixed6.kpn.net) (Ping timeout: 250 seconds) |
2022-04-19 20:57:39 +0200 | nerdypepper | (~nerdypepp@user/nerdypepper) (Ping timeout: 256 seconds) |
2022-04-19 20:57:53 +0200 | abiss27 | (~abiss27@user/abiss) (Quit: hasta la vista... tchau!) |
2022-04-19 20:58:11 +0200 | nerdypepper | (~nerdypepp@user/nerdypepper) |
2022-04-19 20:59:03 +0200 | jinsun | (~jinsun@user/jinsun) (Ping timeout: 276 seconds) |
2022-04-19 20:59:55 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-04-19 21:01:03 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-98.elisa-laajakaista.fi) |
2022-04-19 21:01:59 +0200 | jgeerds | (~jgeerds@d5364b87.access.ecotel.net) (Ping timeout: 240 seconds) |
2022-04-19 21:02:02 +0200 | <EvanR> | mrosenbe, it's referring to how withMVar will do a take, run your code, then do a put. Obviously there is time there for someone else to put their own thing back before you do |
2022-04-19 21:02:23 +0200 | dsrt^ | (~dsrt@50-192-56-193-static.hfc.comcastbusiness.net) |
2022-04-19 21:02:31 +0200 | DNH | (~DNH@2a02:8109:b740:2c4:39b1:39b8:aa61:2e31) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-04-19 21:02:38 +0200 | <EvanR> | which would break atomicity |
2022-04-19 21:03:17 +0200 | <EvanR> | if multiple threads are doing withMVar, it's ok because everyone is waiting to take |
2022-04-19 21:04:27 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2022-04-19 21:05:10 +0200 | <EvanR> | see TVars for something less brittle |
2022-04-19 21:06:43 +0200 | DNH | (~DNH@2a02:8109:b740:2c4:39b1:39b8:aa61:2e31) |
2022-04-19 21:09:19 +0200 | MajorBiscuit | (~MajorBisc@2a02-a461-129d-1-6d4c-38a4-18b7-4b48.fixed6.kpn.net) |
2022-04-19 21:16:16 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 246 seconds) |
2022-04-19 21:18:43 +0200 | myme | (~myme@2a01:799:d5a:cd00:e3b:86e:c55b:7eff) (Quit: WeeChat 3.4.1) |
2022-04-19 21:21:20 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-04-19 21:25:04 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 21:29:19 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 240 seconds) |
2022-04-19 21:31:56 +0200 | myme | (~myme@2a01:799:d5a:cd00:7ca6:39bc:e22b:ee2b) |
2022-04-19 21:32:04 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2022-04-19 21:33:21 +0200 | bahamas | (~lucian@84.232.140.158) (Ping timeout: 256 seconds) |
2022-04-19 21:34:43 +0200 | sprout | (~quassel@2a02-a467-ccd6-1-6cc6-7e1b-4577-8227.fixed6.kpn.net) |
2022-04-19 21:37:00 +0200 | anomal | (~anomal@87.227.196.109) |
2022-04-19 21:43:03 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 21:43:53 +0200 | <mrosenbe> | EvanR: mvar is fine for my uses, I mostly wanted to make sure my interpretation of that was correct, and it sounds like it is. |
2022-04-19 21:48:14 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-04-19 21:49:22 +0200 | zer0bitz | (~zer0bitz@2001:2003:f444:8f00:d86f:477d:4b86:10fd) (Read error: Connection reset by peer) |
2022-04-19 21:50:24 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 276 seconds) |
2022-04-19 21:50:52 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2022-04-19 21:51:00 +0200 | Guest292 | (~Guest29@S01061056118fff83.wp.shawcable.net) |
2022-04-19 21:51:56 +0200 | Guest292 | (~Guest29@S01061056118fff83.wp.shawcable.net) (Client Quit) |
2022-04-19 21:52:05 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 21:54:20 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2022-04-19 21:56:23 +0200 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) |
2022-04-19 21:56:31 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 246 seconds) |
2022-04-19 22:00:41 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 22:00:48 +0200 | neurocyte8614492 | (~neurocyte@user/neurocyte) (Ping timeout: 276 seconds) |
2022-04-19 22:02:54 +0200 | pavonia | (~user@user/siracusa) |
2022-04-19 22:04:22 +0200 | _ht | (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection) |
2022-04-19 22:07:19 +0200 | MajorBiscuit | (~MajorBisc@2a02-a461-129d-1-6d4c-38a4-18b7-4b48.fixed6.kpn.net) (Ping timeout: 240 seconds) |
2022-04-19 22:07:30 +0200 | Inoperable | (~PLAYER_1@fancydata.science) (Quit: All your buffer are belong to us!) |
2022-04-19 22:08:02 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-04-19 22:08:29 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 256 seconds) |
2022-04-19 22:09:15 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds) |
2022-04-19 22:09:44 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-04-19 22:12:09 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 22:12:53 +0200 | romesrf | (~romes@185.5.8.134) (Quit: WeeChat 3.4.1) |
2022-04-19 22:14:01 +0200 | MajorBiscuit | (~MajorBisc@2a02-a461-129d-1-6d4c-38a4-18b7-4b48.fixed6.kpn.net) |
2022-04-19 22:17:33 +0200 | dcoutts_ | (~duncan@host213-122-143-81.range213-122.btcentralplus.com) (Ping timeout: 256 seconds) |
2022-04-19 22:20:19 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 240 seconds) |
2022-04-19 22:20:26 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-04-19 22:21:06 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2022-04-19 22:24:21 +0200 | dcoutts_ | (~duncan@host213-122-143-81.range213-122.btcentralplus.com) |
2022-04-19 22:25:50 +0200 | akegalj | (~akegalj@141-136-168-234.dsl.iskon.hr) |
2022-04-19 22:25:58 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 22:27:52 +0200 | Inoperable | (~PLAYER_1@fancydata.science) |
2022-04-19 22:27:55 +0200 | lbseale_ | (~ep1ctetus@user/ep1ctetus) |
2022-04-19 22:30:10 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 250 seconds) |
2022-04-19 22:30:49 +0200 | lbseale | (~ep1ctetus@user/ep1ctetus) (Ping timeout: 246 seconds) |
2022-04-19 22:31:21 +0200 | merijn | (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 276 seconds) |
2022-04-19 22:32:12 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 22:39:09 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 276 seconds) |
2022-04-19 22:40:32 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 22:42:33 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-04-19 22:44:39 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 240 seconds) |
2022-04-19 22:46:36 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 22:48:52 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-04-19 22:50:59 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 256 seconds) |
2022-04-19 22:53:15 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2022-04-19 22:53:34 +0200 | Pickchea | (~private@user/pickchea) |
2022-04-19 22:54:11 +0200 | <ggVGc> | I think "it's fine for my use-case" is how every story leading up to a race condition starts |
2022-04-19 22:54:29 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-04-19 22:54:30 +0200 | <ggVGc> | (not that I haven't also said it to myself, and used MVars) |
2022-04-19 22:56:12 +0200 | <ggVGc> | sometimes I wonder if geekosaur remembers how much I was pestering him 10 years ago while trying to use xmonad and knowing 0 Haskell |
2022-04-19 22:56:30 +0200 | <geekosaur> | I do, actually :) |
2022-04-19 22:56:34 +0200 | <ggVGc> | actually... it's more like 12 years now :( |
2022-04-19 22:56:37 +0200 | <ggVGc> | haha |
2022-04-19 22:56:45 +0200 | <ggVGc> | well here I am writing Haskell and not using xmonad |
2022-04-19 22:56:52 +0200 | <ggVGc> | so it worked out in the end I guess |
2022-04-19 22:57:25 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 22:57:30 +0200 | <ggVGc> | I think "I'll use xmonad so I'll learn Haskell" is a pretty bad trap that I see many people fall into |
2022-04-19 22:57:35 +0200 | <ggVGc> | but there's no stopping it |
2022-04-19 22:59:35 +0200 | fendor | (~fendor@91.141.37.72.wireless.dyn.drei.com) (Remote host closed the connection) |
2022-04-19 23:01:37 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 246 seconds) |
2022-04-19 23:01:48 +0200 | akegalj | (~akegalj@141-136-168-234.dsl.iskon.hr) (Quit: leaving) |
2022-04-19 23:03:12 +0200 | neceve | (~quassel@2.29.116.221) (Ping timeout: 276 seconds) |
2022-04-19 23:07:36 +0200 | kaph | (~kaph@ge-19-125-59.service.infuturo.it) |
2022-04-19 23:10:38 +0200 | anomal | (~anomal@87.227.196.109) (Remote host closed the connection) |
2022-04-19 23:10:57 +0200 | anomal | (~anomal@87.227.196.109) |
2022-04-19 23:14:16 +0200 | <janus> | ggVGc: Wayland can stop it |
2022-04-19 23:14:20 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 23:15:04 +0200 | <geekosaur> | waymonad exists :þ |
2022-04-19 23:15:22 +0200 | <geekosaur> | that said, xmonad can work asan intro to haskell *if* you're willing to put in the work |
2022-04-19 23:15:38 +0200 | <geekosaur> | but most folks just copy around configs and don't try to figureout what they're doing |
2022-04-19 23:16:47 +0200 | <janus> | geekosaur: which is the better intro to haskell, tidal cycles or waymonad? :D |
2022-04-19 23:16:48 +0200 | <geekosaur> | and we don't generally try to teach Haskell because most people just want a working config and don't care about the why |
2022-04-19 23:17:38 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-04-19 23:18:31 +0200 | <geekosaur> | no idea about tidal cyclesbut I noteits repo has ports to js and python so I assume it's not exactly grabbing people into haskell very well :) |
2022-04-19 23:18:46 +0200 | <geekosaur> | then again I hgave no idea how well waymonad is doing in that area either |
2022-04-19 23:21:06 +0200 | <janus> | i think there are ports to other languages because e.g. indian classical music aren't as strongly correlated intrests as workspace organization and haskell are |
2022-04-19 23:22:16 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 246 seconds) |
2022-04-19 23:22:22 +0200 | <ggVGc> | Personally I don't think xmonad was a good intro to Haskell for me. I had already been doing F# for a while, so was no stranger to functional programming in general, but xmonad is too much "Real world" for beginner Haskell, in my personal experience |
2022-04-19 23:22:54 +0200 | <ggVGc> | it also doesn't help that, as you say, the user wants "it to work" because it's your WM... |
2022-04-19 23:23:10 +0200 | <ggVGc> | so there's a bad pressure to make things work, rather than learning |
2022-04-19 23:23:13 +0200 | <geekosaur> | dig too deepand you find yourself learning more about X11 than about Haskell |
2022-04-19 23:23:17 +0200 | <systemfault> | Reminds me of "Real-world Haskell"... which was, in a hindsight, not real "real world" |
2022-04-19 23:23:27 +0200 | <systemfault> | *really |
2022-04-19 23:23:39 +0200 | <geekosaur> | actually xmonad's an examplein there :) |
2022-04-19 23:23:52 +0200 | <janus> | if xmonad is of the real world, is tidal cycles from the unreal realm? :O |
2022-04-19 23:24:12 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-04-19 23:24:20 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 23:25:10 +0200 | renzhi | (~xp@2607:fa49:6500:b100::229c) |
2022-04-19 23:28:34 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 246 seconds) |
2022-04-19 23:31:11 +0200 | rawley | (~rawley@142.99.241.242) (Remote host closed the connection) |
2022-04-19 23:35:27 +0200 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-04-19 23:36:54 +0200 | michalz | (~michalz@185.246.204.61) (Remote host closed the connection) |
2022-04-19 23:38:25 +0200 | MajorBiscuit | (~MajorBisc@2a02-a461-129d-1-6d4c-38a4-18b7-4b48.fixed6.kpn.net) (Quit: WeeChat 3.4) |
2022-04-19 23:39:55 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 23:41:20 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2022-04-19 23:44:48 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 276 seconds) |
2022-04-19 23:48:02 +0200 | coot | (~coot@213.134.190.95) (Quit: coot) |
2022-04-19 23:49:58 +0200 | DNH | (~DNH@2a02:8109:b740:2c4:39b1:39b8:aa61:2e31) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-04-19 23:52:35 +0200 | redb | (~nmh@136.49.49.211) |
2022-04-19 23:57:06 +0200 | xkuru | (~xkuru@user/xkuru) |
2022-04-19 23:57:32 +0200 | nihilazo | (~nihilazo@tilde.town) |
2022-04-19 23:58:10 +0200 | <nihilazo> | hi, what would be the best way to learn haskell for somebody who already knows FP but only in dynamic languages (haskell for a lisper, basically)? is learn you a haskell still considered good? |
2022-04-19 23:59:45 +0200 | redb | (~nmh@136.49.49.211) (Ping timeout: 276 seconds) |
2022-04-19 23:59:47 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |