2022-02-10 00:01:14 +0100 | zincy | (~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Ping timeout: 256 seconds) |
2022-02-10 00:02:07 +0100 | ober_ | (~ober@c-73-68-74-41.hsd1.ma.comcast.net) (Ping timeout: 256 seconds) |
2022-02-10 00:04:27 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:511a:5eb2:c96:106b) |
2022-02-10 00:06:21 +0100 | foul_owl | (~kerry@71.212.148.11) (Ping timeout: 250 seconds) |
2022-02-10 00:06:35 +0100 | zeenk | (~zeenk@2a02:2f04:a30d:1300:51a3:bcfc:6cda:9fc5) (Quit: Konversation terminated!) |
2022-02-10 00:08:57 +0100 | Pickchea | (~private@user/pickchea) (Ping timeout: 240 seconds) |
2022-02-10 00:13:36 +0100 | slim | (uid300876@id-300876.lymington.irccloud.com) |
2022-02-10 00:13:37 +0100 | lechner | (~lechner@debian/lechner) (Ping timeout: 240 seconds) |
2022-02-10 00:14:46 +0100 | domcornloan | (~mike@user/feetwind) (Quit: WeeChat 3.1) |
2022-02-10 00:14:50 +0100 | deadmarshal | (~deadmarsh@95.38.117.25) (Ping timeout: 256 seconds) |
2022-02-10 00:15:09 +0100 | feetwind | (~mike@user/feetwind) |
2022-02-10 00:22:05 +0100 | foul_owl | (~kerry@94.140.8.52) |
2022-02-10 00:23:57 +0100 | lottaquestions | (~nick@2607:fa49:5041:a200:4100:dd4:ee5e:72a7) (Ping timeout: 240 seconds) |
2022-02-10 00:24:57 +0100 | mvk | (~mvk@2607:fea8:5cdc:bf00::5483) (Ping timeout: 240 seconds) |
2022-02-10 00:25:04 +0100 | paddymahoney | (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) |
2022-02-10 00:25:20 +0100 | alMalsamo | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-02-10 00:25:24 +0100 | mvk | (~mvk@2607:fea8:5cdc:bf00::5483) |
2022-02-10 00:32:39 +0100 | ardell | (~ardell@user/ardell) (Quit: Konversation terminated!) |
2022-02-10 00:38:43 +0100 | ober__ | (~ober@c-73-68-74-41.hsd1.ma.comcast.net) (Quit: Leaving) |
2022-02-10 00:40:09 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:511a:5eb2:c96:106b) (Ping timeout: 250 seconds) |
2022-02-10 00:43:49 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:511a:5eb2:c96:106b) |
2022-02-10 00:47:57 +0100 | alp | (~alp@user/alp) (Ping timeout: 250 seconds) |
2022-02-10 00:48:21 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:511a:5eb2:c96:106b) (Ping timeout: 256 seconds) |
2022-02-10 00:49:17 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:511a:5eb2:c96:106b) |
2022-02-10 00:50:04 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2022-02-10 00:50:21 +0100 | little_mac | (~little_ma@2601:410:4300:3ce0:89bd:bcbb:df15:8e9a) |
2022-02-10 00:52:04 +0100 | Shiranai | (~Shiranai@190.237.13.188) |
2022-02-10 00:52:40 +0100 | lechner | (~lechner@debian/lechner) |
2022-02-10 00:53:22 +0100 | <Shiranai> | hello, any natural ways to make an `m [m a]` into an `[m a]`? Here `m` is a monad but I could strengthen that assumption if needed |
2022-02-10 00:53:38 +0100 | <dminuoso> | Shiranai: What would you expect that to do? |
2022-02-10 00:53:54 +0100 | <dminuoso> | And no, in general that transformation is impossible |
2022-02-10 00:53:57 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:511a:5eb2:c96:106b) (Ping timeout: 240 seconds) |
2022-02-10 00:54:14 +0100 | <dminuoso> | Well what you can do is |
2022-02-10 00:54:19 +0100 | <dminuoso> | % :t sequence |
2022-02-10 00:54:20 +0100 | <yahb> | dminuoso: (Traversable t, Monad m) => t (m a) -> m (t a) |
2022-02-10 00:54:25 +0100 | <dminuoso> | % :t join |
2022-02-10 00:54:26 +0100 | <yahb> | dminuoso: Monad m => m (m a) -> m a |
2022-02-10 00:54:36 +0100 | <dminuoso> | % :t join . sequence |
2022-02-10 00:54:36 +0100 | <yahb> | dminuoso: (Monad m, Traversable m) => m (m a) -> m a |
2022-02-10 00:54:59 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:511a:5eb2:c96:106b) |
2022-02-10 00:55:07 +0100 | <dminuoso> | % :t join . fmap sequence |
2022-02-10 00:55:08 +0100 | <yahb> | dminuoso: (Monad m, Traversable t) => m (t (m a)) -> m (t a) |
2022-02-10 00:55:20 +0100 | <dminuoso> | Shiranai: Whether that does what you want it to do, Im not sure. |
2022-02-10 00:55:29 +0100 | <shapr> | :t join |
2022-02-10 00:55:30 +0100 | <lambdabot> | Monad m => m (m a) -> m a |
2022-02-10 00:55:32 +0100 | <dminuoso> | So let me revoke my previous statement abuot "this is impossible" |
2022-02-10 00:55:47 +0100 | <EvanR> | I can't wait to hear what Shiranai's operation is supposed to do xD |
2022-02-10 00:56:27 +0100 | <EvanR> | so we bifurcate between coming up with a solution and clearing up misconceptions about monads |
2022-02-10 00:56:49 +0100 | <EvanR> | or something else |
2022-02-10 00:57:08 +0100 | <Shiranai> | sorry for disappointing you guys but I have no idea what that's supposed to do haha, I'm solving some exercises and that signature came up |
2022-02-10 00:57:15 +0100 | <EvanR> | oof |
2022-02-10 00:57:21 +0100 | shapr | is sad |
2022-02-10 00:57:32 +0100 | <monochrom> | That can be a very XYZABC problem. |
2022-02-10 00:58:16 +0100 | <Shiranai> | I was implementing monad for `data ListT m a = ConsT (m a) (ListT m a) | NilT` (I'm aware this is not the standard definition) |
2022-02-10 00:59:26 +0100 | <Shiranai> | also thanks, dminuoso, that's probably what I needed |
2022-02-10 00:59:56 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:511a:5eb2:c96:106b) (Ping timeout: 245 seconds) |
2022-02-10 01:00:35 +0100 | <awpr> | I don't think that can be a Monad. that has the whole list structure outside of `m`, and there's no way to figure out ahead of time what that list structure should be for the result of a `>>=` |
2022-02-10 01:01:19 +0100 | <dminuoso> | If that's what you really want, I think you should have used a `traverse` before. |
2022-02-10 01:04:26 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) |
2022-02-10 01:09:53 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 256 seconds) |
2022-02-10 01:12:43 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:511a:5eb2:c96:106b) |
2022-02-10 01:13:02 +0100 | cheater | (~Username@user/cheater) |
2022-02-10 01:13:07 +0100 | wombat875 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) |
2022-02-10 01:16:05 +0100 | k8yun | (~k8yun@user/k8yun) |
2022-02-10 01:16:50 +0100 | xkuru | (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
2022-02-10 01:16:59 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:511a:5eb2:c96:106b) (Ping timeout: 250 seconds) |
2022-02-10 01:19:02 +0100 | <lyxia> | aka the list non-monad-transformer |
2022-02-10 01:22:35 +0100 | `2jt | (~jtomas@130.red-88-22-46.staticip.rima-tde.net) (Ping timeout: 256 seconds) |
2022-02-10 01:28:37 +0100 | <monochrom> | Decepticon :) |
2022-02-10 01:29:15 +0100 | jao | (~jao@static-68-235-44-24.cust.tzulo.com) (Remote host closed the connection) |
2022-02-10 01:31:45 +0100 | jao | (~jao@static-68-235-44-24.cust.tzulo.com) |
2022-02-10 01:33:17 +0100 | CiaoSen | (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-02-10 01:34:23 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-02-10 01:34:23 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-02-10 01:34:23 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-02-10 01:39:36 +0100 | capo_greco | (~textual@60-241-161-167.static.tpgi.com.au) |
2022-02-10 01:40:20 +0100 | <capo_greco> | hi Haskell community! |
2022-02-10 01:40:37 +0100 | <capo_greco> | I have a beginner question |
2022-02-10 01:40:39 +0100 | vicfred | (~vicfred@user/vicfred) (Quit: Leaving) |
2022-02-10 01:41:34 +0100 | <geekosaur> | ask, please |
2022-02-10 01:41:56 +0100 | <capo_greco> | I have GHC installed here on a 2020 M1 MacBook Pro running macOS Monteray |
2022-02-10 01:42:17 +0100 | <capo_greco> | however, when trying to run `stack build` |
2022-02-10 01:42:37 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 240 seconds) |
2022-02-10 01:42:39 +0100 | <capo_greco> | stack simply returns `I don't know how to install GHC for (OSX,AArch64), please install manually` |
2022-02-10 01:43:03 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
2022-02-10 01:43:37 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:adf2:7fd4:5ba2:8512) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-02-10 01:43:43 +0100 | <capo_greco> | I have the `config.yaml` open |
2022-02-10 01:44:22 +0100 | <capo_greco> | but I am not sure how to link the system version of ghc (which works) |
2022-02-10 01:44:31 +0100 | <capo_greco> | or if that is what I should be trying to do |
2022-02-10 01:44:45 +0100 | <geekosaur> | you have to passstack --system-ghc, iirc |
2022-02-10 01:45:05 +0100 | <geekosaur> | I don't know ifthere's a way to configure that as default in config.yaml |
2022-02-10 01:45:30 +0100 | <capo_greco> | I already tried using this flag - gives the same result unfortunately |
2022-02-10 01:46:39 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:511a:5eb2:c96:106b) |
2022-02-10 01:46:59 +0100 | <geekosaur> | it shouldn't be trying to install ghc in that case, hm |
2022-02-10 01:47:59 +0100 | <capo_greco> | I'm using this syntax: `stack build --system-ghc` |
2022-02-10 01:48:10 +0100 | <geekosaur> | looks like config.yaml entry is "system-ghc: true" |
2022-02-10 01:48:40 +0100 | <geekosaur> | I'm not a stack user so I can't provide much more help, I'm afraid |
2022-02-10 01:49:13 +0100 | cynomys | (~cynomys@user/cynomys) (Ping timeout: 256 seconds) |
2022-02-10 01:49:21 +0100 | <capo_greco> | allgood - thank you geekosaur |
2022-02-10 01:51:01 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 240 seconds) |
2022-02-10 01:51:07 +0100 | chenqisu1 | (~chenqisu1@183.217.200.249) |
2022-02-10 01:51:37 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:511a:5eb2:c96:106b) (Ping timeout: 240 seconds) |
2022-02-10 01:52:00 +0100 | <capo_greco> | ok! so setting `skip-ghc-check: true` in the config.yaml got it to compile something |
2022-02-10 01:53:03 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2022-02-10 01:53:21 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) |
2022-02-10 01:55:58 +0100 | cynomys | (~cynomys@user/cynomys) |
2022-02-10 01:57:29 +0100 | jgeerds | (~jgeerds@55d4a547.access.ecotel.net) (Ping timeout: 256 seconds) |
2022-02-10 01:59:25 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:511a:5eb2:c96:106b) |
2022-02-10 02:03:39 +0100 | vicfred | (~vicfred@user/vicfred) |
2022-02-10 02:08:19 +0100 | <EvanR> | is the main thread a bound thread |
2022-02-10 02:08:47 +0100 | <monochrom> | Yes. |
2022-02-10 02:09:08 +0100 | <EvanR> | funky |
2022-02-10 02:09:37 +0100 | dsrt^ | (~dsrt@128-092-160-106.biz.spectrum.com) (Remote host closed the connection) |
2022-02-10 02:12:08 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
2022-02-10 02:15:22 +0100 | aplainze1akind | (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
2022-02-10 02:15:32 +0100 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) |
2022-02-10 02:16:13 +0100 | denbrahe | (~denbrahe@2001:470:69fc:105::19c0) (Ping timeout: 240 seconds) |
2022-02-10 02:16:13 +0100 | siraben | (~siraben@user/siraben) (Ping timeout: 240 seconds) |
2022-02-10 02:16:37 +0100 | jao | (~jao@static-68-235-44-24.cust.tzulo.com) (Remote host closed the connection) |
2022-02-10 02:16:41 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 02:17:27 +0100 | denbrahe | (~denbrahe@2001:470:69fc:105::19c0) |
2022-02-10 02:18:15 +0100 | siraben | (~siraben@user/siraben) |
2022-02-10 02:18:54 +0100 | <Axman6> | EvanR: you might even say, kinky |
2022-02-10 02:19:25 +0100 | <EvanR> | 🤦 |
2022-02-10 02:19:28 +0100 | <Inst[m]> | i'm surprised more people don't make jokes based on the fact that Haskell do notation relies on binds |
2022-02-10 02:20:59 +0100 | <jackdk> | I am glad they don't |
2022-02-10 02:22:21 +0100 | infinity0 | (~infinity0@occupy.ecodis.net) (Remote host closed the connection) |
2022-02-10 02:23:16 +0100 | infinity0 | (~infinity0@occupy.ecodis.net) |
2022-02-10 02:34:33 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 256 seconds) |
2022-02-10 02:35:06 +0100 | jao | (~jao@static-68-235-44-24.cust.tzulo.com) |
2022-02-10 02:37:15 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) (Ping timeout: 276 seconds) |
2022-02-10 02:42:25 +0100 | <geekosaur> | and discipline |
2022-02-10 02:43:37 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 240 seconds) |
2022-02-10 02:43:56 +0100 | capo_greco | (~textual@60-241-161-167.static.tpgi.com.au) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-02-10 02:44:06 +0100 | EvanR | (~EvanR@user/evanr) (Quit: Leaving) |
2022-02-10 02:44:39 +0100 | <sshine> | and monads |
2022-02-10 02:46:40 +0100 | <sshine> | there's a DNS server called Unbound that is an alternative to BIND. |
2022-02-10 02:47:31 +0100 | jao | (~jao@static-68-235-44-24.cust.tzulo.com) (Remote host closed the connection) |
2022-02-10 02:47:44 +0100 | EvanR | (~EvanR@user/evanr) |
2022-02-10 02:48:35 +0100 | capo_greco | (~textual@60-241-161-167.static.tpgi.com.au) |
2022-02-10 02:49:05 +0100 | jinsun | (~quassel@user/jinsun) (Read error: Connection reset by peer) |
2022-02-10 02:49:23 +0100 | <EvanR> | that was annoying. After a bunch of refactoring, glfw began to return NULL when creating a window, no other error message. Revert the code, same behavior. Go back to previous commits known to work, same behavior. Reboot the computer, it agrees to create windows again |
2022-02-10 02:49:36 +0100 | <EvanR> | cosmic ray hit a linker cache or something |
2022-02-10 02:51:06 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 02:51:19 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 02:53:34 +0100 | <monochrom> | https://ro-che.info/ccc/1 |
2022-02-10 02:54:57 +0100 | <jackdk> | what is the best sha1 lib in common use? |
2022-02-10 02:56:33 +0100 | <Unicorn_Princess> | how soon do you figure ghc will switch to https://github.com/Kindelia/HVM and do away with GC pauses forever? |
2022-02-10 02:56:40 +0100 | <sshine> | jackdk, cryptohash-sha1? |
2022-02-10 02:56:47 +0100 | <EvanR> | ... |
2022-02-10 02:56:53 +0100 | <Unicorn_Princess> | or do i overestimate how magical HVM is |
2022-02-10 02:56:56 +0100 | <Axman6> | Unicorn_Princess: never? |
2022-02-10 02:57:02 +0100 | <Unicorn_Princess> | ; ; |
2022-02-10 02:57:03 +0100 | <Axman6> | yes, very much so, you need to read the author's comments |
2022-02-10 02:57:22 +0100 | vysn | (~vysn@user/vysn) |
2022-02-10 02:57:23 +0100 | <jackdk> | sshine: that may be best option. wasn't sure if it was well-maintained |
2022-02-10 02:57:33 +0100 | <Unicorn_Princess> | Axman6, which comments? |
2022-02-10 02:57:36 +0100 | <Axman6> | it can only handle pure code basically, all the primops would need to be implemented and handled correctly - and concurrencvy changes things a lot |
2022-02-10 02:57:45 +0100 | <Axman6> | on Reddit, lobste.rs etc. |
2022-02-10 02:57:47 +0100 | sektor|3 | (~kvirc@94.155.193.66) (Ping timeout: 256 seconds) |
2022-02-10 02:57:50 +0100 | <sshine> | jackdk, Uploaded by phadej at 2021-11-13 -- I'd say it is. |
2022-02-10 02:57:54 +0100 | <Unicorn_Princess> | awww |
2022-02-10 02:58:03 +0100 | Inst | (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) |
2022-02-10 02:58:13 +0100 | <Inst> | @monochrom your comic is bad and you should feel bad |
2022-02-10 02:58:13 +0100 | <lambdabot> | Unknown command, try @list |
2022-02-10 02:58:29 +0100 | <jackdk> | sshine: tyvm |
2022-02-10 02:58:42 +0100 | <Axman6> | jackdk: #haskell-cryptography might have some more advice - the libsodium library that's being written at the moment will include SHA1 |
2022-02-10 02:59:06 +0100 | <Axman6> | Personally I would use cryptonite, because I'm quite used to it |
2022-02-10 02:59:15 +0100 | <jackdk> | Axman6: I need to make a decision today-ish, because a kind soul is PRing AWS SSO support into amazonka |
2022-02-10 02:59:32 +0100 | Shiranai | (~Shiranai@190.237.13.188) (Quit: Connection closed) |
2022-02-10 02:59:36 +0100 | <jackdk> | cryptonite is inside the event horizon of the foundation/basement black hole |
2022-02-10 03:00:08 +0100 | <Axman6> | ah yes, ignore that then |
2022-02-10 03:02:25 +0100 | <Axman6> | I've asked in the other channel for you, just in case there is a better suggestion |
2022-02-10 03:03:40 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:30cc:b923:a3cb:c39c) (Remote host closed the connection) |
2022-02-10 03:05:02 +0100 | vicfred | (~vicfred@user/vicfred) (Quit: Leaving) |
2022-02-10 03:08:33 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:08:42 +0100 | <jackdk> | appreciate it |
2022-02-10 03:08:47 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:08:55 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:09:09 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:09:17 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:09:31 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:09:38 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:09:53 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:09:59 +0100 | k8yun_ | (~k8yun@user/k8yun) |
2022-02-10 03:10:00 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:10:13 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:10:21 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:10:36 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:10:43 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:10:57 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:11:04 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:11:18 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:11:26 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:11:37 +0100 | k8yun_ | (~k8yun@user/k8yun) (Remote host closed the connection) |
2022-02-10 03:11:40 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:11:47 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:12:01 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:12:09 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:12:23 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:12:28 +0100 | <monochrom> | I have this wild conjecture that if there is channel traffic, lavaman's connection is stable. |
2022-02-10 03:12:30 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:12:45 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:12:53 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:12:54 +0100 | <Inst> | conjecture disproven |
2022-02-10 03:12:57 +0100 | califax- | (~califax@user/califx) |
2022-02-10 03:13:07 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:13:11 +0100 | <EvanR> | coincidentally the colors for lavaman leaving and joining are orange and yellow |
2022-02-10 03:13:14 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:13:20 +0100 | <EvanR> | for me |
2022-02-10 03:13:23 +0100 | <Inst> | ah, a fellow hexchat / xchat user |
2022-02-10 03:13:28 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:13:36 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:13:39 +0100 | k8yun | (~k8yun@user/k8yun) (Ping timeout: 256 seconds) |
2022-02-10 03:13:50 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:13:57 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:14:06 +0100 | <EvanR> | someone call liquid nitrogen man |
2022-02-10 03:14:11 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:14:16 +0100 | <monochrom> | haha |
2022-02-10 03:14:19 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:14:27 +0100 | capo_greco | (~textual@60-241-161-167.static.tpgi.com.au) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-02-10 03:14:33 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:14:40 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:14:54 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:15:02 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:15:15 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:15:23 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:15:37 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:15:45 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:16:00 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:16:07 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:16:10 +0100 | fjmorazan | (~quassel@user/fjmorazan) (Quit: fjmorazan) |
2022-02-10 03:16:19 +0100 | <Inst> | tbh i wonder if lava's system is on mobile |
2022-02-10 03:16:21 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:16:28 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:16:41 +0100 | fjmorazan | (~quassel@user/fjmorazan) |
2022-02-10 03:16:42 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:16:50 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:17:00 +0100 | <Axman6> | all the glirc gang sees is "lavaman+x" |
2022-02-10 03:17:04 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:17:11 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:17:16 +0100 | <Axman6> | but with more colours |
2022-02-10 03:17:25 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:17:31 +0100 | <Inst> | axman6: you have ops, right? |
2022-02-10 03:17:33 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:17:33 +0100 | califax | (~califax@user/califx) (Ping timeout: 276 seconds) |
2022-02-10 03:17:34 +0100 | califax- | califax |
2022-02-10 03:17:35 +0100 | jao | (~jao@static-68-235-44-24.cust.tzulo.com) |
2022-02-10 03:17:48 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:17:48 +0100 | <Axman6> | I had ops once, for unknown reasons |
2022-02-10 03:17:55 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:17:59 +0100 | <Inst> | well, it doesn't matter, the first thing you'd do is to ban me |
2022-02-10 03:18:08 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:18:16 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:18:31 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:18:38 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:18:53 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:19:00 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:19:15 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:19:22 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:19:40 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:19:47 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:20:00 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:20:04 +0100 | <Axman6> | purpletest |
2022-02-10 03:20:06 +0100 | <Axman6> | hmm |
2022-02-10 03:20:08 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:20:15 +0100 | <Axman6> | @where ops |
2022-02-10 03:20:16 +0100 | <lambdabot> | byorgey Cale conal copumpkin dcoutts dibblego dolio edwardk geekosaur glguy jmcarthur johnw mniip monochrom quicksilver shachaf shapr ski |
2022-02-10 03:20:23 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:20:26 +0100 | <Axman6> | RE: lavaman |
2022-02-10 03:20:30 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:20:43 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:20:49 +0100 | ChanServ | +o monochrom |
2022-02-10 03:20:51 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:21:05 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 03:21:08 +0100 | monochrom | +b *!*@98.38.249.169 |
2022-02-10 03:21:12 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 03:21:45 +0100 | <Inst> | thanks |
2022-02-10 03:22:10 +0100 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2022-02-10 03:22:43 +0100 | jiribenes | (~jiribenes@rosa.jiribenes.com) (Remote host closed the connection) |
2022-02-10 03:24:15 +0100 | <monochrom> | Axman6: It is possible that if you say "/msg chanserv op #haskell" you will be op again. |
2022-02-10 03:24:43 +0100 | ryanbooker | (uid4340@id-4340.hampstead.irccloud.com) |
2022-02-10 03:24:47 +0100 | <monochrom> | But normally we de-op ourselves when there is nothing. |
2022-02-10 03:24:48 +0100 | <Axman6> | "ChanServ: You are not authorized to perform this operation." and probably rightfully so =) |
2022-02-10 03:24:53 +0100 | monochrom | -o monochrom |
2022-02-10 03:24:58 +0100 | <monochrom> | Hrm OK |
2022-02-10 03:26:02 +0100 | desklamp[m] | (~desklampm@2001:470:69fc:105::77b8) |
2022-02-10 03:28:38 +0100 | ChanServ | +o Axman6 |
2022-02-10 03:29:44 +0100 | ChanServ | +o monochrom |
2022-02-10 03:31:11 +0100 | monochrom | -b+b-o *!*@98.38.249.169 *!*@98.38.249.169$##fix-your-connection monochrom |
2022-02-10 03:31:20 +0100 | k8yun | (~k8yun@user/k8yun) |
2022-02-10 03:32:55 +0100 | <Inst> | can i troll for 5 minutes? |
2022-02-10 03:33:30 +0100 | <Inst> | what's the difference between an expression-based and a statement-based language? |
2022-02-10 03:33:35 +0100 | <Inst> | and is one more "advanced" than the other? |
2022-02-10 03:37:49 +0100 | <Inst> | i'm going over K&R right now and wondering if anyone ever tried to write a "Haskell: The Programming Language" book |
2022-02-10 03:38:37 +0100 | <Axman6> | Oh my |
2022-02-10 03:39:36 +0100 | <Axman6> | Inst: my very naive understanding is that expressions can freely be substituted, while statements have side effects, so you can't just substitute things willi-nilly |
2022-02-10 03:39:55 +0100 | <Inst> | but an IO action can be an expression |
2022-02-10 03:40:00 +0100 | <ephemient> | expressions in C have side effects too |
2022-02-10 03:40:18 +0100 | <Inst> | and yeah, statement-based languages also have expressions |
2022-02-10 03:41:14 +0100 | <ephemient> | honestly I think it's a pretty pointless distinction: a "statement" can be treated as an "expression" with a unitary type |
2022-02-10 03:41:39 +0100 | <Axman6> | IO actions are pure and can be freely sumstituted - foo (someIO x) (someIO x) will be the same as let y = someIO x in foo y y |
2022-02-10 03:41:41 +0100 | <ephemient> | I mean, not exactly, in C's grammer, but in GCC ({ }) can wrap any statement into an expression, so… |
2022-02-10 03:41:56 +0100 | <sm> | to me "statement" implies an evaluation order (sequential), while "expression" doesn't |
2022-02-10 03:42:24 +0100 | <Inst> | i guess, i was supposed to have a unit where you had a simple hello world + (with getLine) program in do notation |
2022-02-10 03:42:32 +0100 | <Inst> | then unveil it into the underlying binds |
2022-02-10 03:42:38 +0100 | <Inst> | one of the questions asked is: why is this necessary? |
2022-02-10 03:42:45 +0100 | <Inst> | the provision answer I had was that Haskell is an expression-based language |
2022-02-10 03:42:52 +0100 | anon12176673 | (~anon12176@host-92-19-99-147.as13285.net) |
2022-02-10 03:43:03 +0100 | anon12176673 | (~anon12176@host-92-19-99-147.as13285.net) (Remote host closed the connection) |
2022-02-10 03:43:04 +0100 | <ephemient> | expressions not having side effects is not the case in other (strict) functional programming languages, you do rely on expression side-effects and can sequence expressions |
2022-02-10 03:43:24 +0100 | <Inst> | the compiler works by evaluating expressions and transforming them into imperative code, as opposed to executing statements |
2022-02-10 03:43:35 +0100 | <Inst> | i hope you're not going to object that this is "not even wrong" |
2022-02-10 03:43:50 +0100 | <sm> | (and yes, "expression" carries more of an expectation of few/no side effects) |
2022-02-10 03:43:55 +0100 | anon12176673 | (~anon12176@host-92-19-99-147.as13285.net) |
2022-02-10 03:44:13 +0100 | <Inst> | expressions have side effects in special cases |
2022-02-10 03:44:13 +0100 | anon12176673 | (~anon12176@host-92-19-99-147.as13285.net) (Remote host closed the connection) |
2022-02-10 03:44:19 +0100 | <Inst> | statements have side effects as part of their definition |
2022-02-10 03:44:22 +0100 | <Inst> | is that a correct guess? |
2022-02-10 03:44:37 +0100 | <ephemient> | the SML family is expression-based but uses (a;b;c) to sequence expressions a,b,c |
2022-02-10 03:44:44 +0100 | <sm> | you could have side-effect free statements. |
2022-02-10 03:44:52 +0100 | anon12176673 | (~anon12176@host-92-19-99-147.as13285.net) |
2022-02-10 03:45:11 +0100 | <Inst> | #define in C as an example? |
2022-02-10 03:45:21 +0100 | <EvanR> | how many expressions could nest on the head of a pin |
2022-02-10 03:45:57 +0100 | <EvanR> | go to the BNF of expression / statement language mobile |
2022-02-10 03:46:43 +0100 | <ephemient> | yeah to me the difference is purely up to the particular language's grammar |
2022-02-10 03:47:12 +0100 | <ephemient> | C permits any expression to be used as a statement; Java does not |
2022-02-10 03:47:26 +0100 | <EvanR> | often you will see the notion of an expression having a value (which may be another expression, possibly in another language), while the value of a statement is usually not a thing. And when it is I think of them also as expressions |
2022-02-10 03:47:54 +0100 | <EvanR> | as in ruby |
2022-02-10 03:48:27 +0100 | <EvanR> | whose statements have values and are basically messed up expressions |
2022-02-10 03:48:33 +0100 | awpr | has a piece of paper on his desk containing a "term language" for linear logic, wherein there are statements as distinct from expressions |
2022-02-10 03:48:51 +0100 | desklamp[m] | (~desklampm@2001:470:69fc:105::77b8) () |
2022-02-10 03:49:58 +0100 | anon12176673 | (~anon12176@host-92-19-99-147.as13285.net) (Remote host closed the connection) |
2022-02-10 03:49:59 +0100 | <sm> | to me "statements" means "sequential, likely effectful", and "expressions" means "tree-structured, likely non-effectful" |
2022-02-10 03:50:37 +0100 | anon41255431 | (~anon41255@host-92-19-99-147.as13285.net) |
2022-02-10 03:50:42 +0100 | <EvanR> | when statements have no value, then naturally... the point is effects xD |
2022-02-10 03:50:43 +0100 | <awpr> | https://homepages.inf.ed.ac.uk/wadler/papers/dual/dual.pdf has the same kind of term/statement setup, but for a more traditional computational model |
2022-02-10 03:50:50 +0100 | anon41255431 | (~anon41255@host-92-19-99-147.as13285.net) (Remote host closed the connection) |
2022-02-10 03:51:10 +0100 | <EvanR> | when expressions have no effects, the point is valuation |
2022-02-10 03:51:39 +0100 | <EvanR> | i.e. intended semantics |
2022-02-10 03:52:16 +0100 | anon41255431 | (~anon41255@host-92-19-99-147.as13285.net) |
2022-02-10 03:52:31 +0100 | <monochrom> | when statements have no effects, the point is identity :) |
2022-02-10 03:52:57 +0100 | ChanServ | +o litharge |
2022-02-10 03:52:58 +0100 | litharge | -bo *!*@98.38.249.169$##fix-your-connection litharge |
2022-02-10 03:53:09 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:30cc:b923:a3cb:c39c) |
2022-02-10 03:53:14 +0100 | <EvanR> | State monad plays both sides of the field |
2022-02-10 03:53:20 +0100 | <EvanR> | evalState, execState |
2022-02-10 03:54:09 +0100 | <EvanR> | "values" of type State s a are expressions but also statements |
2022-02-10 03:54:21 +0100 | <awpr> | the dual calculus notion of statements has neither a value nor side effects (but of course it's a very different concept from "statements" in imperative language) |
2022-02-10 03:54:38 +0100 | <anon41255431> | Does anyone know where I can find recursion problems to practice using Haskell? |
2022-02-10 03:55:27 +0100 | <monochrom> | Perhaps "99 haskell problems" |
2022-02-10 03:55:33 +0100 | anon41255431 | (~anon41255@host-92-19-99-147.as13285.net) (Remote host closed the connection) |
2022-02-10 03:55:40 +0100 | <Axman6> | there's a lot to be learned by implementing as many of the list functions using foldr IMO |
2022-02-10 03:55:45 +0100 | <monochrom> | https://wiki.haskell.org/H-99:_Ninety-Nine_Haskell_Problems |
2022-02-10 03:57:01 +0100 | <monochrom> | Equivalently Haskell doesn't have loops so every problem that exceeds O(1)-time is a recursion problem. :) |
2022-02-10 03:57:08 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.4) |
2022-02-10 03:57:20 +0100 | anon41255431 | (~anon41255@host-92-19-99-147.as13285.net) |
2022-02-10 03:57:28 +0100 | anon41255431 | (~anon41255@host-92-19-99-147.as13285.net) (Remote host closed the connection) |
2022-02-10 03:58:19 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) |
2022-02-10 04:00:27 +0100 | shailangsa | (~shailangs@host217-39-45-199.range217-39.btcentralplus.com) |
2022-02-10 04:02:02 +0100 | xff0x | (~xff0x@2001:1a81:5384:400:77b6:98fb:61ba:7d90) (Ping timeout: 240 seconds) |
2022-02-10 04:02:23 +0100 | lottaquestions | (~nick@2607:fa49:5041:a200:b92:1a0:165b:5914) |
2022-02-10 04:02:59 +0100 | <EvanR> | so expressions and statements are like link vs ganon. They keep appearing together but how they look depends on which sequel / language it is |
2022-02-10 04:03:34 +0100 | Unicorn_Princess | (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection) |
2022-02-10 04:03:54 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-02-10 04:04:01 +0100 | xff0x | (~xff0x@2001:1a81:53bc:500:22c0:5bd7:c089:bc66) |
2022-02-10 04:06:00 +0100 | emf_ | (~emf@2620:10d:c090:400::5:c6d7) (Ping timeout: 250 seconds) |
2022-02-10 04:07:06 +0100 | <Inst> | is this any good? |
2022-02-10 04:07:07 +0100 | <Inst> | https://wiki.haskell.org/99_questions/1_to_10 |
2022-02-10 04:08:44 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
2022-02-10 04:12:40 +0100 | razetime | (~quassel@49.207.198.36) |
2022-02-10 04:13:26 +0100 | alMalsam1 | (~alMalsamo@gateway/tor-sasl/almalsamo) |
2022-02-10 04:13:56 +0100 | little_mac | (~little_ma@2601:410:4300:3ce0:89bd:bcbb:df15:8e9a) (Remote host closed the connection) |
2022-02-10 04:14:58 +0100 | alMalsamo | (~alMalsamo@gateway/tor-sasl/almalsamo) (Remote host closed the connection) |
2022-02-10 04:21:16 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-02-10 04:26:43 +0100 | mbuf | (~Shakthi@110.225.224.158) |
2022-02-10 04:29:50 +0100 | Inst | (~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) (Ping timeout: 256 seconds) |
2022-02-10 04:34:27 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-02-10 04:36:33 +0100 | capo_greco | (~textual@60-241-161-167.static.tpgi.com.au) |
2022-02-10 04:37:17 +0100 | foul_owl | (~kerry@94.140.8.52) (Ping timeout: 256 seconds) |
2022-02-10 04:39:59 +0100 | sleblanc | (~sleblanc@user/sleblanc) (Quit: Leaving) |
2022-02-10 04:40:02 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-02-10 04:40:02 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-02-10 04:40:02 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-02-10 04:41:28 +0100 | nebu | (~user@user/wavion) |
2022-02-10 04:41:48 +0100 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat) |
2022-02-10 04:42:37 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
2022-02-10 04:43:02 +0100 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) |
2022-02-10 04:43:16 +0100 | jao | (~jao@static-68-235-44-24.cust.tzulo.com) (Remote host closed the connection) |
2022-02-10 04:44:17 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
2022-02-10 04:45:08 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-02-10 04:45:27 +0100 | td_ | (~td@94.134.91.16) (Ping timeout: 256 seconds) |
2022-02-10 04:46:25 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-10 04:47:22 +0100 | td_ | (~td@94.134.91.205) |
2022-02-10 04:48:51 +0100 | jao | (~jao@static-68-235-44-24.cust.tzulo.com) |
2022-02-10 04:52:21 +0100 | anon12176673 | (~anon12176@host-92-19-99-147.as13285.net) |
2022-02-10 04:53:01 +0100 | foul_owl | (~kerry@94.140.8.25) |
2022-02-10 04:57:40 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-02-10 04:59:25 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
2022-02-10 05:00:15 +0100 | jao | (~jao@static-68-235-44-24.cust.tzulo.com) (Remote host closed the connection) |
2022-02-10 05:00:16 +0100 | burnsidesLlama | (~burnsides@dhcp168-051.wadham.ox.ac.uk) (Remote host closed the connection) |
2022-02-10 05:00:16 +0100 | yauhsien | (~yauhsien@61-231-45-223.dynamic-ip.hinet.net) (Read error: Connection reset by peer) |
2022-02-10 05:00:45 +0100 | yauhsien | (~yauhsien@61-231-45-223.dynamic-ip.hinet.net) |
2022-02-10 05:01:51 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-10 05:04:58 +0100 | anon12176673 | (~anon12176@host-92-19-99-147.as13285.net) (Remote host closed the connection) |
2022-02-10 05:05:21 +0100 | dajoer | (~david@user/gvx) |
2022-02-10 05:05:21 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-02-10 05:05:44 +0100 | jao | (~jao@static-68-235-44-24.cust.tzulo.com) |
2022-02-10 05:10:37 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 240 seconds) |
2022-02-10 05:11:36 +0100 | jinsun | (~quassel@user/jinsun) |
2022-02-10 05:12:39 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 256 seconds) |
2022-02-10 05:12:58 +0100 | Jing | (~hedgehog@240e:390:7c53:a7e1:e8ea:b48d:a0c7:7ddc) |
2022-02-10 05:13:51 +0100 | jao | (~jao@static-68-235-44-24.cust.tzulo.com) (Remote host closed the connection) |
2022-02-10 05:15:15 +0100 | jao | (~jao@static-68-235-44-24.cust.tzulo.com) |
2022-02-10 05:15:38 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-02-10 05:23:12 +0100 | seer | (~delicacie@2601:6c4:4080:3f80:8d94:ce47:541:9d0d) |
2022-02-10 05:23:14 +0100 | seer | Inst |
2022-02-10 05:25:18 +0100 | <Inst> | https://pastebin.com/4xnKg7N6 |
2022-02-10 05:25:24 +0100 | <Inst> | is this worth uploading into hackage? |
2022-02-10 05:25:29 +0100 | <Inst> | obv it needs cabal files |
2022-02-10 05:25:31 +0100 | <Inst> | and haddock |
2022-02-10 05:26:24 +0100 | <EvanR> | and make sure to use the most valuable name you can think of |
2022-02-10 05:26:43 +0100 | <Inst> | that everyone will get pissed off that i'm now squatting their name? |
2022-02-10 05:27:46 +0100 | <EvanR> | probably fine Ed K has probably uploaded anything worth using to the most valuable names already |
2022-02-10 05:27:59 +0100 | <EvanR> | anything else is trash |
2022-02-10 05:28:27 +0100 | <jackdk> | many those operator names are already in use |
2022-02-10 05:28:51 +0100 | <Inst> | https://hoogle.haskell.org/?hoogle=%3D%40&scope=set%3Astackage |
2022-02-10 05:28:58 +0100 | <Inst> | https://hoogle.haskell.org/?hoogle=%3D%40%7C&scope=set%3Astackage |
2022-02-10 05:29:10 +0100 | <Inst> | https://hoogle.haskell.org/?hoogle=%7C%3D%40 |
2022-02-10 05:29:33 +0100 | <Inst> | https://hoogle.haskell.org/?hoogle=%40%3D%40 |
2022-02-10 05:29:43 +0100 | <Inst> | are those operator names actually in use? :( |
2022-02-10 05:30:27 +0100 | deadmarshal | (~deadmarsh@95.38.117.25) |
2022-02-10 05:31:40 +0100 | <EvanR> | you might be interested in the !@$# operator |
2022-02-10 05:32:06 +0100 | <EvanR> | so your code looks like it's cursing |
2022-02-10 05:32:27 +0100 | <Inst> | i'm deadly serious, it seems to be a simple addition that a noob can make to hackage |
2022-02-10 05:32:39 +0100 | <Axman6> | lens loves to take a big chunk out of the operator space, make sure you don't conflict with it because I love lens |
2022-02-10 05:33:04 +0100 | <Inst> | the way I understand Haskell culture is that most Haskellers hate Haskell and instead of being a troll like sandakarwhatever, they just build a lib or language extension |
2022-02-10 05:33:20 +0100 | <Inst> | which is still trolling, because they're contributing to the problem of making Haskell unteachable / unlearnable |
2022-02-10 05:33:27 +0100 | <EvanR> | > let (∈) = elem in 'o' ∈ "hello world" |
2022-02-10 05:33:28 +0100 | <lambdabot> | True |
2022-02-10 05:33:34 +0100 | <EvanR> | use this |
2022-02-10 05:34:02 +0100 | <EvanR> | actually, just use `elem` |
2022-02-10 05:34:22 +0100 | <EvanR> | (:∈ might be good to use for advance type level shenanigans) |
2022-02-10 05:34:46 +0100 | <Inst> | i'm too lazy to type `elem` |
2022-02-10 05:35:00 +0100 | <EvanR> | well, code is read much more often than it is written |
2022-02-10 05:35:07 +0100 | <EvanR> | keep that in mind |
2022-02-10 05:35:41 +0100 | <Inst> | oh well, i'll clean it up, learn cabal, and see if Hackage will let me upload 0.1 of OrPat.ElemOrPatternsOperators |
2022-02-10 05:35:58 +0100 | cheater | (~Username@user/cheater) |
2022-02-10 05:36:13 +0100 | <monochrom> | How is elem unteachable or unlearnable. This is BS. |
2022-02-10 05:36:35 +0100 | <Inst> | elem isn't |
2022-02-10 05:36:50 +0100 | <EvanR> | more useful to me as a pattern-ish thing than elem would be a pattern of the form |
2022-02-10 05:37:13 +0100 | <EvanR> | prev ++ MyNeedle ++ rest |
2022-02-10 05:37:14 +0100 | <Inst> | if people like it, maybe it could one day get added to data.foldables |
2022-02-10 05:37:22 +0100 | <EvanR> | then you can also manipulate the prev and rest |
2022-02-10 05:37:43 +0100 | <Inst> | *foldable |
2022-02-10 05:37:44 +0100 | <EvanR> | (if prev is backwards, you have a zipper) |
2022-02-10 05:38:06 +0100 | <dsal> | Please don't take inspiration from npm. |
2022-02-10 05:38:41 +0100 | <EvanR> | yeah single line definitions of elem aren't the sort of thing people install packages for |
2022-02-10 05:38:50 +0100 | <EvanR> | it's easier to just type that line |
2022-02-10 05:41:33 +0100 | wombat875 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) (Ping timeout: 256 seconds) |
2022-02-10 05:42:52 +0100 | ski | doesn't really see what the point of the operations in the paste are |
2022-02-10 05:43:41 +0100 | <Inst> | hopefully, get someone to stuff it into foldable eventually |
2022-02-10 05:43:49 +0100 | <Inst> | so the next time someone asks about or patterns |
2022-02-10 05:43:49 +0100 | <ski> | (the last operation is an overlap / non-disjointness check. it might perhaps be useful to give a name. but i'd probably not pick an infix operator for it, just an alphanumeric name) |
2022-02-10 05:43:56 +0100 | <dsal> | elem is already in Foldable |
2022-02-10 05:44:01 +0100 | <Inst> | i know |
2022-02-10 05:44:14 +0100 | <ski> | the paste doesn't seem to have anything to do with disjunctive patterns |
2022-02-10 05:44:38 +0100 | <ski> | (btw, that call to `foldr' could be replaced by an `any') |
2022-02-10 05:44:41 +0100 | ryanbooker | (uid4340@id-4340.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2022-02-10 05:44:49 +0100 | <Inst> | but map has <$> attached to it, even if <$> is the exact same length as map |
2022-02-10 05:44:59 +0100 | <ski> | you mean `fmap' |
2022-02-10 05:45:32 +0100 | <Axman6> | <$> exists mostly for use with Applicative code |
2022-02-10 05:45:39 +0100 | <ski> | ^ |
2022-02-10 05:45:40 +0100 | <dsal> | Just about every Haskell program uses fmap, typically infix. |
2022-02-10 05:45:50 +0100 | ski | often uses `fmap', infix |
2022-02-10 05:45:58 +0100 | <ski> | foo `fmap` bar |
2022-02-10 05:46:19 +0100 | <monochrom> | fmap is used much more often than elem, and <$> was chosen because there is a good analogy with existing $ |
2022-02-10 05:46:26 +0100 | <Axman6> | I have literally never done that... I just pretend that <$> is liftA1 and Functors are really Applicatives |
2022-02-10 05:46:53 +0100 | <ski> | i guess it's a habit since before the invention of `Applicative' |
2022-02-10 05:47:21 +0100 | <Inst> | i'm sorry for trolling |
2022-02-10 05:47:41 +0100 | <monochrom> | And yeah eventually an infix operator was desired because fmap was much nicer being used infix in those contexts. |
2022-02-10 05:48:06 +0100 | <ski> | you weren't trolling, that i could see, but merely attempting to get to grips with what's a worthwhile thing to add as a community contribution |
2022-02-10 05:48:14 +0100 | <dsal> | The neat thing about `elem` as a section infix is it works both ways. |
2022-02-10 05:48:21 +0100 | <Inst> | i actually import Data.Bool most of the time to get access to bool |
2022-02-10 05:48:39 +0100 | <Axman6> | catamorph ALL THE THINGS! |
2022-02-10 05:48:56 +0100 | <EvanR> | it's catamorphin' time. |
2022-02-10 05:51:17 +0100 | <dsal> | Is that the 80s cartoon where the cat people turned into a giant robot? |
2022-02-10 05:53:19 +0100 | <Inst> | https://en.wikipedia.org/wiki/Catamorphism |
2022-02-10 05:53:53 +0100 | <Inst> | I think that was swat kats or something |
2022-02-10 05:54:56 +0100 | <Inst> | my specific use case is that whenever i'm programming in some other language |
2022-02-10 05:55:28 +0100 | <Inst> | i get pissed off that i have to type a == x || a == y || ... |
2022-02-10 05:56:10 +0100 | <Inst> | i mean, multiple assignments have been here since c, why do i have to do explicit or and retyping? |
2022-02-10 05:56:12 +0100 | <Axman6> | Maybe python's for you |
2022-02-10 05:56:23 +0100 | <EvanR> | DRY |
2022-02-10 05:56:51 +0100 | <Axman6> | so dry |
2022-02-10 05:57:02 +0100 | <EvanR> | your code should look like compression output |
2022-02-10 05:57:08 +0100 | <monochrom> | APL |
2022-02-10 05:57:09 +0100 | <ski> | a `elem` [x,y,...] -- what's wrong with this ? |
2022-02-10 05:57:21 +0100 | <c_wraith> | what does multiple assignments have to do with multiple equality tests? |
2022-02-10 05:57:24 +0100 | <Inst> | it doesn't explicitly indicate the intent |
2022-02-10 05:57:37 +0100 | <ski> | (and what does this have to do with "multiple assignments", whatever you mean by that here ?) |
2022-02-10 05:57:38 +0100 | <Axman6> | % (=@|) :: (Foldable t, Eq a) => a -> t a -> Bool; (=@|) = elem; 1 =@ (1,2,3) |
2022-02-10 05:57:38 +0100 | <yahb> | Axman6: ; <interactive>:13:66: error:; * Variable not in scope: (=@) :: t0 -> (a0, b0, c0) -> DecsQ; * Perhaps you meant one of these: `==' (imported from Prelude), `<@' (imported from Control.Comonad.Store), `=@|' (line 13) |
2022-02-10 05:57:48 +0100 | <Axman6> | % (=@|) :: (Foldable t, Eq a) => a -> t a -> Bool; (=@|) = elem; 1 =@| (1,2,3) |
2022-02-10 05:57:48 +0100 | <yahb> | Axman6: ; <interactive>:14:66: error:; GHC stage restriction:; `=@|' is used in a top-level splice, quasi-quote, or annotation,; and must be imported, not defined locally |
2022-02-10 05:57:52 +0100 | <EvanR> | what's the intent? |
2022-02-10 05:57:56 +0100 | <Axman6> | % (=@|) :: (Foldable t, Eq a) => a -> t a -> Bool; (=@|) = elem; |
2022-02-10 05:57:57 +0100 | <yahb> | Axman6: |
2022-02-10 05:58:06 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) (Ping timeout: 276 seconds) |
2022-02-10 05:58:07 +0100 | <Axman6> | % 1 =@| (1,2,3) |
2022-02-10 05:58:07 +0100 | <yahb> | Axman6: ; <interactive>:16:3: error:; * No instance for (Foldable ((,,) Integer Integer)) arising from a use of `=@|'; * In the expression: 1 =@| (1, 2, 3); In an equation for `it': it = 1 =@| (1, 2, 3) |
2022-02-10 05:58:28 +0100 | <dsal> | % 1 =@| (1,2) |
2022-02-10 05:58:28 +0100 | <yahb> | dsal: False |
2022-02-10 05:58:31 +0100 | <Axman6> | Do we only have Foldable for (,)??? |
2022-02-10 05:58:32 +0100 | <Inst> | % (=@|) = elem |
2022-02-10 05:58:32 +0100 | <yahb> | Inst: |
2022-02-10 05:58:40 +0100 | <dsal> | @Axman6 Yeah, it's generally confusing. |
2022-02-10 05:58:40 +0100 | <lambdabot> | Unknown command, try @list |
2022-02-10 05:58:50 +0100 | <dsal> | damnit. You're showing up as an @ so I noobed. |
2022-02-10 05:58:57 +0100 | <Inst> | 2 =@| [2,3,4] |
2022-02-10 05:59:02 +0100 | <Inst> | % 2 =@| [2,3,4] |
2022-02-10 05:59:02 +0100 | <yahb> | Inst: True |
2022-02-10 05:59:03 +0100 | <EvanR> | clearly only (a,a,a) is foldable |
2022-02-10 05:59:04 +0100 | <Axman6> | such a noob |
2022-02-10 05:59:07 +0100 | <ski> | how does it not explicitly indicate the intent (and if it doesn't, how does `=@|' fare any better, on that front) ? |
2022-02-10 06:00:03 +0100 | <Inst> | % 2 =@| [1,3,4] |
2022-02-10 06:00:03 +0100 | <yahb> | Inst: False |
2022-02-10 06:00:14 +0100 | <Inst> | % :r |
2022-02-10 06:00:14 +0100 | <yahb> | Inst: Ok, no modules loaded. |
2022-02-10 06:01:11 +0100 | <Inst> | checking that a is an element of list is not obviously equivalent to wanting to do multiple equivalence checks under or conditions |
2022-02-10 06:01:55 +0100 | <Inst> | when i asked first whether Haskell had or patterns |
2022-02-10 06:02:03 +0100 | <Inst> | it took a bit of time before someone offered the obvious elem solution |
2022-02-10 06:02:19 +0100 | <c_wraith> | they do different things |
2022-02-10 06:02:23 +0100 | <dsal> | Just about anyone who sees "x `elem` ys" will know what it means. Nobody who sees "x =@| ys" will have any idea what the code is doing. |
2022-02-10 06:02:24 +0100 | <c_wraith> | patterns can bind values |
2022-02-10 06:02:26 +0100 | <EvanR> | in this case, the fact that it's easier to read AND write an `elem` makes it a no brainer |
2022-02-10 06:02:28 +0100 | <monochrom> | I'm not surprised. |
2022-02-10 06:02:43 +0100 | <EvanR> | moving on |
2022-02-10 06:02:56 +0100 | <monochrom> | Someone in a math channel asked "how to solve equations". |
2022-02-10 06:03:14 +0100 | <ski> | EvanR : i guess the problem with `prev ++ MyNeedle ++ rest' is that it's ambiguous, unless at least one of `prev' and `rest' are already bound |
2022-02-10 06:03:17 +0100 | <dsal> | "hello, I just heard of math" |
2022-02-10 06:03:30 +0100 | <monochrom> | It took a long time for the audience to find out they just meant linear equations in one variable, like "3x - 5 = 7". |
2022-02-10 06:03:34 +0100 | <EvanR> | yeah I didn't think it would literally work |
2022-02-10 06:03:38 +0100 | <ski> | (oh, and itym s/MyNeedle/[MyNeedle]/) |
2022-02-10 06:03:54 +0100 | <Inst> | so, um, is bool a bad idea? |
2022-02-10 06:03:54 +0100 | <EvanR> | that too... |
2022-02-10 06:04:21 +0100 | <dsal> | bool isn't 100% a bad idea, but it rarely makes things clearer. |
2022-02-10 06:04:32 +0100 | <Inst> | i mean everyone in this channel knows what bool, the function, not the type, is, right? |
2022-02-10 06:04:47 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) |
2022-02-10 06:04:52 +0100 | <dsal> | Yeah, you mentioned using `bool` earlier. |
2022-02-10 06:04:53 +0100 | <EvanR> | I use if then else |
2022-02-10 06:04:58 +0100 | <ski> | if there's a reasonable pattern-matching solution, then that's probably better than using a `Bool'ean condition |
2022-02-10 06:04:58 +0100 | <dsal> | Though `Bool` is also a bad idea a lot of the time. |
2022-02-10 06:05:02 +0100 | <EvanR> | or pattern matching |
2022-02-10 06:05:18 +0100 | <monochrom> | bool is a good idea that turns out to not matter. |
2022-02-10 06:06:07 +0100 | <monochrom> | Maybe a Scheme person would use bool to write foldr but we have something even better. |
2022-02-10 06:06:48 +0100 | <Inst> | just, if there's a simple split, i don't see the point of using case of |
2022-02-10 06:07:13 +0100 | <monochrom> | And then even when boolean tests are important, we have guards. |
2022-02-10 06:07:30 +0100 | <Inst> | iirc guards can't be freely deployed, right? |
2022-02-10 06:07:36 +0100 | <Inst> | only in case expressions and function definitions |
2022-02-10 06:07:44 +0100 | <Inst> | they're syntax, not functions |
2022-02-10 06:08:32 +0100 | <dsal> | This is an abstract concern. You should use the thing that's best in the situation. |
2022-02-10 06:08:44 +0100 | <Inst> | let x | condition 1 = y; x | condition 2 = z in |
2022-02-10 06:08:48 +0100 | <dsal> | `bool` is *sometimes* the best, but pretty rarely so. |
2022-02-10 06:08:53 +0100 | modnar | (~modnar@shell.sonic.net) (Quit: No Ping reply in 180 seconds.) |
2022-02-10 06:09:59 +0100 | <Inst> | bleh, sorry for trolling you with my shit |
2022-02-10 06:10:39 +0100 | <ski> | Inst : guards attach to pattern-matching, yes |
2022-02-10 06:10:39 +0100 | modnar | (~modnar@shell.sonic.net) |
2022-02-10 06:11:22 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 06:12:41 +0100 | <EvanR> | the mystic barrier imprisoning lavaman for minuteslennia is weakening |
2022-02-10 06:12:55 +0100 | <Inst> | lavaman, did you fix your connection yet? |
2022-02-10 06:13:51 +0100 | <Inst> | basically, on FP discord, someone told me: "never use if then else, use case of" |
2022-02-10 06:14:06 +0100 | <Inst> | i responded: if then else is simple in cases where if then else makes sense |
2022-02-10 06:14:13 +0100 | <Inst> | is applicable, i mean |
2022-02-10 06:14:17 +0100 | <Inst> | then someone told me to use bool instead |
2022-02-10 06:14:19 +0100 | <dolio> | That advice doesn't make much sense. |
2022-02-10 06:15:22 +0100 | <monochrom> | Not sure whether I should say "this is why I don't read FP discord" or "data shows that people misinterpret statements". |
2022-02-10 06:15:58 +0100 | <c_wraith> | I don't like if/then/else except for one-liners. But that's not the same as "don't use it". |
2022-02-10 06:16:07 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2022-02-10 06:16:32 +0100 | <dolio> | Pretty much all "never use X" advice isn't any good. |
2022-02-10 06:17:19 +0100 | <ski> | "never use \"never use X\" advice" ? |
2022-02-10 06:17:52 +0100 | <EvanR> | "remember that giant red button I told you to never use?" |
2022-02-10 06:18:25 +0100 | <ephemient> | https://gitlab.haskell.org/ghc/ghc/-/issues/19477 says that ifThenElse becomes unusable with {-# LANGUAGE LinearTypes, RebindableSyntax #-}, in which case you can only use case ... of { True -> ...; False -> ... } but I imagine that shouldn't affect *that* many people at the moment |
2022-02-10 06:18:29 +0100 | <monochrom> | I never shave people who never shave themselves. |
2022-02-10 06:19:54 +0100 | <ski> | "never use ..." can be problematic, if you're not properly told *why* whatever thing that is mentioned is considered to be better left avoided |
2022-02-10 06:20:13 +0100 | <Inst> | because case of is more powerful, using pattern matching |
2022-02-10 06:20:38 +0100 | <ski> | using a more general version that covers something, isn't always a good idea |
2022-02-10 06:20:40 +0100 | <monochrom> | For Bool there is no power to speak of, really. |
2022-02-10 06:20:52 +0100 | <monochrom> | For Maybe a, [a], etc., now we're talking. |
2022-02-10 06:20:54 +0100 | <dolio> | It's not more powerful to do case analysis on a boolean, though. So in that scenario it's just senseless adherence to dogma. |
2022-02-10 06:21:15 +0100 | <Inst> | on the other hand, you can profitable jettison if then else from the language |
2022-02-10 06:21:22 +0100 | <Inst> | since it desugars to case of anyways |
2022-02-10 06:21:37 +0100 | <Inst> | case boolean of; True -> k; _ -> l |
2022-02-10 06:21:55 +0100 | <EvanR> | even lisp has syntactic sugar |
2022-02-10 06:22:02 +0100 | <EvanR> | everyone loves syntactic sugar |
2022-02-10 06:22:31 +0100 | <monochrom> | I like desugared grape juice more than I like grape juice. :) |
2022-02-10 06:22:33 +0100 | <Inst> | i mean, there's like, 5 different ways to do a conditional in the base language |
2022-02-10 06:22:40 +0100 | <dolio> | So? |
2022-02-10 06:22:42 +0100 | <Inst> | and 8-10 different ways once you consider extensions and libs? |
2022-02-10 06:22:46 +0100 | ski | tends to prefer to err on the side of explaining why something should (generally) be avoided, but then, often, go on to give them the rope with which they could hang themselves with |
2022-02-10 06:22:58 +0100 | <ski> | the point is to be able to make an informed decision |
2022-02-10 06:23:20 +0100 | <dolio> | Having lots of ways to do something isn't automatically a bad thing. |
2022-02-10 06:23:53 +0100 | <EvanR> | esp at the level if then else... who cares |
2022-02-10 06:24:06 +0100 | <EvanR> | the stakes are at an all time low |
2022-02-10 06:24:20 +0100 | <Inst> | dolio: the challenge is that it makes the language harder to learn |
2022-02-10 06:24:28 +0100 | <Inst> | and the variety of styles in Haskell makes it harder to read |
2022-02-10 06:24:33 +0100 | <Inst> | like, I still can't read lib code |
2022-02-10 06:24:39 +0100 | <EvanR> | even pattern matching () is more interesting thanks to laziness or strictness issues |
2022-02-10 06:24:44 +0100 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2022-02-10 06:25:21 +0100 | <ski> | some additional ways to do things (like the paste above), doesn't really add anything meaningful |
2022-02-10 06:25:26 +0100 | <ski> | others do |
2022-02-10 06:26:12 +0100 | <Inst> | bool compared to if then else at least is a function that can be partially applied |
2022-02-10 06:26:13 +0100 | <ski> | i guess it's a matter of discernment to be able to tell which is which |
2022-02-10 06:26:34 +0100 | <Inst> | the paste above is more (hey guys, guess what? You get to save 3 keystrokes on elem) |
2022-02-10 06:26:35 +0100 | <dolio> | That is essentially the only reason to use bool. |
2022-02-10 06:26:47 +0100 | <ski> | yes. but being able to partially apply isn't always something that's useful, in a given context |
2022-02-10 06:27:23 +0100 | <Inst> | bool = 4-10 keystrokes, if then else is also 10 keystrokes |
2022-02-10 06:27:27 +0100 | modnar | (~modnar@shell.sonic.net) (Quit: No Ping reply in 180 seconds.) |
2022-02-10 06:27:38 +0100 | <Inst> | drawback: bool code is hard to read |
2022-02-10 06:27:40 +0100 | <EvanR> | the number of saved keystrokes involved, added up over time, likely doesn't rival this discussion |
2022-02-10 06:27:43 +0100 | <ski> | "save 3 keystrokes" is about (a very low-level of) efficiency of writing. generally it's more useful to worry about efficiency of reading |
2022-02-10 06:27:45 +0100 | <dolio> | I wasn't counting bad reasons. |
2022-02-10 06:28:12 +0100 | <monochrom> | https://learnyouahaskell.github.io/ |
2022-02-10 06:29:02 +0100 | <monochrom> | Some kind of "LYAH is dead. Long live LYAH, this time literally" |
2022-02-10 06:29:17 +0100 | modnar | (~modnar@shell.sonic.net) |
2022-02-10 06:29:42 +0100 | <Inst> | pretty good |
2022-02-10 06:30:03 +0100 | <Inst> | since i hate haskellbook, maybe people can actually fix lyah |
2022-02-10 06:33:01 +0100 | jao | (~jao@static-68-235-44-24.cust.tzulo.com) (Ping timeout: 240 seconds) |
2022-02-10 06:40:32 +0100 | <neverwas> | Gee, I hope they manage to preserve the style of the prose |
2022-02-10 06:40:42 +0100 | <neverwas> | or even just go with annotations or something if it's not too jarring/distracting |
2022-02-10 06:40:48 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-02-10 06:40:48 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-02-10 06:40:48 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-02-10 06:41:03 +0100 | lechner | (~lechner@debian/lechner) (Ping timeout: 256 seconds) |
2022-02-10 06:43:20 +0100 | lechner | (~lechner@debian/lechner) |
2022-02-10 06:44:12 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
2022-02-10 06:45:35 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2022-02-10 06:55:59 +0100 | k8yun_ | (~k8yun@user/k8yun) |
2022-02-10 06:59:45 +0100 | k8yun | (~k8yun@user/k8yun) (Ping timeout: 256 seconds) |
2022-02-10 07:02:00 +0100 | meer | (~delicacie@2601:6c4:4080:3f80:5c6a:e4b3:e4cd:1bc3) |
2022-02-10 07:04:17 +0100 | lechner | (~lechner@debian/lechner) (Ping timeout: 240 seconds) |
2022-02-10 07:04:37 +0100 | Inst | (~delicacie@2601:6c4:4080:3f80:8d94:ce47:541:9d0d) (Ping timeout: 240 seconds) |
2022-02-10 07:06:35 +0100 | meer | Inst |
2022-02-10 07:07:27 +0100 | Jing | (~hedgehog@240e:390:7c53:a7e1:e8ea:b48d:a0c7:7ddc) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-02-10 07:11:28 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-02-10 07:12:54 +0100 | capo_greco | (~textual@60-241-161-167.static.tpgi.com.au) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-02-10 07:13:21 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
2022-02-10 07:14:08 +0100 | cigsende1 | (~cigsender@50-240-234-101-static.hfc.comcastbusiness.net) |
2022-02-10 07:15:17 +0100 | haskell_ | (~haskell@65-102-32-32.ptld.qwest.net) |
2022-02-10 07:15:37 +0100 | haskell_ | (~haskell@65-102-32-32.ptld.qwest.net) (Remote host closed the connection) |
2022-02-10 07:16:46 +0100 | cigsende1 | (~cigsender@50-240-234-101-static.hfc.comcastbusiness.net) (Read error: Connection reset by peer) |
2022-02-10 07:17:38 +0100 | cigsender | (~cigsender@74.124.58.162) (Read error: Connection reset by peer) |
2022-02-10 07:18:10 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2022-02-10 07:19:07 +0100 | cigsender | (~cigsender@74.124.58.162) |
2022-02-10 07:21:28 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-02-10 07:24:15 +0100 | `2jt | (~jtomas@130.red-88-22-46.staticip.rima-tde.net) |
2022-02-10 07:24:53 +0100 | _ht | (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection) |
2022-02-10 07:32:18 +0100 | drdo | (~drdo@roach0.drdo.eu) (Quit: Ping timeout (120 seconds)) |
2022-02-10 07:33:24 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2022-02-10 07:33:38 +0100 | drdo | (~drdo@roach0.drdo.eu) |
2022-02-10 07:35:01 +0100 | nebu | (~user@user/wavion) (Ping timeout: 240 seconds) |
2022-02-10 07:35:36 +0100 | capo_greco | (~textual@60-241-161-167.static.tpgi.com.au) |
2022-02-10 07:37:05 +0100 | ardell | (~ardell@user/ardell) |
2022-02-10 07:40:33 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 256 seconds) |
2022-02-10 07:45:12 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2022-02-10 07:47:14 +0100 | cheater | (~Username@user/cheater) |
2022-02-10 07:54:32 +0100 | <EvanR> | wait, LYAH was lost and is being reconstructed from scratch? |
2022-02-10 07:54:57 +0100 | <Inst> | the site went down for a couple of days |
2022-02-10 07:56:28 +0100 | f-a | (f2a@f2a.jujube.ircnow.org) () |
2022-02-10 07:57:01 +0100 | `2jt | (~jtomas@130.red-88-22-46.staticip.rima-tde.net) (Ping timeout: 240 seconds) |
2022-02-10 07:58:17 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2022-02-10 07:59:37 +0100 | foul_owl | (~kerry@94.140.8.25) (Ping timeout: 240 seconds) |
2022-02-10 08:00:56 +0100 | lechner | (~lechner@debian/lechner) |
2022-02-10 08:02:45 +0100 | capo_greco | (~textual@60-241-161-167.static.tpgi.com.au) (Quit: Textual IRC Client: www.textualapp.com) |
2022-02-10 08:03:32 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293) (Ping timeout: 240 seconds) |
2022-02-10 08:03:47 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 256 seconds) |
2022-02-10 08:05:17 +0100 | wei2912 | (~wei2912@138.75.71.147) |
2022-02-10 08:08:23 +0100 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) |
2022-02-10 08:11:08 +0100 | thevishy | (~Nishant@2405:201:f005:c007:6cf1:7245:a05f:ea21) |
2022-02-10 08:14:10 +0100 | jakalx | (~jakalx@base.jakalx.net) () |
2022-02-10 08:15:06 +0100 | foul_owl | (~kerry@71.212.148.11) |
2022-02-10 08:17:52 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-02-10 08:26:08 +0100 | michalz | (~michalz@185.246.204.87) |
2022-02-10 08:26:27 +0100 | shriekingnoise | (~shrieking@201.231.16.156) (Quit: Quit) |
2022-02-10 08:28:03 +0100 | cigsende1 | (~cigsender@50-240-234-101-static.hfc.comcastbusiness.net) |
2022-02-10 08:28:16 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:f0ed:5941:868e:9ada) |
2022-02-10 08:29:22 +0100 | zer0bitz | (~zer0bitz@2001:2003:f74d:b800:a89e:b347:cccb:c7e5) (Read error: Connection reset by peer) |
2022-02-10 08:29:28 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2022-02-10 08:29:39 +0100 | zer0bitz | (~zer0bitz@2001:2003:f74d:b800:3c9b:6dce:e374:3130) |
2022-02-10 08:31:17 +0100 | cigsender | (~cigsender@74.124.58.162) (Ping timeout: 240 seconds) |
2022-02-10 08:31:17 +0100 | cigsende1 | (~cigsender@50-240-234-101-static.hfc.comcastbusiness.net) (Read error: Connection reset by peer) |
2022-02-10 08:33:03 +0100 | cigsender | (~cigsender@74.124.58.162) |
2022-02-10 08:35:43 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2022-02-10 08:38:15 +0100 | <Inst> | this f- bi- |
2022-02-10 08:38:44 +0100 | k8yun_ | (~k8yun@user/k8yun) (Quit: Leaving) |
2022-02-10 08:38:51 +0100 | <Inst> | she took a business chinese class that's like oriented at B2-C1 learners, or is intended for students with around 1000 hours of instructions under her belt |
2022-02-10 08:38:59 +0100 | <Inst> | so now i have to try to bail her out |
2022-02-10 08:40:24 +0100 | <sshine> | Inst, 你是中国老师吗? |
2022-02-10 08:40:50 +0100 | <sshine> | s/中国/汉语/ |
2022-02-10 08:41:21 +0100 | <Inst> | 不是,问题就是我们可以算是对象,然后虽然我汉语水平不太高,我的看能不能救他。 |
2022-02-10 08:43:22 +0100 | VanceIsM7[m] | (~vanceism7@2001:470:69fc:105::3ad) |
2022-02-10 08:43:34 +0100 | <Inst> | 按照汉办的方式来算,我的水平基本上是五到六级,课本是五到六级,但是她的水平想二到三级差不多 |
2022-02-10 08:44:44 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2022-02-10 08:45:23 +0100 | max22- | (~maxime@2a01cb0883359800593582f16039b0e0.ipv6.abo.wanadoo.fr) |
2022-02-10 08:47:19 +0100 | <sshine> | Inst, 也许你可以把她的课换成别的课。 |
2022-02-10 08:47:53 +0100 | <Inst[m]> | 我已经告诉他了 |
2022-02-10 08:48:09 +0100 | <Inst[m]> | 她就回答,她太疯了。 |
2022-02-10 08:48:15 +0100 | capo_greco | (~textual@60-241-161-167.static.tpgi.com.au) |
2022-02-10 08:48:17 +0100 | lechner | (~lechner@debian/lechner) (Ping timeout: 240 seconds) |
2022-02-10 08:49:26 +0100 | <dminuoso> | Inst: So what about this example https://gist.github.com/dminuoso/abdea620d60a501d89347b7586b06646#file-f-hs-L12-L14 |
2022-02-10 08:49:27 +0100 | <Inst[m]> | 已经太晚了。也许是我的错误,我没有仔细分析那本课本儿,因该早点告诉她退出来。 |
2022-02-10 08:49:41 +0100 | <dminuoso> | Is this a "poor usage of if-then-else"? Is there some other, more sensible, approach? |
2022-02-10 08:49:58 +0100 | <Inst> | i mean if you're talking about intelligibility |
2022-02-10 08:50:03 +0100 | <Inst> | i like if then else, tbh |
2022-02-10 08:50:10 +0100 | <Inst> | i guess i'm recognizing its advantages |
2022-02-10 08:50:24 +0100 | <dminuoso> | No concretely, imagine what you would have to do to make it go away here |
2022-02-10 08:50:29 +0100 | <dminuoso> | We can offload this into a helper function, sure. |
2022-02-10 08:50:54 +0100 | <Inst> | or you could just use bool |
2022-02-10 08:51:00 +0100 | <Inst> | and sacrifice readability |
2022-02-10 08:51:10 +0100 | <Inst> | since people generally don't know what the hell bool is, and you'd have to import it |
2022-02-10 08:51:24 +0100 | <Inst> | could also just do case of |
2022-02-10 08:51:34 +0100 | <dminuoso> | `hashPolicy :: Set IfTag -> HashPolicy` and carve that out. But there comes a point at which you might wonder what the point of that is. |
2022-02-10 08:51:45 +0100 | <Inst> | true -> BalanceXor |
2022-02-10 08:51:49 +0100 | fef | (~thedawn@user/thedawn) |
2022-02-10 08:51:52 +0100 | <Inst> | _ -> HpLayer34 |
2022-02-10 08:52:05 +0100 | <Inst> | that's the style the guy on FP discord wanted me to use, or at least personally preferred |
2022-02-10 08:52:10 +0100 | <Inst> | would have been comparably readable to ifthenelse |
2022-02-10 08:52:15 +0100 | Akiva | (~Akiva@user/Akiva) |
2022-02-10 08:52:33 +0100 | capo_greco | (~textual@60-241-161-167.static.tpgi.com.au) (Client Quit) |
2022-02-10 08:52:49 +0100 | <dminuoso> | Im not sure I see any real advantage - arguably it creates more noise. |
2022-02-10 08:53:16 +0100 | <dminuoso> | The only idiomatic way to make if-then-else go away is by writing the above `hashPolicy` helper function |
2022-02-10 08:53:44 +0100 | <Inst> | i mean i was guessing the FP discorders know what they were doing |
2022-02-10 08:54:06 +0100 | <Inst> | in my view, very few people actually "know" haskell, but a lot of people know a little bit of it, or even a lot |
2022-02-10 08:55:17 +0100 | <dminuoso> | We all have our views on how to write software in a given language. In recent years, when blogging has become ubiquitous, everybody is suddenly an expert, and advice often comes in the form of "never <...>" or "always <...>" |
2022-02-10 08:55:30 +0100 | <Inst> | xyz considered harmful |
2022-02-10 08:55:44 +0100 | <dminuoso> | That's quite the clickbait I learned to avoid. |
2022-02-10 08:55:44 +0100 | <Inst> | with haskell, simply because there's so many ways to express an idea, i'm surprised there's no hard style guides here |
2022-02-10 08:56:40 +0100 | cosimone | (~user@93-47-228-191.ip115.fastwebnet.it) |
2022-02-10 08:57:15 +0100 | <EvanR> | proof by FP discord |
2022-02-10 08:57:18 +0100 | <EvanR> | QED |
2022-02-10 08:57:25 +0100 | <EvanR> | #haskell is chopped liver |
2022-02-10 08:59:13 +0100 | <sshine> | Inst, Haskell being the hotpot of lazy FP, 'no hard style guides' goes hand in hand with many other expressions of diversity that make practical use difficult. |
2022-02-10 08:59:37 +0100 | <Inst> | btw, are there any good guides to writing software design docs? |
2022-02-10 08:59:48 +0100 | <EvanR> | we have many hard style guides in case you are serious |
2022-02-10 08:59:55 +0100 | <EvanR> | they are so hard I ignore them |
2022-02-10 09:00:01 +0100 | <dminuoso> | So I find that guides on "how to do something well" more often than not fall really short. |
2022-02-10 09:00:07 +0100 | <sshine> | Inst, I know of ADRs: https://adr.github.io/ |
2022-02-10 09:00:31 +0100 | <dminuoso> | I think they arise from the false premise that you just have to follow some rigid guidelines, and then your product becomes good. |
2022-02-10 09:01:10 +0100 | <sshine> | Inst, I like them because I can confine the fluff into an RFC-like Markdown and commit it to version control; kinda raises the bar for who should be doing architecture decisions. |
2022-02-10 09:01:12 +0100 | <dminuoso> | Software style is a way of communicating with not just the compiler but with other developers, so understanding that communication process is the key to knowing "do I express this with XYZ or some other way" |
2022-02-10 09:01:24 +0100 | <dminuoso> | And that's ultimately why code formatting tools fall so incredibly short |
2022-02-10 09:01:36 +0100 | <dminuoso> | They dont know at all what the author is trying to convey |
2022-02-10 09:02:21 +0100 | <dminuoso> | Or linters even |
2022-02-10 09:03:07 +0100 | <EvanR> | guides are more valuable if you can just churn them out and charge admission (or get ad revenue) |
2022-02-10 09:03:10 +0100 | <sshine> | Inst, but I haven't tried to design software with intelligent colleagues, so I don't know of their practical value. the architect behind what I'm making now is so mathy only one guy gets 80% of it at the moment. no reason to document it yet. |
2022-02-10 09:03:13 +0100 | <ski> | hlint commonly gives advice that can be questioned |
2022-02-10 09:03:26 +0100 | <sshine> | s/architect/architecture/ |
2022-02-10 09:03:44 +0100 | <sshine> | ski, hlint advice can be modified, so you could argue it's a defaults thing. :) |
2022-02-10 09:03:50 +0100 | <EvanR> | see how prima strategy guides are gone? way too difficult to produce |
2022-02-10 09:04:04 +0100 | <EvanR> | now we have a 9000 page ad-filled web page |
2022-02-10 09:04:15 +0100 | <EvanR> | (with barely any info) |
2022-02-10 09:04:53 +0100 | <EvanR> | also many programming blogs are from companies that require you to write a blog at any cost |
2022-02-10 09:05:34 +0100 | <sshine> | Inst, thanks for the Discord link, that's an immensely valuable resource. |
2022-02-10 09:06:10 +0100 | cfricke | (~cfricke@user/cfricke) |
2022-02-10 09:08:29 +0100 | <sshine> | Inst, case <bool> of ... seems kinda not useful. generally pattern matching makes a lot of sense because it's more extensible. but there isn't going to be a third option to Bool any time soon. :P |
2022-02-10 09:08:30 +0100 | mikoto-chan | (~mikoto-ch@84.199.144.235) |
2022-02-10 09:09:43 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
2022-02-10 09:09:59 +0100 | <EvanR> | it ensures you get all the cases |
2022-02-10 09:10:20 +0100 | <EvanR> | i.e. if then else |
2022-02-10 09:11:59 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-02-10 09:14:08 +0100 | zeenk | (~zeenk@2a02:2f04:a30d:1300:51a3:bcfc:6cda:9fc5) |
2022-02-10 09:17:43 +0100 | alp | (~alp@user/alp) |
2022-02-10 09:19:06 +0100 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) |
2022-02-10 09:20:26 +0100 | drdo | (~drdo@roach0.drdo.eu) (Quit: Ping timeout (120 seconds)) |
2022-02-10 09:24:21 +0100 | drdo | (~drdo@roach0.drdo.eu) |
2022-02-10 09:26:26 +0100 | cosimone | (~user@93-47-228-191.ip115.fastwebnet.it) (Read error: Connection reset by peer) |
2022-02-10 09:29:18 +0100 | chele | (~chele@user/chele) |
2022-02-10 09:31:00 +0100 | comerijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
2022-02-10 09:31:18 +0100 | hololeap | (~hololeap@user/hololeap) (Ping timeout: 276 seconds) |
2022-02-10 09:33:34 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
2022-02-10 09:33:36 +0100 | Ariakenom | (~Ariakenom@h-82-196-111-63.NA.cust.bahnhof.se) |
2022-02-10 09:36:27 +0100 | sektor|2 | (~kvirc@87.227.175.182) |
2022-02-10 09:38:23 +0100 | `2jt | (~jtomas@130.red-88-22-46.staticip.rima-tde.net) |
2022-02-10 09:38:43 +0100 | hololeap | (~hololeap@user/hololeap) |
2022-02-10 09:41:05 +0100 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.3) |
2022-02-10 09:42:27 +0100 | cosimone | (~user@93-47-228-191.ip115.fastwebnet.it) |
2022-02-10 09:44:05 +0100 | comerijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
2022-02-10 09:49:00 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2022-02-10 09:49:12 +0100 | wrengr | (~wrengr@99.34.197.35.bc.googleusercontent.com) (Remote host closed the connection) |
2022-02-10 09:51:01 +0100 | cfricke | (~cfricke@user/cfricke) |
2022-02-10 09:55:50 +0100 | Cale | (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) (Remote host closed the connection) |
2022-02-10 09:56:34 +0100 | xff0x | (~xff0x@2001:1a81:53bc:500:22c0:5bd7:c089:bc66) (Ping timeout: 250 seconds) |
2022-02-10 09:57:13 +0100 | ubert | (~Thunderbi@p200300ecdf0994184cc217ea87d4c264.dip0.t-ipconnect.de) |
2022-02-10 09:57:18 +0100 | Cale | (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) |
2022-02-10 09:57:44 +0100 | xff0x | (~xff0x@2001:1a81:53bc:500:bc1a:eecf:3ef6:1dbe) |
2022-02-10 09:59:16 +0100 | MajorBiscuit | (~MajorBisc@wlan-145-94-218-48.wlan.tudelft.nl) |
2022-02-10 10:00:26 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
2022-02-10 10:11:25 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-02-10 10:11:25 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-02-10 10:11:25 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-02-10 10:12:45 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 10:13:15 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:30cc:b923:a3cb:c39c) (Remote host closed the connection) |
2022-02-10 10:15:17 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
2022-02-10 10:16:26 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-10 10:16:38 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
2022-02-10 10:17:12 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2022-02-10 10:17:44 +0100 | zaquest | (~notzaques@5.130.79.72) (Remote host closed the connection) |
2022-02-10 10:18:56 +0100 | zaquest | (~notzaques@5.130.79.72) |
2022-02-10 10:19:28 +0100 | foul_owl | (~kerry@71.212.148.11) (Ping timeout: 256 seconds) |
2022-02-10 10:19:28 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
2022-02-10 10:19:36 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-10 10:23:16 +0100 | chenqisu1 | (~chenqisu1@183.217.200.249) (Quit: Leaving) |
2022-02-10 10:24:43 +0100 | xsperry | (~xs@user/xsperry) (Ping timeout: 250 seconds) |
2022-02-10 10:26:15 +0100 | chenqisu1 | (~chenqisu1@183.217.200.249) |
2022-02-10 10:30:21 +0100 | chele | (~chele@user/chele) (Ping timeout: 250 seconds) |
2022-02-10 10:32:50 +0100 | xsperry | (~xs@user/xsperry) |
2022-02-10 10:34:08 +0100 | dschrempf | (~dominik@mobiledyn-62-240-134-109.mrsn.at) |
2022-02-10 10:34:21 +0100 | foul_owl | (~kerry@94.140.8.194) |
2022-02-10 10:34:33 +0100 | sektor|3 | (~kvirc@94.155.193.66) |
2022-02-10 10:34:56 +0100 | sektor|4 | (~kvirc@94.155.193.66) |
2022-02-10 10:35:01 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
2022-02-10 10:36:37 +0100 | sektor|2 | (~kvirc@87.227.175.182) (Ping timeout: 240 seconds) |
2022-02-10 10:37:08 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-10 10:38:37 +0100 | sektor|3 | (~kvirc@94.155.193.66) (Ping timeout: 240 seconds) |
2022-02-10 10:45:15 +0100 | AlexisTP | (~AlexisTP@92.57.44.63) |
2022-02-10 10:47:38 +0100 | cosimone | (~user@93-47-228-191.ip115.fastwebnet.it) (Remote host closed the connection) |
2022-02-10 10:48:42 +0100 | tzh_ | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2022-02-10 10:49:48 +0100 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.3) |
2022-02-10 10:56:34 +0100 | ubert1 | (~Thunderbi@2a02:8109:9880:303c:3eb6:2526:d971:8214) |
2022-02-10 10:57:41 +0100 | ardell | (~ardell@user/ardell) (Quit: Konversation terminated!) |
2022-02-10 10:58:33 +0100 | ardell | (~ardell@user/ardell) |
2022-02-10 10:59:29 +0100 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2022-02-10 11:00:29 +0100 | ardell | (~ardell@user/ardell) (Client Quit) |
2022-02-10 11:00:33 +0100 | __monty__ | (~toonn@user/toonn) |
2022-02-10 11:00:58 +0100 | Akiva | (~Akiva@user/Akiva) (Ping timeout: 260 seconds) |
2022-02-10 11:01:06 +0100 | grgz | (~grgz@grgz.me) |
2022-02-10 11:03:43 +0100 | mastarija | (~mastarija@2a05:4f46:e04:6000:15fe:cab1:6fd:b807) |
2022-02-10 11:05:07 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 256 seconds) |
2022-02-10 11:06:13 +0100 | foul_owl | (~kerry@94.140.8.194) (Ping timeout: 240 seconds) |
2022-02-10 11:06:49 +0100 | motherfsck | (~motherfsc@user/motherfsck) (Ping timeout: 256 seconds) |
2022-02-10 11:13:38 +0100 | drdo | (~drdo@roach0.drdo.eu) (Quit: Ping timeout (120 seconds)) |
2022-02-10 11:13:50 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:30cc:b923:a3cb:c39c) |
2022-02-10 11:15:49 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2022-02-10 11:17:36 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 250 seconds) |
2022-02-10 11:17:38 +0100 | drdo | (~drdo@roach0.drdo.eu) |
2022-02-10 11:18:16 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:30cc:b923:a3cb:c39c) (Ping timeout: 245 seconds) |
2022-02-10 11:19:13 +0100 | nschoe | (~quassel@178.251.84.79) |
2022-02-10 11:19:14 +0100 | motherfsck | (~motherfsc@user/motherfsck) |
2022-02-10 11:20:09 +0100 | foul_owl | (~kerry@71.212.133.174) |
2022-02-10 11:21:34 +0100 | cfricke | (~cfricke@user/cfricke) |
2022-02-10 11:26:25 +0100 | m5zs7k | (aquares@web10.mydevil.net) (Ping timeout: 256 seconds) |
2022-02-10 11:27:28 +0100 | m5zs7k | (aquares@web10.mydevil.net) |
2022-02-10 11:32:30 +0100 | Kaipi | (~Kaiepi@156.34.47.253) |
2022-02-10 11:32:56 +0100 | xstill-8 | (xstill@fimu/xstill) |
2022-02-10 11:33:21 +0100 | lep- | (~lep@94.31.89.203) |
2022-02-10 11:34:35 +0100 | dobblego | (~dibblego@122-199-1-30.ip4.superloop.com) |
2022-02-10 11:34:35 +0100 | dobblego | (~dibblego@122-199-1-30.ip4.superloop.com) (Changing host) |
2022-02-10 11:34:35 +0100 | dobblego | (~dibblego@haskell/developer/dibblego) |
2022-02-10 11:34:55 +0100 | nschoe_ | (~quassel@178.251.84.79) |
2022-02-10 11:35:04 +0100 | turlando_ | (~turlando@93-42-250-112.ip89.fastwebnet.it) |
2022-02-10 11:35:05 +0100 | hgolden_ | (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) |
2022-02-10 11:35:34 +0100 | ft_ | (~ft@shell.chaostreff-dortmund.de) |
2022-02-10 11:35:35 +0100 | [exa]_ | (exa@srv3.blesmrt.net) |
2022-02-10 11:35:40 +0100 | Vq_ | (~vq@90-227-195-41-no77.tbcn.telia.com) |
2022-02-10 11:36:12 +0100 | fryguybo1 | (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) |
2022-02-10 11:36:13 +0100 | janus__ | (janus@anubis.0x90.dk) |
2022-02-10 11:36:20 +0100 | ayako | (~bnq@66-37-19-52.phx.onelemur.com) |
2022-02-10 11:36:23 +0100 | Maxdaman1us | (~Maxdamant@user/maxdamantus) |
2022-02-10 11:36:24 +0100 | pooryori1k | (~pooryoric@87-119-174-173.tll.elisa.ee) |
2022-02-10 11:36:28 +0100 | xdej_ | (~xdej@quatramaran.salle-s.org) |
2022-02-10 11:36:41 +0100 | mikoto-c1 | (~mikoto-ch@84.199.144.235) |
2022-02-10 11:36:41 +0100 | abrar_ | (~abrar@static-108-2-152-54.phlapa.fios.verizon.net) |
2022-02-10 11:36:44 +0100 | sudden | (~cat@h-98-128-128-173.A351.priv.bahnhof.se) |
2022-02-10 11:36:53 +0100 | wei2912_ | (~wei2912@138.75.71.147) |
2022-02-10 11:36:55 +0100 | dhouthoo_ | (~dhouthoo@178-117-36-167.access.telenet.be) |
2022-02-10 11:36:57 +0100 | marquis_1ndras | (~marquis_a@124.170.163.166) |
2022-02-10 11:37:08 +0100 | sudden | Guest3567 |
2022-02-10 11:38:16 +0100 | infinity0_ | (~infinity0@occupy.ecodis.net) |
2022-02-10 11:38:16 +0100 | infinity0 | (~infinity0@occupy.ecodis.net) (Killed (tantalum.libera.chat (Nickname regained by services))) |
2022-02-10 11:38:16 +0100 | infinity0_ | infinity0 |
2022-02-10 11:40:40 +0100 | TheCoffeMaker_ | (~TheCoffeM@200.126.129.149) |
2022-02-10 11:41:02 +0100 | nschoe | (~quassel@178.251.84.79) (*.net *.split) |
2022-02-10 11:41:02 +0100 | foul_owl | (~kerry@71.212.133.174) (*.net *.split) |
2022-02-10 11:41:02 +0100 | drdo | (~drdo@roach0.drdo.eu) (*.net *.split) |
2022-02-10 11:41:02 +0100 | mikoto-chan | (~mikoto-ch@84.199.144.235) (*.net *.split) |
2022-02-10 11:41:02 +0100 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (*.net *.split) |
2022-02-10 11:41:02 +0100 | wei2912 | (~wei2912@138.75.71.147) (*.net *.split) |
2022-02-10 11:41:02 +0100 | Midjak | (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (*.net *.split) |
2022-02-10 11:41:02 +0100 | aforemny | (~aforemny@static.248.158.34.188.clients.your-server.de) (*.net *.split) |
2022-02-10 11:41:02 +0100 | ishutin | (~ishutin@193-110-63-21.cable-modem.hdsnet.hu) (*.net *.split) |
2022-02-10 11:41:02 +0100 | hgolden | (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (*.net *.split) |
2022-02-10 11:41:02 +0100 | superbil | (~superbil@1-34-176-171.hinet-ip.hinet.net) (*.net *.split) |
2022-02-10 11:41:02 +0100 | bliminse | (~bliminse@host86-158-241-239.range86-158.btcentralplus.com) (*.net *.split) |
2022-02-10 11:41:02 +0100 | elkcl | (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (*.net *.split) |
2022-02-10 11:41:02 +0100 | Kaiepi | (~Kaiepi@156.34.47.253) (*.net *.split) |
2022-02-10 11:41:03 +0100 | Vq | (~vq@90-227-195-41-no77.tbcn.telia.com) (*.net *.split) |
2022-02-10 11:41:03 +0100 | pooryorick | (~pooryoric@87-119-174-173.tll.elisa.ee) (*.net *.split) |
2022-02-10 11:41:03 +0100 | dibblego | (~dibblego@haskell/developer/dibblego) (*.net *.split) |
2022-02-10 11:41:03 +0100 | thebnq | (~bnq@66-37-19-52.phx.onelemur.com) (*.net *.split) |
2022-02-10 11:41:03 +0100 | [exa] | (~exa@user/exa/x-3587197) (*.net *.split) |
2022-02-10 11:41:03 +0100 | Philonous | (~Philonous@user/philonous) (*.net *.split) |
2022-02-10 11:41:03 +0100 | turlando | (~turlando@user/turlando) (*.net *.split) |
2022-02-10 11:41:03 +0100 | shachaf | (~shachaf@user/shachaf) (*.net *.split) |
2022-02-10 11:41:03 +0100 | maerwald | (~maerwald@user/maerwald) (*.net *.split) |
2022-02-10 11:41:03 +0100 | Guest6340 | (~cat@h-98-128-128-173.A351.priv.bahnhof.se) (*.net *.split) |
2022-02-10 11:41:03 +0100 | xdej | (~xdej@quatramaran.salle-s.org) (*.net *.split) |
2022-02-10 11:41:03 +0100 | red-snail | (~snail@static.151.210.203.116.clients.your-server.de) (*.net *.split) |
2022-02-10 11:41:03 +0100 | Hafydd | (~Hafydd@user/hafydd) (*.net *.split) |
2022-02-10 11:41:03 +0100 | aria | (sid380617@lymington.irccloud.com) (*.net *.split) |
2022-02-10 11:41:03 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (*.net *.split) |
2022-02-10 11:41:03 +0100 | ncopa | (~ncopa@alpine/developer/ncopa) (*.net *.split) |
2022-02-10 11:41:03 +0100 | lep | (~lep@94.31.89.203) (*.net *.split) |
2022-02-10 11:41:03 +0100 | ft | (~ft@shell.chaostreff-dortmund.de) (*.net *.split) |
2022-02-10 11:41:03 +0100 | janus | (janus@anubis.0x90.dk) (*.net *.split) |
2022-02-10 11:41:03 +0100 | russruss | (~russruss@my.russellmcc.com) (*.net *.split) |
2022-02-10 11:41:03 +0100 | tv | (~tv@user/tv) (*.net *.split) |
2022-02-10 11:41:03 +0100 | robertm | (~robertm@lattice.rojoma.com) (*.net *.split) |
2022-02-10 11:41:03 +0100 | swistak | (~swistak@185.21.216.141) (*.net *.split) |
2022-02-10 11:41:03 +0100 | wz1000 | (~zubin@static.11.113.47.78.clients.your-server.de) (*.net *.split) |
2022-02-10 11:41:03 +0100 | marquis_andras | (~marquis_a@124.170.163.166) (*.net *.split) |
2022-02-10 11:41:03 +0100 | justGhost | (~justache@user/justache) (*.net *.split) |
2022-02-10 11:41:03 +0100 | Maxdamantus | (~Maxdamant@user/maxdamantus) (*.net *.split) |
2022-02-10 11:41:03 +0100 | stvc | (~stvc@192.241.166.39) (*.net *.split) |
2022-02-10 11:41:03 +0100 | cls | (~cls@chalk.lubutu.com) (*.net *.split) |
2022-02-10 11:41:03 +0100 | cross_ | (~cross@spitfire.i.gajendra.net) (*.net *.split) |
2022-02-10 11:41:03 +0100 | skewerr | (spoonm@inaba.spoonm.org) (*.net *.split) |
2022-02-10 11:41:03 +0100 | drewr | (~drew@user/drewr) (*.net *.split) |
2022-02-10 11:41:03 +0100 | fryguybob | (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) (*.net *.split) |
2022-02-10 11:41:03 +0100 | haskl | (~haskl@user/haskl) (*.net *.split) |
2022-02-10 11:41:03 +0100 | xstill- | (xstill@fimu/xstill) (*.net *.split) |
2022-02-10 11:41:03 +0100 | xsarnik | (xsarnik@lounge.fi.muni.cz) (*.net *.split) |
2022-02-10 11:41:03 +0100 | abrar | (~abrar@static-108-2-152-54.phlapa.fios.verizon.net) (*.net *.split) |
2022-02-10 11:41:03 +0100 | kmein | (~weechat@user/kmein) (*.net *.split) |
2022-02-10 11:41:03 +0100 | c_wraith | (~c_wraith@adjoint.us) (*.net *.split) |
2022-02-10 11:41:03 +0100 | statusfailed | (~statusfai@statusfailed.com) (*.net *.split) |
2022-02-10 11:41:03 +0100 | canta | (~canta@user/canta) (*.net *.split) |
2022-02-10 11:41:03 +0100 | dminuoso | (~dminuoso@user/dminuoso) (*.net *.split) |
2022-02-10 11:41:03 +0100 | juri_ | (~juri@178.63.35.222) (*.net *.split) |
2022-02-10 11:41:03 +0100 | tolt | (~weechat-h@li219-154.members.linode.com) (*.net *.split) |
2022-02-10 11:41:03 +0100 | mmaruseacph2 | (~mihai@198.199.100.72) (*.net *.split) |
2022-02-10 11:41:03 +0100 | meejah | (~meejah@rutas.meejah.ca) (*.net *.split) |
2022-02-10 11:41:03 +0100 | andjjj23_ | (~irc@107.170.228.47) (*.net *.split) |
2022-02-10 11:41:03 +0100 | neverwas | (jpneverwas@swissbox.unperson.link) (*.net *.split) |
2022-02-10 11:41:03 +0100 | n3t | (n3t@user/n3t) (*.net *.split) |
2022-02-10 11:41:03 +0100 | loonycyborg | (~loonycybo@wesnoth/developer/loonycyborg) (*.net *.split) |
2022-02-10 11:41:03 +0100 | ByronJohnson | (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (*.net *.split) |
2022-02-10 11:41:03 +0100 | carter | (sid14827@helmsley.irccloud.com) (*.net *.split) |
2022-02-10 11:41:03 +0100 | TMA | (~tma@twin.jikos.cz) (*.net *.split) |
2022-02-10 11:41:03 +0100 | hubvu_ | (sid495858@tinside.irccloud.com) (*.net *.split) |
2022-02-10 11:41:03 +0100 | jtmar | (~james@jtmar.me) (*.net *.split) |
2022-02-10 11:41:03 +0100 | kawpuh | (~kawpuh@66.42.81.80) (*.net *.split) |
2022-02-10 11:41:06 +0100 | xstill-8 | xstill- |
2022-02-10 11:41:09 +0100 | ft_ | ft |
2022-02-10 11:41:09 +0100 | dobblego | dibblego |
2022-02-10 11:41:26 +0100 | sektor|2 | (~kvirc@87.227.175.182) |
2022-02-10 11:41:57 +0100 | elkcl | (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) |
2022-02-10 11:42:12 +0100 | xsarnik | (xsarnik@lounge.fi.muni.cz) |
2022-02-10 11:44:13 +0100 | AlexisTP | (~AlexisTP@92.57.44.63) (Ping timeout: 256 seconds) |
2022-02-10 11:44:40 +0100 | Maxdaman1us | Maxdamantus |
2022-02-10 11:45:31 +0100 | sektor|4 | (~kvirc@94.155.193.66) (Ping timeout: 250 seconds) |
2022-02-10 11:46:12 +0100 | drdo | (~drdo@roach0.drdo.eu) |
2022-02-10 11:46:12 +0100 | Midjak | (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) |
2022-02-10 11:46:12 +0100 | aforemny | (~aforemny@static.248.158.34.188.clients.your-server.de) |
2022-02-10 11:46:12 +0100 | ishutin | (~ishutin@193-110-63-21.cable-modem.hdsnet.hu) |
2022-02-10 11:46:12 +0100 | bliminse | (~bliminse@host86-158-241-239.range86-158.btcentralplus.com) |
2022-02-10 11:46:12 +0100 | Philonous | (~Philonous@user/philonous) |
2022-02-10 11:46:12 +0100 | shachaf | (~shachaf@user/shachaf) |
2022-02-10 11:46:12 +0100 | maerwald | (~maerwald@user/maerwald) |
2022-02-10 11:46:12 +0100 | red-snail | (~snail@static.151.210.203.116.clients.your-server.de) |
2022-02-10 11:46:12 +0100 | aria | (sid380617@lymington.irccloud.com) |
2022-02-10 11:46:12 +0100 | ncopa | (~ncopa@alpine/developer/ncopa) |
2022-02-10 11:46:12 +0100 | russruss | (~russruss@my.russellmcc.com) |
2022-02-10 11:46:12 +0100 | robertm | (~robertm@lattice.rojoma.com) |
2022-02-10 11:46:12 +0100 | swistak | (~swistak@185.21.216.141) |
2022-02-10 11:46:12 +0100 | wz1000 | (~zubin@static.11.113.47.78.clients.your-server.de) |
2022-02-10 11:46:12 +0100 | justGhost | (~justache@user/justache) |
2022-02-10 11:46:12 +0100 | stvc | (~stvc@192.241.166.39) |
2022-02-10 11:46:12 +0100 | cls | (~cls@chalk.lubutu.com) |
2022-02-10 11:46:12 +0100 | cross_ | (~cross@spitfire.i.gajendra.net) |
2022-02-10 11:46:12 +0100 | skewerr | (spoonm@inaba.spoonm.org) |
2022-02-10 11:46:12 +0100 | haskl | (~haskl@user/haskl) |
2022-02-10 11:46:12 +0100 | kmein | (~weechat@user/kmein) |
2022-02-10 11:46:12 +0100 | c_wraith | (~c_wraith@adjoint.us) |
2022-02-10 11:46:12 +0100 | statusfailed | (~statusfai@statusfailed.com) |
2022-02-10 11:46:12 +0100 | canta | (~canta@user/canta) |
2022-02-10 11:46:12 +0100 | dminuoso | (~dminuoso@user/dminuoso) |
2022-02-10 11:46:12 +0100 | juri_ | (~juri@178.63.35.222) |
2022-02-10 11:46:12 +0100 | tolt | (~weechat-h@li219-154.members.linode.com) |
2022-02-10 11:46:12 +0100 | mmaruseacph2 | (~mihai@198.199.100.72) |
2022-02-10 11:46:12 +0100 | meejah | (~meejah@rutas.meejah.ca) |
2022-02-10 11:46:12 +0100 | andjjj23_ | (~irc@107.170.228.47) |
2022-02-10 11:46:12 +0100 | neverwas | (jpneverwas@swissbox.unperson.link) |
2022-02-10 11:46:12 +0100 | n3t | (n3t@user/n3t) |
2022-02-10 11:46:12 +0100 | loonycyborg | (~loonycybo@wesnoth/developer/loonycyborg) |
2022-02-10 11:46:12 +0100 | ByronJohnson | (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) |
2022-02-10 11:46:12 +0100 | carter | (sid14827@helmsley.irccloud.com) |
2022-02-10 11:46:12 +0100 | TMA | (~tma@twin.jikos.cz) |
2022-02-10 11:46:12 +0100 | hubvu_ | (sid495858@tinside.irccloud.com) |
2022-02-10 11:46:12 +0100 | jtmar | (~james@jtmar.me) |
2022-02-10 11:46:12 +0100 | kawpuh | (~kawpuh@66.42.81.80) |
2022-02-10 11:46:14 +0100 | d34df00d | (~d34df00d@2600:1700:8c60:3a10::48) (Excess Flood) |
2022-02-10 11:46:39 +0100 | sektor|3 | (~kvirc@94.155.193.66) |
2022-02-10 11:47:35 +0100 | lep- | lep |
2022-02-10 11:47:37 +0100 | superbil | (~superbil@1-34-176-171.hinet-ip.hinet.net) |
2022-02-10 11:48:08 +0100 | tv | (~tv@user/tv) |
2022-02-10 11:48:17 +0100 | Hafydd | (~Hafydd@user/hafydd) |
2022-02-10 11:48:28 +0100 | drewr | (~drew@user/drewr) |
2022-02-10 11:48:54 +0100 | shapr | (~user@pool-173-73-44-186.washdc.fios.verizon.net) (Remote host closed the connection) |
2022-02-10 11:49:07 +0100 | shapr | (~user@pool-173-73-44-186.washdc.fios.verizon.net) |
2022-02-10 11:49:24 +0100 | foul_owl | (~kerry@71.212.133.174) |
2022-02-10 11:50:05 +0100 | sektor|2 | (~kvirc@87.227.175.182) (Ping timeout: 252 seconds) |
2022-02-10 11:56:10 +0100 | jgeerds | (~jgeerds@55d4a547.access.ecotel.net) |
2022-02-10 11:58:23 +0100 | yauhsien | (~yauhsien@61-231-45-223.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-02-10 11:58:57 +0100 | yauhsien | (~yauhsien@61-231-45-223.dynamic-ip.hinet.net) |
2022-02-10 11:59:01 +0100 | yauhsien | (~yauhsien@61-231-45-223.dynamic-ip.hinet.net) (Remote host closed the connection) |
2022-02-10 11:59:59 +0100 | mmhat | (~mmh@55d4d1e3.access.ecotel.net) |
2022-02-10 12:00:37 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds) |
2022-02-10 12:01:38 +0100 | <Andrew> | ( |
2022-02-10 12:01:45 +0100 | <Andrew> | Er sry, misconfigured client |
2022-02-10 12:03:29 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2022-02-10 12:04:57 +0100 | mvk | (~mvk@2607:fea8:5cdc:bf00::5483) (Ping timeout: 240 seconds) |
2022-02-10 12:06:17 +0100 | pooryori1k | yoric |
2022-02-10 12:06:20 +0100 | yoric | pooryorick |
2022-02-10 12:10:17 +0100 | td_ | (~td@94.134.91.205) (Ping timeout: 256 seconds) |
2022-02-10 12:11:46 +0100 | td_ | (~td@94.134.91.3) |
2022-02-10 12:12:57 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 240 seconds) |
2022-02-10 12:14:40 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 12:15:12 +0100 | chele | (~chele@user/chele) |
2022-02-10 12:16:31 +0100 | dschrempf | (~dominik@mobiledyn-62-240-134-109.mrsn.at) (Ping timeout: 250 seconds) |
2022-02-10 12:19:08 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
2022-02-10 12:20:01 +0100 | mmhat | (~mmh@55d4d1e3.access.ecotel.net) (Quit: WeeChat 3.4) |
2022-02-10 12:22:36 +0100 | xkuru | (~xkuru@user/xkuru) |
2022-02-10 12:25:09 +0100 | cosimone | (~user@93-47-228-191.ip115.fastwebnet.it) |
2022-02-10 12:25:34 +0100 | jalil | (~jalil@2a01:e0a:277:4100:4b34:f28b:c1d1:3941) |
2022-02-10 12:28:53 +0100 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2022-02-10 12:31:11 +0100 | Jing | (~hedgehog@240e:390:7c53:a7e1:3c97:bf3a:3e4c:7eb2) |
2022-02-10 12:31:42 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-02-10 12:34:42 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2022-02-10 12:36:02 +0100 | Unhammer | (~Unhammer@user/unhammer) (Ping timeout: 250 seconds) |
2022-02-10 12:37:29 +0100 | cynomys | (~cynomys@user/cynomys) (Ping timeout: 256 seconds) |
2022-02-10 12:38:56 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-02-10 12:40:21 +0100 | Guest|10 | (~Guest|10@138-38-206-67.eduroam.bath.ac.uk) |
2022-02-10 12:40:48 +0100 | Guest|10 | (~Guest|10@138-38-206-67.eduroam.bath.ac.uk) (Client Quit) |
2022-02-10 12:47:49 +0100 | ubert1 | (~Thunderbi@2a02:8109:9880:303c:3eb6:2526:d971:8214) (Ping timeout: 240 seconds) |
2022-02-10 12:51:00 +0100 | Unhammer | (~Unhammer@user/unhammer) |
2022-02-10 12:51:26 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-02-10 12:54:06 +0100 | fef | (~thedawn@user/thedawn) (Ping timeout: 276 seconds) |
2022-02-10 12:54:27 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) |
2022-02-10 12:56:12 +0100 | phma | (~phma@2001:5b0:211f:d758:6f18:ab28:6bcc:58fd) (Read error: Connection reset by peer) |
2022-02-10 12:56:15 +0100 | Putonlalla | (~sapekiis@it-cyan.it.jyu.fi) (Quit: Leaving.) |
2022-02-10 12:57:11 +0100 | foul_owl | (~kerry@71.212.133.174) (Ping timeout: 252 seconds) |
2022-02-10 12:57:54 +0100 | phma | (~phma@host-67-44-209-72.hnremote.net) |
2022-02-10 12:59:43 +0100 | <ProfSimm> | In Haskell when I define a function for input 0 and then input any int, it'll first match 0. Doesn't this make order of execution significant. |
2022-02-10 13:00:42 +0100 | <sshine> | ProfSimm, yes |
2022-02-10 13:00:54 +0100 | <Franciman> | only the order of the definitions matters, yes |
2022-02-10 13:01:13 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-02-10 13:01:15 +0100 | <ProfSimm> | Well the order of the definitions defines the order of matching |
2022-02-10 13:01:26 +0100 | <Franciman> | yes |
2022-02-10 13:01:28 +0100 | <dminuoso> | ProfSimm: No, the order of execution is still not specified. |
2022-02-10 13:01:36 +0100 | lep | (~lep@94.31.89.203) () |
2022-02-10 13:01:39 +0100 | <Franciman> | oh |
2022-02-10 13:01:46 +0100 | <ProfSimm> | dminuoso: it's kinda specified semantically. |
2022-02-10 13:01:47 +0100 | <dminuoso> | ProfSimm: It's rather, it behaves as it if you cant tell the difference |
2022-02-10 13:01:58 +0100 | <ProfSimm> | Well that's "specified" in my book :) |
2022-02-10 13:02:08 +0100 | <Franciman> | what book is it, ProfSimm ? |
2022-02-10 13:02:09 +0100 | <dminuoso> | No, an implementation is still free to say execute other branches in parallel |
2022-02-10 13:02:45 +0100 | <Franciman> | dminuoso: how is the output determined? |
2022-02-10 13:03:42 +0100 | <dminuoso> | That's for the implementation left to decide. It's a similar reason why `seq` doesn't have an inherent ordering |
2022-02-10 13:03:54 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:adf2:7fd4:5ba2:8512) |
2022-02-10 13:04:08 +0100 | <dminuoso> | i.e. (seq x b) does not evaluate x before b, it just ensures x is evaluaetd. |
2022-02-10 13:04:21 +0100 | <dminuoso> | (GHC brings pseq which gives you that guarantee) |
2022-02-10 13:04:43 +0100 | <Franciman> | so if i define «f :: Int -> Int» as follows «f 1 = 2; f 2 = 4» |
2022-02-10 13:04:57 +0100 | <Franciman> | i can't know whether f 2 evaluates to 2 or 4 ? |
2022-02-10 13:05:01 +0100 | xff0x | (~xff0x@2001:1a81:53bc:500:bc1a:eecf:3ef6:1dbe) (Ping timeout: 240 seconds) |
2022-02-10 13:05:05 +0100 | <dminuoso> | And in fact the fact that seq doenst impose an ordering is subtly detectable |
2022-02-10 13:06:06 +0100 | xff0x | (~xff0x@2001:1a81:53bc:500:d58f:5284:91ba:f00d) |
2022-02-10 13:06:09 +0100 | <dminuoso> | Franciman: No rather, if you have `f 1 = <cheap-expr>; f x = <expensive-expr>`, you have no semantic guarantee the implementation wont waste exaluating <expensive-expr> speculatively |
2022-02-10 13:06:25 +0100 | <Franciman> | ah ok, this is more acceptable |
2022-02-10 13:06:25 +0100 | <dminuoso> | As long as `f 1` gives you the result of <cheap-expr> back |
2022-02-10 13:09:13 +0100 | <dminuoso> | The point is really to separate between the semantics of the language and the underlying execution model |
2022-02-10 13:10:23 +0100 | <dminuoso> | See [3.17.2 Informal Semantics of Pattern Matching](https://www.haskell.org/onlinereport/haskell2010/haskellch3.html) |
2022-02-10 13:10:41 +0100 | <dminuoso> | And 3.17.3 Formal Semantics of Pattern Matching |
2022-02-10 13:11:01 +0100 | <dminuoso> | The formal semantics are described just as a list of identity laws |
2022-02-10 13:11:01 +0100 | <Profpatsch> | conduit question: I have a Conduit x (a, b) m (), and a Conduit b b' m () |
2022-02-10 13:11:13 +0100 | <Profpatsch> | Can I only map the second conduit over the second part of the tuple somehow? |
2022-02-10 13:11:29 +0100 | <Profpatsch> | aka turn it into a Conduit (a, b) (a, b') m () ? |
2022-02-10 13:13:09 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
2022-02-10 13:13:11 +0100 | <dminuoso> | Profpatsch: Mmm, Im tempted to say you cant without a Monoid constraint on a |
2022-02-10 13:13:58 +0100 | <dminuoso> | Consider what happens if that second conduit awaits some |
2022-02-10 13:14:12 +0100 | <dminuoso> | Do you discard some of the fst elements? do you mappend them together? |
2022-02-10 13:14:23 +0100 | <Profpatsch> | dminuoso: okay, was expecting something like that |
2022-02-10 13:14:40 +0100 | <Profpatsch> | dminuoso: My X to this Y is that I have a stream of Lines, and I want to give each one a line number |
2022-02-10 13:14:51 +0100 | <Profpatsch> | but then afterwards I do a bunch of things to these lines |
2022-02-10 13:15:05 +0100 | <Profpatsch> | granted, if I stare hard enough maybe it’s just mapping |
2022-02-10 13:15:40 +0100 | <Profpatsch> | But yeah, makes intuitive sense that it’s not viable cause every Conduit can produce 0..n elements |
2022-02-10 13:15:59 +0100 | <Profpatsch> | I feel like I taught myself that when I wrote that code |
2022-02-10 13:16:01 +0100 | <Profpatsch> | but then forgot again |
2022-02-10 13:17:26 +0100 | <dminuoso> | Profpatsch: Does the second thing have to be a conduit? Or can it just be a kleisli arrow? |
2022-02-10 13:17:49 +0100 | <dminuoso> | Profpatsch: And no, its not about the production of elements, its rather about the consumption of them. |
2022-02-10 13:18:02 +0100 | <dminuoso> | or I guess the production is problematic too |
2022-02-10 13:18:32 +0100 | <dminuoso> | the conduit could await multiple elements but produce only one, or await one element but produce multiple ones |
2022-02-10 13:19:22 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 250 seconds) |
2022-02-10 13:20:51 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 250 seconds) |
2022-02-10 13:21:34 +0100 | Vq_ | Vq |
2022-02-10 13:22:49 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-10 13:23:57 +0100 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 256 seconds) |
2022-02-10 13:24:11 +0100 | <ProfSimm> | Does Haskell have a way to show people "this function overload will never run because a previous one shadows it" |
2022-02-10 13:24:45 +0100 | fef | (~thedawn@user/thedawn) |
2022-02-10 13:25:16 +0100 | <dminuoso> | ProfSimm: Enable -Wname-shadowing |
2022-02-10 13:25:20 +0100 | <dminuoso> | Or better yet -Wall -Wcompat |
2022-02-10 13:25:57 +0100 | Ariakenom | (~Ariakenom@h-82-196-111-63.NA.cust.bahnhof.se) (Ping timeout: 240 seconds) |
2022-02-10 13:27:24 +0100 | mei | (~mei@user/mei) |
2022-02-10 13:27:32 +0100 | <ProfSimm> | Can I read arguments like a stream of arbitrary size. |
2022-02-10 13:28:04 +0100 | <ski> | ProfSimm : it's not overloading |
2022-02-10 13:29:28 +0100 | notzmv | (~zmv@user/notzmv) |
2022-02-10 13:29:56 +0100 | <ski> | arguments ? |
2022-02-10 13:30:50 +0100 | AlexisTP | (~AlexisTP@92.57.44.63) |
2022-02-10 13:32:48 +0100 | <ProfSimm> | ski: sorry? |
2022-02-10 13:33:11 +0100 | <ski> | i dunno what you mean |
2022-02-10 13:33:26 +0100 | <ski> | also, all Haskell functions take exactly one argument |
2022-02-10 13:38:26 +0100 | drdo | (~drdo@roach0.drdo.eu) (Quit: Ping timeout (120 seconds)) |
2022-02-10 13:40:37 +0100 | [exa]_ | (exa@srv3.blesmrt.net) (Ping timeout: 240 seconds) |
2022-02-10 13:40:47 +0100 | drdo | (~drdo@roach0.drdo.eu) |
2022-02-10 13:41:01 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Remote host closed the connection) |
2022-02-10 13:41:12 +0100 | [exa] | (exa@srv3.blesmrt.net) |
2022-02-10 13:41:31 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-10 13:43:38 +0100 | <opqdonut> | ProfSimm: there's a warning for unreachable pattern matches |
2022-02-10 13:44:14 +0100 | <opqdonut> | enabled by -Woverlapping-patterns |
2022-02-10 13:44:17 +0100 | <opqdonut> | perhaps that's what you mean? |
2022-02-10 13:44:43 +0100 | Ariakenom | (~Ariakenom@2001:9b1:efe:9d00:a4bb:8490:782e:5c48) |
2022-02-10 13:44:57 +0100 | Andrew | likes having ghc aliased to ghc -Wall |
2022-02-10 13:45:40 +0100 | jgeerds_ | (~jgeerds@55d4a547.access.ecotel.net) |
2022-02-10 13:46:02 +0100 | mikoto-c1 | (~mikoto-ch@84.199.144.235) (Quit: mikoto-c1) |
2022-02-10 13:47:06 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds) |
2022-02-10 13:47:18 +0100 | sektor|2 | (~kvirc@87.227.175.182) |
2022-02-10 13:48:30 +0100 | jgeerds | (~jgeerds@55d4a547.access.ecotel.net) (Ping timeout: 260 seconds) |
2022-02-10 13:48:37 +0100 | chenqisu1 | (~chenqisu1@183.217.200.249) (Ping timeout: 240 seconds) |
2022-02-10 13:48:40 +0100 | <ProfSimm> | opqdonut: yes thanks, is there a reason this is an option |
2022-02-10 13:48:42 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds) |
2022-02-10 13:50:21 +0100 | sektor|3 | (~kvirc@94.155.193.66) (Ping timeout: 256 seconds) |
2022-02-10 13:50:26 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2022-02-10 13:50:27 +0100 | <Profpatsch> | dminuoso: yeah, in Conduits pretty much anything can happen |
2022-02-10 13:50:30 +0100 | bliminse | (~bliminse@host86-158-241-239.range86-158.btcentralplus.com) (Quit: leaving) |
2022-02-10 13:50:46 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 245 seconds) |
2022-02-10 13:50:54 +0100 | monaaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-10 13:54:49 +0100 | Ariakenom_ | (~Ariakenom@h-82-196-111-63.NA.cust.bahnhof.se) |
2022-02-10 13:57:34 +0100 | bliminse | (~bliminse@host86-158-241-239.range86-158.btcentralplus.com) |
2022-02-10 13:57:43 +0100 | <opqdonut> | ProfSimm: I guess it's just programming tradition that many useful warnings are disabled by default. As Andrew said, many people like to run with -Wall, i.e. all warnings turned on |
2022-02-10 13:58:22 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:f0ed:5941:868e:9ada) (Quit: WeeChat 2.8) |
2022-02-10 13:58:23 +0100 | <Andrew> | Bad traditions, again |
2022-02-10 13:58:41 +0100 | Ariakenom | (~Ariakenom@2001:9b1:efe:9d00:a4bb:8490:782e:5c48) (Ping timeout: 245 seconds) |
2022-02-10 13:58:45 +0100 | <Andrew> | Haskell is better in this regards for at least enforcing type problems in compile time. |
2022-02-10 13:58:54 +0100 | <opqdonut> | I guess Rust has lots of warnings enabled by default? And lots of things like unreachable code are errors instead of warnings? |
2022-02-10 13:59:17 +0100 | <Ariakenom_> | -Wall also never means all |
2022-02-10 13:59:24 +0100 | <ProfSimm> | Interesting tradition, to have a language detect problems and you ignore that. |
2022-02-10 13:59:31 +0100 | Andrew | suddenly notices No manual entry for ghc |
2022-02-10 13:59:42 +0100 | <Andrew> | Yup |
2022-02-10 13:59:58 +0100 | <opqdonut> | Ariakenom_: yeah, that too |
2022-02-10 14:00:41 +0100 | <Andrew> | -Weverything? |
2022-02-10 14:01:24 +0100 | <opqdonut> | ProfSimm: I guess the real answer here is that 1) you can't make overlapping patterns an error, because that would break backwards compatibility. code that used to compile might not compile any more. 2) you can't turn on the warning by default, because some build systems treat warnings as errors, and again, you might fail somebody's build |
2022-02-10 14:01:41 +0100 | alp | (~alp@user/alp) (Ping timeout: 256 seconds) |
2022-02-10 14:01:46 +0100 | <opqdonut> | those are arguably bad reasons, but I think they're the reasons |
2022-02-10 14:02:03 +0100 | <Andrew> | (BadReason "Break backwards compatibility") |
2022-02-10 14:02:06 +0100 | <Andrew> | Yeah |
2022-02-10 14:02:18 +0100 | <Andrew> | It's like keeping old bugs because they'll break compatibility |
2022-02-10 14:02:31 +0100 | <Andrew> | I like how Python just stays with those issues, but not until the next major breaking release |
2022-02-10 14:02:40 +0100 | <ProfSimm> | The solution is to compile despite errors :P |
2022-02-10 14:02:44 +0100 | <Andrew> | Having breaking releases once in a while sounds helpful |
2022-02-10 14:02:45 +0100 | <ProfSimm> | But always show errors |
2022-02-10 14:02:54 +0100 | <Andrew> | ProfSimm: Then they're warnings |
2022-02-10 14:03:13 +0100 | <Andrew> | Or just roll out new standards, and give compilers a flag for each standard |
2022-02-10 14:03:16 +0100 | <Andrew> | * option, whatever |
2022-02-10 14:03:17 +0100 | <ProfSimm> | Andrew: "some systems treat warnings as errors" |
2022-02-10 14:03:39 +0100 | <Andrew> | I like my compiler output to be clean |
2022-02-10 14:09:53 +0100 | sektor|3 | (~kvirc@94.155.193.66) |
2022-02-10 14:11:40 +0100 | slack1256 | (~slack1256@191.126.227.64) |
2022-02-10 14:11:51 +0100 | vysn | (~vysn@user/vysn) (Quit: WeeChat 3.4) |
2022-02-10 14:12:22 +0100 | <ProfSimm> | Can I pass the same input to N functions simultaneously. |
2022-02-10 14:13:42 +0100 | sektor|2 | (~kvirc@87.227.175.182) (Ping timeout: 260 seconds) |
2022-02-10 14:14:48 +0100 | <Ariakenom_> | you can just map |
2022-02-10 14:15:22 +0100 | <sshine> | ProfSimm, what do you mean by simultaneously? |
2022-02-10 14:15:50 +0100 | wei2912_ | (~wei2912@138.75.71.147) (Remote host closed the connection) |
2022-02-10 14:16:56 +0100 | <sshine> | ProfSimm, f x `par` g x `par` h x? |
2022-02-10 14:18:14 +0100 | alp | (~alp@user/alp) |
2022-02-10 14:23:00 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2022-02-10 14:24:06 +0100 | CiaoSen | (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2022-02-10 14:25:03 +0100 | <Andrew> | Map, but feels reversed |
2022-02-10 14:25:16 +0100 | <Andrew> | ProfSimm: I expect that you want to store the output in a list? |
2022-02-10 14:30:04 +0100 | <ProfSimm> | Andrew: yeah it's kinda like a reverse map |
2022-02-10 14:30:13 +0100 | Graham31415 | (~Graham314@213.237.82.193) |
2022-02-10 14:30:29 +0100 | <Andrew> | Yeh, if he's using functions, i expect him to want the output somewhere, probably a list |
2022-02-10 14:31:22 +0100 | <ProfSimm> | technically like a normal map if we pass to map a function that applies the same arguments |
2022-02-10 14:35:01 +0100 | yhsiveht | (~Nishant@2405:201:f005:c007:51b9:2550:9b70:b031) |
2022-02-10 14:35:02 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-02-10 14:35:37 +0100 | thevishy | (~Nishant@2405:201:f005:c007:6cf1:7245:a05f:ea21) (Ping timeout: 240 seconds) |
2022-02-10 14:36:42 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2022-02-10 14:36:56 +0100 | <Ariakenom_> | ProfSimm exactly. "map ($argument)" if you wanna be terse |
2022-02-10 14:38:04 +0100 | <Graham31415> | When using RIO's logger functions, is there a simple way to print out strings intermixed with computed values? e.g. `main = runSimpleApp $ let x = 5 in logInfo $ "Hello, " ++ (show x)` doesn't type check. Getting this to output something seems to require two conversions, e.g. `main = runSimpleApp $ let x = 5 in logInfo $ display $ pack $ "Hello, " |
2022-02-10 14:38:05 +0100 | <Graham31415> | <> (show x)`. This seems quite tortuous. Am I missing something obvious? |
2022-02-10 14:39:05 +0100 | max22- | (~maxime@2a01cb0883359800593582f16039b0e0.ipv6.abo.wanadoo.fr) (Ping timeout: 256 seconds) |
2022-02-10 14:40:50 +0100 | <lyxia> | "Hello, " <> display x with OverloadedStrings |
2022-02-10 14:41:27 +0100 | <dminuoso> | libffi.so.8 => /nix/store/dpikrpi38md4fyw8aakdcbylywwb0nsc-libffi-3.4.2/lib/libffi.so.8 (0x00007fbbe8d72000) |
2022-02-10 14:41:37 +0100 | monaaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Remote host closed the connection) |
2022-02-10 14:41:44 +0100 | <dminuoso> | So I've done a major nixos update, updated cabal and ghc as well. Now this thing appears in my resulting builds |
2022-02-10 14:41:53 +0100 | <Ariakenom_> | you can also replace show with something that gives you Text from 5 |
2022-02-10 14:41:56 +0100 | <dminuoso> | Where could this come from? |
2022-02-10 14:42:01 +0100 | monaaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-10 14:42:02 +0100 | <Graham31415> | lyxia, oh, that's much nicer. Thanks! |
2022-02-10 14:43:12 +0100 | <dminuoso> | Oh. GHC always links against libffi |
2022-02-10 14:43:27 +0100 | <Ariakenom_> | oh that something is display :p |
2022-02-10 14:44:42 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Read error: Connection reset by peer) |
2022-02-10 14:44:56 +0100 | <Graham31415> | lyxia: follow up Q. How does one identify the specific `<>` being used in this expression? Like, does one hunt down the type of "Hello ", or the type of `display x`? And then hunt through the instances and then look for the `<>` function? |
2022-02-10 14:45:43 +0100 | <geekosaur> | % :info <> |
2022-02-10 14:45:44 +0100 | <yahb> | geekosaur: type Semigroup :: * -> Constraint; class Semigroup a where; (<>) :: a -> a -> a; ...; -- Defined in `GHC.Base'; infixr 6 <> |
2022-02-10 14:46:30 +0100 | <geekosaur> | ghci can do much of that hunting for you,and what it can't hoogle can |
2022-02-10 14:47:19 +0100 | <Graham31415> | Ok, thanks. I guess I'm just missing the insight to think in albegraic terms here... |
2022-02-10 14:50:04 +0100 | <EvanR> | <> is one of the operators defined by default so it's good to know |
2022-02-10 14:50:39 +0100 | <EvanR> | you could say it's in a hypothetical table of "haskell operators" with their relative precedences (which we usually don't see) |
2022-02-10 14:50:50 +0100 | <EvanR> | (because haskell lets you define whatever operator) |
2022-02-10 14:51:16 +0100 | <EvanR> | (but there's only a handful available without importing anything so such a table could make sense ish) |
2022-02-10 14:51:47 +0100 | <geekosaur> | there'seven one in the haskell report |
2022-02-10 14:52:01 +0100 | <geekosaur> | (for precedences) |
2022-02-10 14:52:03 +0100 | <Graham31415> | And we can see that "something" composes (via <>) with `display x` because of OverloadedStrings? I would have to know that one of the Display instances matches one of the things that OverloadedStrings works with? |
2022-02-10 14:52:08 +0100 | <EvanR> | does it have <>? xD |
2022-02-10 14:52:20 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-02-10 14:52:21 +0100 | <geekosaur> | no, <> is post-2010 |
2022-02-10 14:52:43 +0100 | cosimone | (~user@93-47-228-191.ip115.fastwebnet.it) (Remote host closed the connection) |
2022-02-10 14:54:53 +0100 | <EvanR> | Graham31415, pack makes me think you are dealing with Text |
2022-02-10 14:55:06 +0100 | <EvanR> | yes OverloadedStrings means "something" is potentially a Text |
2022-02-10 14:55:16 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-02-10 14:55:30 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
2022-02-10 14:55:31 +0100 | cosimone | (~user@93-47-228-191.ip115.fastwebnet.it) |
2022-02-10 14:55:47 +0100 | <EvanR> | and <> is the goto way to ++ two Texteses |
2022-02-10 14:55:47 +0100 | jao | (~jao@static-68-235-44-24.cust.tzulo.com) |
2022-02-10 14:56:07 +0100 | <lyxia> | Graham31415: remember that Utf8Builder, like virtually all text-like types, is a monoid |
2022-02-10 14:56:10 +0100 | <Graham31415> | EvanR I do want to read from files using RIO too, for which I guess I'll be using `readFileUtf8` and getting `Text` in return. |
2022-02-10 14:56:11 +0100 | <akhesacaro> | be careful with OverloadedStrings |
2022-02-10 14:57:12 +0100 | <lyxia> | so the problem naturally breaks down into 'how to convert "Hello "' and 'how to convert x' |
2022-02-10 14:57:26 +0100 | AlexisTP | (~AlexisTP@92.57.44.63) (Remote host closed the connection) |
2022-02-10 14:57:54 +0100 | <geekosaur> | akhesacaro, why do you say that? It's no worse than numbers |
2022-02-10 14:58:50 +0100 | <Graham31415> | right, i get that they need to be converted to some common thing. I'm just too noob to know what my options are. |
2022-02-10 14:59:51 +0100 | fryguybo1 | (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) (Quit: leaving) |
2022-02-10 15:00:10 +0100 | <EvanR> | Text is not a bad idea if it's already in play and you can't decide |
2022-02-10 15:00:27 +0100 | fryguybob | (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) |
2022-02-10 15:00:58 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2022-02-10 15:01:29 +0100 | <Graham31415> | So, is there only one candiate for converting to common types, such that the compiler can't make the wrong assumption? In ambiguous cases, will the compiler just pick one (out of multiple candidates), or will the compiler bail out and ask for some more type info? |
2022-02-10 15:01:38 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2022-02-10 15:01:56 +0100 | <geekosaur> | if the compiler can't boil it down to exactly one type, it will report an ambiguous type error |
2022-02-10 15:02:07 +0100 | <Graham31415> | cool |
2022-02-10 15:02:12 +0100 | <geekosaur> | there's a defaulting mechanism you can use to help it choose in some cases |
2022-02-10 15:02:45 +0100 | <EvanR> | cool and also uncool, ambiguous types means valuable programmer attention required xD |
2022-02-10 15:02:57 +0100 | <EvanR> | but at least it won't do something random like javascript |
2022-02-10 15:03:54 +0100 | <geekosaur> | that's where defaulting can come in handy |
2022-02-10 15:04:18 +0100 | <Graham31415> | I'm getting the sense that I'll need to memorise a large part of the ecosystem in order to be even slightly productive. :( |
2022-02-10 15:05:07 +0100 | <dminuoso> | You dont. |
2022-02-10 15:05:14 +0100 | <EvanR> | in the sense of memorizing language to speak languages |
2022-02-10 15:05:22 +0100 | <cigsender> | :q |
2022-02-10 15:05:32 +0100 | cigsender | (~cigsender@74.124.58.162) (Quit: leaving) |
2022-02-10 15:05:38 +0100 | <EvanR> | more like picking up enough to figure out where the bathroom is xD |
2022-02-10 15:06:27 +0100 | <Andrew> | exit |
2022-02-10 15:07:08 +0100 | <geekosaur> | Graham31415, generally you'll find that things like use of Text will be specified ahead of time; even if you're picking up a random package poff of hackage you can inspect its dependencies |
2022-02-10 15:07:21 +0100 | <geekosaur> | there's only a few packages where you need to care about things like this |
2022-02-10 15:09:12 +0100 | <Graham31415> | On a related note: is there a `read` function that operates on Text, or should I accept that the Text needs to be `unpack`ed first? |
2022-02-10 15:10:19 +0100 | <EvanR> | or do you want a proper parser |
2022-02-10 15:11:12 +0100 | <EvanR> | another topic that likely "comes up pretty fast and soon" |
2022-02-10 15:11:38 +0100 | noctux | (~noctux@user/noctux) (Remote host closed the connection) |
2022-02-10 15:11:46 +0100 | <Graham31415> | i'm just doing dumb stuff for now. Reading some files under /proc/ and summarising some fields. |
2022-02-10 15:12:05 +0100 | <EvanR> | any reason it requires Text? xD |
2022-02-10 15:12:15 +0100 | <EvanR> | if it's dumb, might as well be real dumb |
2022-02-10 15:12:22 +0100 | slac25096 | (~slack1256@186.11.3.215) |
2022-02-10 15:12:43 +0100 | <EvanR> | the String IO functions also work with unicode |
2022-02-10 15:12:46 +0100 | <Graham31415> | i'm sure it doesn't, but i don't know what the best practices here are, and RIO claims to be best practices |
2022-02-10 15:12:52 +0100 | <EvanR> | RIO? |
2022-02-10 15:13:03 +0100 | razetime | (~quassel@49.207.198.36) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2022-02-10 15:13:10 +0100 | <Graham31415> | https://www.fpcomplete.com/haskell/library/rio/ |
2022-02-10 15:13:31 +0100 | Putonlalla | (~sapekiis@it-cyan.it.jyu.fi) |
2022-02-10 15:13:31 +0100 | <byorgey> | I think RIO is one of the alternative Preludes |
2022-02-10 15:13:39 +0100 | <byorgey> | https://hackage.haskell.org/package/rio |
2022-02-10 15:14:38 +0100 | slack1256 | (~slack1256@191.126.227.64) (Ping timeout: 250 seconds) |
2022-02-10 15:14:39 +0100 | <byorgey> | Graham31415: I don't think there's a version of 'read' that operates on Text, but you can easily define your own readT = read . unpack |
2022-02-10 15:14:43 +0100 | <sshine> | Graham31415, https://hackage.haskell.org/package/text-2.0/docs/Data-Text-Read.html |
2022-02-10 15:15:19 +0100 | <sshine> | byorgey, -^ |
2022-02-10 15:16:24 +0100 | <byorgey> | sshine: interesting. That's more limited than 'read', but it looks nice when you need to read some numbers. I didn't know that existed. |
2022-02-10 15:16:46 +0100 | <sshine> | on the other hand, there isn't a tshow :: Show a => a -> Text besides 'pack . show' |
2022-02-10 15:17:42 +0100 | <EvanR> | I'm not sure I'd file any alt prelude under best practices, except maybe when "best practice" is some reality distortion speak from higher up |
2022-02-10 15:18:52 +0100 | noctux | (~noctux@user/noctux) |
2022-02-10 15:19:06 +0100 | <sshine> | I guess if there were an alternative prelude that was definitely a best practice, it'd substitute Prelude. :) |
2022-02-10 15:19:57 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-02-10 15:19:57 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) (Read error: Connection reset by peer) |
2022-02-10 15:19:57 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-02-10 15:19:57 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-02-10 15:20:09 +0100 | vglfr | (~vglfr@coupling.penchant.volia.net) |
2022-02-10 15:20:48 +0100 | <sshine> | Graham31415, when you make an open-source library, depending on RIO can be pretty heavy because what if they use another alternative prelude? then depending on your tiny library suddenly results in two alternative preludes plus all of their transitive dependencies. |
2022-02-10 15:21:38 +0100 | <sshine> | Graham31415, when you make an app, then you can factor out all the stuff you might like to include in other apps into lightweight libraries, and for your app, since you don't expect that it'll become a library in itself, it can depend on something heavy that makes you happy, e.g. better defaults. |
2022-02-10 15:21:40 +0100 | <lyxia> | or you can not care and let it be other's people's problem |
2022-02-10 15:21:49 +0100 | <EvanR> | it's fine if you're dr strange and used to patching together multiverses while trying to get work done |
2022-02-10 15:22:19 +0100 | <Graham31415> | those are some nice points |
2022-02-10 15:22:48 +0100 | <sshine> | Graham31415, incidentally, people promoting RIO are app developers. |
2022-02-10 15:22:56 +0100 | <Graham31415> | sure |
2022-02-10 15:23:33 +0100 | anon66200164 | (~anon66200@host-92-19-99-147.as13285.net) |
2022-02-10 15:23:35 +0100 | jalil | (~jalil@2a01:e0a:277:4100:4b34:f28b:c1d1:3941) (Quit: jalil) |
2022-02-10 15:23:43 +0100 | jalil | (~jalil@2a01:e0a:277:4100:f726:20ac:8c7a:b279) |
2022-02-10 15:23:45 +0100 | <Graham31415> | i'm learning Haskell as an intellectual curiousity, not as a CS researcher nor as an app developer |
2022-02-10 15:24:12 +0100 | <Ariakenom_> | haskell is a great curiosity |
2022-02-10 15:24:21 +0100 | <Graham31415> | But I'd rather start by learning a consistent subset of the ecosystem. |
2022-02-10 15:24:30 +0100 | <lyxia> | it definitely kills cats |
2022-02-10 15:24:45 +0100 | anon66200164 | (~anon66200@host-92-19-99-147.as13285.net) (Remote host closed the connection) |
2022-02-10 15:24:46 +0100 | <EvanR> | the normal prelude is consistent |
2022-02-10 15:25:08 +0100 | anon66200164 | (~anon66200@host-92-19-99-147.as13285.net) |
2022-02-10 15:25:17 +0100 | <Graham31415> | Ok, no problem. You've convinced me to use the base Prelude. |
2022-02-10 15:25:32 +0100 | <Graham31415> | (at least until I understand the trade offs) |
2022-02-10 15:25:51 +0100 | <EvanR> | or not, you can surely parse /proc files however you want |
2022-02-10 15:26:20 +0100 | <Graham31415> | Yeah, I could use a shell script and I'd have been done in 90 seconds. |
2022-02-10 15:27:44 +0100 | <EvanR> | ah yes, a stringly typed language xD |
2022-02-10 15:30:16 +0100 | <EvanR> | see also shelly for haskell shell stuff |
2022-02-10 15:30:25 +0100 | Ranhir | (~Ranhir@157.97.53.139) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/) |
2022-02-10 15:30:43 +0100 | Pickchea | (~private@user/pickchea) |
2022-02-10 15:30:43 +0100 | shapr | (~user@pool-173-73-44-186.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
2022-02-10 15:31:48 +0100 | shapr | (~user@pool-173-73-44-186.washdc.fios.verizon.net) |
2022-02-10 15:32:20 +0100 | max22- | (~maxime@2a01cb08833598000823846d04004043.ipv6.abo.wanadoo.fr) |
2022-02-10 15:35:52 +0100 | jao | (~jao@static-68-235-44-24.cust.tzulo.com) (Ping timeout: 250 seconds) |
2022-02-10 15:37:01 +0100 | nschoe_ | (~quassel@178.251.84.79) (Ping timeout: 240 seconds) |
2022-02-10 15:38:35 +0100 | cosimone | (~user@93-47-228-191.ip115.fastwebnet.it) (Quit: ERC (IRC client for Emacs 27.1)) |
2022-02-10 15:38:37 +0100 | cfricke | (~cfricke@user/cfricke) |
2022-02-10 15:39:46 +0100 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) |
2022-02-10 15:39:47 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-02-10 15:39:52 +0100 | anon66200164 | (~anon66200@host-92-19-99-147.as13285.net) (Remote host closed the connection) |
2022-02-10 15:39:53 +0100 | <geekosaur> | /proc is more or less designed for shell script parsing |
2022-02-10 15:40:07 +0100 | <geekosaur> | or perl/python/etc. |
2022-02-10 15:40:09 +0100 | anon66200164 | (~anon66200@host-92-19-99-147.as13285.net) |
2022-02-10 15:40:33 +0100 | Ranhir | (~Ranhir@157.97.53.139) |
2022-02-10 15:48:42 +0100 | nschoe | (~quassel@178.251.84.79) |
2022-02-10 15:49:32 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2022-02-10 15:51:28 +0100 | zer0bitz | (~zer0bitz@2001:2003:f74d:b800:3c9b:6dce:e374:3130) (Read error: Connection reset by peer) |
2022-02-10 15:51:39 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds) |
2022-02-10 15:51:51 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2022-02-10 15:51:52 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2022-02-10 15:53:14 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
2022-02-10 15:55:42 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-02-10 15:55:42 +0100 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-02-10 15:55:42 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-02-10 15:56:05 +0100 | slack1256 | (~slack1256@191.125.227.88) |
2022-02-10 15:57:37 +0100 | mikoto-chan | (~mikoto-ch@213.177.151.239) |
2022-02-10 15:58:05 +0100 | slac25096 | (~slack1256@186.11.3.215) (Ping timeout: 256 seconds) |
2022-02-10 15:58:25 +0100 | janus__ | janus |
2022-02-10 15:59:17 +0100 | shriekingnoise | (~shrieking@201.231.16.156) |
2022-02-10 16:00:28 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2022-02-10 16:00:39 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
2022-02-10 16:00:43 +0100 | yauhsien_ | (~yauhsien@61-231-45-223.dynamic-ip.hinet.net) |
2022-02-10 16:00:46 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2022-02-10 16:02:23 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480::41) |
2022-02-10 16:03:30 +0100 | <anon66200164> | I need to write a function that gives the sum of cubes of 1, 2,...n but I'm having trouble thinking about how to do this recursively here is what I've got so far https://paste.tomsmeding.com/GskJKzVU any help would be appreciated |
2022-02-10 16:04:57 +0100 | yauhsien_ | (~yauhsien@61-231-45-223.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
2022-02-10 16:05:21 +0100 | <ski> | can you express `cubed 3' in terms of `cubed 2' ? |
2022-02-10 16:06:34 +0100 | <geekosaur> | they basically show you in the "self-similarity" section |
2022-02-10 16:06:37 +0100 | cross_ | cross |
2022-02-10 16:06:44 +0100 | <anon66200164> | n*n*n + (n-1)^3 |
2022-02-10 16:07:25 +0100 | <anon66200164> | I wrote the self similiarity part, I was just following what my lecturer was saying, divide and conquer approach |
2022-02-10 16:08:22 +0100 | <anon66200164> | this perhaps cubes n>0 = (n*n*n) + cubes(n-1) |
2022-02-10 16:09:37 +0100 | <ski> | that has a syntax error |
2022-02-10 16:10:10 +0100 | <EvanR> | otoh the idea seems semi solid |
2022-02-10 16:12:52 +0100 | <janus> | anon66200164: do you know how to fix the syntax? |
2022-02-10 16:12:58 +0100 | <anon66200164> | so I tried this https://paste.tomsmeding.com/sQXju3NR and got *** Exception: stack overflow |
2022-02-10 16:13:10 +0100 | <anon66200164> | janus: nope |
2022-02-10 16:13:33 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds) |
2022-02-10 16:13:39 +0100 | <ski> | what is the purpose of the `cubes n>0' there ? |
2022-02-10 16:14:03 +0100 | <janus> | the guard will be evaluated unconditionally. and the guard recurses... |
2022-02-10 16:14:06 +0100 | <anon66200164> | so that when the base case is reached it stays above 1 |
2022-02-10 16:14:32 +0100 | <ski> | btw, note that `cubes n>0' is parsed as `(cubes n)>0' |
2022-02-10 16:14:47 +0100 | <anon66200164> | oh |
2022-02-10 16:14:47 +0100 | <janus> | % :info (>) |
2022-02-10 16:14:48 +0100 | <yahb> | janus: type Ord :: * -> Constraint; class Eq a => Ord a where; ...; (>) :: a -> a -> Bool; ...; -- Defined in `GHC.Classes'; infix 4 > |
2022-02-10 16:14:55 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
2022-02-10 16:15:19 +0100 | <ski> | so, you have a recursive call to `cubes', with the same parameter, `n', and then you're checking if the result of this is positive |
2022-02-10 16:16:19 +0100 | <ski> | janus : well, conditionally, namely if the actual parameter doesn't match `1' .. |
2022-02-10 16:18:12 +0100 | <anon66200164> | oh wait |
2022-02-10 16:18:54 +0100 | <anon66200164> | | n>0 = n*n*n ... and n>0 is the condition |
2022-02-10 16:19:35 +0100 | <ski> | hm ? |
2022-02-10 16:19:50 +0100 | <janus> | i think it seems sensible to remove the recursion from the guard |
2022-02-10 16:20:08 +0100 | vysn | (~vysn@user/vysn) |
2022-02-10 16:20:46 +0100 | <anon66200164> | https://paste.tomsmeding.com/bOjUcPAj |
2022-02-10 16:21:02 +0100 | CiaoSen | (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2022-02-10 16:21:14 +0100 | <anon66200164> | cubes (n>0) didn't return a Bool right? |
2022-02-10 16:21:37 +0100 | <ski> | `cubes n>0' is a `Bool', though |
2022-02-10 16:21:50 +0100 | <ski> | `cubes (n>0)' is a type error |
2022-02-10 16:22:19 +0100 | <anon66200164> | I don't think I understand the type error |
2022-02-10 16:23:07 +0100 | <ski> | `n' is an `Integer'. `n>0' is a `Bool'. so, `cubes (n>0)' tries to pass a `Bool' as argument to `cubes'. but `cubes' accepts an `Integer' as input, not a `Bool' |
2022-02-10 16:23:41 +0100 | <EvanR> | my god it's full of quotes xD |
2022-02-10 16:23:44 +0100 | slac40329 | (~slack1256@186.11.3.215) |
2022-02-10 16:23:54 +0100 | <anon66200164> | ohhh |
2022-02-10 16:23:59 +0100 | <anon66200164> | I see it I think |
2022-02-10 16:24:06 +0100 | <ski> | @remember EvanR my god it's full of quotes xD |
2022-02-10 16:24:06 +0100 | <lambdabot> | Done. |
2022-02-10 16:24:11 +0100 | <ski> | there, i quoted you :) |
2022-02-10 16:24:47 +0100 | <anon66200164> | cubes (n-1) is where the type error occurs? |
2022-02-10 16:24:52 +0100 | <EvanR> | when lambdabot is assimilated into the metaverse that'll come back to haunt me |
2022-02-10 16:25:03 +0100 | <ski> | anon66200164 : no. that one is fine. no type error there |
2022-02-10 16:26:25 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2022-02-10 16:26:25 +0100 | <ski> | anon66200164 : anyway, your last paste (which i missed at first) doesn't have any type error |
2022-02-10 16:26:33 +0100 | slack1256 | (~slack1256@191.125.227.88) (Ping timeout: 268 seconds) |
2022-02-10 16:27:09 +0100 | <anon66200164> | I need to find more recursion problems to practice |
2022-02-10 16:27:19 +0100 | <ski> | anon66200164 : btw, why test for `n>0', when you have `1' as base case ? |
2022-02-10 16:27:38 +0100 | <ski> | (also, one pair of brackets in that code is redundant) |
2022-02-10 16:27:56 +0100 | <anon66200164> | n*n*n? |
2022-02-10 16:27:58 +0100 | <ski> | (and you could write `n^3', if you wanted to) |
2022-02-10 16:27:59 +0100 | <ski> | yes |
2022-02-10 16:28:07 +0100 | <anon66200164> | fair point |
2022-02-10 16:28:46 +0100 | <anon66200164> | won't 1 be the lowest if n>0? |
2022-02-10 16:28:58 +0100 | <anon66200164> | so that will meet my base case |
2022-02-10 16:29:32 +0100 | <ski> | `n>0' is only tested if the base case match, i.e. matching the argument against `1', *fails* |
2022-02-10 16:29:53 +0100 | <ski> | there's no need for the base case to overlap with the recursive case |
2022-02-10 16:32:03 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-02-10 16:32:14 +0100 | <anon66200164> | should the base case be 0? |
2022-02-10 16:32:35 +0100 | <ski> | is `cubes 0' sensible ? if it is, what should its value be ? |
2022-02-10 16:32:51 +0100 | <anon66200164> | 0 |
2022-02-10 16:32:55 +0100 | <anon66200164> | cubes 0 = 0 |
2022-02-10 16:33:36 +0100 | <ski> | if you have that as base case, will the value of `cubes n' for `n' greater than `0' keep the same as before ? |
2022-02-10 16:33:57 +0100 | <EvanR> | just an idea, way back at the beginning of this task, you could have written a short table of what the answers should be for each input 0, 1, 2, 3... just to check against |
2022-02-10 16:34:12 +0100 | <EvanR> | a golden table sort of |
2022-02-10 16:34:18 +0100 | <anon66200164> | https://paste.tomsmeding.com/LkfYYZZd |
2022-02-10 16:34:19 +0100 | <ski> | they already did (except for `0') |
2022-02-10 16:34:25 +0100 | <EvanR> | ah, then put zero xD |
2022-02-10 16:34:41 +0100 | <EvanR> | join the first millenium |
2022-02-10 16:34:52 +0100 | <EvanR> | millennium |
2022-02-10 16:35:00 +0100 | <EvanR> | mmillenniumm |
2022-02-10 16:35:09 +0100 | <anon66200164> | where the base case is zero, it still works |
2022-02-10 16:35:13 +0100 | <ski> | good |
2022-02-10 16:35:27 +0100 | <anon66200164> | I'm a bit slow, sorry |
2022-02-10 16:35:55 +0100 | jao | (~jao@static-68-235-44-24.cust.tzulo.com) |
2022-02-10 16:35:57 +0100 | <anon66200164> | A programme that goes through and shows each step of the evaluation would be useful i.e. => |
2022-02-10 16:36:11 +0100 | <ski> | (it is also possible to sensibly extend this to work for negative integers .. but unless you wish to try thinking about that, this is probably a good place to decide you're satisfied with `cubes') |
2022-02-10 16:36:23 +0100 | <ski> | well, you can easily do that, by hand |
2022-02-10 16:36:40 +0100 | <ski> | cubes 4 |
2022-02-10 16:36:57 +0100 | bontaq | (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 256 seconds) |
2022-02-10 16:36:58 +0100 | <ski> | = 4*4*4 + cubes (4-1) |
2022-02-10 16:37:02 +0100 | <ski> | = 4*4*4 + cubes 3 |
2022-02-10 16:37:10 +0100 | <ski> | = 4*4*4 + 3*3*3 + cubes (3-1) |
2022-02-10 16:37:13 +0100 | <ski> | = 4*4*4 + 3*3*3 + cubes 2 |
2022-02-10 16:37:13 +0100 | <anon66200164> | a different task but the evaluation I typed by hand https://paste.tomsmeding.com/HfTHWBmi |
2022-02-10 16:37:23 +0100 | <ski> | = 4*4*4 + 3*3*3 + 2*2*2 + cubes (2-1) |
2022-02-10 16:37:28 +0100 | <ski> | = 4*4*4 + 3*3*3 + 2*2*2 + cubes 1 |
2022-02-10 16:37:36 +0100 | <ski> | = 4*4*4 + 3*3*3 + 2*2*2 + 1*1*1 + cubes (1-1) |
2022-02-10 16:37:39 +0100 | <ski> | = 4*4*4 + 3*3*3 + 2*2*2 + 1*1*1 + cubes 0 |
2022-02-10 16:37:41 +0100 | <ski> | = 4*4*4 + 3*3*3 + 2*2*2 + 1*1*1 + 0 |
2022-02-10 16:37:51 +0100 | <ski> | .. and then you start performing multiplications and additions .. |
2022-02-10 16:38:08 +0100 | <anon66200164> | yup |
2022-02-10 16:38:35 +0100 | <anon66200164> | ski: that helps me see it happening if that makes sense |
2022-02-10 16:39:03 +0100 | <ski> | yes .. when starting out with recursion, hand-tracing through a couple of examples like this can help |
2022-02-10 16:39:23 +0100 | <ski> | (after a while, you start to get a feel for this, and need to see a trace less) |
2022-02-10 16:39:58 +0100 | waleee | (~waleee@h-98-128-229-110.NA.cust.bahnhof.se) |
2022-02-10 16:40:29 +0100 | ski | would suggest writing `=' (equals, is equal to), rather than (`=>', presumably reduces/simplifies (to)) |
2022-02-10 16:41:09 +0100 | <anon66200164> | ok, I only got half the solution |
2022-02-10 16:41:24 +0100 | <ski> | (hm, and your evaluation/reduction trace is somewhat confusingly written, in that paste) |
2022-02-10 16:41:25 +0100 | slac40329 | (~slack1256@186.11.3.215) (Ping timeout: 240 seconds) |
2022-02-10 16:41:26 +0100 | phma | (~phma@host-67-44-209-72.hnremote.net) (Read error: Connection reset by peer) |
2022-02-10 16:41:39 +0100 | <ski> | half ? |
2022-02-10 16:41:44 +0100 | <anon66200164> | yh it's a bit rough |
2022-02-10 16:42:00 +0100 | <anon66200164> | ski: negative integers going towards zero |
2022-02-10 16:42:10 +0100 | <ski> | ah, right, the negatives |
2022-02-10 16:42:21 +0100 | <anon66200164> | | otherwise = n^3 + cubes (n+1) |
2022-02-10 16:42:52 +0100 | <ski> | what should `cubes (-1)' be ? |
2022-02-10 16:43:10 +0100 | <anon66200164> | cubes 0 = 0 |
2022-02-10 16:43:28 +0100 | <anon66200164> | oh |
2022-02-10 16:43:30 +0100 | <anon66200164> | umm |
2022-02-10 16:43:45 +0100 | <anon66200164> | -1 |
2022-02-10 16:43:47 +0100 | jao | (~jao@static-68-235-44-24.cust.tzulo.com) (Remote host closed the connection) |
2022-02-10 16:43:50 +0100 | <ski> | no |
2022-02-10 16:44:01 +0100 | <anon66200164> | f |
2022-02-10 16:44:03 +0100 | <ski> | what should `cubes n - cubes (n-1)' be ? |
2022-02-10 16:45:03 +0100 | <anon66200164> | for n = ?? |
2022-02-10 16:45:09 +0100 | <ski> | for any `n' |
2022-02-10 16:45:51 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 16:45:59 +0100 | <ski> | what is the addition from `cubes 2' to `cubes 3' ? |
2022-02-10 16:46:03 +0100 | <ski> | what is the addition from `cubes 1' to `cubes 2' ? |
2022-02-10 16:46:07 +0100 | <ski> | what is the addition from `cubes 0' to `cubes 1' ? |
2022-02-10 16:46:42 +0100 | <anon66200164> | n=2: = (2)^3 + cubes 1, = 8 + 1 |
2022-02-10 16:47:03 +0100 | <anon66200164> | ski: I'm sorry, I don't understand |
2022-02-10 16:47:25 +0100 | <ski> | well, you answered one of those three questions. can you answer the other two ? |
2022-02-10 16:47:49 +0100 | <ski> | well .. ok |
2022-02-10 16:47:56 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 16:47:57 +0100 | <anon66200164> | I'm just typing it out |
2022-02-10 16:48:04 +0100 | <ski> | the answer was actually not right |
2022-02-10 16:48:11 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 16:48:18 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 16:48:32 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 16:48:40 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 16:48:54 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 16:48:57 +0100 | <anon66200164> | n=3: = 3^3 + cubes 2, = 9 + 2^3 + cubes 1, = 27 + 8 + 1, =36 |
2022-02-10 16:49:02 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 16:49:16 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 16:49:17 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480::41) (Ping timeout: 250 seconds) |
2022-02-10 16:49:19 +0100 | <ski> | yes, that's the first question |
2022-02-10 16:49:20 +0100 | <anon66200164> | n=0, fail |
2022-02-10 16:49:23 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 16:49:38 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 16:49:39 +0100 | <anon66200164> | n=0, = 0 |
2022-02-10 16:49:39 +0100 | <ski> | cubes 3 = 3^3 + cubes 2 |
2022-02-10 16:49:43 +0100 | <ski> | so |
2022-02-10 16:49:45 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 16:49:53 +0100 | <ski> | cubes 3 - cubes 2 = 3^3 |
2022-02-10 16:49:59 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 16:50:04 +0100 | <ski> | next question is : |
2022-02-10 16:50:06 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 16:50:08 +0100 | Graham31415 | (~Graham314@213.237.82.193) (Quit: Client closed) |
2022-02-10 16:50:12 +0100 | <ski> | cubes 2 = 2^3 + cubes 1 |
2022-02-10 16:50:13 +0100 | <ski> | so |
2022-02-10 16:50:21 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 16:50:27 +0100 | <ski> | cubes 2 - cubes 1 = 2^3 |
2022-02-10 16:50:28 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 16:50:42 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 16:50:49 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 16:50:56 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 252 seconds) |
2022-02-10 16:51:05 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 16:51:12 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 16:51:13 +0100 | ChanServ | +o geekosaur |
2022-02-10 16:51:19 +0100 | ChanServ | +q lavaman!~lavaman@98.38.249.169$##fix-your-connection |
2022-02-10 16:51:28 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 16:51:36 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 16:51:44 +0100 | <geekosaur> | I think you wanted ban, not quiet |
2022-02-10 16:51:50 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 16:51:57 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 16:52:05 +0100 | xdej_ | xdej |
2022-02-10 16:52:13 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 16:52:15 +0100 | geekosaur | +b lavaman!~lavaman@98.38.249.169$##fix-your-connection |
2022-02-10 16:52:20 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 16:52:24 +0100 | ChanServ | -q lavaman!~lavaman@98.38.249.169$##fix-your-connection |
2022-02-10 16:52:45 +0100 | geekosaur | -o geekosaur |
2022-02-10 16:52:46 +0100 | <ski> | mm, better. ty |
2022-02-10 16:53:02 +0100 | zeenk | (~zeenk@2a02:2f04:a30d:1300:51a3:bcfc:6cda:9fc5) (Quit: Konversation terminated!) |
2022-02-10 16:53:23 +0100 | <ski> | anon66200164 : anyway, last of those three questions : |
2022-02-10 16:53:32 +0100 | <ski> | cubes 1 = 1^3 + cubes 0 |
2022-02-10 16:53:34 +0100 | <ski> | so |
2022-02-10 16:53:45 +0100 | <ski> | cubes 1 - cubes 0 = 1^3 |
2022-02-10 16:53:58 +0100 | <ski> | anon66200164 : do you follow that ? |
2022-02-10 16:54:04 +0100 | <anon66200164> | Yes |
2022-02-10 16:54:10 +0100 | <ski> | so, to summarize : |
2022-02-10 16:54:10 +0100 | <anon66200164> | one question though |
2022-02-10 16:54:19 +0100 | <ski> | yes ? |
2022-02-10 16:54:37 +0100 | <anon66200164> | cubes 0 = 0 but n>0 is false |
2022-02-10 16:54:49 +0100 | <ski> | what about it ? |
2022-02-10 16:55:08 +0100 | <janus> | you had two heads |
2022-02-10 16:55:10 +0100 | <anon66200164> | what does it evaluate to when it's false if I don't have an otherwise case |
2022-02-10 16:55:21 +0100 | <anon66200164> | janus: I barely have 1 head |
2022-02-10 16:56:19 +0100 | <ski> | anon66200164 : in that case, you'll get a failure to compute an answer. your function will be undefined in that case. a partial function |
2022-02-10 16:56:39 +0100 | <ski> | anyway : |
2022-02-10 16:56:45 +0100 | <ski> | cubes 3 - cubes 2 = 3^3 |
2022-02-10 16:56:46 +0100 | <ski> | cubes 2 - cubes 1 = 2^3 |
2022-02-10 16:56:51 +0100 | <ski> | cubes 1 - cubes 0 = 1^3 |
2022-02-10 16:57:06 +0100 | <ski> | so .. what is `cubes n - cubes (n-1)' ? |
2022-02-10 16:57:47 +0100 | <janus> | in this paste there are two lines that have 'cubes ... = ...'. are those not heads? https://paste.tomsmeding.com/bOjUcPAj or have i messed up the terminology? |
2022-02-10 16:58:20 +0100 | <ski> | nothing wrong with having two defining equations like that, janus |
2022-02-10 16:58:50 +0100 | <geekosaur> | it's shorthand for having one definition that immediately does a case |
2022-02-10 16:58:53 +0100 | <janus> | ski: but the 'cubes ...' part, is that not a 'function head'? |
2022-02-10 16:58:54 +0100 | <anon66200164> | ski: I don't know :( |
2022-02-10 16:58:55 +0100 | <geekosaur> | likewise with guards |
2022-02-10 16:59:04 +0100 | <anon66200164> | fml!!!!! |
2022-02-10 16:59:11 +0100 | vysn | (~vysn@user/vysn) (Ping timeout: 252 seconds) |
2022-02-10 16:59:19 +0100 | <janus> | what what would you call it? left hand sides? |
2022-02-10 16:59:53 +0100 | <ski> | janus : i'd probably call them "definienda" .. but i guess "function head" is also okay. or left-hand side |
2022-02-10 17:00:21 +0100 | <janus> | i was just surprised because searching for 'function head' gives me completely misleading results |
2022-02-10 17:00:37 +0100 | <janus> | dunno where to find a good reference for this |
2022-02-10 17:00:58 +0100 | jao | (~jao@211.68.17.95.dynamic.jazztel.es) |
2022-02-10 17:01:04 +0100 | <ski> | ("definienda" being plural of "definiendum", "that which is/was to be defined". "definiens" (plural "definientia", or "body", or right-hand side, being "that which it is defined as / to be") |
2022-02-10 17:01:12 +0100 | <ski> | anon66200164 : "fml" ? |
2022-02-10 17:02:01 +0100 | <janus> | it means 'somebody have intercourse with my life'. it's bad language |
2022-02-10 17:02:18 +0100 | <anon66200164> | https://www.merriam-webster.com/words-at-play/what-does-fml-mean as in, I don't understand and am to stupid to answer the question |
2022-02-10 17:02:19 +0100 | <ski> | oh |
2022-02-10 17:02:41 +0100 | <ski> | anon66200164 : can you spot the pattern, in those three equalities, just above ? |
2022-02-10 17:02:44 +0100 | geekosaur | looks at the pattern and gets the answer |
2022-02-10 17:02:48 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293) |
2022-02-10 17:02:56 +0100 | <anon66200164> | 0^0 |
2022-02-10 17:02:59 +0100 | <anon66200164> | 0^3 |
2022-02-10 17:03:28 +0100 | <janus> | > 0^0 |
2022-02-10 17:03:30 +0100 | <lambdabot> | 1 |
2022-02-10 17:03:35 +0100 | <polyphem> | anon66200164: for "any" n |
2022-02-10 17:03:46 +0100 | <ski> | let's take it one step at a time |
2022-02-10 17:03:49 +0100 | <anon66200164> | n^£ |
2022-02-10 17:03:56 +0100 | <anon66200164> | n^3 |
2022-02-10 17:04:22 +0100 | <ski> | yes, `cubes n - cubes (n-1) = n^3' does look like a sensible extrapolation from those three cases |
2022-02-10 17:04:35 +0100 | <anon66200164> | cubes n - cubes (n-1) =n^3 |
2022-02-10 17:04:44 +0100 | <ski> | for `n = 3', or `n = 2', or `n = 1', it does specialize to those three equalities |
2022-02-10 17:05:21 +0100 | <ski> | now, this equality is only known to hold for positive values of `n' (because `cubes n' is not defined for negative `n', yet) |
2022-02-10 17:06:19 +0100 | <ski> | however, when given a choice of how to define `cubes n', for negative `n', it does make sense to let `cubes n - cubes (n-1)' keep being `n^3', just as it was for positive `n', wouldn't you say ? |
2022-02-10 17:06:43 +0100 | <ski> | (as opposed to `cubes n - cubes (n-1)' suddenly being something else than `n^3', for non-positive `n') |
2022-02-10 17:07:21 +0100 | <anon66200164> | I think I get it |
2022-02-10 17:07:21 +0100 | ChanServ | +o litharge |
2022-02-10 17:07:22 +0100 | litharge | -bo lavaman!~lavaman@98.38.249.169$##fix-your-connection litharge |
2022-02-10 17:07:24 +0100 | <ski> | this suggests that the sensible thing to try, is to insist that `cubes n - cubes (n-1) = n^3' is true for all integers `n', not just the positive integers `n' |
2022-02-10 17:07:50 +0100 | <ski> | and then, if we accept this, we can use this to our advantage, to figure out what `cubes (-1)' ought to be ! |
2022-02-10 17:07:51 +0100 | <EvanR> | lavaman gets an assist from rockman |
2022-02-10 17:08:06 +0100 | <ski> | (and `cubes (-2)' and `cubes (-3)' and so on ..) |
2022-02-10 17:08:31 +0100 | <ski> | anon66200164 : so .. each time, as you go "backwards", you subtract a cube |
2022-02-10 17:10:20 +0100 | <anon66200164> | Yeah |
2022-02-10 17:10:36 +0100 | <anon66200164> | I think I understand, I just need some time to process it |
2022-02-10 17:10:51 +0100 | <ski> | yea, there's no hurry |
2022-02-10 17:11:01 +0100 | <anon66200164> | I'm saving a screen shot of this convo, I hope that's alright |
2022-02-10 17:11:13 +0100 | <ski> | should be fine |
2022-02-10 17:11:30 +0100 | jgeerds_ | (~jgeerds@55d4a547.access.ecotel.net) (Ping timeout: 260 seconds) |
2022-02-10 17:11:32 +0100 | <ski> | (or you could perhaps copy the text to a text file) |
2022-02-10 17:12:06 +0100 | Batzy | (~quassel@user/batzy) |
2022-02-10 17:12:09 +0100 | nsilv-phone | (~nsilv-pho@37.160.46.122) |
2022-02-10 17:12:18 +0100 | <Batzy> | hi everyone i have a quick question |
2022-02-10 17:12:18 +0100 | <janus> | anon66200164: look, you're on tv: https://ircbrowse.tomsmeding.com/browse/lchaskell?events_page=4262 |
2022-02-10 17:12:44 +0100 | nsilv-phone | (~nsilv-pho@37.160.46.122) (Client Quit) |
2022-02-10 17:13:01 +0100 | <janus> | Batzy: please ask your quick question |
2022-02-10 17:13:02 +0100 | <Batzy> | im wondering if i should choose haskell for a project i am working on. but i want to know if haskell has a library to deal with matrices and also to do things like modular matrix multiplication and inverses etc |
2022-02-10 17:14:03 +0100 | <janus> | @package hmatrix |
2022-02-10 17:14:03 +0100 | <lambdabot> | https://hackage.haskell.org/package/hmatrix |
2022-02-10 17:14:33 +0100 | <Batzy> | janus: not to beat a dead horse, but it can do modular matrix arithmetic you say? |
2022-02-10 17:15:25 +0100 | <janus> | Batzy: looks like yes: https://hackage.haskell.org/package/hmatrix-0.20.2/docs/Numeric-LinearAlgebra-Data.html#t:Mod |
2022-02-10 17:15:33 +0100 | <Batzy> | thanks guys |
2022-02-10 17:15:51 +0100 | <Batzy> | im wondering if haskell can do what i need to do faster than "functional python' |
2022-02-10 17:16:07 +0100 | <janus> | Batzy: that Mod can then be used as a Numeric: https://hackage.haskell.org/package/hmatrix-0.20.2/docs/Numeric-LinearAlgebra.html#t:Numeric |
2022-02-10 17:16:08 +0100 | <Batzy> | i did what im trying to do in a very OOP way, and it's clearly introducing some slowness |
2022-02-10 17:16:13 +0100 | jackson99 | (~bc8147f2@cerf.good1.com) |
2022-02-10 17:16:39 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
2022-02-10 17:16:46 +0100 | <Batzy> | janus: essentially i am recusrively generating matrix products like XXYYXXXY |
2022-02-10 17:16:52 +0100 | <Batzy> | recursively* |
2022-02-10 17:16:59 +0100 | <Batzy> | i tried doing this in a tree structure in python |
2022-02-10 17:17:00 +0100 | dajoer | (~david@user/gvx) (Quit: leaving) |
2022-02-10 17:17:10 +0100 | <janus> | but to get the inverse you'd need it to be a Field... |
2022-02-10 17:17:17 +0100 | <Batzy> | it works fine, but takesl ike 4 hours when sage takes 8 minutes |
2022-02-10 17:18:29 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:30cc:b923:a3cb:c39c) |
2022-02-10 17:18:43 +0100 | <janus> | well now you're asking about python ;) i think you need to use these linear algebra libraries to get really good performance |
2022-02-10 17:18:57 +0100 | <Batzy> | yes in python i was using numpy and sympy |
2022-02-10 17:18:59 +0100 | <janus> | as you can see from the hackage page, hmatrix can link with OpenBLAS |
2022-02-10 17:19:11 +0100 | <Batzy> | openblas doesnt do modular arithmetic i am pretty sure |
2022-02-10 17:19:41 +0100 | <janus> | i don't know the details of this, so i will stop talking now :O |
2022-02-10 17:19:59 +0100 | <Batzy> | yeah my first idea was to use somethign that linked to openblas |
2022-02-10 17:20:16 +0100 | <Batzy> | but i couldnt find anything about openblas supporting modular multiplications and stuff |
2022-02-10 17:20:40 +0100 | <Batzy> | i think i know someone who would know actually |
2022-02-10 17:22:32 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:30cc:b923:a3cb:c39c) (Ping timeout: 240 seconds) |
2022-02-10 17:23:07 +0100 | <Batzy> | janus: thanks |
2022-02-10 17:23:13 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 17:23:24 +0100 | <anon66200164> | would it be possible to solve this using recursion? sumPairs [] = 0 -- e.g. sumPairs [(1,2), (3,4)] =10 |
2022-02-10 17:24:03 +0100 | <anon66200164> | janus: I am not famous anymore |
2022-02-10 17:24:06 +0100 | <ski> | anon66200164 : yes |
2022-02-10 17:25:30 +0100 | xff0x | (~xff0x@2001:1a81:53bc:500:d58f:5284:91ba:f00d) (Ping timeout: 250 seconds) |
2022-02-10 17:25:36 +0100 | <jackson99> | anon you can also solve it with sum + map |
2022-02-10 17:25:50 +0100 | <anon66200164> | I only have basic tools atm |
2022-02-10 17:26:01 +0100 | <janus> | jackson99: prelude sum won't work on pairs |
2022-02-10 17:26:02 +0100 | <anon66200164> | sumPair(x:xs) maybe |
2022-02-10 17:26:19 +0100 | <anon66200164> | sumPairs :: [(Integer, Integer)] -> Integer |
2022-02-10 17:26:24 +0100 | <jackson99> | janus, which is why you'd use map first |
2022-02-10 17:26:45 +0100 | <ski> | anon66200164 : it would follow the basic same pattern as `myLength' |
2022-02-10 17:27:44 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:30cc:b923:a3cb:c39c) |
2022-02-10 17:27:57 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2022-02-10 17:28:07 +0100 | ski | idly wonders whether anon66200164 decided to set `cubes n', for negative `n', aside, atm |
2022-02-10 17:28:20 +0100 | <jackson99> | > (sum . map (uncurry (+))) [(1,2), (3,4)] |
2022-02-10 17:28:22 +0100 | <lambdabot> | 10 |
2022-02-10 17:29:33 +0100 | <anon66200164> | sumPairs :: [(Integer] -> Integer sumPairs [] = 0 sumPair (x:y:zs) = (x+y) + sumPairs zs |
2022-02-10 17:29:41 +0100 | <anon66200164> | but I get a parse error |
2022-02-10 17:30:05 +0100 | <janus> | unmatched paren in '[(Integer]' |
2022-02-10 17:30:40 +0100 | <jackson99> | x:y:zs would typecheck if you had a list of numbers, but you have a list of tuples that contain numbers |
2022-02-10 17:30:46 +0100 | <c_wraith> | also, that type seems wrong. as it stands, it's "sum of an even-length list", not a sum of pairs |
2022-02-10 17:32:14 +0100 | <ski> | s/tuples/pairs/, to be specific |
2022-02-10 17:32:39 +0100 | yhsiveht | (~Nishant@2405:201:f005:c007:51b9:2550:9b70:b031) (Quit: Leaving) |
2022-02-10 17:33:06 +0100 | <anon66200164> | how would I use tuples here? |
2022-02-10 17:33:16 +0100 | <anon66200164> | I haven't come across them yet |
2022-02-10 17:33:19 +0100 | <ski> | > (1,2) -- this is a pair |
2022-02-10 17:33:20 +0100 | <lambdabot> | (1,2) |
2022-02-10 17:33:46 +0100 | <ski> | > let swapPair (x,y) = (y,x) in swapPair (1,2) |
2022-02-10 17:33:48 +0100 | <lambdabot> | (2,1) |
2022-02-10 17:34:59 +0100 | Pickchea | (~private@user/pickchea) (Ping timeout: 256 seconds) |
2022-02-10 17:35:00 +0100 | <janus> | a pair is a tuple with two elements. your exercise involves pairs, but because pairs are tuples, it also involves tuples. |
2022-02-10 17:35:19 +0100 | <ski> | > (1,2) : [(2,3),(3,4)] -- this is a list of pairs |
2022-02-10 17:35:20 +0100 | <lambdabot> | [(1,2),(2,3),(3,4)] |
2022-02-10 17:35:53 +0100 | xff0x | (~xff0x@2001:1a81:53bc:500:d58f:5284:91ba:f00d) |
2022-02-10 17:37:30 +0100 | <anon66200164> | *** Exception: assessment.hs:7:1-15: Non-exhaustive patterns in function sumPairs? |
2022-02-10 17:37:41 +0100 | <ski> | <c_wraith> also, that type seems wrong. as it stands, it's "sum of an even-length list", not a sum of pairs |
2022-02-10 17:38:11 +0100 | <ski> | perhaps show your code ? |
2022-02-10 17:39:22 +0100 | <anon66200164> | https://paste.tomsmeding.com/Wo7W9hCO |
2022-02-10 17:39:47 +0100 | <ski> | yes, c_wraith's comment is relevant here |
2022-02-10 17:40:12 +0100 | <ski> | also, you've defined two functions, `sumPair' and `sumPairs' .. did you intend to only define one ? |
2022-02-10 17:41:34 +0100 | <ski> | (also, it's possible best here to not ask the implementation for what it thinks the type signature should be, but rather for you yourself to spell out what you think the type signature should be. if you want to, after your definition works, you could remove (or comment out) the type signature, and ask for what the implementation infers it could be) |
2022-02-10 17:42:58 +0100 | <anon66200164> | I will be back soon, I need to go to a seminar |
2022-02-10 17:43:28 +0100 | <anon66200164> | I'll keep this window open, hopefully it doesn't close |
2022-02-10 17:43:34 +0100 | ski | glances around nervously |
2022-02-10 17:43:48 +0100 | <janus> | anon66200164: save this link: https://ircbrowse.tomsmeding.com/browse/lchaskell?events_page=4263 |
2022-02-10 17:44:10 +0100 | <anon66200164> | janus: saved |
2022-02-10 17:45:26 +0100 | <jackson99> | it is a bit annoying having to temporarily add Show a constraint in entire call chain when using Debug.traceShow, but I suppose there's no way around it? |
2022-02-10 17:46:57 +0100 | nschoe | (~quassel@178.251.84.79) (Ping timeout: 240 seconds) |
2022-02-10 17:47:49 +0100 | <monochrom> | w00t it's Haskell Weekly News day again! |
2022-02-10 17:49:10 +0100 | shapr | dances cheerfully |
2022-02-10 17:49:34 +0100 | <Hecate> | jackson99: I don't think so, no |
2022-02-10 17:49:42 +0100 | <Hecate> | maybe with Heap inspection? :p |
2022-02-10 17:49:59 +0100 | <shapr> | experience report: haskell-language-server 1.6.1 no longer crashes on the work codebase with its 639126 lines of Haskell (counting non-blank lines only). |
2022-02-10 17:50:02 +0100 | <shapr> | I can code much faster! |
2022-02-10 17:50:05 +0100 | ski | misread "Compiler Engineer at Mercury" as "Compiler Engineer for Mercury" |
2022-02-10 17:50:32 +0100 | <janus> | couldn't you make a Debug typeclass that would normally contain no methods. but when debugging, you'd make it such that it requires Show |
2022-02-10 17:50:49 +0100 | <janus> | then you'd only have to change two places instead of the whole call chain |
2022-02-10 17:50:51 +0100 | anon66200164 | (~anon66200@host-92-19-99-147.as13285.net) (Ping timeout: 256 seconds) |
2022-02-10 17:51:35 +0100 | <ski> | you'd still need to add `Debug' wherever you might want to debug |
2022-02-10 17:51:48 +0100 | <ski> | i guess you could as well use CPP ? |
2022-02-10 17:52:26 +0100 | <janus> | right, you'd add Debug everywhere ;) but haskell wouldn't need to actually pass a dictionary if there are no methods, right |
2022-02-10 17:53:28 +0100 | <janus> | CPP to hide/add Show constraints on the whole call chain would be more verbose than a permanent Debug constraint |
2022-02-10 17:54:15 +0100 | <ski> | i dunno if GHC would optimize away an empty instance dictionary |
2022-02-10 17:55:04 +0100 | <Franciman> | one thing i'd like to think about more is comments attached to syntax |
2022-02-10 17:55:11 +0100 | <Franciman> | you can use then to add debug messages that don't clutter your code |
2022-02-10 17:55:17 +0100 | <Franciman> | so you don't have to clutter code with Debug.trace |
2022-02-10 17:55:42 +0100 | <Franciman> | but you can just add and remove special comments, which usually also look visually different thanks to syntax coloring |
2022-02-10 17:55:49 +0100 | <Franciman> | and you can disable them all at once if you wish |
2022-02-10 17:55:55 +0100 | <ski> | is that like attributes, like they have in some languages ? |
2022-02-10 17:56:03 +0100 | <Franciman> | yes, a limited form |
2022-02-10 17:57:12 +0100 | monaaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds) |
2022-02-10 17:57:19 +0100 | <Franciman> | one usually looks for the line at which code is written, so you can attach comments to the next line of program. But is this still useful for a functional, declarative language? |
2022-02-10 17:57:25 +0100 | monaaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-10 17:58:16 +0100 | <oak-> | I'm trying to use servant-client in frontend with GHCJS. Any suggestions which library I should use? servant-client-ghcjs isn't available in Hackage for some reason, but I'm not sure is that the way to go |
2022-02-10 17:58:21 +0100 | <EvanR> | jackson99, at least when the thing being showed is monomorphic you don't need a constraint. Where it gets real ugly is HasCallStack xD |
2022-02-10 17:58:36 +0100 | <EvanR> | then there's no way around it |
2022-02-10 17:58:41 +0100 | <Hecate> | oak-: you're stuck on an older version of GHC if you go the GHCJS road |
2022-02-10 17:58:49 +0100 | <Hecate> | did you try generating Axios bindings first? |
2022-02-10 17:58:51 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 18:01:09 +0100 | <oak-> | Are you saying using GHCJS altogether for creating web frontend (I planned using Reflex-DOM) would be the "GHCJS road"? Or just using the servant-client-ghcjs? :P |
2022-02-10 18:01:53 +0100 | <oak-> | I planned on using Reflex-Dom, but I could of course consider another options as well |
2022-02-10 18:02:15 +0100 | mvk | (~mvk@2607:fea8:5cdc:bf00::f276) |
2022-02-10 18:03:32 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
2022-02-10 18:04:04 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2022-02-10 18:04:13 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
2022-02-10 18:04:16 +0100 | <vaibhavsagar[m]> | oak: I don't believe there's a GHCJS 9.0 or 9.2 |
2022-02-10 18:05:02 +0100 | <janus> | but servant-client works for 8.10 |
2022-02-10 18:05:57 +0100 | shailangsa | (~shailangs@host217-39-45-199.range217-39.btcentralplus.com) (Remote host closed the connection) |
2022-02-10 18:06:18 +0100 | <vaibhavsagar[m]> | I remember having issues when I tried to use `servant-client-ghcjs`, and back in the day I helped with https://github.com/haskell-servant/servant-jsaddle which was our solution to this problem |
2022-02-10 18:06:19 +0100 | <oak-> | I don't have problem using GHCJS 8.10.7, but I'm wondering which package provides the servant-client functionality, should I use servant-client-ghcjs? |
2022-02-10 18:06:26 +0100 | <vaibhavsagar[m]> | (we also used reflex-dom) |
2022-02-10 18:09:52 +0100 | monaaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Quit: WeeChat 3.4) |
2022-02-10 18:10:09 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-10 18:15:33 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds) |
2022-02-10 18:16:32 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-10 18:17:31 +0100 | polyphem_ | (~rod@2a02:810d:840:8754:f9b2:95ef:efe9:3c0f) |
2022-02-10 18:19:31 +0100 | polyphem | (~rod@2a02:810d:840:8754:e075:74dd:6e37:209d) (Ping timeout: 245 seconds) |
2022-02-10 18:20:35 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4) |
2022-02-10 18:21:23 +0100 | alp | (~alp@user/alp) (Ping timeout: 250 seconds) |
2022-02-10 18:25:32 +0100 | mbuf | (~Shakthi@110.225.224.158) (Quit: Leaving) |
2022-02-10 18:31:02 +0100 | Jing | (~hedgehog@240e:390:7c53:a7e1:3c97:bf3a:3e4c:7eb2) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-02-10 18:32:18 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:30cc:b923:a3cb:c39c) (Remote host closed the connection) |
2022-02-10 18:32:40 +0100 | alp | (~alp@user/alp) |
2022-02-10 18:32:51 +0100 | burnsidesLlama | (~burnsides@dhcp168-022.wadham.ox.ac.uk) |
2022-02-10 18:34:03 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
2022-02-10 18:35:06 +0100 | chele | (~chele@user/chele) (Remote host closed the connection) |
2022-02-10 18:35:06 +0100 | <Batzy> | janus: now for a slightly more annoying question. If im recursively generating matrix products for say 4 matrices and doing operations like A*B*C*D*D*D*D*D, would you expect haskell with hmatrix to be able to do it much faster than python with numpy? |
2022-02-10 18:35:34 +0100 | <Batzy> | i need to recursively generate matrix products of a certain length (call it n) |
2022-02-10 18:36:05 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:30cc:b923:a3cb:c39c) |
2022-02-10 18:36:17 +0100 | <Batzy> | i dont know haskell so i just want to see if it'll even be worth it to learn to do this or if the speed is probably comparable |
2022-02-10 18:36:40 +0100 | Everything | (~Everythin@37.115.210.35) |
2022-02-10 18:37:10 +0100 | <EvanR> | haskell is cool but it's not exactly a numerics crunching environment. On hmatrix, aiui it's an FFI binding to BLAS |
2022-02-10 18:37:47 +0100 | <Batzy> | EvanR: what do you classify as a numerics crunching environment |
2022-02-10 18:37:49 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 18:38:03 +0100 | phma | (~phma@host-67-44-209-72.hnremote.net) |
2022-02-10 18:38:19 +0100 | <EvanR> | fortran, matlab, julia, stuff like that |
2022-02-10 18:38:51 +0100 | <EvanR> | if python is number crunching I guess there's hope for us |
2022-02-10 18:39:08 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds) |
2022-02-10 18:40:24 +0100 | econo | (uid147250@user/econo) |
2022-02-10 18:42:10 +0100 | <Batzy> | EvanR: the thing is i want a recursive tree structure too. The issue is i actually made these trees in python and it was sloooooooooooooooooooooooooooooooooooooooooooooow |
2022-02-10 18:42:18 +0100 | <Batzy> | i guess julia and so on can do that |
2022-02-10 18:42:24 +0100 | <Batzy> | and still be faster |
2022-02-10 18:42:41 +0100 | <Batzy> | and i hear it looks pythony |
2022-02-10 18:42:43 +0100 | <EvanR> | identify why it was slow |
2022-02-10 18:42:53 +0100 | <Batzy> | EvanR: artifacts of the object orientation |
2022-02-10 18:43:21 +0100 | <EvanR> | 🤔 |
2022-02-10 18:43:27 +0100 | <Batzy> | i could strip it down, but then it would be very close to the functional implementation anyways, and still a tad more memory inefficient |
2022-02-10 18:43:51 +0100 | <Batzy> | the fact is i dont really *need* like a class attribute, i was just leaning on them as a crutch during my prototyping |
2022-02-10 18:43:59 +0100 | <Batzy> | attributes* |
2022-02-10 18:44:05 +0100 | <Batzy> | so im sort of convinced i want to do it functionally anyways |
2022-02-10 18:45:20 +0100 | <EvanR> | haskell also has packages to do your computations on the GPU. I think accelerate is one |
2022-02-10 18:45:40 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 18:45:53 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 18:46:01 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 18:46:07 +0100 | <Batzy> | EvanR: i can't tell if you're trying to sell me on haskell or a number crunching environment |
2022-02-10 18:46:15 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 18:46:23 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 18:46:31 +0100 | <Batzy> | julia seems promising though |
2022-02-10 18:46:33 +0100 | <EvanR> | disclaimer, no one is paying me commission on any of this |
2022-02-10 18:46:38 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 18:46:40 +0100 | <Batzy> | haha |
2022-02-10 18:46:45 +0100 | <Batzy> | good, because you suck at it |
2022-02-10 18:46:45 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 18:46:57 +0100 | <Batzy> | worst haskell salesman ever |
2022-02-10 18:46:59 +0100 | <EvanR> | haskell is good for other reasons |
2022-02-10 18:47:00 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 18:47:08 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 18:47:19 +0100 | <Batzy> | EvanR: ok when would you tell someone "you definitely want to use haskell for this" |
2022-02-10 18:47:23 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 18:47:27 +0100 | <EvanR> | advent of code xD |
2022-02-10 18:47:30 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 18:47:45 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 18:47:47 +0100 | <Batzy> | what else for normal life |
2022-02-10 18:47:53 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 18:47:53 +0100 | <EvanR> | my friend used elixir to do the first few then burned out |
2022-02-10 18:48:02 +0100 | shailangsa | (~shailangs@host217-39-45-199.range217-39.btcentralplus.com) |
2022-02-10 18:48:08 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 18:48:15 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 18:48:19 +0100 | <EvanR> | haskell is a general purpose language so, use it for general purpose stuff |
2022-02-10 18:48:29 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 18:48:30 +0100 | <EvanR> | I'm doing opengl graphics right now |
2022-02-10 18:48:36 +0100 | <Batzy> | i see |
2022-02-10 18:48:37 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 18:48:52 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 18:48:54 +0100 | <Batzy> | well ive always wanted to learn haskell, it's too neat. |
2022-02-10 18:48:55 +0100 | ChanServ | +o ski |
2022-02-10 18:48:58 +0100 | ski | +b-o lavaman!~lavaman@98.38.249.169$##fix-your-connection ski |
2022-02-10 18:48:59 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 18:49:02 +0100 | <Batzy> | but i think your julia suggestion is a really good one |
2022-02-10 18:49:10 +0100 | <EvanR> | last I used julia it was pretty cool |
2022-02-10 18:49:17 +0100 | <EvanR> | not idea about performance though |
2022-02-10 18:49:42 +0100 | <c_wraith> | Julia produces very fast code when it understands what you're doing. So it's great for the sorts of stuff it was designed for. |
2022-02-10 18:49:51 +0100 | machinedgod | (~machinedg@24.105.81.50) (Remote host closed the connection) |
2022-02-10 18:49:57 +0100 | <Batzy> | c_wraith: did you see what i am trying to do |
2022-02-10 18:50:10 +0100 | <wavemode> | the two main things to make sure of when writing number crunching code in haskell tend to be, making sure the numbers stay unboxed and making sure you aren't building up unnecessary thunks |
2022-02-10 18:50:27 +0100 | <Batzy> | "numbers stay unboxed" |
2022-02-10 18:50:28 +0100 | <Batzy> | ? |
2022-02-10 18:50:50 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2022-02-10 18:51:25 +0100 | <EvanR> | unboxed arrays of numbers |
2022-02-10 18:51:50 +0100 | <EvanR> | normally arrays contain pointer to values which can slow things down |
2022-02-10 18:51:56 +0100 | <wavemode> | basically, making sure the compiler is emitting code such that you're just adding numbers, not first having to dereference pointers to the numbers |
2022-02-10 18:51:59 +0100 | <EvanR> | you want them unboxed |
2022-02-10 18:52:02 +0100 | Joe[m] | (~jsricemat@2001:470:69fc:105::1:b4ce) |
2022-02-10 18:52:51 +0100 | <wavemode> | https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/primitives.html |
2022-02-10 18:54:05 +0100 | Akiva | (~Akiva@user/Akiva) |
2022-02-10 18:54:19 +0100 | MajorBiscuit | (~MajorBisc@wlan-145-94-218-48.wlan.tudelft.nl) (Ping timeout: 256 seconds) |
2022-02-10 18:54:34 +0100 | <EvanR> | in case of hmatrix though, you hopefully don't write the number crunching code, but outsource it to the big guns |
2022-02-10 18:55:00 +0100 | <oak-> | I did few tests, neither of servant-jsaddle or servant-client-ghcjs were usable "out-of-the-box". I was able to patch servant-client-ghcjs so that it builds with other parts of servant being from version 0.19. Now it's time for more tests |
2022-02-10 18:55:11 +0100 | emf | (~emf@2620:10d:c090:400::5:21fc) |
2022-02-10 18:55:35 +0100 | <wavemode> | granted, many times the compiler can optimize code using boxed types to use unboxed instead... though trying to make SURE that happens can be somewhat tricky |
2022-02-10 18:57:11 +0100 | <Batzy> | EvanR: i would really just like to write A*B mod something |
2022-02-10 18:57:24 +0100 | <Batzy> | and have the outsourcer do that quickly |
2022-02-10 18:58:45 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:68f0:cbbd:5b77:19e4) |
2022-02-10 18:59:24 +0100 | fef | (~thedawn@user/thedawn) (Ping timeout: 276 seconds) |
2022-02-10 18:59:47 +0100 | <EvanR> | enjoy https://hackage.haskell.org/package/hmatrix-0.20.2/docs/Numeric-LinearAlgebra.html |
2022-02-10 19:00:48 +0100 | zeenk | (~zeenk@2a02:2f04:a30d:1300:51a3:bcfc:6cda:9fc5) |
2022-02-10 19:03:24 +0100 | abhixec | (~abhinav@c-67-169-139-16.hsd1.ca.comcast.net) |
2022-02-10 19:03:53 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2022-02-10 19:04:54 +0100 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 260 seconds) |
2022-02-10 19:05:20 +0100 | <sm> | how do you preserve newlines in the `footer` (or `footerDoc`) of an optparse-applicative parser ? |
2022-02-10 19:05:53 +0100 | unyu | (~pyon@user/pyon) (Quit: brb) |
2022-02-10 19:07:41 +0100 | unyu | (~pyon@user/pyon) |
2022-02-10 19:09:36 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:30cc:b923:a3cb:c39c) (Remote host closed the connection) |
2022-02-10 19:11:11 +0100 | Unicorn_Princess | (~Unicorn_P@93-103-228-248.dynamic.t-2.net) |
2022-02-10 19:15:11 +0100 | vicfred | (~vicfred@user/vicfred) |
2022-02-10 19:15:16 +0100 | <Unicorn_Princess> | well that was quick. i follow https://cabal.readthedocs.io/en/latest/getting-started.html and started with "cabal init myfirstapp -n", and get an error that 'init' doesn't take any extra arguments. i guess the guide is out of date? i gathered that init now uses the directory it's ran is as the project name |
2022-02-10 19:18:57 +0100 | polyphem_ | polyphem |
2022-02-10 19:19:59 +0100 | wombat875 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) |
2022-02-10 19:20:23 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds) |
2022-02-10 19:22:04 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-10 19:24:22 +0100 | nattiestnate | (~nate@2001:448a:4063:1cc8:3706:7ea7:62f5:aeaf) |
2022-02-10 19:25:37 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Ping timeout: 240 seconds) |
2022-02-10 19:26:17 +0100 | lottaquestions | (~nick@2607:fa49:5041:a200:b92:1a0:165b:5914) (Ping timeout: 240 seconds) |
2022-02-10 19:26:29 +0100 | anon66200164 | (~anon66200@host-92-19-99-147.as13285.net) |
2022-02-10 19:27:24 +0100 | <anon66200164> | I have an assessment tomorrow, hopefully I can cover tuples this even and do a few questions before it |
2022-02-10 19:27:43 +0100 | Vajb | (~Vajb@2001:999:274:c862:3b86:e1e1:5bff:355e) |
2022-02-10 19:29:40 +0100 | tiferrei | (~tiferrei@user/tiferrei) (Remote host closed the connection) |
2022-02-10 19:29:57 +0100 | <polyphem> | Unicorn_Princess: cabal init -n -o nyfirstapp |
2022-02-10 19:30:14 +0100 | <polyphem> | Unicorn_Princess: cabal init -n -p myfirstapp |
2022-02-10 19:32:01 +0100 | <Unicorn_Princess> | what does -o/p do? |
2022-02-10 19:32:02 +0100 | Vajb | (~Vajb@2001:999:274:c862:3b86:e1e1:5bff:355e) (Ping timeout: 250 seconds) |
2022-02-10 19:32:21 +0100 | nebu | (~user@user/wavion) |
2022-02-10 19:32:24 +0100 | Everything | (~Everythin@37.115.210.35) (Quit: leaving) |
2022-02-10 19:32:45 +0100 | <Unicorn_Princess> | (in any case i just manually made a directory and did cabal init in.. it) |
2022-02-10 19:32:46 +0100 | mei | (~mei@user/mei) (Quit: mei) |
2022-02-10 19:33:04 +0100 | <polyphem> | Unicorn_Princess: ignore first line, cabal init --help |
2022-02-10 19:33:35 +0100 | lottaquestions | (~nick@2607:fa49:5041:a200:c170:ec30:68fa:bc68) |
2022-02-10 19:34:18 +0100 | <polyphem> | Unicorn_Princess: -p is for your package name , yea you should create and enter a directory |
2022-02-10 19:34:27 +0100 | tiferrei | (~tiferrei@user/tiferrei) |
2022-02-10 19:36:49 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 256 seconds) |
2022-02-10 19:38:08 +0100 | abhixec | (~abhinav@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 252 seconds) |
2022-02-10 19:38:33 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-10 19:38:39 +0100 | CiaoSen | (~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2022-02-10 19:39:19 +0100 | <monochrom> | https://blog.plover.com/meta/job.html This gets interesting. The venerable Mark Dominus wants a Haskell job, too! |
2022-02-10 19:39:28 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:adf2:7fd4:5ba2:8512) (Quit: Textual IRC Client: www.textualapp.com) |
2022-02-10 19:39:46 +0100 | jgeerds_ | (~jgeerds@55d4a547.access.ecotel.net) |
2022-02-10 19:42:09 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:95db:50d7:7eec:328d) |
2022-02-10 19:44:55 +0100 | monaaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-10 19:45:36 +0100 | ChanServ | +o litharge |
2022-02-10 19:45:37 +0100 | litharge | -bo lavaman!~lavaman@98.38.249.169$##fix-your-connection litharge |
2022-02-10 19:45:50 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Remote host closed the connection) |
2022-02-10 19:47:43 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:30cc:b923:a3cb:c39c) |
2022-02-10 19:48:58 +0100 | anon66200164 | (~anon66200@host-92-19-99-147.as13285.net) (Remote host closed the connection) |
2022-02-10 19:49:14 +0100 | anon66200164 | (~anon66200@host-92-19-99-147.as13285.net) |
2022-02-10 19:50:10 +0100 | monaaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds) |
2022-02-10 19:51:16 +0100 | monaaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-10 19:52:54 +0100 | cynomys | (~cynomys@user/cynomys) |
2022-02-10 19:54:13 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 19:54:21 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 19:54:29 +0100 | bristermitten | (~bristermi@2a00:8b40:8beb:0:de76:3286:3969:f4aa) |
2022-02-10 19:54:35 +0100 | [exa] | (exa@srv3.blesmrt.net) (Changing host) |
2022-02-10 19:54:35 +0100 | [exa] | (exa@user/exa/x-3587197) |
2022-02-10 19:54:35 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 19:54:37 +0100 | lottaquestions | (~nick@2607:fa49:5041:a200:c170:ec30:68fa:bc68) (Ping timeout: 240 seconds) |
2022-02-10 19:54:43 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 19:54:58 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 19:55:06 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 19:55:20 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 19:55:28 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 19:55:42 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 19:55:49 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 19:56:04 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 19:56:11 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 19:56:28 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 19:56:34 +0100 | <bristermitten> | Hi all, I'm trying to write an indentation-sensitive parser / lexer with Alex / Happy, but I'm encountering some issues. The majority of the resources & examples that I've found seem to be quite outdated, and I'm struggling to adapt them. |
2022-02-10 19:56:35 +0100 | <bristermitten> | I've found the most luck with this example: https://github.com/jmoy/alexhappy/blob/master/whitespace/Lexer.x but it still doesn't seem to compile. I get a bunch of errors: https://paste.tomsmeding.com/fTZhuGeT |
2022-02-10 19:56:36 +0100 | <bristermitten> | https://paste.tomsmeding.com/yn3JWSrh Here is my currently Lexer.x |
2022-02-10 19:56:36 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 19:56:36 +0100 | <bristermitten> | Could I get some support please? Thanks! |
2022-02-10 19:56:37 +0100 | slack1256 | (~slack1256@186.11.0.215) |
2022-02-10 19:56:38 +0100 | ChanServ | +o litharge |
2022-02-10 19:56:39 +0100 | litharge | +b *!*@98.38.249.169 |
2022-02-10 19:56:49 +0100 | litharge | -o litharge |
2022-02-10 19:57:16 +0100 | <slack1256> | Is `nubOrd` defined somewhere in the core libraries? It doesn't seem to be on `base`. |
2022-02-10 19:57:19 +0100 | ChanServ | +o litharge |
2022-02-10 19:57:20 +0100 | litharge | -bo *!*@98.38.249.169 litharge |
2022-02-10 19:57:28 +0100 | kayvank | (~user@52-119-115-185.PUBLIC.monkeybrains.net) |
2022-02-10 19:57:34 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 19:57:41 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 19:57:55 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 19:58:02 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 19:58:17 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 19:58:25 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2022-02-10 19:58:33 +0100 | ChanServ | +o litharge |
2022-02-10 19:58:34 +0100 | litharge | +b *!*@98.38.249.169$##fix-your-connection |
2022-02-10 19:58:44 +0100 | litharge | -o litharge |
2022-02-10 19:59:07 +0100 | whound | (~dust@2409:4071:4d8d:7b21:2586:8c37:2856:667a) |
2022-02-10 20:00:52 +0100 | <monochrom> | It's in containers |
2022-02-10 20:01:24 +0100 | <monochrom> | Since it uses Data.Set at the back. |
2022-02-10 20:01:57 +0100 | Inst | (~delicacie@2601:6c4:4080:3f80:5c6a:e4b3:e4cd:1bc3) (Ping timeout: 240 seconds) |
2022-02-10 20:03:14 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293) (Ping timeout: 250 seconds) |
2022-02-10 20:03:18 +0100 | michalz | (~michalz@185.246.204.87) (Read error: No route to host) |
2022-02-10 20:04:58 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) (Remote host closed the connection) |
2022-02-10 20:05:12 +0100 | michalz | (~michalz@185.246.204.75) |
2022-02-10 20:05:17 +0100 | unyu | (~pyon@user/pyon) (Quit: WeeChat 3.4) |
2022-02-10 20:05:50 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:68f0:cbbd:5b77:19e4) (Remote host closed the connection) |
2022-02-10 20:06:11 +0100 | <slack1256> | Oh it is on `Data.Containers.ListUtils`, awesome! |
2022-02-10 20:06:16 +0100 | <slack1256> | Thanks monochrom. |
2022-02-10 20:07:29 +0100 | alp | (~alp@user/alp) (Remote host closed the connection) |
2022-02-10 20:07:54 +0100 | alp | (~alp@user/alp) |
2022-02-10 20:07:54 +0100 | cynomys | (~cynomys@user/cynomys) (Ping timeout: 260 seconds) |
2022-02-10 20:10:04 +0100 | lottaquestions | (~nick@2607:fa49:5041:a200:833f:e9c7:6325:4206) |
2022-02-10 20:11:18 +0100 | vysn | (~vysn@user/vysn) |
2022-02-10 20:18:34 +0100 | ChanServ | +o litharge |
2022-02-10 20:18:35 +0100 | litharge | -bo *!*@98.38.249.169$##fix-your-connection litharge |
2022-02-10 20:18:39 +0100 | <reactormonk[m]> | Is there a Maybe version of succ somewhere? |
2022-02-10 20:20:11 +0100 | <ski> | probably requires `Bounded' and `Eq' |
2022-02-10 20:21:32 +0100 | <anon66200164> | could someone else how a tuple works I can't seem to get fst (1,2) to work on ghci? |
2022-02-10 20:21:46 +0100 | <ski> | > fst (1,2) |
2022-02-10 20:21:47 +0100 | <geekosaur> | what goes wrong? |
2022-02-10 20:21:47 +0100 | <lambdabot> | 1 |
2022-02-10 20:22:06 +0100 | <polyphem> | reactormonk[m]: succMay in the safe package |
2022-02-10 20:22:16 +0100 | <ski> | do you have any particular interactor query, or code snippet, you'd like to show ? |
2022-02-10 20:22:20 +0100 | <reactormonk[m]> | thx |
2022-02-10 20:22:27 +0100 | <ski> | @hoogle succMay |
2022-02-10 20:22:27 +0100 | <lambdabot> | Safe succMay :: (Enum a, Eq a, Bounded a) => a -> Maybe a |
2022-02-10 20:22:27 +0100 | <lambdabot> | Intro succMay :: (Enum a, Eq a, Bounded a) => a -> Maybe a |
2022-02-10 20:22:40 +0100 | <anon66200164> | this error https://paste.tomsmeding.com/JKbIjqxK |
2022-02-10 20:23:04 +0100 | <ski> | anon66200164 : you defined your own `fst' ? |
2022-02-10 20:23:23 +0100 | <ski> | (or used a `fst' defined for you by your lecturer, or something) |
2022-02-10 20:23:36 +0100 | <anon66200164> | define it like this fst :: (a, b) -> a fst (x, _) = x |
2022-02-10 20:23:56 +0100 | <ski> | why not use the standard `fst' ? |
2022-02-10 20:24:10 +0100 | <anon66200164> | neither one seems to work in any case |
2022-02-10 20:24:27 +0100 | <ski> | if you really want to use that one, try saying `Main.fst' instead .. or add `import Prelude hiding (fst)' to the top of your source file (under `module' if you have any) |
2022-02-10 20:24:30 +0100 | <anon66200164> | https://paste.tomsmeding.com/sngl2RXv |
2022-02-10 20:24:44 +0100 | <anon66200164> | Alright |
2022-02-10 20:25:09 +0100 | <ski> | but i'd suggest just using the standard `fst', instead of having your own definition of it |
2022-02-10 20:25:21 +0100 | <monochrom> | Name clash is a thing. |
2022-02-10 20:25:44 +0100 | <wavemode> | the error means exactly what it says, if you define something with the same name as something else in scope the compiler doesn't know which one you're referring to. disambiguate with ModuleName.symbol |
2022-02-10 20:25:57 +0100 | <anon66200164> | so it works when I use the terminal but it doesn't work when I use it in the vs code terminal |
2022-02-10 20:26:18 +0100 | <anon66200164> | weird |
2022-02-10 20:26:19 +0100 | <monochrom> | In C, I wouldn't name my own function "printf". |
2022-02-10 20:26:31 +0100 | <monochrom> | In Unix, I wouldn't name my own shell script "test". |
2022-02-10 20:26:48 +0100 | <monochrom> | All classical examples of name clashes. |
2022-02-10 20:26:55 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2022-02-10 20:28:06 +0100 | <monochrom> | You are already blessed that the computer actually lays out "you have a name clash". |
2022-02-10 20:28:28 +0100 | <ski> | a/use the terminal/use the interactor/ |
2022-02-10 20:28:30 +0100 | <monochrom> | Because the alternative would be the computer automatically chooses the one you don't mean. |
2022-02-10 20:28:32 +0100 | lechner | (~lechner@debian/lechner) |
2022-02-10 20:28:59 +0100 | ski | grins |
2022-02-10 20:29:07 +0100 | <anon66200164> | ski: got it |
2022-02-10 20:29:14 +0100 | unyu | (~pyon@user/pyon) |
2022-02-10 20:29:38 +0100 | max22- | (~maxime@2a01cb08833598000823846d04004043.ipv6.abo.wanadoo.fr) (Remote host closed the connection) |
2022-02-10 20:29:39 +0100 | cynomys | (~cynomys@user/cynomys) |
2022-02-10 20:29:56 +0100 | <ski> | anon66200164 : so, did you manage to write `g :: (a,b) -> (b,a)' ? |
2022-02-10 20:30:06 +0100 | <ski> | .. using `fst' and `snd' |
2022-02-10 20:31:47 +0100 | <anon66200164> | After I restarted vs code, it worked, idk what was wrong the first time |
2022-02-10 20:31:56 +0100 | <anon66200164> | I should be able to solve the sumPair exercise now |
2022-02-10 20:32:37 +0100 | <anon66200164> | i.e. sumPairs [(1,2), (3,4)] =10 |
2022-02-10 20:33:19 +0100 | <ski> | sounds reasonable |
2022-02-10 20:33:30 +0100 | <ski> | were you required to solve that, using `fst' and `snd' ? |
2022-02-10 20:34:58 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
2022-02-10 20:37:19 +0100 | <anon66200164> | it wasn't required to only use that, but I didn't want to use anything that hasn't been mentioned in lectures |
2022-02-10 20:37:25 +0100 | <anon66200164> | so no map |
2022-02-10 20:38:13 +0100 | <monochrom> | You can use pattern matching with a pattern like "(x,y)". You can use fst and snd. You should do both. |
2022-02-10 20:38:44 +0100 | <anon66200164> | Yeah, I will try to solve the same problem in multiple ways |
2022-02-10 20:39:10 +0100 | whound | (~dust@2409:4071:4d8d:7b21:2586:8c37:2856:667a) (Quit: Konversation terminated!) |
2022-02-10 20:39:11 +0100 | jgeerds_ | (~jgeerds@55d4a547.access.ecotel.net) (Ping timeout: 250 seconds) |
2022-02-10 20:39:28 +0100 | nschoe | (~quassel@2a01:e0a:8e:a190:3031:10e7:f93f:b88c) |
2022-02-10 20:39:48 +0100 | k8yun | (~k8yun@user/k8yun) |
2022-02-10 20:42:37 +0100 | vysn | (~vysn@user/vysn) (Ping timeout: 240 seconds) |
2022-02-10 20:44:15 +0100 | bristermitten | (~bristermi@2a00:8b40:8beb:0:de76:3286:3969:f4aa) (Quit: Client closed) |
2022-02-10 20:44:29 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480::41) |
2022-02-10 20:45:04 +0100 | <anon66200164> | I know I'm working on this now but my assessment2 is being released tomorrow and my lecturer has just it will basically involve building wordle using haskell |
2022-02-10 20:45:27 +0100 | <anon66200164> | has anyone done that here? |
2022-02-10 20:45:59 +0100 | mastarija | (~mastarija@2a05:4f46:e04:6000:15fe:cab1:6fd:b807) (Quit: Leaving) |
2022-02-10 20:46:10 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-02-10 20:46:19 +0100 | <janus> | yes, i have seen people doing wordle in haskell, i think e.g. sshine did |
2022-02-10 20:46:20 +0100 | <dsal> | anon66200164: There's a video series from a well-known haskeller and a blog post from at least one other. |
2022-02-10 20:46:28 +0100 | <monochrom> | I think no but maybe people on the haskell subreddit have. |
2022-02-10 20:46:42 +0100 | <anon66200164> | should be fun |
2022-02-10 20:46:52 +0100 | <anon66200164> | I haven't actually played wordle lol |
2022-02-10 20:46:53 +0100 | <dsal> | It's the only way I'd get interested in the game in the first place. :) |
2022-02-10 20:47:13 +0100 | <monochrom> | Back in the days of Suduko everyone here was doing that. |
2022-02-10 20:47:16 +0100 | <dsal> | 3Blue1Brown did a pretty neat video describing some information theory around it. |
2022-02-10 20:47:24 +0100 | max22- | (~maxime@2a01cb088335980064335dca1fbb49a4.ipv6.abo.wanadoo.fr) |
2022-02-10 20:47:38 +0100 | <monochrom> | But that's also when #haskell was the major discussion platform and reddit didn't exist. |
2022-02-10 20:47:47 +0100 | <dsal> | I didn't do suduko or wordle. AoC is my favorite game, but it's seasonal |
2022-02-10 20:47:53 +0100 | <anon66200164> | dsal: fair enough, I'm enjoying my functional programming module, it's mostly because the lecturer is really good, but still, it's a pleasant change from java |
2022-02-10 20:48:23 +0100 | <dsal> | I somehow read that as "lava" which sounds terribly painful so it didn't seem off to me. |
2022-02-10 20:48:49 +0100 | <monochrom> | Our own https://reasonablypolymorphic.com/blog/wordle/index.html probably covers similar information theory. |
2022-02-10 20:48:56 +0100 | <geekosaur> | is there much of a difference? |
2022-02-10 20:49:38 +0100 | <ski> | i accidentally invented a scheme to do (possibly left-nested) goal implications, in logic programming, last time i looked at Sudoku |
2022-02-10 20:50:38 +0100 | <dsal> | I was working with some xml junk in the 90s and ended up making something like a language that I used to express property tests. I called it Extensible Markup Lisp |
2022-02-10 20:50:52 +0100 | ski | idly wonders whether there's any Sudoku implementation in Lava |
2022-02-10 20:51:02 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 240 seconds) |
2022-02-10 20:51:18 +0100 | slac67097 | (~slack1256@191.126.227.64) |
2022-02-10 20:52:02 +0100 | nschoe | (~quassel@2a01:e0a:8e:a190:3031:10e7:f93f:b88c) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2022-02-10 20:52:20 +0100 | phma | (~phma@host-67-44-209-72.hnremote.net) (Read error: Connection reset by peer) |
2022-02-10 20:53:03 +0100 | jao | (~jao@211.68.17.95.dynamic.jazztel.es) (Ping timeout: 250 seconds) |
2022-02-10 20:53:17 +0100 | slack1256 | (~slack1256@186.11.0.215) (Ping timeout: 240 seconds) |
2022-02-10 20:53:30 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:68f0:cbbd:5b77:19e4) |
2022-02-10 20:54:22 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2022-02-10 20:54:31 +0100 | jakalx | (~jakalx@base.jakalx.net) (Disconnected: Replaced by new connection) |
2022-02-10 20:54:31 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-02-10 20:54:45 +0100 | phma | (phma@2001:5b0:210d:6718:cad1:39ac:d8eb:ddb1) |
2022-02-10 20:56:49 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-10 20:56:54 +0100 | monaaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds) |
2022-02-10 20:57:42 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-02-10 20:58:54 +0100 | califax | (~califax@user/califx) |
2022-02-10 21:03:18 +0100 | jalil | (~jalil@2a01:e0a:277:4100:f726:20ac:8c7a:b279) (Quit: jalil) |
2022-02-10 21:04:25 +0100 | x_kuru | (~xkuru@user/xkuru) |
2022-02-10 21:05:13 +0100 | juhp | (~juhp@128.106.188.82) (Ping timeout: 256 seconds) |
2022-02-10 21:06:49 +0100 | juhp | (~juhp@128.106.188.82) |
2022-02-10 21:07:07 +0100 | xkuru | (~xkuru@user/xkuru) (Ping timeout: 250 seconds) |
2022-02-10 21:07:17 +0100 | briandaed | (~root@109.95.143.81.r.toneticgroup.pl) |
2022-02-10 21:08:37 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
2022-02-10 21:14:09 +0100 | michalz | (~michalz@185.246.204.75) (Remote host closed the connection) |
2022-02-10 21:15:51 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Remote host closed the connection) |
2022-02-10 21:16:15 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-10 21:18:18 +0100 | <anon66200164> | why do I get a variable not in scope error here? sumPairs :: [(a, b)] -> Integer sumPairs [(_, _)] = 0 |
2022-02-10 21:18:35 +0100 | <anon66200164> | shouldn't it always give me 0 |
2022-02-10 21:18:46 +0100 | <dminuoso> | anon66200164: take a closer look at the error message. |
2022-02-10 21:19:02 +0100 | <dminuoso> | @where paste |
2022-02-10 21:19:02 +0100 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
2022-02-10 21:19:08 +0100 | <dminuoso> | Can you share the entirety of the error message? |
2022-02-10 21:19:14 +0100 | <dminuoso> | Perhaps we can help you decipher it yourself |
2022-02-10 21:19:46 +0100 | mstksg | (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 260 seconds) |
2022-02-10 21:20:08 +0100 | <anon66200164> | https://paste.tomsmeding.com/SI1Hvfr8 |
2022-02-10 21:20:26 +0100 | <anon66200164> | I was trying to test out if it works, so it's not solved yet |
2022-02-10 21:20:32 +0100 | <dminuoso> | Variable not in scope: sumPairs :: [(a0, b0)] -> t |
2022-02-10 21:20:40 +0100 | <anon66200164> | what does that mean? |
2022-02-10 21:20:46 +0100 | <dminuoso> | That just means you are using `sumPairs`, which is a variable |
2022-02-10 21:20:51 +0100 | <dminuoso> | But to GHC, that variable is not in scope |
2022-02-10 21:20:56 +0100 | <dminuoso> | That is, it doesn't know what this |
2022-02-10 21:21:12 +0100 | <dminuoso> | i.e. this happens if sumPairs is either not defined or imported |
2022-02-10 21:21:21 +0100 | mstksg | (~jle`@cpe-23-240-75-236.socal.res.rr.com) |
2022-02-10 21:21:35 +0100 | <geekosaur> | did you enter this into ghci? |
2022-02-10 21:22:01 +0100 | <ski> | did you save your file ? |
2022-02-10 21:22:20 +0100 | <anon66200164> | I did save the file |
2022-02-10 21:22:34 +0100 | <ski> | and you're loading the correct file into the interactor ? |
2022-02-10 21:22:44 +0100 | <anon66200164> | I https://paste.tomsmeding.com/EvhiXAR7 |
2022-02-10 21:23:08 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2022-02-10 21:23:45 +0100 | <ski> | that's just the same error that `sumPairs' isn't in scope (isn't defined/bound) |
2022-02-10 21:24:58 +0100 | <anon66200164> | ski: it was a :l issue :/ my bad |
2022-02-10 21:25:07 +0100 | phma | (phma@2001:5b0:210d:6718:cad1:39ac:d8eb:ddb1) (Read error: Connection reset by peer) |
2022-02-10 21:25:33 +0100 | <anon66200164> | sumPairs :: [(Integer , Integer )] -> Integer sumPairs [(_,_)] = 0 always returns 0 |
2022-02-10 21:25:40 +0100 | <ski> | no worry, happens to the best of us |
2022-02-10 21:25:41 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 21:26:00 +0100 | <ski> | well, sure. you've defined it that way |
2022-02-10 21:26:00 +0100 | phma | (~phma@host-67-44-208-245.hnremote.net) |
2022-02-10 21:26:04 +0100 | <monochrom> | Ah but what about [] and [(0,0), (0,0)] |
2022-02-10 21:26:15 +0100 | <ski> | (in the cases it computes an answer at all :) |
2022-02-10 21:26:49 +0100 | <anon66200164> | I get an exception |
2022-02-10 21:27:16 +0100 | <anon66200164> | how do I make it so it takes multiple tuples in any lengthh list |
2022-02-10 21:27:25 +0100 | <monochrom> | Recursion. |
2022-02-10 21:28:35 +0100 | <anon66200164> | so for this question, thinking so far https://paste.tomsmeding.com/oBubMuV7 |
2022-02-10 21:29:23 +0100 | <monochrom> | Yes, like that. |
2022-02-10 21:29:32 +0100 | <monochrom> | But it's [] not [()] |
2022-02-10 21:29:45 +0100 | <ski> | the base case is defined to take a singleton (with an empty tuple), not an empty list (of pairs) |
2022-02-10 21:29:56 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 245 seconds) |
2022-02-10 21:30:20 +0100 | <monochrom> | You probably haven't truly embraced the fact that, for example, if the type is [Int], then the value can be [] without even having any relevance to Int. |
2022-02-10 21:30:51 +0100 | tiferrei | (~tiferrei@user/tiferrei) (Ping timeout: 276 seconds) |
2022-02-10 21:30:52 +0100 | tiferrei2000 | (~tiferrei@user/tiferrei) |
2022-02-10 21:31:13 +0100 | <ski> | for lists, a good starting point is to have the empty list as a base case .. unless you already know that you want another base case (or more base cases, in addition) |
2022-02-10 21:31:29 +0100 | <anon66200164> | sumPairs ((a, b) : xs) = fst x + snd x would this work? |
2022-02-10 21:31:44 +0100 | <monochrom> | What about the numbers in xs? |
2022-02-10 21:31:49 +0100 | <ski> | what is `x' ? |
2022-02-10 21:31:53 +0100 | <anon66200164> | I still need to deal with that |
2022-02-10 21:32:03 +0100 | <anon66200164> | ski: it's the pair (a, b) |
2022-02-10 21:32:09 +0100 | <ski> | no, it isn't |
2022-02-10 21:32:14 +0100 | <anon66200164> | f |
2022-02-10 21:32:18 +0100 | <anon66200164> | ok umm |
2022-02-10 21:32:19 +0100 | <ski> | you have to say so, if you want it to be that |
2022-02-10 21:32:26 +0100 | <ski> | sumPairs (x : xs) = fst x + snd x |
2022-02-10 21:32:28 +0100 | <ski> | or |
2022-02-10 21:32:33 +0100 | <ski> | sumPairs (x@(a,b) : xs) = fst x + snd x |
2022-02-10 21:32:53 +0100 | <anon66200164> | I haven't seen the second version are those equivalent? |
2022-02-10 21:32:57 +0100 | <ski> | (the latter both names the pair `x', as well as naming the two components `a' and `b') |
2022-02-10 21:33:31 +0100 | dhouthoo_ | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.4) |
2022-02-10 21:33:32 +0100 | <ski> | (occasionally, it's useful to both give a name to something, as well as to some of its parts) |
2022-02-10 21:33:34 +0100 | <anon66200164> | monochrom: what did you mean the type being [Int]? |
2022-02-10 21:33:57 +0100 | <monochrom> | [Int] is a type. You know that? |
2022-02-10 21:34:03 +0100 | <anon66200164> | Yeah |
2022-02-10 21:34:09 +0100 | <ski> | monochrom's is talking about the empty list `[]', that it can be of any list type `[T]', for any type `T' |
2022-02-10 21:34:21 +0100 | <anon66200164> | but I already said sumPairs has type sumPairs :: [(Integer , Integer )] -> Integer |
2022-02-10 21:34:27 +0100 | <anon66200164> | ohh |
2022-02-10 21:34:29 +0100 | <ski> | in case it's the empty list, it contains no element of type `T' at all |
2022-02-10 21:35:26 +0100 | <monochrom> | So [] is a value of type [(Integer , Integer )] without any relevance to Integer or (Foo,Bar) business. |
2022-02-10 21:35:48 +0100 | <monochrom> | The empty list doesn't need to contain an "empty tuple" for emptiness. |
2022-02-10 21:36:57 +0100 | <anon66200164> | https://paste.tomsmeding.com/OPmiA8gn |
2022-02-10 21:37:15 +0100 | <monochrom> | Yes like that. |
2022-02-10 21:37:22 +0100 | <monochrom> | Now you understand recursion. |
2022-02-10 21:37:38 +0100 | lavaman | (~lavaman@98.38.249.169) |
2022-02-10 21:37:46 +0100 | <anon66200164> | monochrom: I'm getting there, I need to solve 7 more practise exercises and then do a mock test before 9am tomorrow |
2022-02-10 21:38:02 +0100 | <ski> | anon66200164 : now do it, using `(a,b)' in place of `x' |
2022-02-10 21:38:15 +0100 | <ski> | (then compare the two solutions) |
2022-02-10 21:38:23 +0100 | <monochrom> | If you like "sumPairs ((a,b) : xs) = ..." then it's "a + b + sumPairs xs" |
2022-02-10 21:39:05 +0100 | <monochrom> | "sumPairs ((a, b) : xs) = fst x + snd x" was not making up your mind whether you want to use patterns or fst and snd. |
2022-02-10 21:39:11 +0100 | <anon66200164> | ski: ok |
2022-02-10 21:39:59 +0100 | <anon66200164> | I get an error |
2022-02-10 21:40:57 +0100 | <anon66200164> | nvm it works also |
2022-02-10 21:41:08 +0100 | ski | . o O ( "We get signal." ) |
2022-02-10 21:41:37 +0100 | <ski> | anon66200164 : which of the two is the clearer one, in your mind ? or are they about the same ? |
2022-02-10 21:41:48 +0100 | <monochrom> | "sigma > 4.999999...." |
2022-02-10 21:42:31 +0100 | <anon66200164> | sumPairs (x : xs) = fst x + snd x + sumPairs xs becuase I have used this pattern before to solve a Length of list problem using recursion |
2022-02-10 21:42:47 +0100 | <ski> | ok |
2022-02-10 21:42:54 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds) |
2022-02-10 21:43:22 +0100 | <anon66200164> | I didn't think it was actually possible to do it using sumPairs ((a,b) : xs) = (a + b) + sumPairs xs becuase I didn't think it would evaluate (a+b) like it did |
2022-02-10 21:43:41 +0100 | <ski> | it's good to have options |
2022-02-10 21:43:46 +0100 | <anon66200164> | yh |
2022-02-10 21:44:02 +0100 | <ski> | (those brackets around the addition are not necessary, btw) |
2022-02-10 21:44:38 +0100 | <anon66200164> | I thought it just made it clearer ¯\_(ツ)_/¯ |
2022-02-10 21:44:53 +0100 | <anon66200164> | good stuff |
2022-02-10 21:45:18 +0100 | Ariakenom_ | (~Ariakenom@h-82-196-111-63.NA.cust.bahnhof.se) (Quit: Leaving) |
2022-02-10 21:48:16 +0100 | wavemode | (~wavemode@2601:241:0:fc90:2892:d0:a7ec:bc11) (Quit: Client closed) |
2022-02-10 21:48:29 +0100 | <EvanR> | emptyTuple = fix (\(x,y) -> (y,x)) |
2022-02-10 21:48:57 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480::41) (Ping timeout: 240 seconds) |
2022-02-10 21:49:31 +0100 | Inst | (~delicacie@2601:6c4:4080:3f80:f0fd:e448:c8d2:7c01) |
2022-02-10 21:51:35 +0100 | wavemode | (~wavemode@2601:241:0:fc90:12bc:6a75:8601:ea04) |
2022-02-10 21:55:03 +0100 | <anon66200164> | https://paste.tomsmeding.com/bfPNgz7f |
2022-02-10 21:55:25 +0100 | <monochrom> | Yeah. |
2022-02-10 21:55:40 +0100 | <ski> | s/theSum/total/ ? |
2022-02-10 21:55:57 +0100 | <monochrom> | Oh haha. |
2022-02-10 21:56:07 +0100 | <anon66200164> | theSum of all the items in the list |
2022-02-10 21:56:21 +0100 | <anon66200164> | if the elements are Integers |
2022-02-10 21:56:32 +0100 | <monochrom> | But what name does the teacher wants you to use? |
2022-02-10 21:56:53 +0100 | <anon66200164> | oh lol |
2022-02-10 21:57:07 +0100 | <EvanR> | cache invalidation and naming stuff |
2022-02-10 21:57:39 +0100 | <monochrom> | "invalidation" is so negative. |
2022-02-10 21:57:48 +0100 | <EvanR> | cache unparsing |
2022-02-10 21:57:59 +0100 | <monochrom> | People should talk more about "cache validation". >:) |
2022-02-10 21:58:00 +0100 | <anon66200164> | tbf these are not marked, it's just personal exercises |
2022-02-10 21:58:21 +0100 | <ski> | @where pdv |
2022-02-10 21:58:21 +0100 | <lambdabot> | "Parse, don't validate" by lexi-lambda in 2019-11-05 at <https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/> |
2022-02-10 21:58:22 +0100 | <anon66200164> | extra questions to practice for the real thing |
2022-02-10 22:01:41 +0100 | `2jt | (~jtomas@130.red-88-22-46.staticip.rima-tde.net) (Remote host closed the connection) |
2022-02-10 22:01:48 +0100 | n3rdy1 | (~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293) |
2022-02-10 22:01:48 +0100 | <EvanR> | cache effectiveness. 0 is "as if no cache exists". positive means cache works and provides a benefit. negative (the typical case) means performance was worse and or results are just wrong because caching scheme is broken |
2022-02-10 22:01:51 +0100 | <anon66200164> | this is incorrect, I need to put each doubles value back into its position in the list https://paste.tomsmeding.com/JRRD3HwU |
2022-02-10 22:02:04 +0100 | `2jt | (~jtomas@130.red-88-22-46.staticip.rima-tde.net) |
2022-02-10 22:02:07 +0100 | <EvanR> | in which case zero is almost positive by comparison |
2022-02-10 22:02:10 +0100 | Pickchea | (~private@user/pickchea) |
2022-02-10 22:02:54 +0100 | <ski> | > 3*2 : [4,2,0] -- anon66200164 |
2022-02-10 22:02:55 +0100 | <lambdabot> | [6,4,2,0] |
2022-02-10 22:04:03 +0100 | <anon66200164> | cons |
2022-02-10 22:05:01 +0100 | <EvanR> | cons is also negative, why can't we build list out of pros |
2022-02-10 22:05:11 +0100 | ski | . o O ( "CONS Should Not CONS Its Arguments, Part II: Cheney on the M.T.A." by Henry G. Baker in 1994 at <https://plover.com/~mjd/misc/hbaker-archive/CheneyMTA.html> ) |
2022-02-10 22:05:36 +0100 | <ski> | would pros build lists of negative length ? |
2022-02-10 22:06:19 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2022-02-10 22:07:05 +0100 | <anon66200164> | doubles (x : xs) = x*2 : [] + doubles xs |
2022-02-10 22:07:36 +0100 | <anon66200164> | but it will reverse the list |
2022-02-10 22:08:02 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2022-02-10 22:08:48 +0100 | mikoto-chan | (~mikoto-ch@213.177.151.239) (Ping timeout: 268 seconds) |
2022-02-10 22:10:17 +0100 | ravella | (~ravella@user/ryanavella) (Ping timeout: 240 seconds) |
2022-02-10 22:10:34 +0100 | <anon66200164> | should I use tail |
2022-02-10 22:10:47 +0100 | neurocyte0917090 | (~neurocyte@user/neurocyte) |
2022-02-10 22:11:40 +0100 | <wavemode> | `[] ++ doubles xs` is equivalent to `doubles xs` |
2022-02-10 22:12:05 +0100 | nebu | (~user@user/wavion) (Ping timeout: 256 seconds) |
2022-02-10 22:13:31 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
2022-02-10 22:13:46 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2022-02-10 22:14:37 +0100 | anon66200164 | (~anon66200@host-92-19-99-147.as13285.net) (Remote host closed the connection) |
2022-02-10 22:14:55 +0100 | anon66200164 | (~anon66200@host-92-19-99-147.as13285.net) |
2022-02-10 22:17:17 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
2022-02-10 22:18:02 +0100 | slac67097 | (~slack1256@191.126.227.64) (Remote host closed the connection) |
2022-02-10 22:18:53 +0100 | <anon66200164> | "Do not use any functions in the standard library (Prelude) other than arithmetic and boolean operations." does this mean I can't use fst? |
2022-02-10 22:19:01 +0100 | cynomys | (~cynomys@user/cynomys) (Quit: Lost terminal) |
2022-02-10 22:19:33 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-10 22:19:34 +0100 | <geekosaur> | in most cases you want pattern matching instead |
2022-02-10 22:20:29 +0100 | anon66200164 | (~anon66200@host-92-19-99-147.as13285.net) (Remote host closed the connection) |
2022-02-10 22:20:46 +0100 | anon66200164 | (~anon66200@host-92-19-99-147.as13285.net) |
2022-02-10 22:20:57 +0100 | <anon66200164> | geekosaur: ok |
2022-02-10 22:21:43 +0100 | <janus> | anon66200164: it also means you can't use the list constructor (:) or the concatenator (++) |
2022-02-10 22:22:02 +0100 | <wavemode> | yeah I assume by functions they mean functions that aren't data constructors lol |
2022-02-10 22:22:07 +0100 | <anon66200164> | that's quite odd since we used them in lectures |
2022-02-10 22:32:12 +0100 | <EvanR> | "do not use any odd functions in the standard library, i.e. f(x) = -f(x) |
2022-02-10 22:32:33 +0100 | <EvanR> | ... doh |
2022-02-10 22:42:10 +0100 | jgeerds_ | (~jgeerds@55d4a547.access.ecotel.net) |
2022-02-10 22:44:00 +0100 | epolanski | (uid312403@id-312403.helmsley.irccloud.com) |
2022-02-10 22:45:14 +0100 | stef204 | (~stef204@user/stef204) |
2022-02-10 22:45:28 +0100 | dsrt^ | (~dsrt@128-092-160-106.biz.spectrum.com) |
2022-02-10 22:47:22 +0100 | <ephemient> | isn't an odd function one that satisfies f(-x) = -f(x)? |
2022-02-10 22:47:55 +0100 | jackson99 | (~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Session timeout)) |
2022-02-10 22:49:12 +0100 | wombat875 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) (Quit: WeeChat 2.2-dev) |
2022-02-10 22:49:28 +0100 | <EvanR> | yeah |
2022-02-10 22:52:58 +0100 | stef204 | (~stef204@user/stef204) (Quit: WeeChat 3.4) |
2022-02-10 22:56:36 +0100 | <monochrom> | Hence "doh" :) |
2022-02-10 22:57:09 +0100 | <monochrom> | Theorem: If f(x) = -f(x), then f is both even and odd. >:) |
2022-02-10 22:57:12 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2022-02-10 23:00:36 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:68f0:cbbd:5b77:19e4) (Remote host closed the connection) |
2022-02-10 23:01:51 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-98.elisa-laajakaista.fi) (Quit: Leaving.) |
2022-02-10 23:02:38 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 250 seconds) |
2022-02-10 23:03:04 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds) |
2022-02-10 23:03:12 +0100 | <EvanR> | > -(minBound :: Int) |
2022-02-10 23:03:13 +0100 | <lambdabot> | -9223372036854775808 |
2022-02-10 23:04:36 +0100 | mon_aaraj | (~MonAaraj@user/mon-aaraj/x-4416475) |
2022-02-10 23:04:39 +0100 | <Inst> | do you know anything about the haskell doc.pdf thing? |
2022-02-10 23:04:45 +0100 | <Inst> | the one the berkeley philo prof made? |
2022-02-10 23:05:31 +0100 | cynomys | (~cynomys@user/cynomys) |
2022-02-10 23:05:44 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) |
2022-02-10 23:07:15 +0100 | <ephemient> | > -minBound == minBound |
2022-02-10 23:07:16 +0100 | <lambdabot> | error: |
2022-02-10 23:07:16 +0100 | <lambdabot> | • Ambiguous type variable ‘a0’ arising from a use of syntactic negation |
2022-02-10 23:07:16 +0100 | <lambdabot> | prevents the constraint ‘(Num a0)’ from being solved. |
2022-02-10 23:07:18 +0100 | anon66200164 | (~anon66200@host-92-19-99-147.as13285.net) (Remote host closed the connection) |
2022-02-10 23:07:35 +0100 | anon66200164 | (~anon66200@host-92-19-99-147.as13285.net) |
2022-02-10 23:07:54 +0100 | <ephemient> | > -minBound == (minBound :: Int) |
2022-02-10 23:07:55 +0100 | <lambdabot> | True |
2022-02-10 23:08:27 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:68f0:cbbd:5b77:19e4) |
2022-02-10 23:08:37 +0100 | <ephemient> | leading to the very fun |
2022-02-10 23:08:37 +0100 | <ephemient> | > abs (minBound :: Int) < 0 |
2022-02-10 23:08:38 +0100 | <lambdabot> | True |
2022-02-10 23:09:01 +0100 | alp | (~alp@user/alp) (Ping timeout: 240 seconds) |
2022-02-10 23:09:43 +0100 | Unicorn_Princess | (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection) |
2022-02-10 23:09:52 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) |
2022-02-10 23:10:00 +0100 | Unicorn_Princess | (~Unicorn_P@93-103-228-248.dynamic.t-2.net) |
2022-02-10 23:11:56 +0100 | foul_owl | (~kerry@174-21-76-71.tukw.qwest.net) |
2022-02-10 23:12:58 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
2022-02-10 23:13:15 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2022-02-10 23:15:17 +0100 | pooryorick | (~pooryoric@87-119-174-173.tll.elisa.ee) (Ping timeout: 240 seconds) |
2022-02-10 23:15:30 +0100 | pooryorick | (~pooryoric@87-119-174-173.tll.elisa.ee) |
2022-02-10 23:15:46 +0100 | jackson99 | (~bc8147f2@83.167.180.121) |
2022-02-10 23:15:55 +0100 | <byorgey> | Inst: I assume you're talking about https://pandoc.org/ ? |
2022-02-10 23:17:51 +0100 | <Inst> | pandoc, yes, can it convert an excel spreadsheet to a txt or something i can simply parse to check for duplicates |
2022-02-10 23:18:09 +0100 | wyrd | (~wyrd@gateway/tor-sasl/wyrd) |
2022-02-10 23:18:28 +0100 | <ski> | anon66200164 : "but it will reverse the list" -- no |
2022-02-10 23:22:20 +0100 | sektor|2 | (~kvirc@87.227.175.182) |
2022-02-10 23:23:51 +0100 | wavemode | (~wavemode@2601:241:0:fc90:12bc:6a75:8601:ea04) (Quit: Client closed) |
2022-02-10 23:25:17 +0100 | sektor|3 | (~kvirc@94.155.193.66) (Ping timeout: 252 seconds) |
2022-02-10 23:25:20 +0100 | wavemode | (~wavemode@2601:241:0:fc90:12bc:6a75:8601:ea04) |
2022-02-10 23:26:07 +0100 | <byorgey> | Inst: no, pandoc cannot convert excel spreadsheets to text. Fortunately, excel can do that. |
2022-02-10 23:26:44 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2022-02-10 23:28:02 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2022-02-10 23:29:54 +0100 | jackson99 | (~bc8147f2@83.167.180.121) (Quit: CGI:IRC) |
2022-02-10 23:32:23 +0100 | zincy | (~zincy@2a00:23c8:970c:4801:68f0:cbbd:5b77:19e4) (Remote host closed the connection) |
2022-02-10 23:32:26 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
2022-02-10 23:32:45 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2022-02-10 23:33:42 +0100 | jackson99 | (~bc8147f2@cerf.good1.com) |
2022-02-10 23:35:19 +0100 | <EvanR> | so a pair of Storables isn't Storable by default, so here I am noodling about how to implement Storable for two Word8s... |
2022-02-10 23:35:43 +0100 | <EvanR> | ok that's a Word16 but still |
2022-02-10 23:36:32 +0100 | qrpnxz | (~qrpnxz@user/qrpnxz) (Disconnected: closed) |
2022-02-10 23:37:06 +0100 | anon66200164 | (~anon66200@host-92-19-99-147.as13285.net) (Ping timeout: 256 seconds) |
2022-02-10 23:38:37 +0100 | anon66200164 | (~anon66200@host-92-19-99-147.as13285.net) |
2022-02-10 23:39:30 +0100 | abhixec | (~abhinav@c-67-169-139-16.hsd1.ca.comcast.net) |
2022-02-10 23:39:42 +0100 | <anon66200164> | ski: I don't understand how it would work |
2022-02-10 23:39:55 +0100 | merijn | (~merijn@c-001-001-027.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
2022-02-10 23:40:42 +0100 | <monochrom> | Oh, heh. Here: |
2022-02-10 23:41:00 +0100 | max22- | (~maxime@2a01cb088335980064335dca1fbb49a4.ipv6.abo.wanadoo.fr) (Quit: Leaving) |
2022-02-10 23:41:16 +0100 | <monochrom> | doubles (x : y : []) = x*2 : doubles (y : []) = x*2 : y*2 : doubles [] = ... you get the point. |
2022-02-10 23:41:40 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-02-10 23:42:43 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2022-02-10 23:42:59 +0100 | <anon66200164> | but https://paste.tomsmeding.com/o0AjqHhe |
2022-02-10 23:43:24 +0100 | <monochrom> | Clearly, doubles [] = [] |
2022-02-10 23:46:00 +0100 | wavemode | (~wavemode@2601:241:0:fc90:12bc:6a75:8601:ea04) (Quit: Client closed) |
2022-02-10 23:46:22 +0100 | abhixec | (~abhinav@c-67-169-139-16.hsd1.ca.comcast.net) (Remote host closed the connection) |
2022-02-10 23:46:40 +0100 | <anon66200164> | monochrom: sorry, could you explain why? |
2022-02-10 23:47:05 +0100 | <EvanR> | 200% of nothing is still nothing:tm: |
2022-02-10 23:47:43 +0100 | <monochrom> | There are many ways of understanding it, but none is "intuitive". This is the limitation of "intuition". |
2022-02-10 23:48:16 +0100 | <monochrom> | 1. You have to produce a list. But you have no good numbers to put in that list. May as well leave it empty. |
2022-02-10 23:49:21 +0100 | <monochrom> | 2. Someone asks me to double every number in a list. Oh but there is no number in the input list. So there is no number in the output list either. IOW output length = input length, oh but input length = 0. |
2022-02-10 23:50:08 +0100 | <ephemient> | 3. you want doubles [x] = [x*2]; the only way to make that work is with doubles [] = [] |
2022-02-10 23:50:17 +0100 | <monochrom> | 3. doubles [] = [] is the only correct base case that can make the induction case work. |
2022-02-10 23:50:30 +0100 | <monochrom> | Yeah, that. :) |
2022-02-10 23:52:00 +0100 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Quit: ERC (IRC client for Emacs 27.1)) |
2022-02-10 23:52:34 +0100 | <jackson99> | anon66200164 because doubles returns a list of Integer, not Integer |
2022-02-10 23:53:12 +0100 | <anon66200164> | thank you all for your help |
2022-02-10 23:53:31 +0100 | <EvanR> | haskell, where your questions are answered in astounding dolby 5.1 |
2022-02-10 23:53:49 +0100 | deadmarshal | (~deadmarsh@95.38.117.25) (Ping timeout: 240 seconds) |
2022-02-10 23:54:55 +0100 | <jackson99> | > map (*2) [1..10) |
2022-02-10 23:54:56 +0100 | <lambdabot> | <hint>:1:16: error: parse error on input ‘)’ |
2022-02-10 23:55:02 +0100 | <jackson99> | > map (*2) [1..] |
2022-02-10 23:55:04 +0100 | <lambdabot> | [2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,5... |
2022-02-10 23:55:14 +0100 | wombat875 | (~wombat875@pool-72-89-24-154.nycmny.fios.verizon.net) |
2022-02-10 23:55:36 +0100 | <jackson99> | that's your function, doubles = map (*2) |
2022-02-10 23:55:54 +0100 | <jackson99> | it is usually nicer to use combinators than manual recursion |
2022-02-10 23:56:07 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2022-02-10 23:56:15 +0100 | <EvanR> | the exercise was to not use "standard library functions" |
2022-02-10 23:56:22 +0100 | <monochrom> | jackson99, this one is a homework where the student learns writing manual recursion. |
2022-02-10 23:56:22 +0100 | <anon66200164> | yh |
2022-02-10 23:56:44 +0100 | <anon66200164> | I think I'm screwed for tomorrow but we shall see |
2022-02-10 23:56:55 +0100 | <anon66200164> | gn all |
2022-02-10 23:57:41 +0100 | <monochrom> | And probably at a level not ready for higher-order functions either, so not even writing one's own mymap. |
2022-02-10 23:59:04 +0100 | <jackson99> | those excercises seem questionable. I've seen two or three of them, requiring user to implement map from scratch every time |
2022-02-10 23:59:17 +0100 | Inst | (~delicacie@2601:6c4:4080:3f80:f0fd:e448:c8d2:7c01) (Ping timeout: 240 seconds) |
2022-02-10 23:59:52 +0100 | <EvanR> | also known as javascript before a certain date |