2021-12-20 00:00:00 +0100 | <dibblego> | it isn't? |
2021-12-20 00:00:04 +0100 | <dibblego> | @type join . map |
2021-12-20 00:00:06 +0100 | <lambdabot> | error: |
2021-12-20 00:00:06 +0100 | <lambdabot> | • Couldn't match type ‘(->) [a]’ with ‘[]’ |
2021-12-20 00:00:06 +0100 | <lambdabot> | Expected type: (a -> a1) -> [[a1]] |
2021-12-20 00:00:12 +0100 | <dibblego> | @type (join .) . fmap |
2021-12-20 00:00:14 +0100 | <lambdabot> | Monad m => (a1 -> m a2) -> m a1 -> m a2 |
2021-12-20 00:00:37 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-20 00:00:44 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:1116:7911:5ad7:44c3) |
2021-12-20 00:02:08 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-20 00:02:43 +0100 | khumba | (~khumba@user/khumba) |
2021-12-20 00:03:24 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-20 00:04:57 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:1116:7911:5ad7:44c3) (Ping timeout: 240 seconds) |
2021-12-20 00:04:57 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2021-12-20 00:05:34 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7cf1:85e9:3000:4f4d) |
2021-12-20 00:06:50 +0100 | <Inst> | i'm sort of going nuts |
2021-12-20 00:07:00 +0100 | <Inst> | basically, pure etc isn't behaving the way it should |
2021-12-20 00:07:07 +0100 | <Inst> | @type pure Just 3 |
2021-12-20 00:07:08 +0100 | <lambdabot> | a -> Maybe a |
2021-12-20 00:07:16 +0100 | <geekosaur> | you need parentheses |
2021-12-20 00:07:20 +0100 | <Inst> | @type pure (Just 3) |
2021-12-20 00:07:21 +0100 | <lambdabot> | (Applicative f, Num a) => f (Maybe a) |
2021-12-20 00:07:40 +0100 | <Inst> | @pure (Just 3) |
2021-12-20 00:07:40 +0100 | <lambdabot> | Maybe you meant: url part more |
2021-12-20 00:08:21 +0100 | <geekosaur> | what exactly are you trying to do? |
2021-12-20 00:08:31 +0100 | <superstar64> | Inst, functions are monads too. Where `pure = const` |
2021-12-20 00:08:59 +0100 | <Inst> | basically, the way I understand it is that pure is the inverse of join |
2021-12-20 00:09:03 +0100 | <Inst> | but it's behaving weirdly |
2021-12-20 00:09:13 +0100 | <geekosaur> | mm, I wouldn't say that |
2021-12-20 00:09:37 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7cf1:85e9:3000:4f4d) (Ping timeout: 240 seconds) |
2021-12-20 00:09:56 +0100 | <Inst> | maybe i don't get it |
2021-12-20 00:09:57 +0100 | <EvanR> | :t let (.:) = (.) . (.) in join .: fmap |
2021-12-20 00:09:58 +0100 | <lambdabot> | Monad m => (a1 -> m a2) -> m a1 -> m a2 |
2021-12-20 00:10:01 +0100 | <Inst> | pure [] = [] |
2021-12-20 00:10:22 +0100 | <superstar64> | It's not being weird. It's just when you do `(pure a) x`. It puts `a` in the function monad, which makes it then ignore `x`. |
2021-12-20 00:10:30 +0100 | <dibblego> | pure is identity for join |
2021-12-20 00:10:31 +0100 | <superstar64> | It's an issue of haskell being to generic. |
2021-12-20 00:10:34 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-20 00:10:34 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-20 00:10:53 +0100 | <geekosaur> | :t pure [] |
2021-12-20 00:10:54 +0100 | <lambdabot> | Applicative f => f [a] |
2021-12-20 00:11:06 +0100 | <Inst> | so how do I get pure [] to yield [[]]? |
2021-12-20 00:11:25 +0100 | <geekosaur> | do it in the [] monad/applicative |
2021-12-20 00:11:38 +0100 | <geekosaur> | % :t pure [] @[] |
2021-12-20 00:11:39 +0100 | <yahb> | geekosaur: ; <interactive>:1:1: error:; * Cannot apply expression of type `f0 [a0]'; to a visible type argument `[]'; * In the expression: pure [] @[] |
2021-12-20 00:11:46 +0100 | <superstar64> | Inst, `pure [] :: [[Int]]` |
2021-12-20 00:11:50 +0100 | <zero> | > pure [] :: [[]] |
2021-12-20 00:11:51 +0100 | <lambdabot> | error: |
2021-12-20 00:11:51 +0100 | <lambdabot> | • Expecting one more argument to ‘[]’ |
2021-12-20 00:11:51 +0100 | <lambdabot> | Expected a type, but ‘[]’ has kind ‘* -> *’ |
2021-12-20 00:11:55 +0100 | <geekosaur> | :t (pure @[]) [] |
2021-12-20 00:11:56 +0100 | <lambdabot> | error: |
2021-12-20 00:11:56 +0100 | <lambdabot> | Pattern syntax in expression context: pure@[] |
2021-12-20 00:11:56 +0100 | <lambdabot> | Did you mean to enable TypeApplications? |
2021-12-20 00:12:01 +0100 | <Inst> | !!! >:( |
2021-12-20 00:12:04 +0100 | <zero> | > pure [] :: [[Int]] |
2021-12-20 00:12:04 +0100 | <geekosaur> | wrong bot. not my night |
2021-12-20 00:12:05 +0100 | <lambdabot> | [[]] |
2021-12-20 00:12:12 +0100 | <EvanR> | you can force it with artificial signatures and type applications but realistically it will just work, because of the context |
2021-12-20 00:12:13 +0100 | <geekosaur> | % :t (pure @[]) [] |
2021-12-20 00:12:13 +0100 | <yahb> | geekosaur: [[a]] |
2021-12-20 00:12:42 +0100 | <Inst> | i already have control monad imported |
2021-12-20 00:13:04 +0100 | <EvanR> | write top level type signatures for your code that uses pure |
2021-12-20 00:13:39 +0100 | <EvanR> | if you don't, your code may end up working for any Applicative not just [] |
2021-12-20 00:13:43 +0100 | <zero> | :msg lambdabot > pure () |
2021-12-20 00:13:47 +0100 | <EvanR> | horrible I know! |
2021-12-20 00:14:57 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-20 00:14:58 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-20 00:16:09 +0100 | <Inst> | i'm going to sleep, thanks for trying |
2021-12-20 00:17:08 +0100 | <EvanR> | type inference picks the most general type that would work, even if that may confuse you |
2021-12-20 00:17:19 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-20 00:17:20 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-20 00:17:29 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot) |
2021-12-20 00:17:32 +0100 | kranius_ | (~kranius@222.186.245.213.rev.sfr.net) (Ping timeout: 240 seconds) |
2021-12-20 00:18:27 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-20 00:18:28 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-20 00:19:45 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-20 00:19:46 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-20 00:20:08 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-20 00:20:10 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-20 00:21:06 +0100 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Remote host closed the connection) |
2021-12-20 00:21:23 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-20 00:21:24 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-20 00:22:37 +0100 | dsp | (~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) (Ping timeout: 240 seconds) |
2021-12-20 00:24:17 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-169.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-12-20 00:25:25 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-20 00:25:26 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-20 00:26:00 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-20 00:26:02 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-20 00:26:06 +0100 | TonyStone | (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) (Remote host closed the connection) |
2021-12-20 00:26:26 +0100 | deech | (~user@024-217-244-075.res.spectrum.com) |
2021-12-20 00:27:00 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: closed) |
2021-12-20 00:27:07 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-20 00:28:57 +0100 | TonyStone | (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) |
2021-12-20 00:30:37 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-20 00:30:38 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-20 00:31:02 +0100 | <d34df00d> | Why can't I write something like `(Applicative f, forall a. (WrapperType f a ~ f a)) => ...`, where WrapperType is a closed type family? |
2021-12-20 00:31:14 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 256 seconds) |
2021-12-20 00:31:45 +0100 | <d34df00d> | I'm getting `Illegal type synonym family application ‘WrapperType f’ in instance: WrapperType f a ~ f a` |
2021-12-20 00:32:26 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-20 00:33:29 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: closed) |
2021-12-20 00:33:39 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-20 00:36:32 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:1116:7911:5ad7:44c3) |
2021-12-20 00:37:35 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-12-20 00:38:07 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:d8a9:a97b:f226:606f) |
2021-12-20 00:38:10 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:d8a9:a97b:f226:606f) (Client Quit) |
2021-12-20 00:39:14 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:d8a9:a97b:f226:606f) |
2021-12-20 00:41:15 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-12-20 00:41:32 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:1116:7911:5ad7:44c3) (Ping timeout: 252 seconds) |
2021-12-20 00:42:48 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-20 00:42:49 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-20 00:42:55 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-12-20 00:43:17 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: closed) |
2021-12-20 00:43:34 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-20 00:43:42 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-12-20 00:47:02 +0100 | Jing_ | (~hedgehog@2604:a840:3::103b) (Remote host closed the connection) |
2021-12-20 00:47:41 +0100 | Jing | (~hedgehog@2604:a840:3::103b) |
2021-12-20 00:47:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-20 00:51:38 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-12-20 00:54:41 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:1116:7911:5ad7:44c3) |
2021-12-20 00:55:36 +0100 | acidjnk | (~acidjnk@pd9e0bdc0.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2021-12-20 00:59:02 +0100 | pavonia | (~user@user/siracusa) |
2021-12-20 00:59:06 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:1116:7911:5ad7:44c3) (Ping timeout: 268 seconds) |
2021-12-20 00:59:12 +0100 | Henson | (~kvirc@107-179-133-201.cpe.teksavvy.com) |
2021-12-20 01:00:49 +0100 | epolanski | (uid312403@id-312403.helmsley.irccloud.com) |
2021-12-20 01:05:14 +0100 | <monochrom> | d34df00d: If GHC 9.2, QuantifiedConstraints may help, but I haven't checked. |
2021-12-20 01:05:39 +0100 | <d34df00d> | monochrom: I'm doing this with ghc 8.10 and -XQuantifiedConstraints on. I'll try with 9.2, thanks! |
2021-12-20 01:07:33 +0100 | <d34df00d> | Hmm, looks like the same error. |
2021-12-20 01:08:03 +0100 | <monochrom> | Then it is something else I don't know of. |
2021-12-20 01:10:37 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7cf1:85e9:3000:4f4d) |
2021-12-20 01:10:55 +0100 | superstar64 | (~superstar@2600:1700:ed80:50a0:d250:99ff:fe2c:53c4) (Quit: Leaving) |
2021-12-20 01:18:06 +0100 | SummerSonw | (~The_viole@203.77.49.232) |
2021-12-20 01:20:47 +0100 | jackson99 | (~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Ping timeout)) |
2021-12-20 01:21:37 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-12-20 01:21:49 +0100 | waleee | (~waleee@h-98-128-229-110.NA.cust.bahnhof.se) (Ping timeout: 240 seconds) |
2021-12-20 01:21:54 +0100 | xsperry | (~xs@user/xsperry) (Ping timeout: 268 seconds) |
2021-12-20 01:24:21 +0100 | Techcable_ | Techcable |
2021-12-20 01:25:35 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2021-12-20 01:25:39 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3) |
2021-12-20 01:27:02 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
2021-12-20 01:28:34 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:21ba:a382:6b6:54c4) |
2021-12-20 01:33:32 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:21ba:a382:6b6:54c4) (Ping timeout: 240 seconds) |
2021-12-20 01:33:57 +0100 | DNH_ | (~DNH@ip5f5abb04.dynamic.kabel-deutschland.de) |
2021-12-20 01:34:14 +0100 | mcgroin | (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 268 seconds) |
2021-12-20 01:34:16 +0100 | DNH_ | (~DNH@ip5f5abb04.dynamic.kabel-deutschland.de) (Client Quit) |
2021-12-20 01:35:59 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:d8a9:a97b:f226:606f) (Ping timeout: 252 seconds) |
2021-12-20 01:42:09 +0100 | xsperry | (~xs@user/xsperry) |
2021-12-20 01:49:44 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 252 seconds) |
2021-12-20 01:59:57 +0100 | jkaye | (~jkaye@2601:281:8300:7530:76ff:6d0a:27ec:c880) (Ping timeout: 240 seconds) |
2021-12-20 02:00:39 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2021-12-20 02:04:12 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:1116:7911:5ad7:44c3) |
2021-12-20 02:05:32 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
2021-12-20 02:05:47 +0100 | Everything | (~Everythin@128-124-10-123.mobile.vf-ua.net) |
2021-12-20 02:06:38 +0100 | doyougnu | (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (Remote host closed the connection) |
2021-12-20 02:08:37 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:1116:7911:5ad7:44c3) (Ping timeout: 240 seconds) |
2021-12-20 02:11:07 +0100 | ubert | (~Thunderbi@p200300ecdf0a5d10d9ff0243dc33f2a7.dip0.t-ipconnect.de) (Remote host closed the connection) |
2021-12-20 02:11:25 +0100 | ubert | (~Thunderbi@p200300ecdf0a5d10d9ff0243dc33f2a7.dip0.t-ipconnect.de) |
2021-12-20 02:11:36 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-12-20 02:17:43 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-12-20 02:19:42 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds) |
2021-12-20 02:24:57 +0100 | taterbase | (~user@2603-7081-6902-9100-0000-0000-0000-0006.res6.spectrum.com) (Ping timeout: 240 seconds) |
2021-12-20 02:26:10 +0100 | Jing | (~hedgehog@2604:a840:3::103b) (Remote host closed the connection) |
2021-12-20 02:26:40 +0100 | Jonno_FTW | (~come@api.carswap.me) (Changing host) |
2021-12-20 02:26:40 +0100 | Jonno_FTW | (~come@user/jonno-ftw/x-0835346) |
2021-12-20 02:27:00 +0100 | Jing | (~hedgehog@2604:a840:3::103b) |
2021-12-20 02:37:46 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:1116:7911:5ad7:44c3) |
2021-12-20 02:43:05 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:1116:7911:5ad7:44c3) (Ping timeout: 252 seconds) |
2021-12-20 02:50:04 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-12-20 02:53:57 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 240 seconds) |
2021-12-20 02:59:35 +0100 | Sobhan | (~Sobhan@modemcable039.128-131-66.mc.videotron.ca) (Ping timeout: 256 seconds) |
2021-12-20 02:59:50 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-20 03:01:22 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-12-20 03:01:56 +0100 | <jackdk> | `(Applicative f, (forall a. WrapperType f a ~ f a)) => ...`, perhaps? |
2021-12-20 03:02:15 +0100 | <[itchyjunk]> | Anyone saw this this? |
2021-12-20 03:02:17 +0100 | <[itchyjunk]> | https://www.cs.yale.edu/homes/hudak/Papers/HSoM.pdf |
2021-12-20 03:03:57 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2021-12-20 03:07:56 +0100 | <EvanR> | that's an old one |
2021-12-20 03:08:10 +0100 | <EvanR> | has anyone seen the software though |
2021-12-20 03:08:33 +0100 | <[itchyjunk]> | its from 2012 apparently |
2021-12-20 03:11:29 +0100 | <EvanR> | maybe I was thinking of haskell school of expression |
2021-12-20 03:12:00 +0100 | <[itchyjunk]> | The topics in the book looks fairly advanced. |
2021-12-20 03:12:12 +0100 | <[itchyjunk]> | I wonder what kind of person can handle a book like that |
2021-12-20 03:12:35 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:1116:7911:5ad7:44c3) |
2021-12-20 03:14:42 +0100 | bollu | (uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-20 03:14:49 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) |
2021-12-20 03:17:38 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:1116:7911:5ad7:44c3) (Ping timeout: 260 seconds) |
2021-12-20 03:18:31 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-20 03:23:19 +0100 | <EvanR> | evolution of a haskell programmer |
2021-12-20 03:27:39 +0100 | ub | (~Thunderbi@p200300ecdf0a5d0bd9ff0243dc33f2a7.dip0.t-ipconnect.de) |
2021-12-20 03:27:42 +0100 | ubert | (~Thunderbi@p200300ecdf0a5d10d9ff0243dc33f2a7.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
2021-12-20 03:27:42 +0100 | ub | ubert |
2021-12-20 03:28:36 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds) |
2021-12-20 03:31:18 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-20 03:31:18 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-20 03:31:18 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-20 03:31:52 +0100 | <d34df00d> | jackdk: nope, that doesn't help, sadly, I get the same error. |
2021-12-20 03:37:43 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.4) |
2021-12-20 03:39:34 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-12-20 03:39:37 +0100 | neurocyte0132889 | (~neurocyte@user/neurocyte) (Ping timeout: 240 seconds) |
2021-12-20 03:39:50 +0100 | <jackdk> | d34df00d: can you pastebin an example for me to play with? |
2021-12-20 03:42:03 +0100 | mbuf | (~Shakthi@223.178.83.73) |
2021-12-20 03:45:08 +0100 | kaph | (~kaph@net-2-47-236-216.cust.vodafonedsl.it) |
2021-12-20 03:46:47 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:1116:7911:5ad7:44c3) |
2021-12-20 03:47:33 +0100 | Guest1 | (~Guest1@2601:18c:4300:36d0:7c5f:5bfd:da1:79ca) |
2021-12-20 03:50:19 +0100 | dsrt^ | (~dsrt@64.253.22.77) |
2021-12-20 03:51:03 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
2021-12-20 03:52:26 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
2021-12-20 03:52:43 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) |
2021-12-20 03:53:15 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-12-20 03:54:13 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:1116:7911:5ad7:44c3) (Ping timeout: 240 seconds) |
2021-12-20 03:55:46 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-12-20 03:55:53 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:1116:7911:5ad7:44c3) |
2021-12-20 03:57:20 +0100 | xff0x | (~xff0x@2001:1a81:53d2:9000:941d:3a25:9fc5:6e77) (Ping timeout: 252 seconds) |
2021-12-20 03:57:49 +0100 | mikoto-chan | (~mikoto-ch@esm-84-240-99-143.netplaza.fi) |
2021-12-20 03:59:21 +0100 | xff0x | (~xff0x@2001:1a81:5214:2e00:5b16:4ef1:d67d:4f66) |
2021-12-20 04:00:31 +0100 | epolanski | (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-20 04:01:01 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:1116:7911:5ad7:44c3) (Ping timeout: 268 seconds) |
2021-12-20 04:01:02 +0100 | notzmv | (~zmv@user/notzmv) |
2021-12-20 04:03:22 +0100 | mikoto-chan | (~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Ping timeout: 260 seconds) |
2021-12-20 04:03:58 +0100 | mikoto-chan | (~mikoto-ch@esm-84-240-99-143.netplaza.fi) |
2021-12-20 04:04:43 +0100 | lemonsnicks | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-12-20 04:04:54 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-20 04:06:06 +0100 | Guest1 | (~Guest1@2601:18c:4300:36d0:7c5f:5bfd:da1:79ca) (Quit: Client closed) |
2021-12-20 04:10:02 +0100 | danso | (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) |
2021-12-20 04:11:37 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) |
2021-12-20 04:16:11 +0100 | lemonsnicks | (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
2021-12-20 04:20:07 +0100 | td_ | (~td@muedsl-82-207-238-128.citykom.de) (Ping timeout: 268 seconds) |
2021-12-20 04:21:23 +0100 | td_ | (~td@94.134.91.10) |
2021-12-20 04:23:57 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-12-20 04:24:31 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) |
2021-12-20 04:24:57 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
2021-12-20 04:27:03 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-12-20 04:28:57 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
2021-12-20 04:29:22 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:1116:7911:5ad7:44c3) |
2021-12-20 04:34:44 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:1116:7911:5ad7:44c3) (Ping timeout: 252 seconds) |
2021-12-20 04:36:13 +0100 | TranquilEcho | (~grom@user/tranquilecho) (Quit: WeeChat 2.8) |
2021-12-20 04:37:54 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: Replaced by new connection) |
2021-12-20 04:37:55 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-20 04:38:22 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: closed) |
2021-12-20 04:38:34 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2021-12-20 04:39:27 +0100 | Nahra | (~user@static.161.95.99.88.clients.your-server.de) (Remote host closed the connection) |
2021-12-20 04:42:46 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-20 04:42:57 +0100 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat) |
2021-12-20 04:44:09 +0100 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) |
2021-12-20 04:47:48 +0100 | Morrow | (~quassel@bzq-110-168-31-106.red.bezeqint.net) (Remote host closed the connection) |
2021-12-20 04:48:19 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
2021-12-20 04:49:06 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-12-20 04:49:07 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 268 seconds) |
2021-12-20 04:54:02 +0100 | pgib | (~textual@173.38.117.69) (Ping timeout: 268 seconds) |
2021-12-20 04:58:22 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 268 seconds) |
2021-12-20 04:59:56 +0100 | Everything | (~Everythin@128-124-10-123.mobile.vf-ua.net) (Quit: leaving) |
2021-12-20 05:00:43 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) |
2021-12-20 05:03:48 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:1116:7911:5ad7:44c3) |
2021-12-20 05:05:30 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-12-20 05:05:34 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-20 05:06:22 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) |
2021-12-20 05:08:17 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:1116:7911:5ad7:44c3) (Ping timeout: 240 seconds) |
2021-12-20 05:10:37 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
2021-12-20 05:14:22 +0100 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Read error: Connection reset by peer) |
2021-12-20 05:16:42 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) |
2021-12-20 05:17:00 +0100 | Akiva | (~Akiva@user/Akiva) |
2021-12-20 05:22:23 +0100 | hornetcluster | (~textual@2601:5c0:c280:7e20:5502:4cf:f65e:fd6b) |
2021-12-20 05:24:36 +0100 | cjb | (~cjb@user/cjb) (Quit: rcirc on GNU Emacs 29.0.50) |
2021-12-20 05:29:52 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-20 05:30:00 +0100 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
2021-12-20 05:30:23 +0100 | <hornetcluster> | Need help: https://paste.tomsmeding.com/nQLUyCHJ |
2021-12-20 05:32:15 +0100 | deadmarshal | (~deadmarsh@95.38.230.107) |
2021-12-20 05:34:54 +0100 | <Axman6> | > fmap (*2) <$> [Just 1, Nothing, Just 2, Just 3] |
2021-12-20 05:34:56 +0100 | <lambdabot> | [Just 2,Nothing,Just 4,Just 6] |
2021-12-20 05:35:26 +0100 | <Axman6> | > getCompose $ (*2) <$> Compose [Just 1, Nothing, Just 2, Just 3] |
2021-12-20 05:35:28 +0100 | <lambdabot> | error: |
2021-12-20 05:35:28 +0100 | <lambdabot> | Variable not in scope: getCompose :: f0 b0 -> terror: |
2021-12-20 05:35:28 +0100 | <lambdabot> | • Data constructor not in scope: Compose :: [Maybe a0] -> f0 b0 |
2021-12-20 05:35:36 +0100 | <Axman6> | % getCompose $ (*2) <$> Compose [Just 1, Nothing, Just 2, Just 3] |
2021-12-20 05:35:36 +0100 | <yahb> | Axman6: ; <interactive>:199:1: error: Variable not in scope: getCompose :: f0 b0 -> t; <interactive>:199:23: error:; * Data constructor not in scope: Compose :: [Maybe a0] -> f0 b0; * Perhaps you meant one of these: variable `M.compose' (imported from Data.Map), variable `IM.compose' (imported from Data.IntMap), variable `icompose' (imported from Control.Lens) |
2021-12-20 05:36:34 +0100 | <Axman6> | % Data.Functor.Compose.getCompose $ (*2) <$> Compose [Just 1, Nothing, Just 2, Just 3] |
2021-12-20 05:36:34 +0100 | <yahb> | Axman6: ; <interactive>:200:44: error:; * Data constructor not in scope: Compose :: [Maybe a0] -> Data.Functor.Compose.Compose f g a; * Perhaps you meant one of these: variable `M.compose' (imported from Data.Map), variable `IM.compose' (imported from Data.IntMap), variable `icompose' (imported from Control.Lens) |
2021-12-20 05:36:44 +0100 | <Axman6> | % Data.Functor.Compose.getCompose $ (*2) <$> Data.Functor.Compose.Compose [Just 1, Nothing, Just 2, Just 3] |
2021-12-20 05:36:44 +0100 | <yahb> | Axman6: [Just 2,Nothing,Just 4,Just 6] |
2021-12-20 05:37:02 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
2021-12-20 05:37:25 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:1116:7911:5ad7:44c3) |
2021-12-20 05:38:25 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-20 05:38:44 +0100 | hornetcluster | Continuation from above paste, I have one more question: https://paste.tomsmeding.com/tMQse5GX |
2021-12-20 05:41:46 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 256 seconds) |
2021-12-20 05:42:02 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:1116:7911:5ad7:44c3) (Ping timeout: 240 seconds) |
2021-12-20 05:42:18 +0100 | <Axman6> | You can ask these questions in the channel by the way |
2021-12-20 05:43:05 +0100 | <Axman6> | what behaviour do you want? What should be the result of foldl (+) 0 [Just 1, Nothing, Just 2, Just 3] (ish) to be? Nothing? 6? |
2021-12-20 05:43:38 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2021-12-20 05:43:53 +0100 | <hornetcluster> | Just 6 is fine. 6 Ideally. I am learning Haskell, obviously. |
2021-12-20 05:44:57 +0100 | <Axman6> | @hoogle catMaybes |
2021-12-20 05:44:58 +0100 | <lambdabot> | Data.Maybe catMaybes :: [Maybe a] -> [a] |
2021-12-20 05:44:58 +0100 | <lambdabot> | System.Directory.Internal.Prelude catMaybes :: () => [Maybe a] -> [a] |
2021-12-20 05:44:58 +0100 | <lambdabot> | Data.Conduit.List catMaybes :: Monad m => ConduitT (Maybe a) a m () |
2021-12-20 05:45:11 +0100 | <Axman6> | :t sum . catMaybes |
2021-12-20 05:45:12 +0100 | <lambdabot> | Num c => [Maybe c] -> c |
2021-12-20 05:45:25 +0100 | <Axman6> | > sum . catMaybes $ [Just 1, Nothing, Just 2, Just 3] |
2021-12-20 05:45:26 +0100 | <lambdabot> | 6 |
2021-12-20 05:49:03 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-20 05:51:14 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-12-20 05:53:58 +0100 | notzmv | (~zmv@user/notzmv) |
2021-12-20 05:54:46 +0100 | hornetcluster | Thanks. However, I am looking for something that works for general monadic type -- not just Maybe types. Here's my main problem: https://paste.tomsmeding.com/IWSWK4I7 |
2021-12-20 05:58:11 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-12-20 05:58:37 +0100 | yaroot | (~yaroot@175.0.30.125.dy.iij4u.or.jp) (Ping timeout: 240 seconds) |
2021-12-20 05:58:45 +0100 | earendel | (uid498179@user/earendel) (Quit: Connection closed for inactivity) |
2021-12-20 05:59:29 +0100 | yaroot | (~yaroot@60.149.13.160.dy.iij4u.or.jp) |
2021-12-20 06:00:29 +0100 | <Axman6> | Can you specify what general behaviour you want? |
2021-12-20 06:03:29 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-12-20 06:05:40 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-12-20 06:05:42 +0100 | <hornetcluster> | Sorry for not being clear. This is the post I made on reddit. https://www.reddit.com/r/haskell/comments/rhxrl6/dynamic_programming_minimum_number_of_coins_to/ |
2021-12-20 06:06:17 +0100 | <hornetcluster> | This post makes it clear on what I want to do. |
2021-12-20 06:06:44 +0100 | <hornetcluster> | I'm trying to use a mutable array to count minimum number of coins required to make up an amount. |
2021-12-20 06:08:00 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) (Remote host closed the connection) |
2021-12-20 06:08:30 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-12-20 06:09:22 +0100 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) (Quit: Ping timeout (120 seconds)) |
2021-12-20 06:09:45 +0100 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) |
2021-12-20 06:11:25 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) |
2021-12-20 06:12:22 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2021-12-20 06:12:24 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:1116:7911:5ad7:44c3) |
2021-12-20 06:12:37 +0100 | <Axman6> | what does that have to do with the questions you've been asking about for lists of maybes? |
2021-12-20 06:12:56 +0100 | deadmarshal | (~deadmarsh@95.38.230.107) (Ping timeout: 256 seconds) |
2021-12-20 06:16:16 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2021-12-20 06:18:48 +0100 | hornetcluster | Mutable array is a monadic type. So, I have to deal with [m Int] lists instead of [Int] lists while computing the minimum using `minimum . map ((+1).(readArray arr).(`mod` max).(a -)) . filter (<=a) $ cs` because `readArray arr` returns `m Int` type. |
2021-12-20 06:23:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-12-20 06:23:47 +0100 | hornetcluster | so it doesn't work the way I have written. hence my questions on how to deal with monadic types within a list |
2021-12-20 06:27:00 +0100 | ksqsf | (~user@134.209.106.31) |
2021-12-20 06:29:18 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-20 06:29:18 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-20 06:29:18 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-20 06:34:33 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
2021-12-20 06:47:51 +0100 | jespada | (~jespada@87.74.33.157) (Ping timeout: 245 seconds) |
2021-12-20 06:50:37 +0100 | jespada | (~jespada@87.74.33.157) |
2021-12-20 06:53:21 +0100 | pfurla | (~pfurla@2804:d41:4331:4800:11e0:2623:c59:6cb7) (Quit: gone to sleep. ZZZzzz…) |
2021-12-20 06:55:43 +0100 | <mniip> | hornetcluster, you can use sequence to sequence the actions |
2021-12-20 06:56:30 +0100 | <mniip> | which makes sense because the result of readArray may have different values depending on when it's executed |
2021-12-20 07:01:13 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-20 07:01:17 +0100 | deadmarshal | (~deadmarsh@95.38.230.107) |
2021-12-20 07:11:39 +0100 | jonathanx | (~jonathan@c-5eea3642-74736162.cust.telenor.se) |
2021-12-20 07:13:52 +0100 | <EvanR> | sequence :: Monad m => [m a] -> m [a] |
2021-12-20 07:14:27 +0100 | <EvanR> | (e.g.) |
2021-12-20 07:15:05 +0100 | KnifeFire | (~Knifefire@120.242.179.19) |
2021-12-20 07:17:27 +0100 | <int-e> | . o O ( exercise: what does `sequence` do in the list monad? ) |
2021-12-20 07:17:41 +0100 | <EvanR> | sure go ahead and bump me down the glguy leaderboard... I know I was at 11th xD |
2021-12-20 07:17:51 +0100 | <EvanR> | (being bumped down is annoying) |
2021-12-20 07:19:02 +0100 | <int-e> | EvanR: want a commemorative screenshot? https://int-e.eu/~bf3/tmp/ER.png ;-) |
2021-12-20 07:19:26 +0100 | <EvanR> | through the magic of "stats", by completing the puzzle later than me, you end up doing better xD |
2021-12-20 07:19:46 +0100 | <int-e> | oh no, I've leaked my secret identity |
2021-12-20 07:20:02 +0100 | <EvanR> | sok I didn't click |
2021-12-20 07:21:24 +0100 | KnifeFire | (~Knifefire@120.242.179.19) (Quit: WeeChat 3.0.1) |
2021-12-20 07:24:49 +0100 | <int-e> | (it's easy enough to guess anyway :P) |
2021-12-20 07:25:01 +0100 | <g> | Are you glguy? |
2021-12-20 07:25:51 +0100 | <int-e> | no, glguy is glguy. |
2021-12-20 07:26:06 +0100 | <g> | That's probably what he wants you to think! |
2021-12-20 07:26:14 +0100 | mikoto-chan | (~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Quit: mikoto-chan) |
2021-12-20 07:27:02 +0100 | hornetcluster | (~textual@2601:5c0:c280:7e20:5502:4cf:f65e:fd6b) (Quit: Textual IRC Client: www.textualapp.com) |
2021-12-20 07:27:05 +0100 | <g> | int-e: do you post solutions online? |
2021-12-20 07:27:12 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-12-20 07:27:40 +0100 | <int-e> | you don't get 20 questions :P |
2021-12-20 07:27:56 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Client Quit) |
2021-12-20 07:27:59 +0100 | <g> | How many do I get? |
2021-12-20 07:30:19 +0100 | xerox | commemorates his temporary 9 in there too |
2021-12-20 07:31:04 +0100 | python476 | (~user@88.160.31.174) |
2021-12-20 07:31:43 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-20 07:33:21 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-12-20 07:36:11 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 245 seconds) |
2021-12-20 07:37:36 +0100 | <EvanR> | I posted all my code so far but it's steadily degrades in quality with time |
2021-12-20 07:38:33 +0100 | <EvanR> | I went from having it print the answer and having code all tidy to being a hodgepodge of functions that I used half used in the repl with help from a randomly behaving main |
2021-12-20 07:39:10 +0100 | <EvanR> | I'm not above mouse copy pasting show output into my code xD |
2021-12-20 07:39:57 +0100 | <EvanR> | I still don't know how the 7-segment display code works |
2021-12-20 07:41:27 +0100 | <xerox> | I think that was my favorite problem this year so far |
2021-12-20 07:41:30 +0100 | <nshepperd2> | most days i have two functions part1 input = ...; part2 input = ... which i call from the repl |
2021-12-20 07:42:00 +0100 | <nshepperd2> | needed to compile day 19 for speed though |
2021-12-20 07:42:52 +0100 | <EvanR> | I sat there for like 20 minutes waiting for day 19 answers in the repl because I forgot to compile |
2021-12-20 07:43:10 +0100 | <opqdonut> | my 19 was 13 secs in ghci |
2021-12-20 07:43:16 +0100 | <opqdonut> | 15 was the one I needed to compile |
2021-12-20 07:43:29 +0100 | <opqdonut> | probably because I couldn't bother to go full A* |
2021-12-20 07:43:41 +0100 | <EvanR> | oh yeah, no idea how that works either |
2021-12-20 07:44:00 +0100 | <EvanR> | A* seems pretty mystical |
2021-12-20 07:44:02 +0100 | <opqdonut> | (my 19 https://github.com/opqdonut/adventofcode21/blob/master/Day19.hs) |
2021-12-20 07:45:36 +0100 | <EvanR> | regularized vector distance, what is this magick |
2021-12-20 07:45:56 +0100 | <opqdonut> | it's something I made up on the spot I guess |
2021-12-20 07:46:22 +0100 | <EvanR> | I was wondering if there was some kinda correlation junk I never learned that would help |
2021-12-20 07:46:36 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2021-12-20 07:46:38 +0100 | <opqdonut> | it's rotation-invariant, and has a bit more "resolution" than just manhattan distance (meaning I get fewer false positives) |
2021-12-20 07:47:30 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-12-20 07:47:35 +0100 | <opqdonut> | squared euclidean distance might've worked just as well |
2021-12-20 07:48:42 +0100 | deadmarshal | (~deadmarsh@95.38.230.107) (Ping timeout: 256 seconds) |
2021-12-20 07:50:17 +0100 | <nshepperd2> | oh interesting. i used Linear.Matrix for the rotations |
2021-12-20 07:50:49 +0100 | <nshepperd2> | they are all integer matrices with determinant 1 |
2021-12-20 07:51:29 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-12-20 07:51:35 +0100 | <opqdonut> | I felt matrices are overkill for simple flips and permutations ... but I ended up writing it using dot products anyway |
2021-12-20 07:51:40 +0100 | <EvanR> | i used . to build the 24 rotations xD |
2021-12-20 07:51:50 +0100 | <EvanR> | rubicks cube style |
2021-12-20 07:51:52 +0100 | <opqdonut> | yeah that's pretty good |
2021-12-20 07:52:15 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) |
2021-12-20 07:52:58 +0100 | <EvanR> | (Int,Int,Int) probably slowed me down |
2021-12-20 07:53:29 +0100 | ksqsf | (~user@134.209.106.31) (Ping timeout: 268 seconds) |
2021-12-20 07:53:36 +0100 | <int-e> | I was quite happy with this for rotations: https://paste.debian.net/1224107/ |
2021-12-20 07:53:56 +0100 | <EvanR> | ah |
2021-12-20 07:53:57 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 240 seconds) |
2021-12-20 07:54:25 +0100 | <EvanR> | I appreciate their clue spoiling how to enumerate the rotations |
2021-12-20 07:54:40 +0100 | <EvanR> | that would have taken me a minute |
2021-12-20 07:55:48 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-20 07:57:10 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
2021-12-20 07:57:24 +0100 | <int-e> | clue, oh they spelled out why there are 24. right. |
2021-12-20 07:57:42 +0100 | <EvanR> | and how to get them all |
2021-12-20 07:57:44 +0100 | <int-e> | but I knew that :) |
2021-12-20 07:58:07 +0100 | <EvanR> | I lost some time opening the octahedral symmetry group wikipedia |
2021-12-20 07:58:21 +0100 | <int-e> | heh |
2021-12-20 07:59:13 +0100 | toastloop | (toastloop@user/toastloop) |
2021-12-20 08:01:18 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-12-20 08:05:16 +0100 | deadmarshal | (~deadmarsh@95.38.230.107) |
2021-12-20 08:06:18 +0100 | <int-e> | I have a separate terminal at all times that I can use to compile-and-run in parallel with the bytecode version. |
2021-12-20 08:06:57 +0100 | <int-e> | because otherwise I'd have the dilemma of deciding whether the bytecode version is just about to finish |
2021-12-20 08:07:17 +0100 | thevishy | (~Nishant@2405:201:f005:c007:48b2:97f1:a252:93a6) |
2021-12-20 08:07:43 +0100 | <EvanR> | yeah I just did that |
2021-12-20 08:08:07 +0100 | <EvanR> | repl was not instant, began going for the compilable version |
2021-12-20 08:08:16 +0100 | khumba | (~khumba@user/khumba) () |
2021-12-20 08:08:26 +0100 | <EvanR> | right before that was ready repl spat out the answer xD |
2021-12-20 08:10:05 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) |
2021-12-20 08:12:11 +0100 | mikoto-chan | (~mikoto-ch@nat1.panoulu.net) |
2021-12-20 08:14:17 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
2021-12-20 08:19:40 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-20 08:22:32 +0100 | ksqsf | (~user@134.209.106.31) |
2021-12-20 08:23:17 +0100 | deadmarshal | (~deadmarsh@95.38.230.107) (Ping timeout: 240 seconds) |
2021-12-20 08:23:55 +0100 | deadmarshal | (~deadmarsh@95.38.230.107) |
2021-12-20 08:33:08 +0100 | <int-e> | rotations, less scrutable: https://paste.debian.net/1224141/ |
2021-12-20 08:36:58 +0100 | <EvanR> | computers, making the obvious incomprehensible since leibniz xD |
2021-12-20 08:40:46 +0100 | <int-e> | I think people did group presentations (this is closely related) before computers. |
2021-12-20 08:41:31 +0100 | <EvanR> | yeah |
2021-12-20 08:41:32 +0100 | <int-e> | though computers made those much more meaningful (because they become practically applicable to larger groups) |
2021-12-20 08:42:11 +0100 | ksqsf | (~user@134.209.106.31) (Remote host closed the connection) |
2021-12-20 08:45:37 +0100 | python476 | (~user@88.160.31.174) (Ping timeout: 240 seconds) |
2021-12-20 08:45:44 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-12-20 08:46:24 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-12-20 08:48:13 +0100 | danso | (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 240 seconds) |
2021-12-20 08:51:43 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) |
2021-12-20 08:53:52 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-20 08:57:02 +0100 | kaph | (~kaph@net-2-47-236-216.cust.vodafonedsl.it) (Ping timeout: 240 seconds) |
2021-12-20 08:58:10 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:5002:c5c3:7481:de0c) |
2021-12-20 09:00:26 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7cf1:85e9:3000:4f4d) (Remote host closed the connection) |
2021-12-20 09:03:57 +0100 | danso | (~danso@d67-193-121-2.home3.cgocable.net) |
2021-12-20 09:04:28 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2021-12-20 09:06:04 +0100 | <mjrosenb> | Interesting, I saw that there were 24, and didn't actually look beyond that. |
2021-12-20 09:06:09 +0100 | Midjak | (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (Quit: This computer has gone to sleep) |
2021-12-20 09:06:49 +0100 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) |
2021-12-20 09:07:21 +0100 | neurocyte0132889 | (~neurocyte@IP-045136168122.dynamic.medianet-world.de) |
2021-12-20 09:07:21 +0100 | neurocyte0132889 | (~neurocyte@IP-045136168122.dynamic.medianet-world.de) (Changing host) |
2021-12-20 09:07:21 +0100 | neurocyte0132889 | (~neurocyte@user/neurocyte) |
2021-12-20 09:07:27 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-20 09:07:46 +0100 | <mjrosenb> | also, that was yesterday's right? I don't remember seeing any 3d stuff for today's. |
2021-12-20 09:08:37 +0100 | <EvanR> | today was 2d |
2021-12-20 09:08:50 +0100 | <EvanR> | tomorrow is 5d |
2021-12-20 09:10:08 +0100 | chexum_ | (~quassel@gateway/tor-sasl/chexum) |
2021-12-20 09:10:18 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) |
2021-12-20 09:10:19 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.) |
2021-12-20 09:11:57 +0100 | mvk | (~mvk@2607:fea8:5cdd:f000::917a) (Ping timeout: 240 seconds) |
2021-12-20 09:13:39 +0100 | jonathanx | (~jonathan@c-5eea3642-74736162.cust.telenor.se) (Ping timeout: 268 seconds) |
2021-12-20 09:15:50 +0100 | <nshepperd2> | in exchange for the sleigh keys, the grim reaper challenges you to a game of five dimensional chess... |
2021-12-20 09:16:28 +0100 | iqubic | (~user@2601:602:9502:c70:c28f:848:f184:6c67) |
2021-12-20 09:16:34 +0100 | <int-e> | as long as there's no time travel |
2021-12-20 09:17:17 +0100 | deadmarshal | (~deadmarsh@95.38.230.107) (Ping timeout: 240 seconds) |
2021-12-20 09:17:18 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-12-20 09:21:57 +0100 | <EvanR> | (wait, a version of chess featuring time travel (other than the mundane "undo" feature)) |
2021-12-20 09:23:23 +0100 | xkuru | (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
2021-12-20 09:24:08 +0100 | <int-e> | EvanR: did you miss https://en.wikipedia.org/wiki/5D_Chess_with_Multiverse_Time_Travel (didn't play, saw a few videos, didn't really like what I saw) |
2021-12-20 09:24:58 +0100 | <EvanR> | I saw the ad but didn't realize there was timetravel |
2021-12-20 09:24:59 +0100 | bollu | (uid233390@id-233390.helmsley.irccloud.com) |
2021-12-20 09:25:06 +0100 | <int-e> | the "time travel" is going back in the game tree and spawning an alternative timeline |
2021-12-20 09:25:09 +0100 | <EvanR> | multiverse time travel sounds kind of lame though |
2021-12-20 09:25:10 +0100 | dminuoso | unpacks his TardisT |
2021-12-20 09:25:38 +0100 | <int-e> | but the "timelines" interact and its all weird. |
2021-12-20 09:25:46 +0100 | <EvanR> | at least have the board contain a closed timelike loop |
2021-12-20 09:26:12 +0100 | <dminuoso> | EvanR: I wonder, is that even computable for a chess board? |
2021-12-20 09:26:33 +0100 | <dminuoso> | Presumably you'd have to limit backwards time travel to some degree. |
2021-12-20 09:27:50 +0100 | <EvanR> | a sequence of moves triggers time travel... and what happens next must eventually be fulfilled like bill and ted |
2021-12-20 09:28:27 +0100 | <EvanR> | or maybe at some point all the piece rules are backward |
2021-12-20 09:28:56 +0100 | <EvanR> | maybe I should look at 5D chess |
2021-12-20 09:29:28 +0100 | <int-e> | EvanR: just don't blame me if it sucks :P |
2021-12-20 09:29:39 +0100 | <int-e> | it's still a viable meme though |
2021-12-20 09:33:21 +0100 | <mjrosenb> | IIRC, you only need to get checkmate in one timeline, and if you've checked in *a* timeline, then you can't delay getting out of check in that timeline. |
2021-12-20 09:34:10 +0100 | <mjrosenb> | anyhow, there's a function in lens that turns a traversal accessing one element into a lens, does anyone remember what it is? |
2021-12-20 09:34:21 +0100 | <int-e> | things get wild when pieces cross between timelines |
2021-12-20 09:34:50 +0100 | <int-e> | it's just weird though, not interesting, because the complexity arises from comlpex rules |
2021-12-20 09:34:53 +0100 | <dminuoso> | mjrosenb: unsafeSingular |
2021-12-20 09:35:09 +0100 | <int-e> | (in my opinion, ymmv) |
2021-12-20 09:37:33 +0100 | <mjrosenb> | dminuoso: danke (turns out I lied, and I just want to turn a traversal into a getter, and can use singular) |
2021-12-20 09:40:45 +0100 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-12-20 09:42:29 +0100 | cfricke | (~cfricke@user/cfricke) |
2021-12-20 09:43:24 +0100 | <EvanR> | if a bishop is able to change colors I'm out |
2021-12-20 09:44:17 +0100 | <mjrosenb> | I think it can, since the board keeps its parity over time, but the time is part of a bishop's parity? |
2021-12-20 09:44:34 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3) |
2021-12-20 09:44:37 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-12-20 09:45:02 +0100 | <iqubic> | EvanR: Yeah. Bishops can easily change color |
2021-12-20 09:47:39 +0100 | ksqsf | (~user@134.209.106.31) |
2021-12-20 09:49:52 +0100 | acidjnk | (~acidjnk@p200300d0c7271e24a8fe310273dd6d48.dip0.t-ipconnect.de) |
2021-12-20 09:51:57 +0100 | <dibblego> | @src find |
2021-12-20 09:51:57 +0100 | deadmarshal | (~deadmarsh@95.38.230.107) |
2021-12-20 09:51:57 +0100 | <lambdabot> | find p = listToMaybe . filter p |
2021-12-20 09:54:59 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-12-20 10:00:37 +0100 | darchitect | (~darchitec@2a00:23c6:3584:df00:7dec:bf13:8fa:748c) |
2021-12-20 10:00:40 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) |
2021-12-20 10:00:48 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7cf1:85e9:3000:4f4d) |
2021-12-20 10:01:01 +0100 | shriekingnoise | (~shrieking@186.137.144.80) (Quit: Quit) |
2021-12-20 10:03:17 +0100 | max22- | (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr) |
2021-12-20 10:04:57 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7cf1:85e9:3000:4f4d) (Ping timeout: 240 seconds) |
2021-12-20 10:08:45 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-12-20 10:09:32 +0100 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 240 seconds) |
2021-12-20 10:10:38 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-12-20 10:10:52 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2021-12-20 10:11:35 +0100 | cfricke | (~cfricke@user/cfricke) |
2021-12-20 10:11:37 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
2021-12-20 10:11:46 +0100 | Jing | (~hedgehog@2604:a840:3::103b) (Remote host closed the connection) |
2021-12-20 10:12:29 +0100 | Jing | (~hedgehog@2604:a840:3::103b) |
2021-12-20 10:12:51 +0100 | dsrt^ | (~dsrt@64.253.22.77) (Ping timeout: 268 seconds) |
2021-12-20 10:13:37 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2021-12-20 10:16:17 +0100 | <nshepperd2> | "shall a bishop change its stripes?" |
2021-12-20 10:17:25 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-12-20 10:17:35 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-12-20 10:19:52 +0100 | mcgroin | (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2021-12-20 10:20:51 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-12-20 10:21:59 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-12-20 10:23:24 +0100 | jle` | (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 256 seconds) |
2021-12-20 10:25:28 +0100 | jle` | (~jle`@cpe-23-240-75-236.socal.res.rr.com) |
2021-12-20 10:25:55 +0100 | <int-e> | nshepperd2: 🨃 or maybe 🩂🨭🨘? |
2021-12-20 10:27:06 +0100 | <dminuoso> | Is there some tool that would help me identify unused extensions? |
2021-12-20 10:28:03 +0100 | <dminuoso> | For me the assumption that, if the program compiles without that extension in a module, it's unused is enough - knowing this could harbor some exotic exceptions where removing an extension could alter the program |
2021-12-20 10:29:25 +0100 | dsrt^ | (~dsrt@64.253.22.77) |
2021-12-20 10:30:14 +0100 | dsrt^ | (~dsrt@64.253.22.77) (Remote host closed the connection) |
2021-12-20 10:35:59 +0100 | mcgroin | (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Quit: WeeChat 2.8) |
2021-12-20 10:38:27 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-20 10:41:56 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-20 10:43:02 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-20 10:43:28 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-20 10:44:19 +0100 | <int-e> | It's always a bit of a surprise that ghc needs a C++ compiler to built on Linux (because of libffi) |
2021-12-20 10:45:47 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) |
2021-12-20 10:49:51 +0100 | Akiva | (~Akiva@user/Akiva) (Ping timeout: 268 seconds) |
2021-12-20 10:50:27 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-20 10:51:06 +0100 | Akiva | (~Akiva@user/Akiva) |
2021-12-20 10:51:10 +0100 | deadmarshal | (~deadmarsh@95.38.230.107) (Ping timeout: 256 seconds) |
2021-12-20 10:52:56 +0100 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-12-20 10:54:07 +0100 | joo-_ | (~joo-_@fsf/member/joo--) (Quit: leaving) |
2021-12-20 10:54:22 +0100 | joo-_ | (~joo-_@87-49-45-77-mobile.dk.customer.tdc.net) |
2021-12-20 10:54:22 +0100 | joo-_ | (~joo-_@87-49-45-77-mobile.dk.customer.tdc.net) (Changing host) |
2021-12-20 10:54:22 +0100 | joo-_ | (~joo-_@fsf/member/joo--) |
2021-12-20 10:54:27 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-20 10:54:42 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-20 10:54:49 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-20 10:56:54 +0100 | kupi | (uid212005@id-212005.hampstead.irccloud.com) |
2021-12-20 10:58:15 +0100 | joo-_ | (~joo-_@fsf/member/joo--) (Client Quit) |
2021-12-20 10:59:02 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-169.elisa-laajakaista.fi) |
2021-12-20 11:01:21 +0100 | deadmarshal | (~deadmarsh@95.38.230.107) |
2021-12-20 11:06:57 +0100 | <Unhammer> | bah this ghcid thing also needs constant restarting |
2021-12-20 11:07:34 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 260 seconds) |
2021-12-20 11:08:12 +0100 | Unhammer | goes back to while sleep 1; do timeout 30 stack repl; done |
2021-12-20 11:08:24 +0100 | <Hecate> | Unhammer: why does it need restarting? |
2021-12-20 11:08:31 +0100 | <Hecate> | or rather, what change does it not pick up? |
2021-12-20 11:09:57 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-12-20 11:11:40 +0100 | <Unhammer> | when I save a file, nothing happens |
2021-12-20 11:11:58 +0100 | <Unhammer> | maybe it's that text show pretty error because I have that in my ghci but not installed … |
2021-12-20 11:12:42 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7cf1:85e9:3000:4f4d) |
2021-12-20 11:12:58 +0100 | chexum_ | (~quassel@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.) |
2021-12-20 11:14:19 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2021-12-20 11:16:18 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-12-20 11:16:57 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7cf1:85e9:3000:4f4d) (Ping timeout: 240 seconds) |
2021-12-20 11:17:16 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-12-20 11:18:02 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) |
2021-12-20 11:18:22 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds) |
2021-12-20 11:19:50 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2021-12-20 11:20:37 +0100 | Inst | (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 240 seconds) |
2021-12-20 11:22:58 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
2021-12-20 11:24:17 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-12-20 11:25:17 +0100 | danso | (~danso@d67-193-121-2.home3.cgocable.net) (Ping timeout: 240 seconds) |
2021-12-20 11:25:20 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-20 11:26:00 +0100 | __monty__ | (~toonn@user/toonn) |
2021-12-20 11:26:03 +0100 | zer0bitz | (~zer0bitz@2001:2003:f444:a000:81c1:fdbc:2b2:4c4a) |
2021-12-20 11:29:42 +0100 | pfurla | (~pfurla@2804:d41:4331:4800:11e0:2623:c59:6cb7) |
2021-12-20 11:29:42 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2021-12-20 11:31:01 +0100 | xbreu | (~xbreu@2001:470:69fc:105::1:5061) |
2021-12-20 11:35:59 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) |
2021-12-20 11:37:33 +0100 | <mjrosenb> | I know that ghcid is really suboptimal for me, since I get about 3 pages worth or warnings every time I save |
2021-12-20 11:39:04 +0100 | danso | (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) |
2021-12-20 11:43:13 +0100 | dsp | (~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) |
2021-12-20 11:43:57 +0100 | dsp | (~dsp@cpc152107-haye27-2-0-cust227.17-4.cable.virginm.net) (Remote host closed the connection) |
2021-12-20 11:44:17 +0100 | Akiva | (~Akiva@user/Akiva) (Ping timeout: 240 seconds) |
2021-12-20 11:45:57 +0100 | mikoto-chan | (~mikoto-ch@nat1.panoulu.net) (Quit: mikoto-chan) |
2021-12-20 11:46:21 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-20 11:51:31 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
2021-12-20 11:54:23 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7cf1:85e9:3000:4f4d) |
2021-12-20 11:54:39 +0100 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-12-20 11:57:25 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
2021-12-20 11:58:37 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7cf1:85e9:3000:4f4d) (Ping timeout: 240 seconds) |
2021-12-20 12:01:12 +0100 | ksqsf | (~user@134.209.106.31) (Remote host closed the connection) |
2021-12-20 12:03:34 +0100 | img | (~img@user/img) |
2021-12-20 12:07:24 +0100 | ubert | (~Thunderbi@p200300ecdf0a5d0bd9ff0243dc33f2a7.dip0.t-ipconnect.de) (Quit: ubert) |
2021-12-20 12:09:19 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-12-20 12:09:42 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-12-20 12:13:50 +0100 | xff0x | (~xff0x@2001:1a81:5214:2e00:5b16:4ef1:d67d:4f66) (Ping timeout: 260 seconds) |
2021-12-20 12:14:42 +0100 | xff0x | (~xff0x@2001:1a81:5214:2e00:39f0:aaaf:c001:5cae) |
2021-12-20 12:14:52 +0100 | toastloop | (toastloop@user/toastloop) (Quit: Leaving) |
2021-12-20 12:15:17 +0100 | ft | (~ft@shell.chaostreff-dortmund.de) (Quit: leaving) |
2021-12-20 12:15:28 +0100 | ft | (~ft@shell.chaostreff-dortmund.de) |
2021-12-20 12:17:09 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-20 12:17:09 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-20 12:17:09 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-20 12:19:49 +0100 | dyeplexer | (~dyeplexer@user/dyeplexer) |
2021-12-20 12:20:23 +0100 | bollu | (uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-20 12:22:24 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2021-12-20 12:26:03 +0100 | danso | (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 268 seconds) |
2021-12-20 12:26:27 +0100 | Guest57 | (~Guest57@82.47.22.49) |
2021-12-20 12:27:05 +0100 | Guest57 | (~Guest57@82.47.22.49) (Client Quit) |
2021-12-20 12:27:36 +0100 | danso | (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) |
2021-12-20 12:28:23 +0100 | mikoto-chan | (~mikoto-ch@esm-84-240-99-143.netplaza.fi) |
2021-12-20 12:32:10 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2021-12-20 12:33:10 +0100 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) |
2021-12-20 12:35:58 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7cf1:85e9:3000:4f4d) |
2021-12-20 12:36:07 +0100 | ksqsf | (~user@134.209.106.31) |
2021-12-20 12:40:17 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7cf1:85e9:3000:4f4d) (Ping timeout: 240 seconds) |
2021-12-20 12:41:02 +0100 | danso | (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 240 seconds) |
2021-12-20 12:41:17 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 240 seconds) |
2021-12-20 12:55:41 +0100 | polezaivsani | (~polezaivs@orangeshoelaces.net) |
2021-12-20 12:57:37 +0100 | deadmarshal | (~deadmarsh@95.38.230.107) (Ping timeout: 240 seconds) |
2021-12-20 13:00:37 +0100 | acidjnk | (~acidjnk@p200300d0c7271e24a8fe310273dd6d48.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2021-12-20 13:04:23 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) |
2021-12-20 13:06:00 +0100 | <dminuoso> | Given a string `x` and another list of strings `zs`, for which I want to find the longest string in `zs`, that happens to be a suffix of x. |
2021-12-20 13:06:54 +0100 | <dminuoso> | Now, I need to do this quite often, so Im thinking to build a (maybe patricia) trie from `zs`, and then do a lookup of `x` inside that trie |
2021-12-20 13:07:24 +0100 | <dminuoso> | Well not quite lookup, but rather a lookup of the leaf-most suffix |
2021-12-20 13:07:34 +0100 | kranius | (~kranius@222.186.245.213.rev.sfr.net) |
2021-12-20 13:07:36 +0100 | <dminuoso> | Is there something less convoluted Im missing? |
2021-12-20 13:08:08 +0100 | <dminuoso> | uh, and we can pretend this to be prefix too, that's just a matter of calling `reverse` |
2021-12-20 13:08:25 +0100 | danso | (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) |
2021-12-20 13:08:58 +0100 | <dminuoso> | in reality Im dealing with lists of texts (call them labels, if you want), so the longest matching tail is what I want |
2021-12-20 13:11:43 +0100 | kupi | (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-20 13:13:24 +0100 | kranius | (~kranius@222.186.245.213.rev.sfr.net) (Ping timeout: 256 seconds) |
2021-12-20 13:16:37 +0100 | Inst | (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) |
2021-12-20 13:17:18 +0100 | <Unhammer> | mjrosenb yeah same here :/ |
2021-12-20 13:20:02 +0100 | acidjnk | (~acidjnk@p200300d0c7271e24a1571c369919364e.dip0.t-ipconnect.de) |
2021-12-20 13:20:30 +0100 | jonathanx | (~jonathan@c-5eea3642-74736162.cust.telenor.se) |
2021-12-20 13:21:03 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-20 13:22:33 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-20 13:27:07 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 268 seconds) |
2021-12-20 13:27:07 +0100 | jonathanx | (~jonathan@c-5eea3642-74736162.cust.telenor.se) (Ping timeout: 268 seconds) |
2021-12-20 13:32:23 +0100 | pfurla | (~pfurla@2804:d41:4331:4800:11e0:2623:c59:6cb7) (Quit: gone to sleep. ZZZzzz…) |
2021-12-20 13:34:35 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot) |
2021-12-20 13:38:15 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7cf1:85e9:3000:4f4d) |
2021-12-20 13:38:21 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-12-20 13:39:40 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) |
2021-12-20 13:42:17 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7cf1:85e9:3000:4f4d) (Ping timeout: 240 seconds) |
2021-12-20 13:44:17 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
2021-12-20 13:51:50 +0100 | wolfshappen | (~waff@irc.furworks.de) (Quit: later) |
2021-12-20 13:55:20 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-20 13:56:23 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
2021-12-20 13:57:30 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) |
2021-12-20 13:58:34 +0100 | shlomo | (~shlomo@128.90.165.9) |
2021-12-20 14:00:01 +0100 | shlomo | (~shlomo@128.90.165.9) (Quit: Leaving) |
2021-12-20 14:00:14 +0100 | benin | (~benin@183.82.27.121) (Ping timeout: 260 seconds) |
2021-12-20 14:01:18 +0100 | deadmarshal | (~deadmarsh@95.38.230.107) |
2021-12-20 14:01:37 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
2021-12-20 14:02:52 +0100 | benin | (~benin@183.82.27.121) |
2021-12-20 14:03:11 +0100 | kranius | (~kranius@222.186.245.213.rev.sfr.net) |
2021-12-20 14:06:08 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-12-20 14:07:50 +0100 | kranius | (~kranius@222.186.245.213.rev.sfr.net) (Ping timeout: 252 seconds) |
2021-12-20 14:08:11 +0100 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.3) |
2021-12-20 14:10:53 +0100 | ph88 | (~ph88@ip5f5af068.dynamic.kabel-deutschland.de) |
2021-12-20 14:13:47 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-20 14:13:47 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-20 14:13:47 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-20 14:16:02 +0100 | mikoto-chan | (~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Ping timeout: 240 seconds) |
2021-12-20 14:17:21 +0100 | <carbolymer> | Damn, Haskell is too smart for me. It tells me that something is a stupid idea right away, and it takes me two days of working around ghc errors to figure this out myself. |
2021-12-20 14:17:26 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 256 seconds) |
2021-12-20 14:18:10 +0100 | <yushyin> | maybe next time ask here and we might be of help |
2021-12-20 14:18:32 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2021-12-20 14:18:46 +0100 | <carbolymer> | Asking smarter folks for advice is always a good idea |
2021-12-20 14:20:09 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7cf1:85e9:3000:4f4d) |
2021-12-20 14:22:54 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-12-20 14:24:17 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7cf1:85e9:3000:4f4d) (Ping timeout: 240 seconds) |
2021-12-20 14:26:37 +0100 | danso | (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 240 seconds) |
2021-12-20 14:27:17 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2021-12-20 14:27:53 +0100 | kuribas | (~user@ptr-25vy0i760m61zg72p7f.18120a2.ip6.access.telenet.be) |
2021-12-20 14:28:31 +0100 | <ksqsf> | b |
2021-12-20 14:28:37 +0100 | <yushyin> | then you should not ask me ;) |
2021-12-20 14:28:56 +0100 | <pragma-> | ksqsf: that is a fine letter |
2021-12-20 14:29:40 +0100 | pretty_dumm_guy | (~trottel@eduroam-134-96-204-6.uni-saarland.de) |
2021-12-20 14:30:39 +0100 | danso | (~danso@d67-193-121-2.home3.cgocable.net) |
2021-12-20 14:32:18 +0100 | jkaye | (~jkaye@2601:281:8300:7530:6566:3224:cc66:3345) |
2021-12-20 14:32:53 +0100 | pretty_dumm_guy | (~trottel@eduroam-134-96-204-6.uni-saarland.de) (Client Quit) |
2021-12-20 14:38:32 +0100 | bollu | (uid233390@id-233390.helmsley.irccloud.com) |
2021-12-20 14:42:57 +0100 | deadmarshal | (~deadmarsh@95.38.230.107) (Ping timeout: 240 seconds) |
2021-12-20 14:44:56 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-12-20 14:45:40 +0100 | Vajb | (~Vajb@2001:999:62:f3d1:4390:fbed:1f9b:9d03) |
2021-12-20 14:52:23 +0100 | max22- | (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr) (Ping timeout: 252 seconds) |
2021-12-20 14:59:22 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 256 seconds) |
2021-12-20 15:05:41 +0100 | wolfshappen | (~waff@irc.furworks.de) |
2021-12-20 15:06:08 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-12-20 15:06:58 +0100 | shriekingnoise | (~shrieking@186.137.144.80) |
2021-12-20 15:07:18 +0100 | deadmarshal | (~deadmarsh@95.38.230.107) |
2021-12-20 15:17:15 +0100 | ees | (~user@pool-108-18-30-46.washdc.fios.verizon.net) |
2021-12-20 15:23:13 +0100 | kuribas | (~user@ptr-25vy0i760m61zg72p7f.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
2021-12-20 15:26:02 +0100 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
2021-12-20 15:28:32 +0100 | <tomsmeding> | dminuoso: sort the list `zs` and lookup x in that sorted list, potentially by binary search? |
2021-12-20 15:28:44 +0100 | <tomsmeding> | you won't find a match, but you'll end up next to the best match |
2021-12-20 15:29:15 +0100 | <tomsmeding> | (with lexicographical ordering and search) |
2021-12-20 15:31:16 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-20 15:31:16 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-20 15:31:16 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-20 15:32:16 +0100 | <tomsmeding> | (in reversed form -- naively this does prefix searching of course) |
2021-12-20 15:32:36 +0100 | kranius | (~kranius@146.133.22.93.rev.sfr.net) |
2021-12-20 15:34:00 +0100 | pfurla | (~pfurla@2804:d41:4331:4800:11e0:2623:c59:6cb7) |
2021-12-20 15:37:37 +0100 | Inst | (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 240 seconds) |
2021-12-20 15:44:02 +0100 | kranius | (~kranius@146.133.22.93.rev.sfr.net) (Ping timeout: 240 seconds) |
2021-12-20 15:45:00 +0100 | kranius | (~kranius@44.149.22.93.rev.sfr.net) |
2021-12-20 15:45:55 +0100 | tristanC_ | tristanC |
2021-12-20 15:48:17 +0100 | deadmarshal | (~deadmarsh@95.38.230.107) (Ping timeout: 240 seconds) |
2021-12-20 15:50:02 +0100 | SummerSonw | (~The_viole@203.77.49.232) (Quit: Leaving) |
2021-12-20 15:50:54 +0100 | doyougnu | (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) |
2021-12-20 15:51:43 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-20 15:57:14 +0100 | slaydr | (~seriley@45.131.194.254) |
2021-12-20 15:59:12 +0100 | wolfshappen | (~waff@irc.furworks.de) (Quit: later) |
2021-12-20 15:59:41 +0100 | wolfshappen | (~waff@irc.furworks.de) |
2021-12-20 16:02:17 +0100 | kranius | (~kranius@44.149.22.93.rev.sfr.net) (Ping timeout: 240 seconds) |
2021-12-20 16:03:37 +0100 | wolfshappen | (~waff@irc.furworks.de) (Ping timeout: 240 seconds) |
2021-12-20 16:04:18 +0100 | wolfshappen | (~waff@irc.furworks.de) |
2021-12-20 16:05:06 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) |
2021-12-20 16:06:57 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:995c:e86e:470c:8a37) (Ping timeout: 240 seconds) |
2021-12-20 16:09:17 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
2021-12-20 16:10:12 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2021-12-20 16:11:14 +0100 | zebrag | (~chris@user/zebrag) |
2021-12-20 16:16:12 +0100 | pfurla | (~pfurla@2804:d41:4331:4800:11e0:2623:c59:6cb7) (Quit: gone to sleep. ZZZzzz…) |
2021-12-20 16:16:32 +0100 | euouae | (~euouae@user/euouae) |
2021-12-20 16:20:13 +0100 | hornetcluster | (~textual@2601:5c0:c280:7e20:5502:4cf:f65e:fd6b) |
2021-12-20 16:21:03 +0100 | hornetcluster | (~textual@2601:5c0:c280:7e20:5502:4cf:f65e:fd6b) (Client Quit) |
2021-12-20 16:21:33 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7cf1:85e9:3000:4f4d) |
2021-12-20 16:21:37 +0100 | ksqsf | (~user@134.209.106.31) (Ping timeout: 268 seconds) |
2021-12-20 16:22:36 +0100 | zopsi | (zopsi@2600:3c00::f03c:91ff:fe14:551f) (Quit: Oops) |
2021-12-20 16:22:36 +0100 | Vajb | (~Vajb@2001:999:62:f3d1:4390:fbed:1f9b:9d03) (Read error: Connection reset by peer) |
2021-12-20 16:23:39 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-12-20 16:25:37 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:7cf1:85e9:3000:4f4d) (Ping timeout: 240 seconds) |
2021-12-20 16:26:04 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-20 16:27:04 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-20 16:27:04 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-20 16:27:04 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-20 16:27:43 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2021-12-20 16:28:25 +0100 | pfurla | (~pfurla@2804:d41:4331:4800:11e0:2623:c59:6cb7) |
2021-12-20 16:28:52 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-20 16:31:44 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2021-12-20 16:38:55 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-12-20 16:40:47 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-20 16:42:37 +0100 | EvanR | (~evan@user/evanr) (Ping timeout: 240 seconds) |
2021-12-20 16:45:36 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-20 16:46:36 +0100 | ksqsf | (~user@134.209.106.31) |
2021-12-20 16:47:04 +0100 | bollu | (uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-20 16:48:35 +0100 | coot | (~coot@2a02:a310:e03f:8500:7248:52ac:817b:7fb4) |
2021-12-20 16:49:59 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:5002:c5c3:7481:de0c) (Quit: WeeChat 2.8) |
2021-12-20 16:50:19 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2021-12-20 16:51:14 +0100 | chomwitt | (~chomwitt@2a02:587:dc19:a500:12c3:7bff:fe6d:d374) |
2021-12-20 16:51:34 +0100 | ksqsf | (~user@134.209.106.31) (Ping timeout: 256 seconds) |
2021-12-20 16:51:46 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2021-12-20 16:57:37 +0100 | timCF | (~timCF@m91-129-100-224.cust.tele2.ee) |
2021-12-20 16:57:51 +0100 | acidjnk | (~acidjnk@p200300d0c7271e24a1571c369919364e.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
2021-12-20 16:58:35 +0100 | <timCF> | Hello! Is there something similar to ~ function constraint, but for type parametrer non-equality? |
2021-12-20 16:58:45 +0100 | <Arsen> | can Data.Yaml (from yaml) load an object like {"a": "b", "c": "d"} into a simple hashmap? |
2021-12-20 16:58:52 +0100 | <Arsen> | I am simply storing key-value pairs |
2021-12-20 16:59:55 +0100 | deadmarshal | (~deadmarsh@95.38.230.107) |
2021-12-20 17:00:07 +0100 | <geekosaur> | timCF, no. equality can be done directly in the typechecker, but non-equality requires a type witness |
2021-12-20 17:00:12 +0100 | the-coot[m] | (~the-cootm@2001:470:69fc:105::95f) (Quit: You have been kicked for being idle) |
2021-12-20 17:02:15 +0100 | <timCF> | geekosaur: thanks! |
2021-12-20 17:03:04 +0100 | ksqsf | (~user@134.209.106.31) |
2021-12-20 17:06:32 +0100 | deadmarshal | (~deadmarsh@95.38.230.107) (Ping timeout: 240 seconds) |
2021-12-20 17:06:40 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2021-12-20 17:07:44 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:b7fd:fa95:80d6:f41) |
2021-12-20 17:08:26 +0100 | mikoto-chan | (~mikoto-ch@esm-84-240-99-143.netplaza.fi) |
2021-12-20 17:10:37 +0100 | jkaye | (~jkaye@2601:281:8300:7530:6566:3224:cc66:3345) (Ping timeout: 240 seconds) |
2021-12-20 17:11:56 +0100 | neverfindme | (~hayden@158.123.160.43) |
2021-12-20 17:12:29 +0100 | timCF | (~timCF@m91-129-100-224.cust.tele2.ee) (Quit: leaving) |
2021-12-20 17:15:34 +0100 | max22- | (~maxime@2a01cb0883359800306516e9c6b993f0.ipv6.abo.wanadoo.fr) |
2021-12-20 17:17:42 +0100 | coot | (~coot@2a02:a310:e03f:8500:7248:52ac:817b:7fb4) (Quit: coot) |
2021-12-20 17:21:34 +0100 | zaquest | (~notzaques@5.130.79.72) (Remote host closed the connection) |
2021-12-20 17:22:32 +0100 | neverfindme | (~hayden@158.123.160.43) (Remote host closed the connection) |
2021-12-20 17:22:49 +0100 | neverfindme | (~hayden@158.123.160.43) |
2021-12-20 17:24:37 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-20 17:26:10 +0100 | deadmarshal | (~deadmarsh@95.38.230.107) |
2021-12-20 17:26:15 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) |
2021-12-20 17:26:40 +0100 | neverfindme | (~hayden@158.123.160.43) (Client Quit) |
2021-12-20 17:28:45 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-12-20 17:28:57 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2021-12-20 17:29:11 +0100 | kupi | (uid212005@id-212005.hampstead.irccloud.com) |
2021-12-20 17:30:17 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
2021-12-20 17:30:26 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-12-20 17:31:34 +0100 | earendel | (uid498179@user/earendel) |
2021-12-20 17:34:15 +0100 | jakalx | (~jakalx@base.jakalx.net) () |
2021-12-20 17:34:41 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.4) |
2021-12-20 17:35:12 +0100 | deadmarshal | (~deadmarsh@95.38.230.107) (Ping timeout: 256 seconds) |
2021-12-20 17:35:17 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-12-20 17:37:45 +0100 | kaph | (~kaph@net-2-47-236-216.cust.vodafonedsl.it) |
2021-12-20 17:39:34 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-12-20 17:39:57 +0100 | doyougnu | (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-12-20 17:40:11 +0100 | awpr | (uid446117@id-446117.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-20 17:42:52 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807) |
2021-12-20 17:43:34 +0100 | earendel | disfrutar-conchi |
2021-12-20 17:43:42 +0100 | emf | (~emf@2603-6080-9403-11bf-1471-5d14-4db5-bab4.res6.spectrum.com) |
2021-12-20 17:47:44 +0100 | <monochrom> | Very late to the 5D Chess with multiverse time travel conversation, but consider Tenet Chess, too. >:) |
2021-12-20 17:47:57 +0100 | emf | (~emf@2603-6080-9403-11bf-1471-5d14-4db5-bab4.res6.spectrum.com) (Ping timeout: 240 seconds) |
2021-12-20 17:48:33 +0100 | emf_ | (~emf@2620:10d:c091:480::1:4a0) |
2021-12-20 17:48:33 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-12-20 17:48:52 +0100 | <Hecate> | monochrom: NO |
2021-12-20 17:48:54 +0100 | <Hecate> | :< |
2021-12-20 17:48:58 +0100 | <Hecate> | it hurts my brain :( |
2021-12-20 17:50:20 +0100 | <janus> | does it make sense to have 'seq x x' ? hlint has a warning about it |
2021-12-20 17:50:27 +0100 | <monochrom> | It doesn't. |
2021-12-20 17:51:13 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807) (Remote host closed the connection) |
2021-12-20 17:51:24 +0100 | <janus> | is it because the x would be exactly evaluated when the seq is reached, and that is also the case when the seq is there? |
2021-12-20 17:51:25 +0100 | <monochrom> | "Yo dawg I heard you like forcing so I force x while you force x." |
2021-12-20 17:51:49 +0100 | <monochrom> | Yeah, it's redundant, repetitive, idempotent. |
2021-12-20 17:52:56 +0100 | <monochrom> | See also my http://www.vex.net/~trebla/humour/tautologies.html #6 :) |
2021-12-20 17:57:27 +0100 | <c_wraith> | janus: seq isn't magic. laziness still applies. It ties the evaluation of two values together, but that only does anything when it's actually demanded |
2021-12-20 17:58:52 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807) |
2021-12-20 17:59:23 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 252 seconds) |
2021-12-20 17:59:56 +0100 | <janus> | right. i guess my confusion is of how it is often explained with 'evaluation' but i like the explanation on the haskell wiki more, which also talks about data dependency |
2021-12-20 18:00:38 +0100 | <janus> | it even mentions this exact example https://wiki.haskell.org/Seq |
2021-12-20 18:01:13 +0100 | Morrow | (~quassel@bzq-110-168-31-106.red.bezeqint.net) |
2021-12-20 18:04:29 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-12-20 18:04:46 +0100 | zaquest | (~notzaques@5.130.79.72) |
2021-12-20 18:05:44 +0100 | thevishy | (~Nishant@2405:201:f005:c007:48b2:97f1:a252:93a6) (Quit: Leaving) |
2021-12-20 18:07:27 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-12-20 18:07:49 +0100 | <c_wraith> | most notably, "seq x y" is mostly useful when x is some substructure of y that isn't evaluated when y is, but you want it to be. |
2021-12-20 18:10:44 +0100 | <c_wraith> | for instance, there's an idiom "iterate f x !! n" for applying the function f to the value x, n times. But it works really suboptimally when n is large. |
2021-12-20 18:12:29 +0100 | <c_wraith> | because (!!) forces evaluation of the (:) constructors in the list resulting from iterate, but nothing else. This means you get a huge nested series of applications of f in memory, each one as a thunk taking up memory in a manner that's useless for any strict function f |
2021-12-20 18:14:50 +0100 | <c_wraith> | more recent version of base have added a new function, iterate', which resolves this issue for strict f. it uses seq to tie together evaluation of the (:) constructor with its first argument. |
2021-12-20 18:15:35 +0100 | <c_wraith> | This means that when you just traverse the spine of the list with (!!), it's still evaluating the values stored in the list along the way, preventing a buildup of thunks |
2021-12-20 18:15:43 +0100 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-12-20 18:17:24 +0100 | epolanski | (uid312403@id-312403.helmsley.irccloud.com) |
2021-12-20 18:18:36 +0100 | burnsidesLlama | (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
2021-12-20 18:18:37 +0100 | <c_wraith> | Do note that this isn't the complete story, though. There are a lot of ways you could write the value for f such that it will always leak space. And if f makes use of productive laziness, neither iterate nor iterate' is a good way to apply it repeatedly. |
2021-12-20 18:19:36 +0100 | mbuf | (~Shakthi@223.178.83.73) (Quit: Leaving) |
2021-12-20 18:20:27 +0100 | img | (~img@user/img) |
2021-12-20 18:23:24 +0100 | <euouae> | I don't understand why `iterate f x !! n` is bad for large n |
2021-12-20 18:24:29 +0100 | jkaye | (~jkaye@2601:281:8300:7530:bdb2:1444:46f4:adc7) |
2021-12-20 18:24:39 +0100 | <euouae> | when the final cons cell is reached, it's a big series of thunks, each one application of f? is that why? As opposed to evaluating f and then caching the result when iterating the list? |
2021-12-20 18:24:58 +0100 | deadmarshal | (~deadmarsh@95.38.230.107) |
2021-12-20 18:25:54 +0100 | <c_wraith> | yep. "iterate f x !! n" is always going to generate n nested applications of f before any of them is evaluated |
2021-12-20 18:25:56 +0100 | <geekosaur> | right, rather than caching it just points to the previous thunk |
2021-12-20 18:29:16 +0100 | <euouae> | okay, thanks |
2021-12-20 18:29:32 +0100 | <c_wraith> | if n is small or f doesn't close over anything, that might not be a big deal |
2021-12-20 18:30:41 +0100 | <c_wraith> | Hmm. f is shared. if it's a huge closure that's only constant extra space, I suppose. So really, it's just the size of n that matters. |
2021-12-20 18:32:34 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807) (Remote host closed the connection) |
2021-12-20 18:32:36 +0100 | <c_wraith> | But it's notable that large chains of thunks can have surprising performance impacts. They can cause drag in the garbage collector which actually makes program performance asymptotically worse in certain cases. |
2021-12-20 18:32:54 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807) |
2021-12-20 18:33:22 +0100 | dyeplexer | (~dyeplexer@user/dyeplexer) (Remote host closed the connection) |
2021-12-20 18:34:01 +0100 | pfurla | (~pfurla@2804:d41:4331:4800:11e0:2623:c59:6cb7) (Quit: gone to sleep. ZZZzzz…) |
2021-12-20 18:34:11 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Quit: Gateway shutdown) |
2021-12-20 18:37:39 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807) (Remote host closed the connection) |
2021-12-20 18:41:19 +0100 | max22- | (~maxime@2a01cb0883359800306516e9c6b993f0.ipv6.abo.wanadoo.fr) (Remote host closed the connection) |
2021-12-20 18:42:13 +0100 | max22- | (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr) |
2021-12-20 18:45:48 +0100 | jakalx | (~jakalx@base.jakalx.net) () |
2021-12-20 18:46:38 +0100 | mvk | (~mvk@2607:fea8:5cdd:f000::917a) |
2021-12-20 18:47:57 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-12-20 18:47:57 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-12-20 18:51:32 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Quit: Leaving) |
2021-12-20 18:52:37 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-12-20 18:55:57 +0100 | neurocyte0132889 | (~neurocyte@user/neurocyte) (Ping timeout: 240 seconds) |
2021-12-20 18:56:13 +0100 | <dminuoso> | tomsmeding: Yeah I thought about it as well |
2021-12-20 18:56:31 +0100 | <dminuoso> | tomsmeding: I think Ill just go with a simple nested map as a non-patricia trie |
2021-12-20 18:56:39 +0100 | <dminuoso> | the implementation is very straight forward |
2021-12-20 18:57:12 +0100 | <dminuoso> | https://gist.github.com/dminuoso/41d18409f95b98963df7bdff681ecdbd |
2021-12-20 18:57:33 +0100 | <dminuoso> | Construction is somewhat inefficient, but that's acceptable to me. |
2021-12-20 18:58:24 +0100 | <euouae> | add some comments :P |
2021-12-20 18:58:58 +0100 | <dminuoso> | With `newtype DomTable = DomTable (M.Map T.Text DomTable) deriving Show` |
2021-12-20 18:59:00 +0100 | <dminuoso> | Of course |
2021-12-20 18:59:18 +0100 | <tomsmeding> | oh right, just a nested tree of Maps |
2021-12-20 18:59:53 +0100 | <dminuoso> | Thing though is, Id really like this to be a patricia trie |
2021-12-20 19:00:23 +0100 | tomsmeding | doesn't know how patricia trees work |
2021-12-20 19:00:36 +0100 | <dminuoso> | It's simply a trie in which single branches get coalesced/merged |
2021-12-20 19:00:46 +0100 | <tomsmeding> | ah |
2021-12-20 19:01:05 +0100 | <tomsmeding> | does that happen lots of times in your case? |
2021-12-20 19:01:06 +0100 | <dminuoso> | i.e. when storing a string, you dont store characters separately, so when you have `foo` and `fob`, the root would start with `fo` |
2021-12-20 19:03:23 +0100 | econo | (uid147250@user/econo) |
2021-12-20 19:03:53 +0100 | Morrow | (~quassel@bzq-110-168-31-106.red.bezeqint.net) (Remote host closed the connection) |
2021-12-20 19:04:10 +0100 | <tomsmeding> | https://hackage.haskell.org/package/list-tries exists, but not sure if you want a dependency for this |
2021-12-20 19:04:35 +0100 | <dminuoso> | I dont think a generic trie implementation can realistically work |
2021-12-20 19:04:39 +0100 | <tomsmeding> | probably best to go with the nested maps tree unless it becomes a performance liability |
2021-12-20 19:04:42 +0100 | <dminuoso> | yeah |
2021-12-20 19:04:52 +0100 | <dminuoso> | I mean this is not really out of performance concerns |
2021-12-20 19:04:58 +0100 | <dminuoso> | This is just CS golfing, if you want. |
2021-12-20 19:05:06 +0100 | <tomsmeding> | I like that term |
2021-12-20 19:05:14 +0100 | Morrow | (~quassel@bzq-110-168-31-106.red.bezeqint.net) |
2021-12-20 19:05:35 +0100 | <tomsmeding> | though I still kind of like my original idea |
2021-12-20 19:05:59 +0100 | <dminuoso> | It's still linear in lookup though |
2021-12-20 19:06:12 +0100 | <dminuoso> | And realistically, the data will not be nicely averaged |
2021-12-20 19:07:04 +0100 | <tomsmeding> | what if you take newtype DomTable = DomTable (Set [T.Text]), and for lookup, use Set.lookupLE to get the longest matching prefix |
2021-12-20 19:07:09 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-20 19:07:16 +0100 | <tomsmeding> | I think that should work |
2021-12-20 19:07:21 +0100 | <tomsmeding> | there's a lot of duplication in the keys though |
2021-12-20 19:07:34 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 256 seconds) |
2021-12-20 19:07:34 +0100 | <dminuoso> | Uh how would that even work? |
2021-12-20 19:07:59 +0100 | <dminuoso> | It certainly wouldnt work with the regular Ord instance |
2021-12-20 19:08:03 +0100 | <dminuoso> | Note: |
2021-12-20 19:08:06 +0100 | <tomsmeding> | table = DomTable (Set.fromList [["com", "google", "maps"], ["com", "tomsmeding", "paste"]]) |
2021-12-20 19:08:21 +0100 | <dminuoso> | Find largest key _smaller or equal_ to the given one |
2021-12-20 19:08:29 +0100 | <tomsmeding> | yeah, lexicographically |
2021-12-20 19:08:44 +0100 | <tomsmeding> | if it finds an equal key, then that's obviously the longest prefix |
2021-12-20 19:09:07 +0100 | <tomsmeding> | it there isn't an equal key, then the longest matching prefix is certainly going to be <= your lookup domain |
2021-12-20 19:09:26 +0100 | <dminuoso> | Im genuinely curious now |
2021-12-20 19:09:27 +0100 | <tomsmeding> | and if there is another item in the set in between, then that can only be a longer prefix -- contradiction |
2021-12-20 19:09:50 +0100 | Midjak | (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) |
2021-12-20 19:09:56 +0100 | tomsmeding | might be rambling |
2021-12-20 19:10:08 +0100 | <dminuoso> | % sort $ [["foo", "bar", "quux", "baz"], ["google", "maps"], ["com", "tomsmeding", "paste"]] |
2021-12-20 19:10:08 +0100 | <yahb> | dminuoso: [["com","tomsmeding","paste"],["foo","bar","quux","baz"],["google","maps"]] |
2021-12-20 19:10:19 +0100 | <disfrutar-conchi> | maybe some levensthein derivatation could help |
2021-12-20 19:10:39 +0100 | <tomsmeding> | % sort $ [["foo", "bar", "quux", "baz"], ["google", "maps"], ["com", "tomsmeding", "paste"], ["google", "images"]] |
2021-12-20 19:10:39 +0100 | <yahb> | tomsmeding: [["com","tomsmeding","paste"],["foo","bar","quux","baz"],["google","images"],["google","maps"]] |
2021-12-20 19:10:41 +0100 | Akiva | (~Akiva@user/Akiva) |
2021-12-20 19:10:53 +0100 | <dminuoso> | tomsmeding: How would `["www", "google", "maps"]` ever be smaller or equal than only ["google", "maps"] here? |
2021-12-20 19:11:09 +0100 | <tomsmeding> | I'm talking about _prefix_ matching here |
2021-12-20 19:11:18 +0100 | <tomsmeding> | if you want suffix matching, you'll have to reverse everything :p |
2021-12-20 19:11:35 +0100 | <dminuoso> | tomsmeding: Sure, lets just pretend we're on the same level with prefix/suffix here. |
2021-12-20 19:11:43 +0100 | <disfrutar-conchi> | string matching. |
2021-12-20 19:11:49 +0100 | <dminuoso> | oh hold on. |
2021-12-20 19:11:51 +0100 | <dminuoso> | mmm |
2021-12-20 19:12:17 +0100 | <dminuoso> | % s = Data.Set.fromList = [["foo", "bar", "quux", "baz"], ["google", "maps"], ["com", "tomsmeding", "paste"], ["google", "images"]] |
2021-12-20 19:12:17 +0100 | <yahb> | dminuoso: ; <interactive>:205:23: error: parse error on input `=' |
2021-12-20 19:12:22 +0100 | <dminuoso> | % s = Data.Set.fromList [["foo", "bar", "quux", "baz"], ["google", "maps"], ["com", "tomsmeding", "paste"], ["google", "images"]] |
2021-12-20 19:12:22 +0100 | <yahb> | dminuoso: |
2021-12-20 19:12:30 +0100 | <tomsmeding> | % S.lookupLE ["com", "google", "images"] (S.fromList [["com", "google", "docs"], ["com", "google", "maps"]]) |
2021-12-20 19:12:30 +0100 | <yahb> | tomsmeding: Just ["com","google","docs"] |
2021-12-20 19:12:41 +0100 | <tomsmeding> | oh I'm dumb |
2021-12-20 19:12:44 +0100 | <dminuoso> | Yeah that looks borked. |
2021-12-20 19:12:53 +0100 | <tomsmeding> | % S.lookupLE ["com", "google", "images"] (S.fromList [["com", "google", "docs"], ["com", "google", "maps"], ["com"]]) |
2021-12-20 19:12:54 +0100 | <yahb> | tomsmeding: Just ["com","google","docs"] |
2021-12-20 19:12:58 +0100 | <tomsmeding> | here you want the ["com"] |
2021-12-20 19:13:06 +0100 | <dminuoso> | But that's the thing |
2021-12-20 19:13:07 +0100 | YoungFrog | (~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in) |
2021-12-20 19:13:17 +0100 | <dminuoso> | % S.lookupLE ["foo"] (S.fromList [["com", "google", "docs"], ["com", "google", "maps"], ["com"]]) |
2021-12-20 19:13:17 +0100 | <yahb> | dminuoso: Just ["com","google","maps"] |
2021-12-20 19:13:25 +0100 | <dminuoso> | No this will not work for what I do |
2021-12-20 19:13:28 +0100 | <tomsmeding> | my idea only works if there are no two items in the set that are prefixes of each other lol |
2021-12-20 19:13:31 +0100 | <tomsmeding> | which is not helpful for you |
2021-12-20 19:13:33 +0100 | <dminuoso> | Yeah |
2021-12-20 19:13:53 +0100 | <dminuoso> | And it assumes that the queried domain has some matching suffix in there |
2021-12-20 19:13:59 +0100 | <tomsmeding> | the idea was the whole time that you should double-check if the result of lookupLE is indeed a prefix |
2021-12-20 19:14:01 +0100 | <dminuoso> | If it doesnt, it gives junk back |
2021-12-20 19:14:04 +0100 | <tomsmeding> | yeah |
2021-12-20 19:14:21 +0100 | <dminuoso> | I think I might do |
2021-12-20 19:14:35 +0100 | <tomsmeding> | but can your map-tree distinguish between [["com", "google"]] and [["com", "google"], ["com"]] ? |
2021-12-20 19:14:37 +0100 | YoungFrog | (~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) |
2021-12-20 19:14:51 +0100 | <dminuoso> | My original one? |
2021-12-20 19:14:54 +0100 | <tomsmeding> | yeah |
2021-12-20 19:14:59 +0100 | <tomsmeding> | https://gist.github.com/dminuoso/41d18409f95b98963df7bdff681ecdbd |
2021-12-20 19:15:00 +0100 | <dminuoso> | Yes |
2021-12-20 19:15:06 +0100 | <dminuoso> | Try it out |
2021-12-20 19:15:24 +0100 | <dminuoso> | tomsmeding: basically *because* its a trie. |
2021-12-20 19:15:31 +0100 | <dminuoso> | tomsmeding: the former gets turned into the latter, so to speak |
2021-12-20 19:15:52 +0100 | <dminuoso> | let chain = foldr (\x t -> DomTable (M.singleton x t)) (DomTable M.empty) xs in DomTable (M.insert x chain table) |
2021-12-20 19:16:33 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) |
2021-12-20 19:16:37 +0100 | <tomsmeding> | 19:15 <dminuoso> tomsmeding: the former gets turned into the latter, so to speak |
2021-12-20 19:16:43 +0100 | <tomsmeding> | okay so it _can't_ distinguish? :p |
2021-12-20 19:17:13 +0100 | <dminuoso> | Oh sorry, no it cant |
2021-12-20 19:17:18 +0100 | <dminuoso> | I see your point. |
2021-12-20 19:17:26 +0100 | <dminuoso> | And that's actually a valid one. |
2021-12-20 19:17:28 +0100 | <dminuoso> | Mmm. |
2021-12-20 19:17:37 +0100 | <euouae> | and finally the peano encoding was useful for something |
2021-12-20 19:17:47 +0100 | <tomsmeding> | in an actual Trie, there's a boolean tag on each node indicating whether this prefix is actually in the trie |
2021-12-20 19:17:59 +0100 | <tomsmeding> | euouae: peano encoding? |
2021-12-20 19:18:01 +0100 | <dminuoso> | dont degrade my trie now :( |
2021-12-20 19:18:06 +0100 | <tomsmeding> | lol |
2021-12-20 19:18:10 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-20 19:18:18 +0100 | <euouae> | tomsmeding in set theory the successor of a set n is {n, {n}} |
2021-12-20 19:18:44 +0100 | <euouae> | I wouldn't say this is exactly the situation here but it looks like [[x], [x,y]]. Maybe just ignore me :P |
2021-12-20 19:18:47 +0100 | <dminuoso> | tomsmeding: I guess in most tries you dont because you only care about finding leafs. |
2021-12-20 19:19:02 +0100 | <dminuoso> | and then it doesnt matter |
2021-12-20 19:19:07 +0100 | <tomsmeding> | euouae: but then the next step, here, would be [[x], [x,y], [x,y,z]] ;) |
2021-12-20 19:19:29 +0100 | <tomsmeding> | dminuoso: do you? I learned a trie as a data structure for a set of strings, I think |
2021-12-20 19:19:54 +0100 | <tomsmeding> | in which case, if you want to represent {"fo", "foo"}, you'll need to have a False tag on the f node and True tags on both o nodes |
2021-12-20 19:20:19 +0100 | <monochrom> | I though {n, {n}} was von Neumann's. |
2021-12-20 19:20:39 +0100 | <tomsmeding> | dminuoso: longestSuffix (Domain ["com", "tomsmeding"]) (insert (Domain ["com", "google"]) (insert (Domain ["com"]) emptyDomTable)) == Nothing |
2021-12-20 19:20:41 +0100 | <tomsmeding> | is that expected? |
2021-12-20 19:20:47 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) (Ping timeout: 252 seconds) |
2021-12-20 19:20:54 +0100 | <tomsmeding> | or is this precisely the thing we're taling about |
2021-12-20 19:21:00 +0100 | <euouae> | monochrom oh yeah, thanks, I was trying to look up the actual name of the person who thought of it, |
2021-12-20 19:21:40 +0100 | <euouae> | monochrom now my statement is even sillier "One of von Neumann's creations was _finally_ useful..." |
2021-12-20 19:22:24 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3) |
2021-12-20 19:22:56 +0100 | neurocyte0132889 | (~neurocyte@IP-045136168122.dynamic.medianet-world.de) |
2021-12-20 19:22:56 +0100 | neurocyte0132889 | (~neurocyte@IP-045136168122.dynamic.medianet-world.de) (Changing host) |
2021-12-20 19:22:56 +0100 | neurocyte0132889 | (~neurocyte@user/neurocyte) |
2021-12-20 19:25:06 +0100 | <tomsmeding> | dminuoso: oh I mixed up prefix and suffix again |
2021-12-20 19:26:54 +0100 | tcard | (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) (Remote host closed the connection) |
2021-12-20 19:27:08 +0100 | tcard | (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) |
2021-12-20 19:27:38 +0100 | <c_wraith> | that's not complicated enough. let's say invent infix tries! |
2021-12-20 19:28:22 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-20 19:28:37 +0100 | emf_ | (~emf@2620:10d:c091:480::1:4a0) (Ping timeout: 240 seconds) |
2021-12-20 19:29:06 +0100 | neurocyte0132889 | (~neurocyte@user/neurocyte) (Ping timeout: 256 seconds) |
2021-12-20 19:29:09 +0100 | emf | (~emf@2620:10d:c091:480::1:4a0) |
2021-12-20 19:29:26 +0100 | <tomsmeding> | dminuoso: https://paste.tomsmeding.com/8x6WH4dX I _think_ this implements the boolean tags I mentioned |
2021-12-20 19:29:29 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-12-20 19:29:49 +0100 | <tomsmeding> | the <|> ensures that if the search fails later, then we still return this prefix (in go) that did match |
2021-12-20 19:30:01 +0100 | <tomsmeding> | but only if the tag is True, which is when this prefix is indeed in the tree |
2021-12-20 19:30:16 +0100 | kranius | (~kranius@162.19.149.77.rev.sfr.net) |
2021-12-20 19:31:56 +0100 | python476 | (~user@88.160.31.174) |
2021-12-20 19:32:06 +0100 | benin | (~benin@183.82.27.121) (Quit: The Lounge - https://thelounge.chat) |
2021-12-20 19:32:17 +0100 | deadmarshal | (~deadmarsh@95.38.230.107) (Ping timeout: 240 seconds) |
2021-12-20 19:32:29 +0100 | xkuru | (~xkuru@user/xkuru) |
2021-12-20 19:33:30 +0100 | <tomsmeding> | (if you wish my contribution to the code is public domain :p ) |
2021-12-20 19:34:02 +0100 | <tomsmeding> | (but you probably want to rewrite it in a neater way anyway, heh) |
2021-12-20 19:36:50 +0100 | neurocyte0132889 | (~neurocyte@IP-045136168122.dynamic.medianet-world.de) |
2021-12-20 19:36:50 +0100 | neurocyte0132889 | (~neurocyte@IP-045136168122.dynamic.medianet-world.de) (Changing host) |
2021-12-20 19:36:50 +0100 | neurocyte0132889 | (~neurocyte@user/neurocyte) |
2021-12-20 19:38:44 +0100 | kranius | (~kranius@162.19.149.77.rev.sfr.net) (Ping timeout: 256 seconds) |
2021-12-20 19:38:50 +0100 | kupi | (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-20 19:39:37 +0100 | emf | (~emf@2620:10d:c091:480::1:4a0) (Ping timeout: 240 seconds) |
2021-12-20 19:44:11 +0100 | deadmarshal | (~deadmarsh@95.38.230.107) |
2021-12-20 19:45:40 +0100 | EvanR | (~EvanR@user/evanr) |
2021-12-20 19:52:19 +0100 | doyougnu | (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) |
2021-12-20 20:00:47 +0100 | EvanR | (~EvanR@user/evanr) (Quit: Leaving) |
2021-12-20 20:00:55 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-20 20:00:56 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 252 seconds) |
2021-12-20 20:01:21 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-20 20:01:42 +0100 | EvanR | (~EvanR@user/evanr) |
2021-12-20 20:03:02 +0100 | waleee | (~waleee@h-98-128-229-110.NA.cust.bahnhof.se) |
2021-12-20 20:03:38 +0100 | max22- | (~maxime@lfbn-ren-1-1026-62.w92-139.abo.wanadoo.fr) (Ping timeout: 268 seconds) |
2021-12-20 20:08:45 +0100 | tcard_ | (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) |
2021-12-20 20:08:57 +0100 | tcard | (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) (Ping timeout: 240 seconds) |
2021-12-20 20:09:20 +0100 | deadmarshal | (~deadmarsh@95.38.230.107) (Ping timeout: 256 seconds) |
2021-12-20 20:09:47 +0100 | kranius | (~kranius@162.19.149.77.rev.sfr.net) |
2021-12-20 20:11:19 +0100 | <zero> | say we have an infinite tree where each node is a calculation on the parent node. if we run an initial bfs to evaluate all nodes up to a depth of n, will running it a second time to n+1 benefit from the former evaluation? |
2021-12-20 20:12:31 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) |
2021-12-20 20:12:43 +0100 | <zero> | in another words, is this a valid model for memoization? |
2021-12-20 20:13:25 +0100 | ridcully_ | (~ridcully@pd951f824.dip0.t-ipconnect.de) |
2021-12-20 20:14:31 +0100 | ridcully | (~ridcully@p508ac9bf.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
2021-12-20 20:15:52 +0100 | <dsal> | It depends on how the calculations are stored. |
2021-12-20 20:16:18 +0100 | <dsal> | If they're thunks and you're evaluating them, then it should help |
2021-12-20 20:16:58 +0100 | <dsal> | It's not going to add new storage facilities for you, though. |
2021-12-20 20:18:18 +0100 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) |
2021-12-20 20:18:40 +0100 | <zero> | i'm not sure what is meant by that |
2021-12-20 20:19:41 +0100 | <disfrutar-conchi> | did u mean storage factories? :p |
2021-12-20 20:20:21 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-12-20 20:23:01 +0100 | <zero> | data Tree a = Node a (Tree a) (Tree a) ; tree n = Node n (tree $ n+2) (tree $ n*2) |
2021-12-20 20:23:17 +0100 | neurocyte0132889 | (~neurocyte@user/neurocyte) (Ping timeout: 240 seconds) |
2021-12-20 20:23:35 +0100 | son0p | (~ff@181.136.122.143) |
2021-12-20 20:23:40 +0100 | <euouae> | zero: how is your tree example different than a list? |
2021-12-20 20:23:59 +0100 | <euouae> | after all a path from root to node in your tree is like a list |
2021-12-20 20:24:20 +0100 | <euouae> | so it seems that you can recast the question on a list (which is a simpler model) instead |
2021-12-20 20:25:16 +0100 | <tomsmeding> | zero: if you construct an infinite tree which you then evaluate up to a certain depth, that evaluation will create that prefix of the tree in memory |
2021-12-20 20:25:36 +0100 | <tomsmeding> | so if you keep hold of the data structure, the next evaluation will just read the results of the previous evaluation from memory |
2021-12-20 20:26:05 +0100 | <tomsmeding> | but it won't memoise automatically -- you have to explicitly keep the same datastructure and not construct a new one (watch out for polymorphism) |
2021-12-20 20:26:53 +0100 | <EvanR> | imagine the result of a breadth first traversal is a boring list of nodes, or list of list of nodes in a level. Then everything you know about lists now applies |
2021-12-20 20:27:48 +0100 | <disfrutar-conchi> | every hash is binary tree .. and by thus quick to look up. |
2021-12-20 20:27:59 +0100 | <EvanR> | :thonk: |
2021-12-20 20:28:38 +0100 | <tomsmeding> | zero: note that if you evaluate up to depth n+1, then the _new_ stuff you're evaluating is 2^(n+1) nodes, but the whole tree up until now (levels 0 through n) contains 2^(n+1)-1 nodes. So you're only saving half the work. This factor (1/2) decreases if the branching factor of your tree increases |
2021-12-20 20:28:53 +0100 | <tomsmeding> | so in case the branching factor is >2, re-evaluate whether it's worthwhile to cache results :) |
2021-12-20 20:29:19 +0100 | <zero> | yes |
2021-12-20 20:31:25 +0100 | <euouae> | in this case you can probably have a formula that translates a tree node to the immediate calculation |
2021-12-20 20:32:04 +0100 | <tomsmeding> | (potentially related search keyword, but you're probably already aware of this: iterative-deepening depth-first search) |
2021-12-20 20:34:46 +0100 | kranius | (~kranius@162.19.149.77.rev.sfr.net) (Changing host) |
2021-12-20 20:34:46 +0100 | kranius | (~kranius@user/kranius) |
2021-12-20 20:35:04 +0100 | kranius | (~kranius@user/kranius) (Quit: leaving) |
2021-12-20 20:35:24 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-20 20:43:38 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-12-20 20:45:49 +0100 | max22- | (~maxime@2a01cb0883359800b82a50c14ca08cd9.ipv6.abo.wanadoo.fr) |
2021-12-20 20:45:53 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-20 20:47:57 +0100 | Neuromancer | (~Neuromanc@user/neuromancer) (Ping timeout: 240 seconds) |
2021-12-20 20:49:07 +0100 | emf | (~emf@2620:10d:c091:480::1:8fa6) |
2021-12-20 20:49:28 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2021-12-20 20:49:45 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-12-20 20:52:21 +0100 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3) |
2021-12-20 20:53:57 +0100 | emf | (~emf@2620:10d:c091:480::1:8fa6) (Ping timeout: 240 seconds) |
2021-12-20 20:57:13 +0100 | emf | (~emf@2620:10d:c091:480::1:8fa6) |
2021-12-20 20:58:06 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2021-12-20 20:58:51 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-12-20 20:59:46 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 256 seconds) |
2021-12-20 21:00:21 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 268 seconds) |
2021-12-20 21:02:02 +0100 | ksqsf | (~user@134.209.106.31) (Ping timeout: 240 seconds) |
2021-12-20 21:02:02 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
2021-12-20 21:02:28 +0100 | son0p | (~ff@181.136.122.143) (Remote host closed the connection) |
2021-12-20 21:03:00 +0100 | kranius | (~kranius@user/kranius) |
2021-12-20 21:03:16 +0100 | iteratee_ | (~kyle@162.218.222.107) (Read error: Connection reset by peer) |
2021-12-20 21:03:22 +0100 | samhh | (7569f027cf@2604:bf00:561:2000::e4) (Read error: Connection reset by peer) |
2021-12-20 21:03:26 +0100 | iteratee | (~kyle@162.218.222.107) |
2021-12-20 21:03:29 +0100 | samhh_ | (7569f027cf@2604:bf00:561:2000::e4) |
2021-12-20 21:03:36 +0100 | <gentauro> | `GHC-9.0.1` -> `I don't know how to install GHC for (OSX,AArch64), please install manually` xD |
2021-12-20 21:03:44 +0100 | samhh_ | samhh |
2021-12-20 21:04:31 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-20 21:04:44 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-20 21:05:01 +0100 | juhp | (~juhp@128.106.188.82) (Ping timeout: 240 seconds) |
2021-12-20 21:05:28 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-20 21:05:54 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3) |
2021-12-20 21:07:40 +0100 | juhp | (~juhp@128.106.188.82) |
2021-12-20 21:08:22 +0100 | neurocyte0132889 | (~neurocyte@user/neurocyte) |
2021-12-20 21:08:38 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2021-12-20 21:10:07 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot) |
2021-12-20 21:10:40 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) |
2021-12-20 21:11:38 +0100 | <geekosaur> | I think 9.0.1 doesn't suupport that platform, only 8.10.7 and 9.2.1 |
2021-12-20 21:11:47 +0100 | <geekosaur> | the release schedule went kinda weird there |
2021-12-20 21:12:24 +0100 | jeffz` | (~user@lambda.xen.prgmr.com) |
2021-12-20 21:12:26 +0100 | <geekosaur> | (in particular 8.10 should really have been considered closed to new features, but got extended specifically for mac aarch64) |
2021-12-20 21:13:49 +0100 | jeffz | (~user@lambda.xen.prgmr.com) (Ping timeout: 256 seconds) |
2021-12-20 21:15:04 +0100 | polezaivsani | (~polezaivs@orangeshoelaces.net) (Ping timeout: 256 seconds) |
2021-12-20 21:15:55 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807) |
2021-12-20 21:16:07 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-20 21:16:08 +0100 | polezaivsani | (~polezaivs@orangeshoelaces.net) |
2021-12-20 21:16:46 +0100 | superbil | (~superbil@1-34-176-171.hinet-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-12-20 21:17:34 +0100 | epolanski | (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-20 21:18:54 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807) (Remote host closed the connection) |
2021-12-20 21:19:45 +0100 | ksqsf | (~user@134.209.106.31) |
2021-12-20 21:21:58 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-20 21:23:06 +0100 | polezaivsani | (~polezaivs@orangeshoelaces.net) (Ping timeout: 260 seconds) |
2021-12-20 21:24:37 +0100 | ksqsf | (~user@134.209.106.31) (Ping timeout: 240 seconds) |
2021-12-20 21:26:41 +0100 | <EvanR> | i see java has a nextUp :: Double -> Double math utility which increases a float by 1 ULP. Can haskell do it? (lambdabot gimme something) |
2021-12-20 21:28:38 +0100 | <gentauro> | geekosaur: nighly on `stack` points to `9.0.1` |
2021-12-20 21:28:39 +0100 | <gentauro> | hmmmm |
2021-12-20 21:28:54 +0100 | <tomsmeding> | % unsafeCoerce (unsafeCoerce (42.0 :: Double) + 1 :: Int) :: Double -- EvanR |
2021-12-20 21:28:54 +0100 | <yahb> | tomsmeding: 42.00000000000001 |
2021-12-20 21:29:05 +0100 | <EvanR> | lol |
2021-12-20 21:29:31 +0100 | superbil | (~superbil@1-34-176-171.hinet-ip.hinet.net) |
2021-12-20 21:29:33 +0100 | EvanR | gives tomsmeding's beer back |
2021-12-20 21:29:44 +0100 | <tomsmeding> | :D |
2021-12-20 21:30:28 +0100 | <euouae> | is that adding 1 to the bit representation? |
2021-12-20 21:30:32 +0100 | <tomsmeding> | yeah |
2021-12-20 21:30:34 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-20 21:30:34 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-20 21:30:34 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-20 21:31:09 +0100 | <euouae> | nice, is there an issue between Double and Int being incompatible in size? |
2021-12-20 21:31:33 +0100 | <tomsmeding> | Int is a 64-bit int on 64-bit platforms, and Double is also 64-bit, so they happen to have equivalent representations |
2021-12-20 21:33:45 +0100 | <EvanR> | and then somehow the adding 1 to an int does what you want 🤔 |
2021-12-20 21:34:14 +0100 | <geekosaur> | I bet it only does so if the modulus is correct |
2021-12-20 21:34:18 +0100 | <EvanR> | yeah |
2021-12-20 21:34:21 +0100 | wrengr | (~wrengr@150.12.83.34.bc.googleusercontent.com) |
2021-12-20 21:34:31 +0100 | <tomsmeding> | modulus? |
2021-12-20 21:34:33 +0100 | <euouae> | I think https://hackage.haskell.org/package/floating-bits-0.3.0.0/docs/Data-Bits-Floating-Ulp.html may be a bit more careful |
2021-12-20 21:34:59 +0100 | <geekosaur> | % unsafeCoerce (unsafeCoerce (1e120 :: Double) + 1 :: Int) :: Double |
2021-12-20 21:34:59 +0100 | <yahb> | geekosaur: 1.0000000000000001e120 |
2021-12-20 21:35:02 +0100 | <geekosaur> | huh |
2021-12-20 21:35:24 +0100 | <EvanR> | what does it do one the last value before exponent change |
2021-12-20 21:35:24 +0100 | <geekosaur> | soorry, meant exponent |
2021-12-20 21:35:39 +0100 | <geekosaur> | since floats and doubles are stored as modulus and exponent |
2021-12-20 21:35:59 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-20 21:36:18 +0100 | <euouae> | https://en.wikipedia.org/wiki/IEEE_754-1985 This is how floats are stored I believe, that's the standard it follows |
2021-12-20 21:36:26 +0100 | <tomsmeding> | % -1.0/0 |
2021-12-20 21:36:26 +0100 | <yahb> | tomsmeding: -Infinity |
2021-12-20 21:36:29 +0100 | <tomsmeding> | % unsafeCoerce (unsafeCoerce (-1.0/0 :: Double) - 1 :: Int) :: Double |
2021-12-20 21:36:30 +0100 | <yahb> | tomsmeding: -1.7976931348623157e308 |
2021-12-20 21:36:31 +0100 | <tomsmeding> | clearly |
2021-12-20 21:36:44 +0100 | <euouae> | oh whoops, that's the /old/ one, the new one is https://en.wikipedia.org/wiki/IEEE_754 |
2021-12-20 21:36:49 +0100 | tomsmeding | learned "mantissa and exponent" |
2021-12-20 21:36:55 +0100 | zincy | (~zincy@host86-151-99-97.range86-151.btcentralplus.com) |
2021-12-20 21:37:08 +0100 | <geekosaur> | and I misremembered mantissa, dammit |
2021-12-20 21:37:13 +0100 | <geekosaur> | not my day I guess |
2021-12-20 21:37:27 +0100 | <EvanR> | so to get out of -infinity, you have to go down lol |
2021-12-20 21:37:50 +0100 | <tomsmeding> | IEEE-754 floats are designed in such a way that apart from the sign bit, < comparison is the same as interpreting them as integers |
2021-12-20 21:37:58 +0100 | <EvanR> | should be in the hacker survival guide or something |
2021-12-20 21:38:09 +0100 | <tomsmeding> | only flaw in that is that negative numbers sort above positive numbers due to the sign bit |
2021-12-20 21:38:25 +0100 | <tomsmeding> | so adding one is indeed +1ULP, except that there are special cases surrounding infinity/NaN |
2021-12-20 21:38:39 +0100 | <tomsmeding> | because they take up some of the code space |
2021-12-20 21:38:40 +0100 | <euouae> | now I wish I had some na'an |
2021-12-20 21:38:54 +0100 | <tomsmeding> | naan <3 |
2021-12-20 21:39:15 +0100 | <gentauro> | geekosaur: `8.10.7` seem to work. Thx for the tip |
2021-12-20 21:39:16 +0100 | <gentauro> | :) |
2021-12-20 21:39:32 +0100 | <geekosaur> | np |
2021-12-20 21:39:50 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:1116:7911:5ad7:44c3) (Ping timeout: 268 seconds) |
2021-12-20 21:40:17 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2021-12-20 21:40:18 +0100 | <tomsmeding> | 21:35 <EvanR> what does it do one the last value before exponent change |
2021-12-20 21:40:29 +0100 | <tomsmeding> | it raises the exponent by one and resets the mantissa to zero |
2021-12-20 21:40:33 +0100 | <tomsmeding> | which is exactly the right thing |
2021-12-20 21:40:37 +0100 | <EvanR> | slick |
2021-12-20 21:40:48 +0100 | <tomsmeding> | (except at the inf/nan boundaries and across zero) |
2021-12-20 21:41:18 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) |
2021-12-20 21:41:25 +0100 | <euouae> | I think those checks are shown in the floating-bits link I had above |
2021-12-20 21:41:55 +0100 | <tomsmeding> | yeah use a proper lib please instead of this hack lol |
2021-12-20 21:42:11 +0100 | <euouae> | in undergrad I was grilled on floats by a professor |
2021-12-20 21:42:40 +0100 | <euouae> | scary stuff, I managed to blurt out "maybe try double?" |
2021-12-20 21:43:39 +0100 | <euouae> | "No. Won't work." he responded before moving on to a different set of questions, and to this day I have no idea what the issue wqas |
2021-12-20 21:44:04 +0100 | CiaoSen | (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2021-12-20 21:44:08 +0100 | zincy | (~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Ping timeout: 268 seconds) |
2021-12-20 21:44:20 +0100 | <geekosaur> | my opinion on floating point is if I need to know that stuff, I've landed in the wrong line of work :) |
2021-12-20 21:44:33 +0100 | <geekosaur> | that's the compiler's job as far as I |
2021-12-20 21:44:40 +0100 | <EvanR> | if you remember the question at least you could try again or ask it here |
2021-12-20 21:44:40 +0100 | <geekosaur> | 'm concerned |
2021-12-20 21:45:15 +0100 | <geekosaur> | that said I guess now I understand how that hack that came up the other day works |
2021-12-20 21:45:16 +0100 | <euouae> | well, it /was/ a numerical analysis class... |
2021-12-20 21:45:47 +0100 | <geekosaur> | (mm, did that come up here or in a different channel?) |
2021-12-20 21:45:47 +0100 | <monochrom> | float and double have the same problems, just at different scales. |
2021-12-20 21:45:49 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2021-12-20 21:45:57 +0100 | <tomsmeding> | euouae: perhaps it was some kind of log(1+x) style issue |
2021-12-20 21:46:24 +0100 | Guest70 | (~Guest70@89.151.178.153) |
2021-12-20 21:46:37 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
2021-12-20 21:46:53 +0100 | Guest70 | (~Guest70@89.151.178.153) (Client Quit) |
2021-12-20 21:47:35 +0100 | <euouae> | Who knows. I knew increasing to double would make it more accurate like monochrom says, but he must have been wanting me to analyze the underlying cause. |
2021-12-20 21:47:58 +0100 | cjb | (~cjb@user/cjb) |
2021-12-20 21:49:05 +0100 | <[itchyjunk]> | Is there an easy enough example of this that I might understand? |
2021-12-20 21:49:06 +0100 | <[itchyjunk]> | https://en.wikipedia.org/wiki/Uniqueness_type |
2021-12-20 21:49:07 +0100 | <EvanR> | it gets more precise but not necessarily more accurate xD |
2021-12-20 21:49:29 +0100 | <[itchyjunk]> | String is also list of char so it's not unique? |
2021-12-20 21:49:53 +0100 | <tomsmeding> | [itchyjunk]: have you ever looked at the programming language Futhark |
2021-12-20 21:49:59 +0100 | <tomsmeding> | or Clean |
2021-12-20 21:50:06 +0100 | <[itchyjunk]> | never heard of them :O |
2021-12-20 21:50:10 +0100 | <EvanR> | > let (m,e) = decodeFloat 99.0 in encodeFloat (m - 1) e -- I guess this is a passable way without having to install floating bits |
2021-12-20 21:50:12 +0100 | <lambdabot> | 98.99999999999999 |
2021-12-20 21:50:20 +0100 | kupi | (uid212005@id-212005.hampstead.irccloud.com) |
2021-12-20 21:50:28 +0100 | <EvanR> | wait that won't work |
2021-12-20 21:50:36 +0100 | <EvanR> | or will it |
2021-12-20 21:50:54 +0100 | <euouae> | [itchyjunk] look into linear types, that should help you I think |
2021-12-20 21:51:00 +0100 | <tomsmeding> | [itchyjunk]: https://futhark.readthedocs.io/en/stable/language-reference.html#in-place-updates |
2021-12-20 21:51:14 +0100 | <tomsmeding> | not sure that will help you, but it _is_ a real-world example of usage of uniqueness types |
2021-12-20 21:51:45 +0100 | <monochrom> | I thought of that. What I worried about was again "what does it do one the last value before exponent change", does encodeFloat do the desirable thing? Or does it just bottom out? |
2021-12-20 21:51:55 +0100 | <[itchyjunk]> | ohh, you get to do non functional programming language thing but with the fp benifits of no side effect? |
2021-12-20 21:51:58 +0100 | <EvanR> | encodeFloat is the wildcard |
2021-12-20 21:52:01 +0100 | <tomsmeding> | linear types, depending on who you talk to, either refers to something subly different from uniqueness types, or otherwise to a more general class of type system( feature)s that include uniqueness types among other things |
2021-12-20 21:52:32 +0100 | <tomsmeding> | [itchyjunk]: kind of, the idea is that if you have a value with a unique type, then you know that you have the only reference to that thing |
2021-12-20 21:52:50 +0100 | <tomsmeding> | so it's safe to do all kinds of mutation on it, because you remain referentially transparent: nobody else can see what you're doing |
2021-12-20 21:53:16 +0100 | <[itchyjunk]> | hmm cant i have some unique type but with two things pointing to it? |
2021-12-20 21:53:18 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:d0f9:15ce:3995:401b) |
2021-12-20 21:53:24 +0100 | <[itchyjunk]> | it's still one of a kind but 2 things point to it |
2021-12-20 21:53:36 +0100 | <tomsmeding> | note that this is subly different from the LinearTypes thing that Haskell has since GHC 9.0: there we have function arrows %1-> that guarantee that a function uses its input exactly once (roughly) |
2021-12-20 21:53:56 +0100 | <monochrom> | I think you are using the "unique" adjective on the wrong object. |
2021-12-20 21:54:04 +0100 | <monochrom> | It is not "unique as in snowflake". |
2021-12-20 21:54:09 +0100 | <tomsmeding> | doesn't mean that the function can assume that it has the only reference to its input value |
2021-12-20 21:54:21 +0100 | <monochrom> | It is "unique as in can't have two users". |
2021-12-20 21:54:46 +0100 | <[itchyjunk]> | ahh |
2021-12-20 21:55:43 +0100 | <dmj`> | Has anyone attempted to parse the Haskell 2010 grammar with an Earley parser? Wondering if that can help in situations where ambiguity is present (e.g. aexp vs. apat). |
2021-12-20 21:56:37 +0100 | <tomsmeding> | suppose that you have an imaginary haskell-like language where for any type T, *T denotes "a unique T". Suppose you have a function f :: *(Array Int) -> *(Array Float). Then the code `let a = newArray in zipWith (+) (f a) (f a)` is invalid because `a` is shared between the two calls to `f`, so the arguments to `f` are not unique |
2021-12-20 21:57:07 +0100 | <tomsmeding> | however, `let a = newArray ; b = newArray in zipWith (+) (f a) (f b)` would be valid, since both calls to `f` get a value to which they have the only reference |
2021-12-20 21:57:21 +0100 | <tomsmeding> | assuming that newArray produces a brand new value of type *(Array Int) |
2021-12-20 21:58:29 +0100 | <c_wraith> | dmj`: Earley's algorithm can't handle context-sensitive grammars, which Haskell is. at best you could parse it to an intermediate point and then you'd have to do another pass to fix up the things it couldn't parse correctly on the first pass |
2021-12-20 22:00:07 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) |
2021-12-20 22:00:32 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-12-20 22:04:56 +0100 | yauhsien | (~yauhsien@61-231-38-209.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-12-20 22:05:03 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-20 22:07:55 +0100 | neurocyte0132889 | (~neurocyte@user/neurocyte) (Read error: Connection reset by peer) |
2021-12-20 22:08:05 +0100 | <dmj`> | c_wraith: Haskell's grammar as defined in the report is not context sensitive (so it says). Things like white space / layout are handled by a post-lexing layout phase to convert the grammar into a CFG. So by the time you get to the LALR parser you're operating on a CFG. My understanding is that the issue is the CFG is not a deterministic CFG. |
2021-12-20 22:09:57 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:d0f9:15ce:3995:401b) (Ping timeout: 240 seconds) |
2021-12-20 22:09:58 +0100 | pfurla | (~pfurla@2804:d41:4331:4800:5835:b5d3:9cc8:104b) |
2021-12-20 22:11:51 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-20 22:13:59 +0100 | ksqsf | (~user@134.209.106.31) |
2021-12-20 22:14:19 +0100 | acidjnk | (~acidjnk@p200300d0c7271e5430c1f3c646e9c4d1.dip0.t-ipconnect.de) |
2021-12-20 22:14:35 +0100 | pfurla | (~pfurla@2804:d41:4331:4800:5835:b5d3:9cc8:104b) (Ping timeout: 252 seconds) |
2021-12-20 22:16:16 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2021-12-20 22:17:04 +0100 | pfurla | (~pfurla@2804:d41:4331:4800:5835:b5d3:9cc8:104b) |
2021-12-20 22:17:24 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807) |
2021-12-20 22:17:36 +0100 | <dmj`> | c_wraith: GHC (and JHC) "solve" this by treating all patterns as expressions https://github.com/ghc/ghc/blob/master/compiler/GHC/Parser.y#L3280-L3289 |
2021-12-20 22:18:59 +0100 | ksqsf | (~user@134.209.106.31) (Ping timeout: 252 seconds) |
2021-12-20 22:19:52 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807) (Remote host closed the connection) |
2021-12-20 22:25:06 +0100 | jmtd | Jon |
2021-12-20 22:31:43 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-20 22:34:58 +0100 | doyougnu | (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (Remote host closed the connection) |
2021-12-20 22:35:34 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:d0f9:15ce:3995:401b) |
2021-12-20 22:37:57 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-20 22:38:42 +0100 | sander | (~sander@user/sander) (Read error: Connection reset by peer) |
2021-12-20 22:39:27 +0100 | rond_ | (~rond_@100.42.200.146.dyn.plus.net) |
2021-12-20 22:40:41 +0100 | sander | (~sander@user/sander) |
2021-12-20 22:43:33 +0100 | rond_ | (~rond_@100.42.200.146.dyn.plus.net) (Client Quit) |
2021-12-20 22:43:45 +0100 | hueso | (~root@user/hueso) (Ping timeout: 250 seconds) |
2021-12-20 22:44:21 +0100 | hueso | (~root@user/hueso) |
2021-12-20 22:44:58 +0100 | <Henson> | what's a good IDE for doing Haskell development? I used to use Atom's haskell-ide package, but it looks like it hasn't been updated in some time, and ghc-mod apparently doesn't work with newer versions of Haskell. |
2021-12-20 22:45:06 +0100 | <disfrutar-conchi> | there are no none deterministic operations for a machine. |
2021-12-20 22:45:14 +0100 | <disfrutar-conchi> | especially not for a computer. |
2021-12-20 22:45:24 +0100 | <euouae> | I like Emacs Henson, I use it with the doom-emacs package and it's batteries included |
2021-12-20 22:45:43 +0100 | <tomsmeding> | Henson: vscode is generally the easiest to get working with haskell-language-server, but you can use haskell-language-server with other editors too if they support the language server protocol |
2021-12-20 22:45:57 +0100 | <tomsmeding> | (HLS is "the thing" for IDE support now) |
2021-12-20 22:45:58 +0100 | <disfrutar-conchi> | that is at the the heart of the erisian illusion (as opposed to the unerisian) |
2021-12-20 22:46:31 +0100 | <iqubic> | HLS is excellent. I use HLS with Emacs and it works really really well. |
2021-12-20 22:47:18 +0100 | <euouae> | disfrutar-conchi never heard of the erisian illusion |
2021-12-20 22:47:39 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2021-12-20 22:48:21 +0100 | <disfrutar-conchi> | euouae: you certainly heard einstein popularily claiming god does no dice. well.. it turned out he spent the whole sunday on inventing them. |
2021-12-20 22:48:34 +0100 | <Henson> | thanks for the info, everyone, I'll look into HLS. Maybe I need to switch from VI to Emacs! |
2021-12-20 22:48:53 +0100 | <disfrutar-conchi> | and by that get rid of his almight. hardest part. |
2021-12-20 22:49:10 +0100 | <disfrutar-conchi> | but much more exciting. |
2021-12-20 22:49:30 +0100 | <tomsmeding> | Henson: I'm using HLS in neovim with the built-in LSP support and it works fine; I used it before in vim with ALE and it also worked fine. Though it doesn't support all the fancy stuff like code lenses and whatnot |
2021-12-20 22:49:46 +0100 | <disfrutar-conchi> | euouae: https://principia-discordia.com |
2021-12-20 22:50:07 +0100 | <geekosaur> | disfrutar-conchi, what has this to do with Haskell? |
2021-12-20 22:50:35 +0100 | <disfrutar-conchi> | geekosaur: look up chain of events. if you care. |
2021-12-20 22:50:55 +0100 | <disfrutar-conchi> | i would like to know what is meant with deterministic. |
2021-12-20 22:51:09 +0100 | <EvanR> | haskell allows non-deterministic computations |
2021-12-20 22:51:23 +0100 | <EvanR> | pretty easily |
2021-12-20 22:52:19 +0100 | <disfrutar-conchi> | i will look it up. thank you. good night. bye. |
2021-12-20 22:52:58 +0100 | disfrutar-conchi | there is nothing that will stop me. |
2021-12-20 22:52:58 +0100 | <euouae> | oh we're getting trolled |
2021-12-20 22:53:19 +0100 | disfrutar-conchi | (uid498179@user/earendel) () |
2021-12-20 22:53:34 +0100 | <geekosaur> | yeh, that was why I stepped in |
2021-12-20 22:54:23 +0100 | sagax | (~sagax_nb@user/sagax) (Ping timeout: 250 seconds) |
2021-12-20 22:54:26 +0100 | <geekosaur> | don't see what part of "not a deterministic CFG" leads to "there are no none (sic) deterministic operations for a machine" followed by a bunch of pseudophilosophy |
2021-12-20 22:54:45 +0100 | <geekosaur> | but I may be grumpy today |
2021-12-20 22:58:59 +0100 | <EvanR> | trolling / philosophy is there a diff? xD |
2021-12-20 23:00:14 +0100 | deadmarshal | (~deadmarsh@95.38.230.107) |
2021-12-20 23:01:13 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807) |
2021-12-20 23:02:32 +0100 | <euouae> | I enjoy Nietzsche |
2021-12-20 23:03:23 +0100 | <pfurla-matrix> | Descartes |
2021-12-20 23:03:42 +0100 | kjak | (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Ping timeout: 268 seconds) |
2021-12-20 23:03:54 +0100 | <euouae> | curry-howard correspondence has a section on philosophical interpretation on wikipedia :P |
2021-12-20 23:04:17 +0100 | deadmarshal | (~deadmarsh@95.38.230.107) (Ping timeout: 240 seconds) |
2021-12-20 23:04:21 +0100 | <monochrom> | "earendel is now known as disfrutar-conchi" some 5 hours ago. |
2021-12-20 23:04:28 +0100 | <Inst_> | hi guys |
2021-12-20 23:04:31 +0100 | <Inst_> | btw, i'm confused |
2021-12-20 23:04:38 +0100 | <Inst_> | someone on Functional Programming Discord |
2021-12-20 23:04:52 +0100 | <Inst_> | told me that join is only defined for 2 or more levels of structure on a given monad |
2021-12-20 23:05:17 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807) (Ping timeout: 240 seconds) |
2021-12-20 23:05:21 +0100 | <pfurla-matrix> | euouae: all by the same author, a bit disheartening |
2021-12-20 23:05:56 +0100 | <pfurla-matrix> | `join :: m (m a) -> m a` |
2021-12-20 23:06:08 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-20 23:06:32 +0100 | <Inst_> | ah |
2021-12-20 23:07:17 +0100 | <Inst_> | join :: Monad m => m (m a) -> m a |
2021-12-20 23:07:29 +0100 | <Inst_> | yup so join should not be defined for stuff like join [3] |
2021-12-20 23:07:41 +0100 | <pfurla-matrix> | euouae: the said author https://en.wikipedia.org/wiki/Ruy_de_Queiroz, he is actually an engineer |
2021-12-20 23:07:51 +0100 | <monochrom> | IMO, as usual, the type signature is infinitely clearer than wordy descriptions like "two levels of structure". |
2021-12-20 23:08:03 +0100 | <Inst_> | okay, world makes sense again |
2021-12-20 23:08:07 +0100 | ksqsf | (~user@134.209.106.31) |
2021-12-20 23:08:32 +0100 | <Inst_> | bind = join.fmap |
2021-12-20 23:08:47 +0100 | <geekosaur> | didn't we cover that one yesterday? |
2021-12-20 23:08:51 +0100 | <Inst_> | i think we did |
2021-12-20 23:08:57 +0100 | <geekosaur> | :t join . fmap -- doesn't work |
2021-12-20 23:08:58 +0100 | <lambdabot> | error: |
2021-12-20 23:08:58 +0100 | <lambdabot> | • Occurs check: cannot construct the infinite type: m ~ (->) (m a) |
2021-12-20 23:08:58 +0100 | <lambdabot> | Expected type: (a -> a1) -> m (m a1) |
2021-12-20 23:09:08 +0100 | <geekosaur> | :t (join .) . fmap |
2021-12-20 23:09:09 +0100 | <lambdabot> | Monad m => (a1 -> m a2) -> m a1 -> m a2 |
2021-12-20 23:09:16 +0100 | <Inst_> | ???? |
2021-12-20 23:09:22 +0100 | <Inst_> | :t id.id |
2021-12-20 23:09:23 +0100 | <lambdabot> | c -> c |
2021-12-20 23:09:26 +0100 | <euouae> | pfurla-matrix rest assured there are probably more philosophical works out there discussing CHL iso... |
2021-12-20 23:09:29 +0100 | <Inst_> | :t join.fmap |
2021-12-20 23:09:30 +0100 | <lambdabot> | error: |
2021-12-20 23:09:30 +0100 | <lambdabot> | • Occurs check: cannot construct the infinite type: m ~ (->) (m a) |
2021-12-20 23:09:30 +0100 | <lambdabot> | Expected type: (a -> a1) -> m (m a1) |
2021-12-20 23:09:36 +0100 | <geekosaur> | you can think of this meaning that (join . fmap) only handles one parameter, whereas fmap needs two |
2021-12-20 23:09:38 +0100 | <Inst_> | iirc that's the definition of bind somewhere, no? |
2021-12-20 23:09:47 +0100 | <monochrom> | NO |
2021-12-20 23:09:51 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:d0f9:15ce:3995:401b) (Ping timeout: 268 seconds) |
2021-12-20 23:09:54 +0100 | <Inst_> | oh christ |
2021-12-20 23:10:22 +0100 | <monochrom> | IMO in this case the pointful formula is more helpful. m>>=k = join (fmap k m) |
2021-12-20 23:10:39 +0100 | <monochrom> | join (fmap k m) is obviously not (join . fmap) k m |
2021-12-20 23:11:02 +0100 | <dmj`> | geekosaur: thanks for trying to keep my question from getting derailed, "machines do not have deterministic operations" is arguing a separate point from Haskell2010 CFG. |
2021-12-20 23:11:48 +0100 | <Inst_> | okay, fine, so let's use that definition of bind, etc etc etc |
2021-12-20 23:12:48 +0100 | ees | (~user@pool-108-18-30-46.washdc.fios.verizon.net) (ERC 5.4 (IRC client for GNU Emacs 28.0.90)) |
2021-12-20 23:13:01 +0100 | xff0x | (~xff0x@2001:1a81:5214:2e00:39f0:aaaf:c001:5cae) (Ping timeout: 240 seconds) |
2021-12-20 23:13:03 +0100 | <pfurla-matrix> | join . fmap k |
2021-12-20 23:13:41 +0100 | ksqsf | (~user@134.209.106.31) (Ping timeout: 245 seconds) |
2021-12-20 23:14:10 +0100 | <monochrom> | It is still pretty ugly. At best you have to invoke section syntax (which isn't enlightening) and go "(>>= k) = join . fmap k". |
2021-12-20 23:14:14 +0100 | xff0x | (~xff0x@2001:1a81:5214:2e00:3a40:685:1119:99d6) |
2021-12-20 23:14:14 +0100 | <pfurla-matrix> | join = (>>= id) |
2021-12-20 23:14:14 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-12-20 23:16:31 +0100 | <EvanR> | join .: fmap, :sunglasses: |
2021-12-20 23:16:40 +0100 | <monochrom> | heh |
2021-12-20 23:16:42 +0100 | <Inst_> | (>>= k) = join . fmap k |
2021-12-20 23:17:11 +0100 | <EvanR> | there you go |
2021-12-20 23:17:13 +0100 | <Inst_> | what is .: anyways? |
2021-12-20 23:17:13 +0100 | <Inst_> | is that compose with cons? |
2021-12-20 23:17:34 +0100 | <EvanR> | it composes but feeds two arguments into the first function |
2021-12-20 23:17:47 +0100 | <EvanR> | your missing k in this case |
2021-12-20 23:18:05 +0100 | <pfurla-matrix> | euouae: in the CHL wikipage, right after there is a section named "synthetic papers", do you know what is synthetic paper? |
2021-12-20 23:18:32 +0100 | <EvanR> | it's a cheesy not really standard operator |
2021-12-20 23:18:39 +0100 | <Inst_> | i see |
2021-12-20 23:18:47 +0100 | <pfurla-matrix> | EvanR, where is it defined? |
2021-12-20 23:18:51 +0100 | <EvanR> | right here |
2021-12-20 23:18:54 +0100 | <pfurla-matrix> | :t (.:) |
2021-12-20 23:18:55 +0100 | <lambdabot> | error: |
2021-12-20 23:18:55 +0100 | <lambdabot> | • Variable not in scope: .: |
2021-12-20 23:18:56 +0100 | <lambdabot> | • Perhaps you meant one of these: |
2021-12-20 23:19:01 +0100 | <EvanR> | @def (.:) = (.) . (.) |
2021-12-20 23:19:01 +0100 | <lambdabot> | <command line>: does not exist: .L.hs |
2021-12-20 23:19:10 +0100 | <monochrom> | It's @let |
2021-12-20 23:19:13 +0100 | <euouae> | pfurla-matrix I think it's a technical term in logic, "synthetic". I'm suspecting it from pages such as https://ncatlab.org/nlab/show/synthetic+topology |
2021-12-20 23:19:27 +0100 | <EvanR> | @let (.:) = (.) . (.) |
2021-12-20 23:19:27 +0100 | <lambdabot> | <command line>: does not exist: .L.hs |
2021-12-20 23:19:49 +0100 | <geekosaur> | o.O |
2021-12-20 23:19:52 +0100 | <monochrom> | But yeah lately lambdabot has a problem with that. |
2021-12-20 23:20:28 +0100 | <pfurla-matrix> | euouae: I think this is the correct definition https://ncatlab.org/nlab/show/synthetic+mathematics, but thanks |
2021-12-20 23:21:18 +0100 | <Inst_> | what is a function composition anyways? |
2021-12-20 23:21:22 +0100 | <Inst_> | maybe I don't get the meaning of . |
2021-12-20 23:21:27 +0100 | <euouae> | pfurla-matrix hmm yeah I think you got it |
2021-12-20 23:21:48 +0100 | <geekosaur> | (f . g) x is just a short way of saying f (g x) |
2021-12-20 23:21:51 +0100 | <monochrom> | f . g = \x -> f (g x) |
2021-12-20 23:22:01 +0100 | <pfurla-matrix> | :t (.) |
2021-12-20 23:22:02 +0100 | <lambdabot> | (b -> c) -> (a -> b) -> a -> c |
2021-12-20 23:22:20 +0100 | <euouae> | pfurla-matrix I've read the P. Wadler paper "Propositions as Types" and I would not call it "synthetic", more of an exposition. |
2021-12-20 23:22:22 +0100 | <Inst_> | wait, is the problem with . that (b -> c) -> (a -> B)? |
2021-12-20 23:22:29 +0100 | <Inst_> | erm, (a -> b)? |
2021-12-20 23:22:34 +0100 | <monochrom> | Soon, you will understand why I follow Dijkstra in saying "a formula is worth a thousand pictures" (so a million words). |
2021-12-20 23:23:14 +0100 | <Inst_> | since fmap is (a->b) -> a -> b iirc |
2021-12-20 23:23:21 +0100 | <pfurla-matrix> | euouae: I agree |
2021-12-20 23:23:35 +0100 | kaph | (~kaph@net-2-47-236-216.cust.vodafonedsl.it) (Read error: Connection reset by peer) |
2021-12-20 23:23:41 +0100 | <pfurla-matrix> | fmap :: (a -> b) -> m a -> m b |
2021-12-20 23:23:46 +0100 | <monochrom> | (a->b) -> M a -> M b, whichever monad you use for M. |
2021-12-20 23:23:46 +0100 | yushyin | (3RNeQpThcJ@karif.server-speed.net) (Quit: WeeChat 3.3) |
2021-12-20 23:23:48 +0100 | <Inst_> | erm, f a f b |
2021-12-20 23:23:55 +0100 | yushyin | (C2iSDogdK9@karif.server-speed.net) |
2021-12-20 23:24:35 +0100 | <Inst_> | so . fails in join . fmap because fmap doesn't match the type requirements of .? |
2021-12-20 23:24:48 +0100 | <pfurla-matrix> | how many words is a type worth? :) |
2021-12-20 23:25:07 +0100 | <monochrom> | Type signatures are formulas, too. |
2021-12-20 23:25:52 +0100 | <Inst_> | :t . |
2021-12-20 23:25:53 +0100 | <lambdabot> | error: parse error on input ‘.’ |
2021-12-20 23:25:54 +0100 | <pfurla-matrix> | yeah |
2021-12-20 23:25:59 +0100 | <Inst_> | :t (.) |
2021-12-20 23:26:00 +0100 | <lambdabot> | (b -> c) -> (a -> b) -> a -> c |
2021-12-20 23:26:04 +0100 | <Inst_> | :t (.)(.) |
2021-12-20 23:26:05 +0100 | <lambdabot> | (a1 -> b -> c) -> a1 -> (a2 -> b) -> a2 -> c |
2021-12-20 23:26:20 +0100 | kaph | (~kaph@net-2-47-236-216.cust.vodafonedsl.it) |
2021-12-20 23:26:20 +0100 | <pfurla-matrix> | it needs a section |
2021-12-20 23:26:23 +0100 | <pfurla-matrix> | :t (.) |
2021-12-20 23:26:24 +0100 | <lambdabot> | (b -> c) -> (a -> b) -> a -> c |
2021-12-20 23:26:25 +0100 | <Inst_> | :t (..) |
2021-12-20 23:26:26 +0100 | <lambdabot> | error: parse error on input ‘..’ |
2021-12-20 23:26:42 +0100 | <hpc> | ".." is part of import syntax and list ranges |
2021-12-20 23:26:57 +0100 | <Inst_> | (.)(.) join fmap |
2021-12-20 23:27:15 +0100 | <EvanR> | :t ((.) . (.)) join fmap |
2021-12-20 23:27:20 +0100 | cjb | (~cjb@user/cjb) (Quit: rcirc on GNU Emacs 29.0.50) |
2021-12-20 23:27:23 +0100 | <pfurla-matrix> | sections are when you don't give all the arguments to an operator and it the compiler needs to be aware it's missing arguments |
2021-12-20 23:27:32 +0100 | hueso | (~root@user/hueso) (Ping timeout: 240 seconds) |
2021-12-20 23:27:35 +0100 | <EvanR> | surely all is clear now |
2021-12-20 23:27:37 +0100 | <pfurla-matrix> | so we right (+) or (+1) |
2021-12-20 23:27:50 +0100 | <Inst_> | :t (>>=) |
2021-12-20 23:27:51 +0100 | <lambdabot> | Monad m => m a -> (a -> m b) -> m b |
2021-12-20 23:28:09 +0100 | <pfurla-matrix> | *write (f phonetics) |
2021-12-20 23:28:30 +0100 | <hpc> | fonetics |
2021-12-20 23:28:35 +0100 | <monochrom> | I think "((.) . (.))" can be further "improved" to "((.) (.) (.))" |
2021-12-20 23:28:47 +0100 | <Inst_> | you know this is a boobies joke, right? |
2021-12-20 23:28:51 +0100 | <pfurla-matrix> | hpc: exactly |
2021-12-20 23:28:52 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
2021-12-20 23:29:02 +0100 | <monochrom> | In fact, using the covariant homset functor, "(fmap fmap fmap)" |
2021-12-20 23:29:09 +0100 | <EvanR> | ((.) (.) (.)) would have to be the total recall boobies joke |
2021-12-20 23:29:10 +0100 | cjb | (~cjb@user/cjb) |
2021-12-20 23:29:19 +0100 | <monochrom> | heh |
2021-12-20 23:29:51 +0100 | <Inst_> | :t join (.).(.) fmap |
2021-12-20 23:29:52 +0100 | <pfurla-matrix> | EvenR: I see you are familiar on the ways of 80s references |
2021-12-20 23:29:52 +0100 | <lambdabot> | Functor f => ((f a -> f b) -> a -> b) -> (f a -> f b) -> f a -> f b |
2021-12-20 23:30:02 +0100 | <Inst_> | heh |
2021-12-20 23:30:13 +0100 | <Inst_> | in this channel, we are trying to turn monads into a mammary gland joke |
2021-12-20 23:30:19 +0100 | <EvanR> | not usually |
2021-12-20 23:30:26 +0100 | <monochrom> | @type fmap fmap fmap join fmap |
2021-12-20 23:30:27 +0100 | <lambdabot> | Monad m => (a1 -> m a2) -> m a1 -> m a2 |
2021-12-20 23:30:31 +0100 | hueso | (~root@user/hueso) |
2021-12-20 23:30:32 +0100 | <monochrom> | \∩/ |
2021-12-20 23:30:47 +0100 | <EvanR> | my god it's full of fmaps |
2021-12-20 23:30:58 +0100 | <mrianbloom> | What is the right way to enable LinearTypes in package.yaml? |
2021-12-20 23:31:11 +0100 | <Inst_> | :t join (.)(.) fmap |
2021-12-20 23:31:12 +0100 | <lambdabot> | error: |
2021-12-20 23:31:12 +0100 | <lambdabot> | • Occurs check: cannot construct the infinite type: a ~ f a |
2021-12-20 23:31:12 +0100 | <lambdabot> | Expected type: ((b -> f b) -> (f a -> b) -> f a -> f b) |
2021-12-20 23:31:28 +0100 | <Inst_> | :t join . fmap |
2021-12-20 23:31:29 +0100 | <lambdabot> | error: |
2021-12-20 23:31:29 +0100 | <lambdabot> | • Occurs check: cannot construct the infinite type: m ~ (->) (m a) |
2021-12-20 23:31:29 +0100 | <lambdabot> | Expected type: (a -> a1) -> m (m a1) |
2021-12-20 23:31:41 +0100 | <monochrom> | OK I'm done. |
2021-12-20 23:31:44 +0100 | <Inst_> | yeah, sorry |
2021-12-20 23:31:50 +0100 | <Inst_> | i'll scoot, just need to repair my thinkpad again |
2021-12-20 23:31:55 +0100 | notzmv | (~zmv@user/notzmv) |
2021-12-20 23:31:57 +0100 | <Inst_> | need to send it back to servicing, f- lolnovo |
2021-12-20 23:33:34 +0100 | <janus> | mrianbloom: you put it in default-extensions? |
2021-12-20 23:34:02 +0100 | <mrianbloom> | Ah, default-extensions? I'll try that. |
2021-12-20 23:35:36 +0100 | <dmj`> | c_wraith: purescript has an interesting way of getting around this ambiguity using %partial in happy, https://github.com/natefaubion/purescript-cst/blob/master/src/Language/PureScript/CST/Parser.y#L44… |
2021-12-20 23:36:12 +0100 | <pfurla-matrix> | :t join (+) |
2021-12-20 23:36:14 +0100 | <lambdabot> | Num a => a -> a |
2021-12-20 23:36:57 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 276 seconds) |
2021-12-20 23:37:05 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:d0f9:15ce:3995:401b) |
2021-12-20 23:38:22 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-12-20 23:38:40 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3) |
2021-12-20 23:42:35 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:d0f9:15ce:3995:401b) (Ping timeout: 252 seconds) |
2021-12-20 23:43:53 +0100 | HurdyGurdyBurdy | (~HurdyGurd@user/hurdygurdyburdy) (server died; rip) |
2021-12-20 23:45:11 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2021-12-20 23:45:45 +0100 | <janus> | why can't i coerce Int32 -> Int ? does GHC support platforms where Int is smaller than 32 bits? |
2021-12-20 23:46:22 +0100 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) |
2021-12-20 23:47:04 +0100 | <geekosaur> | it can'tper the Report (minimum size of Int is 30 bits) |
2021-12-20 23:47:28 +0100 | ddb | (~ddb@ipv6two.tilde.club) |
2021-12-20 23:47:45 +0100 | <geekosaur> | how are you trying to coerce it? |
2021-12-20 23:48:07 +0100 | <janus> | with Data.Coerce.coerce. but i will just use fromIntegral then, i guess |
2021-12-20 23:48:22 +0100 | <geekosaur> | oh. that does not work ith basic types, only with newtypes |
2021-12-20 23:48:42 +0100 | <geekosaur> | it wraps and unwraps newtypes only |
2021-12-20 23:49:16 +0100 | <janus> | but i thought Int32 and Int were actually newtypes that wrapped some type with a hash sign in it |
2021-12-20 23:49:24 +0100 | <monochrom> | Ah right, "data Int32 = ..." |
2021-12-20 23:49:30 +0100 | <monochrom> | similarly for Int |
2021-12-20 23:49:38 +0100 | <janus> | @src Int |
2021-12-20 23:49:38 +0100 | <lambdabot> | data Int = I# Int# |
2021-12-20 23:49:59 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-12-20 23:50:04 +0100 | <monochrom> | Int and Int32 have to support laziness. Can't be Int# directly. |
2021-12-20 23:50:19 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-12-20 23:54:04 +0100 | <janus> | it's interesting that there is coerce and fromIntegral. but what if i want to convert but without betraying the sign of the input? what is the function for that? |
2021-12-20 23:54:11 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:d0f9:15ce:3995:401b) |
2021-12-20 23:54:47 +0100 | <geekosaur> | I don't understand "betraying the sign", but I think there is a package for that |
2021-12-20 23:55:48 +0100 | <janus> | geekosaur: i mean, if you convert 256 to an Int8, it becomes negative, right? that is what i mean about betraying the sign |
2021-12-20 23:57:04 +0100 | <janus> | % :m +GHC.Int |
2021-12-20 23:57:04 +0100 | <yahb> | janus: |
2021-12-20 23:57:17 +0100 | <janus> | % 0xf0000000 :: Int32 |
2021-12-20 23:57:17 +0100 | <yahb> | janus: ; <interactive>:216:1: warning: [-Woverflowed-literals] Literal 4026531840 is out of the Int32 range -2147483648..2147483647; -268435456 |
2021-12-20 23:57:44 +0100 | <janus> | % fromIntegral 0xf0000000 :: Int32 |
2021-12-20 23:57:44 +0100 | <yahb> | janus: -268435456 |
2021-12-20 23:57:47 +0100 | <EvanR> | in quickcheck's Arbitrary instance for Float, it doesn't seem to ever generate very small values or very large, just "normal" and zero? |
2021-12-20 23:58:24 +0100 | <geekosaur> | https://hackage.haskell.org/package/conversions-0.0.4/docs/Data-Conversions.html#v:checkedFromInte… |
2021-12-20 23:58:32 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:d0f9:15ce:3995:401b) (Ping timeout: 240 seconds) |
2021-12-20 23:59:01 +0100 | <janus> | oooh very cool |
2021-12-20 23:59:09 +0100 | <janus> | suspicious how it has no docs |
2021-12-20 23:59:13 +0100 | <janus> | but i guess it documents itself |