2021-12-09 00:02:59 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2021-12-09 00:04:13 +0100 | curiousgay | (~curiousga@77-120-141-90.kha.volia.net) (Ping timeout: 240 seconds) |
2021-12-09 00:04:16 +0100 | LiaoTao | (~LiaoTao@gateway/tor-sasl/liaotao) (Remote host closed the connection) |
2021-12-09 00:04:34 +0100 | relrod_ | relrod |
2021-12-09 00:05:33 +0100 | LiaoTao | (~LiaoTao@gateway/tor-sasl/liaotao) |
2021-12-09 00:06:33 +0100 | k60`` | (~user@static.100.218.46.78.clients.your-server.de) |
2021-12-09 00:08:14 +0100 | smartin | (~Thunderbi@88.135.18.171) (Quit: smartin) |
2021-12-09 00:10:34 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-09 00:11:39 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 265 seconds) |
2021-12-09 00:12:03 +0100 | waleee | (~waleee@h-98-128-229-110.NA.cust.bahnhof.se) |
2021-12-09 00:16:46 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2021-12-09 00:17:49 +0100 | pfurla | (~pfurla@2804:14d:5c5a:9a78:840d:6ccb:3c35:c390) (Quit: gone to sleep. ZZZzzz…) |
2021-12-09 00:27:48 +0100 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3) |
2021-12-09 00:29:45 +0100 | AlexNoo_ | (~AlexNoo@94.233.241.193) |
2021-12-09 00:30:13 +0100 | InternetCitizen | (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 240 seconds) |
2021-12-09 00:32:11 +0100 | Alex_test | (~al_test@178.34.163.11) (Ping timeout: 252 seconds) |
2021-12-09 00:32:55 +0100 | AlexZenon | (~alzenon@178.34.163.11) (Ping timeout: 252 seconds) |
2021-12-09 00:33:21 +0100 | AlexNoo | (~AlexNoo@178.34.163.11) (Ping timeout: 256 seconds) |
2021-12-09 00:34:55 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-09 00:36:32 +0100 | Alex_test | (~al_test@94.233.241.193) |
2021-12-09 00:37:07 +0100 | AlexZenon | (~alzenon@94.233.241.193) |
2021-12-09 00:43:16 +0100 | pfurla | (~pfurla@2804:14d:5c5a:9a78:840d:6ccb:3c35:c390) |
2021-12-09 00:44:41 +0100 | <dsal> | One of the more expensive parts of my code is this "select" function. The good news is that if I inline it, it no longer shows up in the profile. |
2021-12-09 00:44:53 +0100 | <dsal> | I manually wrote out what it did in my list monad and it was faster, but grosser. |
2021-12-09 00:46:54 +0100 | <monochrom> | Good that it is actually faster. |
2021-12-09 00:47:12 +0100 | <monochrom> | Because "doesn't show up in profiling, but just as slow" is not progress heh |
2021-12-09 00:47:44 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-09 00:49:51 +0100 | zhakupov | (~zhakupov@static.90.189.158.74.sinor.ru) |
2021-12-09 00:51:01 +0100 | <dsal> | I think the inline select is a little faster. But inlining everything takes all the blame away from the little functions. |
2021-12-09 00:52:04 +0100 | <dsal> | Doing it manually is a lot faster, but gross code. Instead of `(thing, things) <- select stuff; (nextThing, nextThings) <- select things` it's like, `thing <- stuff; let things = filter (/= thing) things` |
2021-12-09 00:52:20 +0100 | <dsal> | (I made an operator to make that slightly better, but only slightly) |
2021-12-09 00:54:40 +0100 | zhakupov | (~zhakupov@static.90.189.158.74.sinor.ru) (Ping timeout: 265 seconds) |
2021-12-09 00:55:20 +0100 | <dsal> | 20% of the runtime of this thing is select. Followed by making a map. I wonder if using a list instead of a map would be faster. |
2021-12-09 00:58:22 +0100 | <dsal> | Hey neat, not making the map made that part not be hot in my profile. I should just delete all this code. |
2021-12-09 00:59:06 +0100 | <dsal> | Woah. Yeah, not using a map is a lot faster than using a map. |
2021-12-09 01:01:45 +0100 | superstar64 | (~superstar@2600:1700:ed80:50a0:d250:99ff:fe2c:53c4) (Quit: Leaving) |
2021-12-09 01:02:27 +0100 | <int-e> | dsal: if you're just looking for brevity: `(thing, filter (/= thing) -> stuff) <- stuff` is a valid view pattern |
2021-12-09 01:02:35 +0100 | <georgy> | dsal that is surprising. do you have a test case? are you compiling with -O2? |
2021-12-09 01:02:44 +0100 | <int-e> | hmm |
2021-12-09 01:02:56 +0100 | <int-e> | that is not right |
2021-12-09 01:03:24 +0100 | <dsal> | georgy: It's not that surprising. It's a very small amount of data. |
2021-12-09 01:03:27 +0100 | bollu | (uid233390@id-233390.helmsley.irccloud.com) |
2021-12-09 01:03:31 +0100 | <int-e> | the rhs would be zip stuff (repeat stuff) and that's pushing it from ugly to terrible :) |
2021-12-09 01:03:47 +0100 | <geekosaur> | also lists can fuse and get big speedups |
2021-12-09 01:04:18 +0100 | genieliu | (~genieliu@111.193.167.10) |
2021-12-09 01:05:16 +0100 | <int-e> | dsal: is using filter (/=) better than the natural select [] = []; select (x:xs) = (x,xs) : map (second (x:)) (select xs)? |
2021-12-09 01:05:34 +0100 | <dsal> | int-e: doing that manually seemed to be. |
2021-12-09 01:05:47 +0100 | <dsal> | "manually" -- I'm doing that several times in a list monad. |
2021-12-09 01:05:53 +0100 | <int-e> | I guess carrying those pairs around is expensive |
2021-12-09 01:06:35 +0100 | InternetCitizen | (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
2021-12-09 01:09:55 +0100 | genieliu | (~genieliu@111.193.167.10) (Quit: Lost terminal) |
2021-12-09 01:13:31 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds) |
2021-12-09 01:15:29 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-12-09 01:15:30 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2021-12-09 01:18:51 +0100 | Guest|92 | (~Guest|92@88.98.202.129) |
2021-12-09 01:19:01 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2021-12-09 01:20:55 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-09 01:20:55 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-09 01:20:55 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-09 01:21:01 +0100 | alx741 | (~alx741@186.178.108.192) (Ping timeout: 240 seconds) |
2021-12-09 01:21:44 +0100 | deadmarshal | (~deadmarsh@95.38.228.30) (Ping timeout: 265 seconds) |
2021-12-09 01:27:39 +0100 | max22- | (~maxime@2a01cb088335980012b6a709282cc846.ipv6.abo.wanadoo.fr) (Remote host closed the connection) |
2021-12-09 01:28:59 +0100 | jkaye | (~jkaye@c-71-205-220-154.hsd1.co.comcast.net) (Ping timeout: 268 seconds) |
2021-12-09 01:29:10 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-12-09 01:30:33 +0100 | <georgy> | is there some unicode character similar to (:) that I can use for functions rather than just constructors? |
2021-12-09 01:30:41 +0100 | <georgy> | s/just/only |
2021-12-09 01:31:41 +0100 | <geekosaur> | by functions do you actually mean functions, or operators? |
2021-12-09 01:32:08 +0100 | sprout_ | (~quassel@2a02:a467:ccd6:1:bc10:5f40:71cb:b3b6) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2021-12-09 01:32:17 +0100 | <georgy> | yeah, I meant an operator not a function |
2021-12-09 01:32:22 +0100 | acidjnk_new | (~acidjnk@p200300d0c7271e730cb547fb259b1246.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
2021-12-09 01:32:22 +0100 | <hpc> | there's a unicode colon lookalike that agda uses to differentiate between type signatures and its dependent sum syntax sugar, don't know what the actual character is though |
2021-12-09 01:32:25 +0100 | <hpc> | so it exists |
2021-12-09 01:32:52 +0100 | <geekosaur> | greek question mark? :þ |
2021-12-09 01:32:55 +0100 | <hpc> | there are websites that index the unicode homoglyphs, you can probably find it there |
2021-12-09 01:33:25 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds) |
2021-12-09 01:33:40 +0100 | <hpc> | > let x -:> y = x + y in 5 :-> 10 |
2021-12-09 01:33:42 +0100 | <lambdabot> | error: |
2021-12-09 01:33:42 +0100 | <lambdabot> | • Data constructor not in scope: (:->) :: t0 -> t1 -> t |
2021-12-09 01:33:42 +0100 | <lambdabot> | • Perhaps you meant one of these: |
2021-12-09 01:33:45 +0100 | <hpc> | > let x -:> y = x + y in 5 -:> 10 |
2021-12-09 01:33:47 +0100 | <lambdabot> | 15 |
2021-12-09 01:33:56 +0100 | <hpc> | you can also put it in the middle of the operator maybe |
2021-12-09 01:34:07 +0100 | <georgy> | yes |
2021-12-09 01:34:18 +0100 | <georgy> | I found it, for doing something completely silly |
2021-12-09 01:35:04 +0100 | <georgy> | https://paste.tomsmeding.com/b9QWwtTA |
2021-12-09 01:35:10 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 01:39:01 +0100 | InternetCitizen | (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 240 seconds) |
2021-12-09 01:42:13 +0100 | Akiva | (~Akiva@user/Akiva) (Ping timeout: 240 seconds) |
2021-12-09 01:42:23 +0100 | yin | zero |
2021-12-09 01:43:01 +0100 | pfurla | (~pfurla@2804:14d:5c5a:9a78:840d:6ccb:3c35:c390) (Quit: gone to sleep. ZZZzzz…) |
2021-12-09 01:43:35 +0100 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Remote host closed the connection) |
2021-12-09 01:43:52 +0100 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
2021-12-09 01:45:33 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-12-09 01:46:43 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-12-09 01:48:35 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
2021-12-09 01:49:18 +0100 | fjmorazan | (~quassel@user/fjmorazan) (Quit: fjmorazan) |
2021-12-09 01:49:32 +0100 | fjmorazan | (~quassel@user/fjmorazan) |
2021-12-09 01:49:46 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 265 seconds) |
2021-12-09 01:49:50 +0100 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-12-09 01:53:25 +0100 | Guest|92 | (~Guest|92@88.98.202.129) (Ping timeout: 240 seconds) |
2021-12-09 01:54:16 +0100 | <hololeap> | is there an option for cabal to place executables in a more convenient location after running cabal build? |
2021-12-09 01:55:00 +0100 | fjmorazan | (~quassel@user/fjmorazan) (Quit: fjmorazan) |
2021-12-09 01:55:15 +0100 | <sclv> | nope. best you can do is a “cabal install” and pass an arg for a path in that. But the semantics are different |
2021-12-09 01:55:33 +0100 | fjmorazan | (~quassel@user/fjmorazan) |
2021-12-09 01:56:55 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-12-09 01:59:00 +0100 | <xerox> | I find myself doing cp "$(cabal list-bin Name)" . sometimes |
2021-12-09 01:59:16 +0100 | maroloccio | (~marolocci@151.53.155.184) |
2021-12-09 01:59:20 +0100 | mvk | (~mvk@2607:fea8:5cdd:f000::9788) |
2021-12-09 01:59:21 +0100 | <monochrom> | Don't forget to also run "strip" :) |
2021-12-09 01:59:34 +0100 | <monochrom> | "cabal install" runs strip, but "cabal build" doesn't. |
2021-12-09 02:01:12 +0100 | <monochrom> | But "cabal list-bin" is nice, yeah. |
2021-12-09 02:01:46 +0100 | Kevin578 | (~Kevin578@pool-96-237-112-198.bstnma.fios.verizon.net) |
2021-12-09 02:02:13 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) (Ping timeout: 240 seconds) |
2021-12-09 02:07:11 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-12-09 02:07:18 +0100 | <hololeap> | sclv, thanks, this actually works great: cabal install --install-method=symlink --installdir=./bin |
2021-12-09 02:09:12 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-09 02:11:22 +0100 | <monochrom> | symlink is a very bad idea unless you never clear $HOME/.cabal/store |
2021-12-09 02:12:17 +0100 | <monochrom> | Because the exe is stored there. |
2021-12-09 02:12:32 +0100 | <sclv> | well sadly even copy doesn't necessarily work then if there's any attendant datafiles |
2021-12-09 02:12:34 +0100 | <hololeap> | oh, I thought it was symlinking to the exes in the dist-newstyle dir |
2021-12-09 02:13:32 +0100 | <sclv> | *me* shakes fist at datafiles |
2021-12-09 02:13:32 +0100 | <hpc> | just do the windows trick and make your executable also happen to be a zip file |
2021-12-09 02:13:32 +0100 | <sclv> | i think we can fix the datadir flags to do things right, but nobody's just worked out the details yet |
2021-12-09 02:13:49 +0100 | mncheck | (~mncheck@193.224.205.254) (Remote host closed the connection) |
2021-12-09 02:13:52 +0100 | <geekosaur> | people have iirc been trying to work out those details for years, because they also have to work after cabal build |
2021-12-09 02:14:03 +0100 | <sclv> | i mean there's years old tickets |
2021-12-09 02:14:06 +0100 | mncheck | (~mncheck@193.224.205.254) |
2021-12-09 02:14:23 +0100 | <sclv> | no Very Smart Person has sat down and just given a full answer to "here's what to do that's flexible enough for all circumstances" |
2021-12-09 02:15:15 +0100 | <sclv> | like imho there's not even failed attempts that actually began from the full problem space -- just proposals that didn't take enough into account, and when people pointed out it was harder, people wandered off to worry about other things |
2021-12-09 02:15:29 +0100 | <sclv> | i.e. i don't think its too hard to solve. it just hasn't had the right sustained attention |
2021-12-09 02:16:02 +0100 | Neuromancer | (~Neuromanc@user/neuromancer) (Ping timeout: 240 seconds) |
2021-12-09 02:20:16 +0100 | mikoto-chan | (~mikoto-ch@esm-84-240-99-143.netplaza.fi) |
2021-12-09 02:21:49 +0100 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 252 seconds) |
2021-12-09 02:22:13 +0100 | jj | (~jj@bras-base-stcton1104w-grc-60-69-159-29-115.dsl.bell.ca) |
2021-12-09 02:23:19 +0100 | jj | (~jj@bras-base-stcton1104w-grc-60-69-159-29-115.dsl.bell.ca) () |
2021-12-09 02:23:35 +0100 | <dsal> | link hard or link $HOME |
2021-12-09 02:26:37 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 240 seconds) |
2021-12-09 02:27:35 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-09 02:27:35 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-09 02:27:35 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-09 02:30:51 +0100 | <sm> | just embed them |
2021-12-09 02:34:28 +0100 | <oats> | finally got day 8 https://github.com/oatberry/aoc2021-haskell/blob/main/src/Day8.hs |
2021-12-09 02:34:49 +0100 | <oats> | I bet there's a better way to have done this, but I figured out an algo for deducing segment assignments |
2021-12-09 02:35:41 +0100 | <dsal> | I found it was *significantly* faster to use `[(Char, Char)]` instead of `Map Char Char` |
2021-12-09 02:36:11 +0100 | <oats> | dsal, what does your `Map Char Char` represent |
2021-12-09 02:36:55 +0100 | <dsal> | The observed wire to the wire where it's supposed to be according to the diagram. |
2021-12-09 02:37:11 +0100 | <oats> | huh |
2021-12-09 02:37:13 +0100 | <georgy> | dsal, how many elements do you have? |
2021-12-09 02:37:13 +0100 | <dsal> | Oh, you had a `Segment` |
2021-12-09 02:37:19 +0100 | <dsal> | georgy: 7 |
2021-12-09 02:37:29 +0100 | <georgy> | that's not surprising |
2021-12-09 02:38:11 +0100 | <oats> | I had a hunch that some set operations might be useful, but it took some guesswork to tease out exactly what I had to do |
2021-12-09 02:38:12 +0100 | <georgy> | I did tests a couple of years ago, and IIRC Map starts becoming faster when you have a couple of hundred elements. and it only gets worse from there. O(n) vs log(n) |
2021-12-09 02:39:02 +0100 | <georgy> | basically.. list is only faster when the speed likely doesn't matter at all |
2021-12-09 02:39:41 +0100 | <dsal> | Speed's mattering a lot to me. |
2021-12-09 02:40:08 +0100 | <monochrom> | "Each dictionary has size 5 but I have 10^10 such dictionaries" may favour a low-tech way. |
2021-12-09 02:40:12 +0100 | <georgy> | when looking up an element in a 7 element collection? |
2021-12-09 02:42:21 +0100 | <monochrom> | Or "I have to perform 10^10 lookups" |
2021-12-09 02:42:29 +0100 | <oats> | dsal, ah yeah, my solution solves the big boy in about 10 seconds :P |
2021-12-09 02:42:33 +0100 | <georgy> | monochrom, that sounds as contrived as your first example |
2021-12-09 02:43:20 +0100 | <dsal> | oats: I'm trying to get below a second on my macbook, but it's a pretty bad place to benchmark I've found. heh |
2021-12-09 02:44:01 +0100 | <dsal> | Currently at 1.103 s |
2021-12-09 02:44:21 +0100 | <monochrom> | Well, all of AoC is contrived. There. |
2021-12-09 02:45:54 +0100 | <dsal> | These are real problems. If we don't get this done, Santa's not going to deliver presents. |
2021-12-09 02:46:20 +0100 | <oats> | I should try to find a way to figure the numbers straight from the scrambled input, without trying to calculate mappings |
2021-12-09 02:46:24 +0100 | <oats> | wonder if that's possible... |
2021-12-09 02:47:19 +0100 | <dsal> | I wouldn't think so... the mappings tell you which things are on. |
2021-12-09 02:47:22 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) (Read error: Connection reset by peer) |
2021-12-09 02:48:32 +0100 | <oats> | but I mean, I wonder if you could use the set relationships between them to figure out a direct mapping from scrambled LED to number |
2021-12-09 02:48:41 +0100 | <xerox> | mine takes 2.018 s ± 0.011 s over 20 runs |
2021-12-09 02:49:26 +0100 | burnsidesLlama | (~burnsides@dhcp168-017.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-12-09 02:50:02 +0100 | burnsidesLlama | (~burnsides@client-8-73.eduroam.oxuni.org.uk) |
2021-12-09 02:50:15 +0100 | <oats> | dsal, such as, I believe the digit '3' one can be found |
2021-12-09 02:50:32 +0100 | <oats> | by looking for the one that contains all the segments from '1' plus three others |
2021-12-09 02:50:58 +0100 | <dsal> | Sure, you can hone your search strategy. |
2021-12-09 02:51:18 +0100 | <xerox> | this one is p slick https://i.redd.it/bkktn06kud481.jpg |
2021-12-09 02:51:52 +0100 | <oats> | yeah that's exactly what I'm talking about 'ere |
2021-12-09 02:52:02 +0100 | <oats> | grrr now I gotta go rewrite my solution |
2021-12-09 02:52:07 +0100 | <xerox> | haha |
2021-12-09 02:53:32 +0100 | <oats> | I'm still proud of my candidate whittling :< |
2021-12-09 02:54:31 +0100 | <dsal> | Yeah, sure. You use that to figure out how to search. You can know that the two digit one is the number 1 and that the three digit one is the number seven and has to have two elements in common with 1. |
2021-12-09 02:54:32 +0100 | burnsidesLlama | (~burnsides@client-8-73.eduroam.oxuni.org.uk) (Ping timeout: 256 seconds) |
2021-12-09 02:54:38 +0100 | nebu | (~user@user/wavion) |
2021-12-09 02:54:53 +0100 | <dsal> | Here's another fun thing you can know: what segments e, b, and f are without searching. |
2021-12-09 02:55:29 +0100 | <dsal> | I only end up searching for c, a, and d. |
2021-12-09 02:55:42 +0100 | <dsal> | (g is the one that isn't any of those other ones) |
2021-12-09 02:56:35 +0100 | polezaivsani | (~polezaivs@orangeshoelaces.net) (Quit: rcirc on GNU Emacs 27.2) |
2021-12-09 02:58:11 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
2021-12-09 02:58:26 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) |
2021-12-09 02:58:37 +0100 | teo | (~teo@user/teo) (Ping timeout: 240 seconds) |
2021-12-09 03:01:52 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-12-09 03:07:59 +0100 | jeetelongname | yeet |
2021-12-09 03:08:28 +0100 | yeet | jeetelongname |
2021-12-09 03:09:01 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
2021-12-09 03:09:55 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-09 03:10:13 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-09 03:10:20 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-09 03:10:38 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-09 03:10:45 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-09 03:11:49 +0100 | mmhat | (~mmh@55d44a9c.access.ecotel.net) (Ping timeout: 240 seconds) |
2021-12-09 03:12:03 +0100 | xff0x | (~xff0x@2001:1a81:52f0:d600:cda8:efb:cccc:cf1c) (Ping timeout: 252 seconds) |
2021-12-09 03:13:14 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2021-12-09 03:13:49 +0100 | xff0x | (~xff0x@2001:1a81:5338:9c00:c94e:b6de:b30e:1ff8) |
2021-12-09 03:14:36 +0100 | vicfred | (~vicfred@user/vicfred) (Quit: Leaving) |
2021-12-09 03:15:44 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-12-09 03:16:09 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:e550:12e4:9dfb:af3c) |
2021-12-09 03:16:46 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 265 seconds) |
2021-12-09 03:18:12 +0100 | xkuru | (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
2021-12-09 03:33:53 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-09 03:33:53 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-09 03:33:53 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-09 03:34:25 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 252 seconds) |
2021-12-09 03:34:46 +0100 | <hololeap> | this was a fun piece of a solution for AoC day 4: boards = Ap . Compose . ZipList . repeat |
2021-12-09 03:34:57 +0100 | cheater | (~Username@user/cheater) |
2021-12-09 03:37:21 +0100 | mvk | (~mvk@2607:fea8:5cdd:f000::9788) (Ping timeout: 252 seconds) |
2021-12-09 03:38:13 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2021-12-09 03:40:57 +0100 | <hololeap> | type Boards = Ap (Compose ZipList Board) |
2021-12-09 03:41:07 +0100 | <hololeap> | runBoards :: Boards a -> ZipList (BoardState -> (Maybe (a, BoardState), BoardLog)) |
2021-12-09 03:41:22 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-09 03:42:40 +0100 | <hololeap> | so you can use a ZipList of the initial BoardStates to run it, using ZipList's Applicative instnace |
2021-12-09 03:45:16 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Ping timeout: 268 seconds) |
2021-12-09 03:46:12 +0100 | <dsal> | Still a mystery to me how it doesn't seem to parallelize at all. |
2021-12-09 03:46:15 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 265 seconds) |
2021-12-09 03:47:45 +0100 | <dsal> | turning up the spark limit still doubles my CPU consumption, but also doubles the runtime. |
2021-12-09 03:47:57 +0100 | <dsal> | computer sparks up and everything seems to slow down |
2021-12-09 03:49:09 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-12-09 03:49:21 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-12-09 03:49:46 +0100 | <monochrom> | If you haven't had supper, this is a good time to make a grilled cheese sandwich with your benchmarking! |
2021-12-09 03:50:11 +0100 | <dsal> | ha. Yeah. I've been benchmarking all kinds of dumb things. |
2021-12-09 03:50:40 +0100 | <dsal> | Here's what I've learned, everyone: Lists are faster than maps. Parallelism is the same speed as sequential processing. |
2021-12-09 03:51:06 +0100 | <dsal> | If you're tired of seeing something show up in your profile, inline it and you'll stop seeing its name. |
2021-12-09 03:51:40 +0100 | <monochrom> | Use an older computer for higher performance. |
2021-12-09 03:51:47 +0100 | <dsal> | Yes. |
2021-12-09 03:52:10 +0100 | <dsal> | On my last benchmark run, my thinkpad and fancy new macbook gave me very similar numbers. |
2021-12-09 03:52:20 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 256 seconds) |
2021-12-09 03:52:43 +0100 | <dsal> | about 1.1 seconds ± 500ms |
2021-12-09 03:53:59 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 265 seconds) |
2021-12-09 03:54:01 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2021-12-09 03:54:48 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) |
2021-12-09 03:55:24 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-12-09 03:56:24 +0100 | jeetelongname | (~jeet@148.197.248.50) (Quit: thanks!) |
2021-12-09 03:57:11 +0100 | jeetelongname | (~jeet@148.197.248.50) |
2021-12-09 03:59:18 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) (Ping timeout: 265 seconds) |
2021-12-09 04:01:58 +0100 | user0 | (~aj@langw.roketelkom.co.ug) |
2021-12-09 04:05:54 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 04:07:13 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-12-09 04:08:08 +0100 | Cajun | (~Cajun@user/cajun) |
2021-12-09 04:13:41 +0100 | <hololeap> | I'm on day 6 now. the second part trashed my naive algorithm using the Monad instance for Data.Vector. I'm thinking about using Data.Vector.Unboxed.Mutable instead, but I'm not sure exactly how that will speed things up |
2021-12-09 04:16:53 +0100 | <hololeap> | for instance, when a new fish is spawned, the vector will need to grow somehow, but is that really going to be any faster using the mutable interface vs the immutable interface? will the ability to change values in-place be faster than folding over an immutable vector and building up a new one? |
2021-12-09 04:16:57 +0100 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2021-12-09 04:16:57 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2021-12-09 04:16:57 +0100 | finn_elija | FinnElija |
2021-12-09 04:17:28 +0100 | <dsal> | I used a list for part 1 and it was easy. |
2021-12-09 04:17:35 +0100 | <hololeap> | oh, snap I just realized a much better way to model this |
2021-12-09 04:18:19 +0100 | motherfsck | (~motherfsc@user/motherfsck) (Quit: quit) |
2021-12-09 04:18:31 +0100 | <hololeap> | I can just group all the fish with the same number together |
2021-12-09 04:31:01 +0100 | td_ | (~td@94.134.91.212) (Ping timeout: 240 seconds) |
2021-12-09 04:31:04 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) |
2021-12-09 04:33:15 +0100 | td_ | (~td@muedsl-82-207-238-085.citykom.de) |
2021-12-09 04:33:45 +0100 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) |
2021-12-09 04:35:14 +0100 | <byorgey> | hololeap: there you go =) |
2021-12-09 04:35:49 +0100 | xff0x | (~xff0x@2001:1a81:5338:9c00:c94e:b6de:b30e:1ff8) (Ping timeout: 240 seconds) |
2021-12-09 04:36:59 +0100 | xff0x | (~xff0x@2001:1a81:5338:9c00:5f64:a7ee:3eb7:fd11) |
2021-12-09 04:39:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-12-09 04:43:24 +0100 | nattiestnate | (~nate@2001:448a:20a0:4134:25e:715f:d637:5263) (Quit: WeeChat 3.3) |
2021-12-09 04:46:04 +0100 | zhakupov | (~zhakupov@static.90.189.158.74.sinor.ru) |
2021-12-09 04:46:59 +0100 | <hololeap> | that would have been fun calculating a vector with 1.7 trillion elements :p |
2021-12-09 04:46:59 +0100 | <jeetelongname> | once i got that little bit of insight the problem collapses into place |
2021-12-09 04:47:23 +0100 | <jeetelongname> | its pretty nice in that regart |
2021-12-09 04:47:43 +0100 | <jeetelongname> | *regard |
2021-12-09 04:50:37 +0100 | zhakupov | (~zhakupov@static.90.189.158.74.sinor.ru) (Ping timeout: 240 seconds) |
2021-12-09 04:51:52 +0100 | <hololeap> | I could have put my RAID to work as swap |
2021-12-09 04:53:54 +0100 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) (Quit: Leaving) |
2021-12-09 04:54:01 +0100 | dwt_ | (~dwt_@c-98-200-58-177.hsd1.tx.comcast.net) (Ping timeout: 256 seconds) |
2021-12-09 05:01:40 +0100 | <jeetelongname> | I mean thats the baller way to do it but most of us don't have servers to offload aoc questions onto lol |
2021-12-09 05:06:00 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2021-12-09 05:07:48 +0100 | <ProfSimm> | Hi |
2021-12-09 05:08:27 +0100 | dwt_ | (~dwt_@c-98-200-58-177.hsd1.tx.comcast.net) |
2021-12-09 05:09:48 +0100 | jeetelongname | (~jeet@148.197.248.50) (Remote host closed the connection) |
2021-12-09 05:11:09 +0100 | <dmj`> | ProfSimm: hi |
2021-12-09 05:12:37 +0100 | Guest40 | (~Guest40@ec2-54-215-90-243.us-west-1.compute.amazonaws.com) (Quit: Client closed) |
2021-12-09 05:14:07 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-12-09 05:15:01 +0100 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
2021-12-09 05:19:18 +0100 | iteratee_ | (~kyle@162.218.222.107) (Read error: Connection reset by peer) |
2021-12-09 05:19:26 +0100 | iteratee | (~kyle@162.218.222.107) |
2021-12-09 05:21:10 +0100 | zhakupov | (~zhakupov@static.90.189.158.74.sinor.ru) |
2021-12-09 05:25:49 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Ping timeout: 265 seconds) |
2021-12-09 05:34:08 +0100 | shriekingnoise | (~shrieking@186.137.144.80) (Quit: Quit) |
2021-12-09 05:35:58 +0100 | <jackdk> | dmj`: scared him off? |
2021-12-09 05:37:49 +0100 | pavonia | (~user@user/siracusa) (Ping timeout: 240 seconds) |
2021-12-09 05:40:20 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-12-09 05:43:19 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-12-09 05:43:20 +0100 | <dmj`> | jackdk: yea |
2021-12-09 05:43:23 +0100 | <dmj`> | :( |
2021-12-09 05:43:30 +0100 | <jackdk> | :( |
2021-12-09 05:43:49 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) |
2021-12-09 05:45:47 +0100 | mbuf | (~Shakthi@122.178.122.215) |
2021-12-09 05:47:28 +0100 | <int-e> | that was some excellent timing |
2021-12-09 05:49:19 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-12-09 05:50:20 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2021-12-09 05:51:28 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-12-09 05:52:56 +0100 | <jackdk> | dmj`: try again |
2021-12-09 05:53:14 +0100 | <jackdk> | ProfSimm: Hi |
2021-12-09 05:53:20 +0100 | <dmj`> | ProfSimm: hey ! |
2021-12-09 05:53:51 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) (Ping timeout: 265 seconds) |
2021-12-09 05:54:51 +0100 | emf_ | (~emf@2620:10d:c091:480::1:7b30) (Ping timeout: 252 seconds) |
2021-12-09 05:57:44 +0100 | curiousgay | (~curiousga@77-120-141-90.kha.volia.net) |
2021-12-09 05:57:56 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-12-09 06:05:18 +0100 | ProfSimm | (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
2021-12-09 06:08:13 +0100 | zhakupov | (~zhakupov@static.90.189.158.74.sinor.ru) (Ping timeout: 240 seconds) |
2021-12-09 06:08:21 +0100 | LiaoTao | (~LiaoTao@gateway/tor-sasl/liaotao) (Remote host closed the connection) |
2021-12-09 06:08:34 +0100 | LiaoTao | (~LiaoTao@gateway/tor-sasl/liaotao) |
2021-12-09 06:09:04 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) |
2021-12-09 06:13:15 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 06:18:06 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:e550:12e4:9dfb:af3c) (Quit: gone to sleep. ZZZzzz…) |
2021-12-09 06:21:13 +0100 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-12-09 06:23:48 +0100 | zhakupov | (~zhakupov@static.90.189.158.74.sinor.ru) |
2021-12-09 06:28:48 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-12-09 06:35:01 +0100 | zhakupov | (~zhakupov@static.90.189.158.74.sinor.ru) (Quit: WeeChat 3.3) |
2021-12-09 06:38:02 +0100 | img | (~img@user/img) |
2021-12-09 06:39:12 +0100 | georgy | (~bc8165b6@cerf.good1.com) (Quit: CGI:IRC (EOF)) |
2021-12-09 06:41:55 +0100 | emf | (~emf@2620:10d:c091:480::1:f5cb) |
2021-12-09 06:47:30 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-12-09 06:52:03 +0100 | nfd | (~nfd@user/nfd) (Ping timeout: 252 seconds) |
2021-12-09 06:58:52 +0100 | <hololeap> | is this possible without sharing answers? https://adventofcode.com/2021/leaderboard/day/9 |
2021-12-09 06:59:06 +0100 | <hololeap> | all 100 between 5 and 11 minutes |
2021-12-09 06:59:14 +0100 | <hololeap> | rhetorical question... |
2021-12-09 07:00:56 +0100 | <int-e> | Well, yes it is. |
2021-12-09 07:01:56 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-12-09 07:02:28 +0100 | <dsal> | hololeap: part of it is just having a toolkit with all the things. |
2021-12-09 07:03:11 +0100 | <hololeap> | it just seems... rediculous. I didn't even open it up until 10 minutes in so I had failed the leaderboards already |
2021-12-09 07:04:19 +0100 | <hololeap> | I guess I won't be getting competitive with AoC |
2021-12-09 07:04:30 +0100 | <int-e> | There are thousands of participants, and only 600 seconds in 10 minutes. |
2021-12-09 07:06:34 +0100 | <hololeap> | so if you can't complete part 1 and part 2 by 10:00 you have lost... it's just a bit shocking that people can code that quickly |
2021-12-09 07:06:44 +0100 | <int-e> | You're looking at something like the lower tail of a normal distribution (just for intuition, the actual distribution is bound to be something way more complicated) |
2021-12-09 07:07:52 +0100 | <dsal> | hololeap: The trick is to get a private leaderboard without professional competitive programmers. :) |
2021-12-09 07:08:11 +0100 | <xerox> | works wonders for your self esteem |
2021-12-09 07:10:23 +0100 | <fizbin> | Is anyone using stack to manage their advent-of-code stuff? I can't figure out how to have stack include an external module. |
2021-12-09 07:10:52 +0100 | <hololeap> | I wonder if there's a twitch stream or something for some of the people on the leaderboard. I would be interested in seeing how someone writes something that quickly. |
2021-12-09 07:11:32 +0100 | jchia[m] | (~jchiamatr@2001:470:69fc:105::c50b) (Quit: Client limit exceeded: 20000) |
2021-12-09 07:11:50 +0100 | <dsal> | fizbin: I use stack. what problem are you having? |
2021-12-09 07:12:02 +0100 | jchia[m] | (~jchiamatr@2001:470:69fc:105::c50b) |
2021-12-09 07:12:41 +0100 | <fizbin> | I've got a flat directory layout (i.e. just a dir. with files like "aoc1.hs", "aoc2.hs", etc. in it) and a stack.yaml file generated by "stack init". I've mentioned the dependency in a package.yaml file, but stack says "Could not find module" when I do "stack ghc aoc9.hs" |
2021-12-09 07:14:55 +0100 | <dsal> | That's kind of a weird way to use stack. |
2021-12-09 07:15:27 +0100 | <dsal> | 'stack new' usually creates a project with a src directory and main and stuff. |
2021-12-09 07:16:30 +0100 | <fizbin> | Right, which makes haskell the weird odd language where you can't just write the source but need its own directory structure. (I mainly solve these in python, then write the haskell solutions later) |
2021-12-09 07:17:15 +0100 | <int-e> | runhaskell foo.hs < input |
2021-12-09 07:17:25 +0100 | <int-e> | don't involve stack or cabal, be happy :-P |
2021-12-09 07:17:43 +0100 | <fizbin> | int-e: That's what I'm trying to do, but now do that with an external package. |
2021-12-09 07:18:20 +0100 | <int-e> | well, I have not run into that (but cabal v1-install still works for me if that comes up) |
2021-12-09 07:18:44 +0100 | <fizbin> | Huh. It looks like package.yaml isn't getting read at all. I wonder if I need something in stack.yaml to tell it to use package.yaml |
2021-12-09 07:18:55 +0100 | kimjetwav | (~user@2607:fea8:2363:8f00:788b:37b5:7592:32b4) (Remote host closed the connection) |
2021-12-09 07:20:51 +0100 | <fizbin> | Well, adding "." to packages in stack.yaml caused it to notice the parse error I added to package.yaml. Still doesn't seem to make it load the dependencies though. |
2021-12-09 07:28:08 +0100 | <fizbin> | Okay, adding more than just "dependencies" to the package.yaml file (i.e. adding an "executable" section) seems to be enough so that now "stack runghc aoc9.hs" will load the external library dep. I asked for. |
2021-12-09 07:29:58 +0100 | <byorgey> | hololeap: some of them might record themselves and post it later I guess, but you're not supposed to stream yourself solving AoC problems right when they are posted |
2021-12-09 07:30:15 +0100 | <byorgey> | hololeap: but you can definitely find top competitive programmers streaming. |
2021-12-09 07:30:20 +0100 | <byorgey> | in general I mean |
2021-12-09 07:31:07 +0100 | <byorgey> | hololeap: e.g. https://www.twitch.tv/ecnerwala |
2021-12-09 07:31:58 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 265 seconds) |
2021-12-09 07:32:22 +0100 | chomwitt | (~chomwitt@2a02:587:dc0d:3700:12c3:7bff:fe6d:d374) |
2021-12-09 07:32:55 +0100 | zebrag | (~chris@user/zebrag) |
2021-12-09 07:33:13 +0100 | zebrag | (~chris@user/zebrag) (Client Quit) |
2021-12-09 07:35:53 +0100 | bollu | (uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-09 07:36:26 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-12-09 07:38:24 +0100 | <int-e> | dsal: "professional competitive programmers" -- sounds like a joke but I guess when you start automating fetching the problem and input, extracting sample, maybe generating a parser for the input... that will really feel professional. |
2021-12-09 07:39:17 +0100 | <int-e> | (that's on top of the obvious... keeping a library for common computational tasks) |
2021-12-09 07:40:37 +0100 | <dsal> | I do have The Library. It's not huge, though. |
2021-12-09 07:41:28 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-12-09 07:41:30 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-12-09 07:42:16 +0100 | <dsal> | fizbin: I don't think it's particularly special. If I want to add a python library, I have to either figure out how to get it working in nix, figure out virtualenv again, convince it to install globally for just me, or give it root access. I used to write a lot of go which had its special directory structure and stuff. Everything has an easy path that might not be what you're used to. |
2021-12-09 07:46:00 +0100 | monochrom | (trebla@216.138.220.146) (Quit: NO CARRIER) |
2021-12-09 07:47:00 +0100 | retroid_ | (~retro@05412d78.skybroadband.com) (Ping timeout: 268 seconds) |
2021-12-09 07:47:12 +0100 | <int-e> | dsal: I've yet to come up with something obviously reusable :P (in 2019 I had a "library" that consisted of an IntCode module that I'd copy to the next day's folder and adapt as needed) |
2021-12-09 07:49:28 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:da4:9ec6:5ef5:74d6) (Ping timeout: 268 seconds) |
2021-12-09 07:50:56 +0100 | <sm> | fizbin, why not use a stack script, fewer moving parts |
2021-12-09 07:51:00 +0100 | <dsal> | I pretty much have the same parseFile thing and some basic 2D stuff like around and a bfs. |
2021-12-09 07:51:13 +0100 | <dsal> | The Data.Graph API is so weird. |
2021-12-09 07:51:30 +0100 | <int-e> | dsal: true |
2021-12-09 07:52:29 +0100 | <int-e> | bfs is so easy to implement from scratch though |
2021-12-09 07:52:56 +0100 | <dsal> | It would've cost me precious time today! :) |
2021-12-09 07:53:25 +0100 | <int-e> | dfs is even easier :P |
2021-12-09 07:53:28 +0100 | <dsal> | Oh also, I had this thing: parseGrid f = Map.fromList . zipWith2D (\x y a -> ((x,y), f a)) [0..] [0..] . lines |
2021-12-09 07:53:42 +0100 | <xerox> | bfs was easy to implement a month ago and put into my library too :D |
2021-12-09 07:53:55 +0100 | <dsal> | Which was basically how to read this. I always got my x and y confused when I'd write those from scratch. |
2021-12-09 07:54:10 +0100 | <dsal> | Another neat thing I wrote in my library was BitSet. Which I use occasionally. |
2021-12-09 07:54:35 +0100 | <dsal> | It doesn't actually *matter*, but it's neat. For yesterday's, I was able to shove each of the light 7 seg patterns into a byte. |
2021-12-09 07:54:46 +0100 | <int-e> | dsal: Hah I used [[Int]] and !! |
2021-12-09 07:54:48 +0100 | <int-e> | KISS! |
2021-12-09 07:55:24 +0100 | <dsal> | I've got some visualization junk I've not used this year. e.g., draw the map from today. |
2021-12-09 07:55:30 +0100 | <xerox> | I used [String] and elemIndex |
2021-12-09 07:56:08 +0100 | <xerox> | int-e: you haven't posted yours on github right? |
2021-12-09 07:56:13 +0100 | <int-e> | > map (read . return) "0329" :: [Int] |
2021-12-09 07:56:14 +0100 | <lambdabot> | [0,3,2,9] |
2021-12-09 07:56:20 +0100 | <int-e> | xerox: right |
2021-12-09 07:56:43 +0100 | <xerox> | if you do I would happily read them |
2021-12-09 07:58:23 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2021-12-09 07:58:46 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2021-12-09 08:04:22 +0100 | <dsal> | > map digitToInt "0329" |
2021-12-09 08:04:23 +0100 | <lambdabot> | [0,3,2,9] |
2021-12-09 08:04:41 +0100 | retroid_ | (~retro@05412d78.skybroadband.com) |
2021-12-09 08:04:54 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-12-09 08:05:00 +0100 | <dsal> | My fancy thing has a Char -> a because there's been a bunch of these. It doesn't have a filter, though, which would be nice. |
2021-12-09 08:05:09 +0100 | <dsal> | I guess I could just do Maybe Int and then sequence it. |
2021-12-09 08:05:14 +0100 | <dsal> | er, no, not that. |
2021-12-09 08:06:13 +0100 | xff0x | (~xff0x@2001:1a81:5338:9c00:5f64:a7ee:3eb7:fd11) (Ping timeout: 240 seconds) |
2021-12-09 08:07:10 +0100 | xff0x | (~xff0x@2001:1a81:5338:9c00:2366:f1e5:f2a7:3295) |
2021-12-09 08:07:45 +0100 | InternetCitizen | (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
2021-12-09 08:08:51 +0100 | Alex_test_ | (~al_test@94.233.241.193) |
2021-12-09 08:10:04 +0100 | xsarnik9 | (xsarnik@lounge.fi.muni.cz) |
2021-12-09 08:10:10 +0100 | Alex_test | (~al_test@94.233.241.193) (Ping timeout: 256 seconds) |
2021-12-09 08:10:15 +0100 | xstill-9 | (xstill@fimu/xstill) |
2021-12-09 08:10:26 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 268 seconds) |
2021-12-09 08:10:45 +0100 | koz | (~koz@121.99.240.58) (Remote host closed the connection) |
2021-12-09 08:11:02 +0100 | koz | (~koz@121.99.240.58) |
2021-12-09 08:11:14 +0100 | <int-e> | xerox: I'll think about it, I probably won't though. |
2021-12-09 08:11:45 +0100 | Unode_ | (~Unode@194.94.44.220) |
2021-12-09 08:11:49 +0100 | InternetCitizen | (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 240 seconds) |
2021-12-09 08:11:52 +0100 | xstill- | (xstill@fimu/xstill) (Ping timeout: 256 seconds) |
2021-12-09 08:11:52 +0100 | tv | (~tv@user/tv) (Ping timeout: 256 seconds) |
2021-12-09 08:11:52 +0100 | noctux | (~noctux@user/noctux) (Ping timeout: 256 seconds) |
2021-12-09 08:11:52 +0100 | sweater | (~sweater@206.81.18.26) (Ping timeout: 256 seconds) |
2021-12-09 08:11:52 +0100 | m1dnight_ | (~christoph@christophe.dev) (Ping timeout: 256 seconds) |
2021-12-09 08:11:52 +0100 | davl_ | (~davl@207.154.228.18) (Ping timeout: 256 seconds) |
2021-12-09 08:11:52 +0100 | turlando | (~turlando@user/turlando) (Ping timeout: 256 seconds) |
2021-12-09 08:11:52 +0100 | rookie101 | (~rookie@165.232.121.13) (Ping timeout: 256 seconds) |
2021-12-09 08:11:52 +0100 | WhateverRabbit | (~rabbit@206.81.18.26) (Ping timeout: 256 seconds) |
2021-12-09 08:11:52 +0100 | xstill-9 | xstill- |
2021-12-09 08:11:57 +0100 | davl | (~davl@207.154.228.18) |
2021-12-09 08:11:59 +0100 | bgamari | (~bgamari@2001:470:e438::1) (Ping timeout: 252 seconds) |
2021-12-09 08:12:26 +0100 | n3t | (n3t@user/n3t) (Ping timeout: 256 seconds) |
2021-12-09 08:12:26 +0100 | xsarnik | (xsarnik@lounge.fi.muni.cz) (Ping timeout: 256 seconds) |
2021-12-09 08:12:26 +0100 | Unode | (~Unode@194.94.44.220) (Ping timeout: 256 seconds) |
2021-12-09 08:12:26 +0100 | Unode_ | Unode |
2021-12-09 08:12:26 +0100 | xsarnik9 | xsarnik |
2021-12-09 08:12:53 +0100 | turlando | (~turlando@93-42-250-112.ip89.fastwebnet.it) |
2021-12-09 08:12:53 +0100 | turlando | (~turlando@93-42-250-112.ip89.fastwebnet.it) (Changing host) |
2021-12-09 08:12:53 +0100 | turlando | (~turlando@user/turlando) |
2021-12-09 08:13:02 +0100 | monochrom | (trebla@216.138.220.146) |
2021-12-09 08:13:31 +0100 | WhateverRabbit | (~rabbit@206.81.18.26) |
2021-12-09 08:13:51 +0100 | sweater | (~sweater@206.81.18.26) |
2021-12-09 08:14:01 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
2021-12-09 08:14:26 +0100 | noctux | (~noctux@user/noctux) |
2021-12-09 08:14:47 +0100 | n3t | (n3t@s45.mydevil.net) |
2021-12-09 08:15:16 +0100 | bgamari | (~bgamari@64.223.235.131) |
2021-12-09 08:15:29 +0100 | <hololeap> | byorgey: thanks for the link |
2021-12-09 08:15:42 +0100 | <xerox> | int-e: cool, thanks, in case :-) |
2021-12-09 08:18:41 +0100 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) |
2021-12-09 08:21:17 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:48df:3af4:d67f:b5a0) |
2021-12-09 08:22:07 +0100 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) |
2021-12-09 08:22:17 +0100 | <hololeap> | i'm looking at recording the state of a StateT with every "step". is there a way to do this without adding a (Writer (DList s)) to the transformer stack? |
2021-12-09 08:22:44 +0100 | koz | ko |
2021-12-09 08:22:46 +0100 | ko | koz |
2021-12-09 08:23:20 +0100 | michalz | (~michalz@185.246.204.55) |
2021-12-09 08:25:43 +0100 | rookie101 | (~rookie@165.232.121.13) |
2021-12-09 08:26:02 +0100 | tv | (~tv@user/tv) |
2021-12-09 08:26:21 +0100 | <int-e> | xerox: here's a sample; it's just not very pretty at all: https://paste.debian.net/hidden/730b2e3c/ |
2021-12-09 08:26:34 +0100 | <int-e> | (yesterday, part 2) |
2021-12-09 08:28:37 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-09 08:28:43 +0100 | <int-e> | it's mostly piecing together #haskell-style one-liners ;-) |
2021-12-09 08:28:55 +0100 | xerox | nods - very nice! |
2021-12-09 08:28:59 +0100 | <xerox> | appreciate it |
2021-12-09 08:29:34 +0100 | <xerox> | that one I did on pen and paper, then hardcoded one decision tree, no search over permutations, I thought it'd be too much |
2021-12-09 08:29:49 +0100 | <int-e> | > product [1..7] |
2021-12-09 08:29:51 +0100 | <lambdabot> | 5040 |
2021-12-09 08:29:55 +0100 | <int-e> | not scary :) |
2021-12-09 08:30:00 +0100 | <xerox> | definitely |
2021-12-09 08:31:03 +0100 | root1 | (root@2600:3c02::f03c:92ff:fe1a:c779) (Ping timeout: 252 seconds) |
2021-12-09 08:31:21 +0100 | <xerox> | I like your span, I often do remove the extra chars instead: https://github.com/mrtnpaolo/advent-of-code-2021/blob/master/execs/Day08.hs#L12-L15 |
2021-12-09 08:31:25 +0100 | root1 | (root@2600:3c02::f03c:92ff:fe1a:c779) |
2021-12-09 08:31:36 +0100 | <int-e> | xerox: I actually did a post mortem where I tried a bit harder (narrowing it down to 8 out of 5040 cases): https://paste.debian.net/1222686/ |
2021-12-09 08:32:25 +0100 | <xerox> | ah see that's the kind of stuff I go dig into people's repositories to learn from |
2021-12-09 08:32:53 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
2021-12-09 08:32:56 +0100 | <int-e> | > let digits = words "abcefg cf acdeg acdfg bcdf abdfg abdefg acf abcdefg abcdfg" in M.fromListWith (+) [(c,length cs) | cs <- digits, c <- cs] -- fingerprinting segments |
2021-12-09 08:32:57 +0100 | <lambdabot> | fromList [('a',43),('b',34),('c',38),('d',38),('e',24),('f',44),('g',40)] |
2021-12-09 08:33:25 +0100 | <int-e> | (that one only made it to IRC) |
2021-12-09 08:33:47 +0100 | <int-e> | huh, and it doesn't disambiguate c and d :-/ |
2021-12-09 08:34:44 +0100 | lagash | (lagash@lagash.shelltalk.net) (Quit: ZNC - https://znc.in) |
2021-12-09 08:35:13 +0100 | <int-e> | > let digits = words "abcefg cf acdeg acdfg bcdf abdfg abdefg acf abcdefg abcdfg" in M.fromListWith (+) [(c,1+length cs) | cs <- digits, c <- cs] -- fixed |
2021-12-09 08:35:15 +0100 | <lambdabot> | fromList [('a',51),('b',40),('c',46),('d',45),('e',28),('f',53),('g',47)] |
2021-12-09 08:36:09 +0100 | lagash | (lagash@lagash.shelltalk.net) |
2021-12-09 08:36:12 +0100 | <int-e> | the problem with clever stuff like this is that it usually takes tens of minutes to come up with ;) |
2021-12-09 08:37:05 +0100 | <xerox> | it's an unbelievable cost these days (: |
2021-12-09 08:38:35 +0100 | neurocyte0132889 | (~neurocyte@45.93.108.168) |
2021-12-09 08:38:35 +0100 | neurocyte0132889 | (~neurocyte@45.93.108.168) (Changing host) |
2021-12-09 08:38:35 +0100 | neurocyte0132889 | (~neurocyte@user/neurocyte) |
2021-12-09 08:39:26 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-12-09 08:39:54 +0100 | <int-e> | xerox: oh yes I've used words . map quite a bit myself too |
2021-12-09 08:42:25 +0100 | <int-e> | day 5... map (\c -> if c `elem` ",->" then ' ' else c) |
2021-12-09 08:43:51 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 08:44:03 +0100 | mcgroin | (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2021-12-09 08:44:15 +0100 | emf | (~emf@2620:10d:c091:480::1:f5cb) (Ping timeout: 252 seconds) |
2021-12-09 08:51:03 +0100 | <xerox> | exactly! |
2021-12-09 08:51:14 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-12-09 08:51:15 +0100 | nfd | (~nfd@user/nfd) |
2021-12-09 08:52:51 +0100 | cfricke | (~cfricke@user/cfricke) |
2021-12-09 08:57:13 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-09 08:58:30 +0100 | df_ | df |
2021-12-09 08:59:58 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2021-12-09 09:02:23 +0100 | endor | (~a@p200300ef97023511e49253ebeea0a61a.dip0.t-ipconnect.de) |
2021-12-09 09:02:40 +0100 | zaquest | (~notzaques@5.130.79.72) (Remote host closed the connection) |
2021-12-09 09:03:49 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-12-09 09:04:24 +0100 | <endor> | Why is Data.HashTable.new returning an IO value? Why do we need side effects? |
2021-12-09 09:05:26 +0100 | zaquest | (~notzaques@5.130.79.72) |
2021-12-09 09:06:05 +0100 | bollu | (uid233390@id-233390.helmsley.irccloud.com) |
2021-12-09 09:06:40 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-12-09 09:08:48 +0100 | <int-e> | where is Data.HashTable from? |
2021-12-09 09:10:26 +0100 | <endor> | https://hackage.haskell.org/package/base-4.5.1.0/docs/Data-HashTable.html |
2021-12-09 09:12:16 +0100 | Kevin578 | (~Kevin578@pool-96-237-112-198.bstnma.fios.verizon.net) (Remote host closed the connection) |
2021-12-09 09:13:46 +0100 | vpan | (~0@212.117.1.172) |
2021-12-09 09:15:32 +0100 | <int-e> | oops, did I typo the import in ghci... I must have |
2021-12-09 09:17:12 +0100 | <int-e> | Anyway, that is a mutable hashtable; each `new` must create its own array for storing the elements. |
2021-12-09 09:17:42 +0100 | <int-e> | (This particular implementation creates an array even when there are no entries, which makes the code simpler.) |
2021-12-09 09:17:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-12-09 09:19:04 +0100 | chele | (~chele@user/chele) |
2021-12-09 09:19:36 +0100 | max22- | (~maxime@2a01cb088335980094e8e0f1650776df.ipv6.abo.wanadoo.fr) |
2021-12-09 09:20:56 +0100 | <endor> | If the mutability is the reason for IO why does it not use ST internally? |
2021-12-09 09:21:08 +0100 | <int-e> | Oh, no, I didn't make a typo. base-4.5.1 is ancient. Data.HashTable was removed in 4.7.0.0, 7 1/2 years ago. |
2021-12-09 09:21:25 +0100 | <endor> | sorry! |
2021-12-09 09:22:00 +0100 | <int-e> | There's https://hackage.haskell.org/package/hashtables which works in ST |
2021-12-09 09:26:03 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) (Ping timeout: 252 seconds) |
2021-12-09 09:26:05 +0100 | <endor> | It says "the IO wrappers (which most users will probably prefer) ...". |
2021-12-09 09:26:32 +0100 | <endor> | Why prefer IO wrapper? It makes things more complicated? |
2021-12-09 09:27:48 +0100 | <xerox> | I guess it's more a comment about users than a comment about the functions |
2021-12-09 09:28:55 +0100 | <int-e> | Maybe targeted at former users of Data.HashTable? |
2021-12-09 09:29:53 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) |
2021-12-09 09:30:37 +0100 | <dminuoso> | It seems this library could have been written polymorphically over PrimMonad as well |
2021-12-09 09:31:04 +0100 | <dminuoso> | Then you would have had just singular versions |
2021-12-09 09:31:49 +0100 | mcgroin | (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds) |
2021-12-09 09:32:07 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) |
2021-12-09 09:34:25 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-12-09 09:35:02 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) (Ping timeout: 252 seconds) |
2021-12-09 09:36:57 +0100 | w1gz | (~do@159.89.11.133) |
2021-12-09 09:43:01 +0100 | max22- | (~maxime@2a01cb088335980094e8e0f1650776df.ipv6.abo.wanadoo.fr) (Ping timeout: 240 seconds) |
2021-12-09 09:43:03 +0100 | notzmv | (~zmv@user/notzmv) |
2021-12-09 09:43:55 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) (Ping timeout: 265 seconds) |
2021-12-09 09:45:27 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 09:46:15 +0100 | AndrejKarpathy | (~AndrejKar@2409:4053:2e02:82b0:42d:753e:851e:5c65) |
2021-12-09 09:46:49 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-12-09 09:46:59 +0100 | AndrejKarpathy | (~AndrejKar@2409:4053:2e02:82b0:42d:753e:851e:5c65) (Client Quit) |
2021-12-09 09:47:01 +0100 | <int-e> | dminuoso: Even if I'd target PrimMonad I'd start by implementing everything for ST s first; I don't see how a polymorphic use of `primitive` could ever play well with ghc's optimizer |
2021-12-09 09:47:32 +0100 | Angel89 | (~Angel89@2409:4053:2e02:82b0:42d:753e:851e:5c65) |
2021-12-09 09:48:33 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-12-09 09:51:37 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) |
2021-12-09 09:54:57 +0100 | Angel89 | (~Angel89@2409:4053:2e02:82b0:42d:753e:851e:5c65) (Quit: Client closed) |
2021-12-09 09:55:35 +0100 | Angel89 | (~Angel89@2409:4053:2e02:82b0:42d:753e:851e:5c65) |
2021-12-09 09:56:30 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) (Ping timeout: 268 seconds) |
2021-12-09 09:56:44 +0100 | Akiva | (~Akiva@user/Akiva) |
2021-12-09 09:58:24 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-12-09 10:00:06 +0100 | OndejSkup[m] | (~mimivxmat@2001:470:69fc:105::c300) (Quit: You have been kicked for being idle) |
2021-12-09 10:00:09 +0100 | Tavi[m] | (~factoidde@2001:470:69fc:105::1:819) (Quit: You have been kicked for being idle) |
2021-12-09 10:00:10 +0100 | kosmikus[m] | (~andresloe@2001:470:69fc:105::95d) (Quit: You have been kicked for being idle) |
2021-12-09 10:02:01 +0100 | ubert | (~Thunderbi@p200300ecdf0ba2f664fe176011d10d59.dip0.t-ipconnect.de) |
2021-12-09 10:05:28 +0100 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-09 10:09:10 +0100 | k60`` | (~user@static.100.218.46.78.clients.your-server.de) (Ping timeout: 256 seconds) |
2021-12-09 10:10:21 +0100 | synthmeat | (~synthmeat@user/synthmeat) (Quit: WeeChat 3.0) |
2021-12-09 10:12:34 +0100 | acidjnk_new | (~acidjnk@p200300d0c7271e730cb547fb259b1246.dip0.t-ipconnect.de) |
2021-12-09 10:14:33 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-12-09 10:14:36 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:e550:12e4:9dfb:af3c) |
2021-12-09 10:14:54 +0100 | xkuru | (~xkuru@user/xkuru) |
2021-12-09 10:15:49 +0100 | nunggu | (~q@gateway/tor-sasl/nunggu) |
2021-12-09 10:16:00 +0100 | m1dnight | (~christoph@christophe.dev) |
2021-12-09 10:17:35 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-12-09 10:17:35 +0100 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-12-09 10:17:38 +0100 | allbery_b | geekosaur |
2021-12-09 10:18:37 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 240 seconds) |
2021-12-09 10:20:17 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) |
2021-12-09 10:20:39 +0100 | Akiva | (~Akiva@user/Akiva) (Ping timeout: 265 seconds) |
2021-12-09 10:21:37 +0100 | xff0x | (~xff0x@2001:1a81:5338:9c00:2366:f1e5:f2a7:3295) (Ping timeout: 265 seconds) |
2021-12-09 10:22:22 +0100 | xff0x | (~xff0x@2001:1a81:5338:9c00:c1d:978d:6bc0:7433) |
2021-12-09 10:22:38 +0100 | tcard | (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving) |
2021-12-09 10:22:52 +0100 | Dansk31 | (~Dansk31@213.244.23.3) |
2021-12-09 10:23:51 +0100 | Dansk31 | (~Dansk31@213.244.23.3) (Client Quit) |
2021-12-09 10:25:59 +0100 | Angel89 | (~Angel89@2409:4053:2e02:82b0:42d:753e:851e:5c65) (Quit: Client closed) |
2021-12-09 10:27:07 +0100 | tcard | (~tcard@p2878075-ipngn18701hodogaya.kanagawa.ocn.ne.jp) |
2021-12-09 10:32:24 +0100 | Alex_test | (~al_test@94.233.241.193) |
2021-12-09 10:32:42 +0100 | <Profpatsch> | GHC can’t derive Show1? |
2021-12-09 10:32:49 +0100 | <Profpatsch> | That’s a bummer |
2021-12-09 10:33:58 +0100 | mjacob | (~mjacob@adrastea.uberspace.de) (Read error: Connection reset by peer) |
2021-12-09 10:34:06 +0100 | Alex_test_ | (~al_test@94.233.241.193) (Ping timeout: 256 seconds) |
2021-12-09 10:34:25 +0100 | <Profpatsch> | Ah, maybe GHC 9 |
2021-12-09 10:34:40 +0100 | vpan | (~0@212.117.1.172) (Ping timeout: 256 seconds) |
2021-12-09 10:35:14 +0100 | m1dnight | (~christoph@christophe.dev) (Ping timeout: 256 seconds) |
2021-12-09 10:35:21 +0100 | vpan | (~0@212.117.1.172) |
2021-12-09 10:35:24 +0100 | Arsen | (arsen@managarm/dev/Arsen) (Quit: Quit.) |
2021-12-09 10:35:44 +0100 | Angel89 | (~Angel89@2409:4053:2e02:82b0:42d:753e:851e:5c65) |
2021-12-09 10:38:41 +0100 | m1dnight | (~christoph@christophe.dev) |
2021-12-09 10:41:26 +0100 | Angel89 | (~Angel89@2409:4053:2e02:82b0:42d:753e:851e:5c65) (Quit: Client closed) |
2021-12-09 10:42:20 +0100 | Arsen | (arsen@managarm/dev/Arsen) |
2021-12-09 10:46:12 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2021-12-09 10:46:41 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2021-12-09 10:49:30 +0100 | teo | (~teo@user/teo) |
2021-12-09 10:49:55 +0100 | mjacob | (~mjacob@adrastea.uberspace.de) |
2021-12-09 10:52:40 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-09 10:53:16 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-09 10:54:29 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 265 seconds) |
2021-12-09 10:58:50 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 265 seconds) |
2021-12-09 10:59:19 +0100 | k60`` | (~user@static.100.218.46.78.clients.your-server.de) |
2021-12-09 11:00:13 +0100 | werneta | (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
2021-12-09 11:03:34 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) (Ping timeout: 256 seconds) |
2021-12-09 11:06:48 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2021-12-09 11:06:53 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Ping timeout: 252 seconds) |
2021-12-09 11:07:12 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-12-09 11:07:23 +0100 | Merfont | (~Kaiepi@156.34.44.192) (Remote host closed the connection) |
2021-12-09 11:10:37 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds) |
2021-12-09 11:11:34 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2021-12-09 11:15:32 +0100 | feetwind | (~mike@user/feetwind) (Ping timeout: 240 seconds) |
2021-12-09 11:17:03 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) |
2021-12-09 11:17:31 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2021-12-09 11:17:50 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3) |
2021-12-09 11:18:08 +0100 | <merijn> | hmmm |
2021-12-09 11:18:11 +0100 | <merijn> | rats |
2021-12-09 11:18:39 +0100 | <merijn> | my AoC solution works fine for the small example, but fails on the big one :\ |
2021-12-09 11:18:52 +0100 | nebu | (~user@user/wavion) (Ping timeout: 256 seconds) |
2021-12-09 11:19:03 +0100 | <dminuoso> | Mmm, why does executableStripping does less than manually invoking `strip`? |
2021-12-09 11:19:21 +0100 | <dminuoso> | *executable-stripping in cabal |
2021-12-09 11:20:09 +0100 | <dminuoso> | With `split-sections: true` and `executable-stripping: true` it brings down the resulting static binary to 74MiB, but calling strip ontop gets it down to 40ish |
2021-12-09 11:20:48 +0100 | teo | (~teo@user/teo) (Read error: Connection reset by peer) |
2021-12-09 11:21:42 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) (Ping timeout: 256 seconds) |
2021-12-09 11:22:01 +0100 | <merijn> | ah, < vs <= strikes again :p |
2021-12-09 11:25:25 +0100 | synthmeat | (~synthmeat@user/synthmeat) |
2021-12-09 11:27:47 +0100 | user0 | (~aj@langw.roketelkom.co.ug) (Quit: Leaving.) |
2021-12-09 11:27:54 +0100 | feetwind | (~mike@user/feetwind) |
2021-12-09 11:29:10 +0100 | user0 | (~aj@langw.roketelkom.co.ug) |
2021-12-09 11:30:51 +0100 | nebu | (~user@user/wavion) |
2021-12-09 11:31:57 +0100 | aveltras | (~aveltras@2a01:cb1e:4c:f668:5c2f:6f8c:9239:752b) |
2021-12-09 11:32:56 +0100 | obfusk | (~quassel@a82-161-150-56.adsl.xs4all.nl) (Remote host closed the connection) |
2021-12-09 11:34:08 +0100 | obfusk | (~quassel@a82-161-150-56.adsl.xs4all.nl) |
2021-12-09 11:36:03 +0100 | nebu | (~user@user/wavion) (Ping timeout: 265 seconds) |
2021-12-09 11:36:13 +0100 | Techcable | (~Techcable@168.235.93.147) (Ping timeout: 252 seconds) |
2021-12-09 11:36:39 +0100 | nebu | (~user@user/wavion) |
2021-12-09 11:37:39 +0100 | mncheck | (~mncheck@193.224.205.254) (Read error: Connection reset by peer) |
2021-12-09 11:38:43 +0100 | jinsun__ | (~quassel@user/jinsun) |
2021-12-09 11:39:04 +0100 | <aveltras> | is anyone aware of some limitations regarding using ghc plugins and at the same time libraries using ffi ? i've setup a minimal repo demonstrating the issue encountered https://github.com/aveltras/pulsar-hs-repro |
2021-12-09 11:39:25 +0100 | jinsun | (~quassel@user/jinsun) (Ping timeout: 240 seconds) |
2021-12-09 11:40:44 +0100 | aveltras[m] | (~aveltrasm@2001:470:69fc:105::3ef9) |
2021-12-09 11:41:03 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-12-09 11:41:17 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-12-09 11:41:25 +0100 | nebu | (~user@user/wavion) (Ping timeout: 240 seconds) |
2021-12-09 11:49:00 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-12-09 11:51:31 +0100 | fr33domlover | (~fr33@2.55.41.129) |
2021-12-09 11:51:43 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) |
2021-12-09 11:53:25 +0100 | nebu | (~user@user/wavion) |
2021-12-09 11:56:41 +0100 | feliix42 | (~felix@gibbs.uberspace.de) (Read error: Connection reset by peer) |
2021-12-09 11:59:15 +0100 | nebu | (~user@user/wavion) (Ping timeout: 265 seconds) |
2021-12-09 11:59:52 +0100 | feliix42 | (~felix@gibbs.uberspace.de) |
2021-12-09 12:00:19 +0100 | namkeleser | (~namkelese@101.175.128.51) |
2021-12-09 12:00:40 +0100 | alx741 | (~alx741@186.178.108.192) |
2021-12-09 12:02:00 +0100 | Cajun | (~Cajun@user/cajun) (Quit: Client closed) |
2021-12-09 12:08:21 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) |
2021-12-09 12:13:55 +0100 | user01 | (~aj@154.0.137.32) |
2021-12-09 12:17:03 +0100 | jippiedoe | (~david@2a02-a44c-e14e-1-4578-432f-df10-dcae.fixed6.kpn.net) |
2021-12-09 12:17:14 +0100 | user0 | (~aj@langw.roketelkom.co.ug) (Ping timeout: 256 seconds) |
2021-12-09 12:18:58 +0100 | shriekingnoise | (~shrieking@186.137.144.80) |
2021-12-09 12:25:06 +0100 | teo | (~teo@user/teo) |
2021-12-09 12:26:47 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
2021-12-09 12:28:15 +0100 | smartin | (~Thunderbi@88.135.18.171) |
2021-12-09 12:30:45 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-09 12:33:47 +0100 | <xerox> | anybody knows how to attack this? https://i.imgur.com/NsAh0lK.png |
2021-12-09 12:34:53 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-12-09 12:35:01 +0100 | k60`` | (~user@static.100.218.46.78.clients.your-server.de) (Ping timeout: 265 seconds) |
2021-12-09 12:35:22 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2021-12-09 12:35:32 +0100 | Franciman | suggests switching to ocaml |
2021-12-09 12:36:26 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 12:36:37 +0100 | xkuru | (~xkuru@user/xkuru) (Remote host closed the connection) |
2021-12-09 12:36:38 +0100 | <geekosaur> | are you using head.hackage? |
2021-12-09 12:36:47 +0100 | <xerox> | no |
2021-12-09 12:36:59 +0100 | xkuru | (~xkuru@user/xkuru) |
2021-12-09 12:38:33 +0100 | <geekosaur> | you probably need it given the shown compiler version |
2021-12-09 12:38:47 +0100 | <xerox> | interesting, I guess I can try |
2021-12-09 12:39:35 +0100 | <geekosaur> | the point of head.hackage is it's patches to various packages needed toi get them to build with newer ghcs (originally intended with ghc HEAD but also helpful with 9.2.1) |
2021-12-09 12:40:29 +0100 | <geekosaur> | levity/representation polymorphism is still new enough that a number of packages don't know how to deal with it yet |
2021-12-09 12:40:49 +0100 | <xerox> | hm nope, the head.h.o version does not compile either |
2021-12-09 12:41:47 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-12-09 12:41:51 +0100 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-09 12:42:24 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 12:43:26 +0100 | mbuf | (~Shakthi@122.178.122.215) (Quit: Leaving) |
2021-12-09 12:44:28 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Remote host closed the connection) |
2021-12-09 12:45:38 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-12-09 12:46:52 +0100 | k60`` | (~user@static.100.218.46.78.clients.your-server.de) |
2021-12-09 12:47:50 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-09 12:48:14 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 12:48:27 +0100 | max22- | (~maxime@2a01cb08833598006ab9bb661d4b4059.ipv6.abo.wanadoo.fr) |
2021-12-09 12:48:45 +0100 | mei | (~mei@user/mei) |
2021-12-09 12:49:55 +0100 | jippiedoe | (~david@2a02-a44c-e14e-1-4578-432f-df10-dcae.fixed6.kpn.net) (Ping timeout: 252 seconds) |
2021-12-09 12:53:25 +0100 | cods | (~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 256 seconds) |
2021-12-09 12:53:30 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-09 12:54:06 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 12:54:17 +0100 | mncheck | (~mncheck@193.224.205.254) |
2021-12-09 12:54:44 +0100 | endor | (~a@p200300ef97023511e49253ebeea0a61a.dip0.t-ipconnect.de) (Quit: WeeChat 3.0.1) |
2021-12-09 12:56:16 +0100 | <geekosaur> | next step is probably to ask in #ghc then |
2021-12-09 12:56:59 +0100 | <geekosaur> | you're not going to get much help with ghc 9.3.x in here |
2021-12-09 12:57:18 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:e550:12e4:9dfb:af3c) (Quit: gone to sleep. ZZZzzz…) |
2021-12-09 12:59:39 +0100 | noctux | (~noctux@user/noctux) (Ping timeout: 268 seconds) |
2021-12-09 13:00:05 +0100 | pfurla | (~pfurla@201.17.118.230) |
2021-12-09 13:01:08 +0100 | __monty__ | (~toonn@user/toonn) |
2021-12-09 13:03:01 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) (Ping timeout: 240 seconds) |
2021-12-09 13:04:12 +0100 | Cajun | (~Cajun@user/cajun) |
2021-12-09 13:04:30 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-12-09 13:04:33 +0100 | <xerox> | - tagToEnum# (unsafeCoerce# reallyUnsafePtrEquality# xs ys) |
2021-12-09 13:04:33 +0100 | <xerox> | + tagToEnum# (unsafeCoerce# (reallyUnsafePtrEquality# xs ys)) |
2021-12-09 13:04:35 +0100 | <xerox> | this does the trick |
2021-12-09 13:04:41 +0100 | <xerox> | 🤷♂️ |
2021-12-09 13:05:22 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 13:05:35 +0100 | <Franciman> | *shrugs* |
2021-12-09 13:06:33 +0100 | <geekosaur> | that does look saner to me. wonder why the original code |
2021-12-09 13:06:42 +0100 | <xerox> | I'll ask |
2021-12-09 13:07:46 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) |
2021-12-09 13:09:02 +0100 | Kaiepi | (~Kaiepi@156.34.44.192) |
2021-12-09 13:10:30 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-09 13:11:08 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 13:12:26 +0100 | AlexNoo_ | AlexNoo |
2021-12-09 13:13:18 +0100 | noctux | (~noctux@user/noctux) |
2021-12-09 13:15:03 +0100 | bliminse | (~bliminse@host86-162-147-196.range86-162.btcentralplus.com) (Quit: leaving) |
2021-12-09 13:15:35 +0100 | cods | (~fred@82-65-232-44.subs.proxad.net) |
2021-12-09 13:16:13 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-12-09 13:16:42 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 13:19:32 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-12-09 13:21:50 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-09 13:22:52 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 13:23:17 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-12-09 13:26:53 +0100 | k60`` | (~user@static.100.218.46.78.clients.your-server.de) (Remote host closed the connection) |
2021-12-09 13:28:11 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-12-09 13:28:56 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 13:29:19 +0100 | synthmeat | (~synthmeat@user/synthmeat) (Quit: WeeChat 3.0) |
2021-12-09 13:30:46 +0100 | k60`` | (~user@static.100.218.46.78.clients.your-server.de) |
2021-12-09 13:31:55 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-09 13:33:36 +0100 | burnsidesLlama | (~burnsides@dhcp168-015.wadham.ox.ac.uk) |
2021-12-09 13:34:28 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-12-09 13:34:53 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 13:38:27 +0100 | Techcable | (~Techcable@168.235.93.147) |
2021-12-09 13:38:45 +0100 | aveltras | (~aveltras@2a01:cb1e:4c:f668:5c2f:6f8c:9239:752b) (Ping timeout: 256 seconds) |
2021-12-09 13:43:47 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2021-12-09 13:43:50 +0100 | bliminse | (~bliminse@host86-162-147-196.range86-162.btcentralplus.com) |
2021-12-09 13:44:05 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2021-12-09 13:47:29 +0100 | genieliu | (~genieliu@103.37.140.24) |
2021-12-09 13:47:59 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-09 13:51:22 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-12-09 13:52:22 +0100 | Kaiepi | (~Kaiepi@156.34.44.192) (Remote host closed the connection) |
2021-12-09 13:52:42 +0100 | Kaiepi | (~Kaiepi@156.34.44.192) |
2021-12-09 13:55:18 +0100 | nebu | (~user@user/wavion) |
2021-12-09 13:55:50 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 256 seconds) |
2021-12-09 13:56:13 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) |
2021-12-09 14:00:41 +0100 | max22- | (~maxime@2a01cb08833598006ab9bb661d4b4059.ipv6.abo.wanadoo.fr) (Ping timeout: 252 seconds) |
2021-12-09 14:00:42 +0100 | nebu | (~user@user/wavion) (Ping timeout: 268 seconds) |
2021-12-09 14:01:19 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) (Ping timeout: 268 seconds) |
2021-12-09 14:02:04 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) (Ping timeout: 256 seconds) |
2021-12-09 14:02:37 +0100 | mrckndt | (~mrckndt@user/mrckndt) (Quit: mrckndt) |
2021-12-09 14:03:49 +0100 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 240 seconds) |
2021-12-09 14:04:12 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:cd28:ecf9:b8a2:d95a) |
2021-12-09 14:09:38 +0100 | burnsidesLlama | (~burnsides@dhcp168-015.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-12-09 14:10:40 +0100 | namkeleser | (~namkelese@101.175.128.51) (Quit: Client closed) |
2021-12-09 14:11:46 +0100 | jakalx | (~jakalx@base.jakalx.net) (Disconnected: Replaced by new connection) |
2021-12-09 14:11:46 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-12-09 14:12:24 +0100 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) |
2021-12-09 14:13:00 +0100 | <merijn> | Suppose I have a function 'A -> A', an 'A', and a predicate 'A -> Bool', what's the most convenient way to get "the first value satisfying the predicate"? |
2021-12-09 14:13:21 +0100 | jippiedoe | (~david@2a02-a44c-e14e-1-1201-1886-c45a-80e6.fixed6.kpn.net) |
2021-12-09 14:15:15 +0100 | <geekosaur> | I feel like there's a ppiece missing here |
2021-12-09 14:15:39 +0100 | <merijn> | How so? |
2021-12-09 14:16:02 +0100 | <geekosaur> | you have "an A", where do you have multiple values to get the first of? |
2021-12-09 14:16:08 +0100 | <maerwald> | head . filter p . iterate f |
2021-12-09 14:16:10 +0100 | <maerwald> | ? |
2021-12-09 14:16:14 +0100 | <merijn> | geekosaur: Applying the function to the initial value |
2021-12-09 14:16:22 +0100 | <geekosaur> | ah |
2021-12-09 14:16:35 +0100 | <geekosaur> | maerwald probably has it |
2021-12-09 14:16:38 +0100 | <merijn> | maerwald: Yeah, I was thinking along those lines, but wasn't really happy with that :\ |
2021-12-09 14:16:41 +0100 | <merijn> | oh well |
2021-12-09 14:16:45 +0100 | <maerwald> | well, safeHead |
2021-12-09 14:16:56 +0100 | <merijn> | Damn control characters in unicode fucking up my use of succ :\ |
2021-12-09 14:17:30 +0100 | <geekosaur> | unicode succs? |
2021-12-09 14:17:53 +0100 | <merijn> | oh, wait, an idea appears! |
2021-12-09 14:18:43 +0100 | <merijn> | I'd almost forgot Haskell is lazy there... |
2021-12-09 14:19:16 +0100 | <merijn> | Problem avoided instead :p |
2021-12-09 14:20:39 +0100 | <merijn> | I can just generate an infinite list of printable character and take the head at every step, instead of computing the next one |
2021-12-09 14:23:20 +0100 | CiaoSen | (~Jura@p200300c9570204002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2021-12-09 14:23:46 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-12-09 14:29:19 +0100 | kaction | (~kaction@pool-71-191-91-40.washdc.fios.verizon.net) |
2021-12-09 14:35:51 +0100 | genieliu | (~genieliu@103.37.140.24) (Ping timeout: 265 seconds) |
2021-12-09 14:36:34 +0100 | Morrow | (~quassel@bzq-110-168-31-106.red.bezeqint.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2021-12-09 14:40:44 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) |
2021-12-09 14:41:09 +0100 | burnsidesLlama | (~burnsides@dhcp168-015.wadham.ox.ac.uk) |
2021-12-09 14:41:22 +0100 | Morrow | (~quassel@bzq-110-168-31-106.red.bezeqint.net) |
2021-12-09 14:42:08 +0100 | jippiedoe | (~david@2a02-a44c-e14e-1-1201-1886-c45a-80e6.fixed6.kpn.net) (Ping timeout: 265 seconds) |
2021-12-09 14:42:47 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (Ping timeout: 256 seconds) |
2021-12-09 14:43:12 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 26.3)) |
2021-12-09 14:44:00 +0100 | vpan | (~0@212.117.1.172) (Quit: Leaving.) |
2021-12-09 14:45:26 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) |
2021-12-09 14:46:43 +0100 | pfurla | (~pfurla@201.17.118.230) (Quit: gone to sleep. ZZZzzz…) |
2021-12-09 14:46:58 +0100 | burnsidesLlama | (~burnsides@dhcp168-015.wadham.ox.ac.uk) (Ping timeout: 265 seconds) |
2021-12-09 14:48:21 +0100 | azimut_ | (~azimut@gateway/tor-sasl/azimut) |
2021-12-09 14:49:25 +0100 | burnsidesLlama | (~burnsides@dhcp168-015.wadham.ox.ac.uk) |
2021-12-09 14:49:46 +0100 | <merijn> | hmm, I feel like I'm missing some tricks for writing convenient fixpoints |
2021-12-09 14:51:54 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds) |
2021-12-09 14:52:46 +0100 | xsperry | (~xs@user/xsperry) (Ping timeout: 265 seconds) |
2021-12-09 14:53:49 +0100 | burnsidesLlama | (~burnsides@dhcp168-015.wadham.ox.ac.uk) (Ping timeout: 240 seconds) |
2021-12-09 14:57:23 +0100 | kupi | (uid212005@id-212005.hampstead.irccloud.com) |
2021-12-09 14:59:52 +0100 | <xerox> | how does one get access to the cabal project version in an app's Main.hs ? |
2021-12-09 14:59:59 +0100 | xsperry | (~xs@user/xsperry) |
2021-12-09 15:00:01 +0100 | <xerox> | could it be the cabal Paths.hs thing |
2021-12-09 15:00:12 +0100 | <merijn> | xerox: You mean the version from the cabal file? |
2021-12-09 15:00:34 +0100 | <merijn> | like 0.1.0.0 or whatever |
2021-12-09 15:01:08 +0100 | max22- | (~maxime@2a01cb0883359800d97fa420b95dd877.ipv6.abo.wanadoo.fr) |
2021-12-09 15:02:47 +0100 | fr33domlover | (~fr33@2.55.41.129) (Quit: fr33domlover) |
2021-12-09 15:09:21 +0100 | <boxscape> | kind of wish iterate et al. would produce `data Stream a = a :|| Stream a`, and then you could use `head` without worrying about empty lists |
2021-12-09 15:09:53 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
2021-12-09 15:10:36 +0100 | jippiedoe | (~david@2a02-a44c-e14e-1-9f6f-678f-3cd5-9f8c.fixed6.kpn.net) |
2021-12-09 15:10:54 +0100 | <merijn> | You can still use head without worrying about empty lists... |
2021-12-09 15:11:00 +0100 | <merijn> | That seems like a silly statement |
2021-12-09 15:11:20 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2021-12-09 15:11:22 +0100 | <dminuoso> | Btw, if you have both a cabal.project and cabal.project.local, and both specify `packages: .`, then `cabal build` will find the package in your current directory twice and complain |
2021-12-09 15:11:25 +0100 | <dminuoso> | Is this by design? |
2021-12-09 15:11:37 +0100 | <boxscape> | Yes, but then I have this nagging thought at the back of my mind that I'll eventually accidentally refactor the code to something that makes the `head` call unsafe, and I'm not protected by the type system |
2021-12-09 15:12:16 +0100 | <merijn> | dminuoso: The cabal.project.local fields (depending on type) overwrite OR monoidally append the ones from cabal.project |
2021-12-09 15:12:19 +0100 | <merijn> | dminuoso: So...yes |
2021-12-09 15:12:28 +0100 | <boxscape> | (presumably something similar is why maerwald suggested safeHead above) |
2021-12-09 15:12:34 +0100 | <merijn> | dminuoso: Why are you even listing packages in cabal.project.local? |
2021-12-09 15:13:13 +0100 | <dminuoso> | merijn: Just a copy/paste result. |
2021-12-09 15:13:25 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-12-09 15:13:39 +0100 | <merijn> | My main complaint about Haskell for AOC is that I need to waste to many lines on imports >.> |
2021-12-09 15:13:44 +0100 | <dminuoso> | I figured if I wanted to customize the cabal.project on my local machine, Id just copy the file and tweak it. Somehow I assumed that this would take predence |
2021-12-09 15:14:07 +0100 | <merijn> | dminuoso: No, you just take an empty file and only write whatever you wanna change in cabal.project.local |
2021-12-09 15:14:27 +0100 | <dminuoso> | Where can I find whether fields are overwritten or appended? |
2021-12-09 15:14:36 +0100 | <dminuoso> | Let me guess. source code? |
2021-12-09 15:14:38 +0100 | <merijn> | dminuoso: list-y fields should be appended |
2021-12-09 15:14:51 +0100 | <merijn> | dminuoso: Same logic as in .cabal files |
2021-12-09 15:15:00 +0100 | <merijn> | Since they use the same field parsers |
2021-12-09 15:15:42 +0100 | <merijn> | dminuoso: Not having to duplicate the entire original project file is the entire point of having .local files builtin :p |
2021-12-09 15:16:52 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) (Ping timeout: 256 seconds) |
2021-12-09 15:16:54 +0100 | <dminuoso> | Fair enough, thanks |
2021-12-09 15:17:29 +0100 | dmenz | (~dmenz@2804:14d:5cd4:5e94::1) |
2021-12-09 15:17:30 +0100 | stevenxl | (~stevenxl@174.128.182.199) |
2021-12-09 15:21:47 +0100 | genieliu | (~genieliu@111.193.167.10) |
2021-12-09 15:22:54 +0100 | burnsidesLlama | (~burnsides@dhcp168-015.wadham.ox.ac.uk) |
2021-12-09 15:23:42 +0100 | CiaoSen | (~Jura@p200300c9570204002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
2021-12-09 15:24:40 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-09 15:24:40 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-09 15:24:40 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-09 15:25:46 +0100 | <fizbin> | Last night, sm mentioned a "stack script". This is not something I had ever heard of before - did they mean using something like https://www.fpcomplete.com/haskell/tutorial/stack-script/ ? |
2021-12-09 15:27:03 +0100 | <byorgey> | fizbin: probably, that's the only thing called a "stack script" that I know of. |
2021-12-09 15:27:34 +0100 | burnsidesLlama | (~burnsides@dhcp168-015.wadham.ox.ac.uk) (Ping timeout: 265 seconds) |
2021-12-09 15:27:34 +0100 | genieliu | (~genieliu@111.193.167.10) (Ping timeout: 265 seconds) |
2021-12-09 15:28:58 +0100 | <fizbin> | It definitely does simplify the setup, though having the stack.yaml and package.yaml files there are still convenient because with all three of stack.yaml, package.yaml and hie.yaml working together I now have the haskell language server functioning on this code. |
2021-12-09 15:29:32 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) |
2021-12-09 15:30:17 +0100 | <fizbin> | merijn: I haven't found the need for too many import lines. Plus, you can always have those import lines prefilled and ready to go before the problem drops. |
2021-12-09 15:30:35 +0100 | <fizbin> | (Of course, I should talk, since I get my timed solutions done via python) |
2021-12-09 15:36:46 +0100 | Successus | (~Successus@gateway/tor-sasl/successus) |
2021-12-09 15:37:56 +0100 | <merijn> | fizbin: It depends how you write your code. I could probably get dirty solutions without to many imports |
2021-12-09 15:38:33 +0100 | dmenz | (~dmenz@2804:14d:5cd4:5e94::1) (Quit: Leaving) |
2021-12-09 15:38:34 +0100 | <merijn> | fizbin: Personal rule: No unhandled errors and nice abstractions for that sorta thing tend to rack up the imports :p |
2021-12-09 15:38:54 +0100 | <merijn> | Today's solution has, like, 25 lines of import >.> |
2021-12-09 15:39:34 +0100 | <merijn> | I could probably optimise it a bit by moving frequent code into a separate library modules and reusing that. But I kinda like each day being standalone. Makes them function better as examples for others |
2021-12-09 15:39:35 +0100 | synthmeat | (~synthmeat@user/synthmeat) |
2021-12-09 15:40:06 +0100 | ub | (~Thunderbi@p200300ecdf0ba2f69d45b59a7f50dcfc.dip0.t-ipconnect.de) |
2021-12-09 15:43:06 +0100 | <byorgey> | yeah, I make each day standalone too |
2021-12-09 15:43:15 +0100 | <fizbin> | Combined across my solutions to the first 9 problems, I have 9 distinct 'import' lines: Control.Monad, Data.Char, Data.List, Data.Maybe, Debug.Trace, Numeric, System.Environment, qualified Data.Map as M, and qualified Data.MultiSet as MS. |
2021-12-09 15:43:38 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:25b5:2708:65a9:4e7d) |
2021-12-09 15:43:38 +0100 | <fizbin> | It's not so bad to have a template with {-# LANGUAGE Haskell2010 #-} and those 9 lines. |
2021-12-09 15:44:57 +0100 | <merijn> | fizbin: Control.Monad, Data.Char, Data.Coerce, Data.Foldable, Data.Function, Data.Funtor.Identity, Data.List, Data.List.NonEmpty, 2x Data.Map (qualified and type), Data.Maybe, Data.Monoid, Data.Ord, Data.Semigroup, Data.Text, Data.Text.IO, Data.Void, System.Environment, System.Exist, System.IO and 3 Megaparsec ones :p |
2021-12-09 15:45:23 +0100 | <fizbin> | Already this year, or is that your template? |
2021-12-09 15:45:30 +0100 | <merijn> | That's just day9 :p |
2021-12-09 15:45:57 +0100 | <byorgey> | my template for solving problems on open.kattis.com has ... 46 lines of imports =) |
2021-12-09 15:46:35 +0100 | <fizbin> | As an aside, I've found this year's input parsing to be much simpler than in earlier years. By this point in 2020, we'd already needed to parse input like "light red bags contain 1 bright white bag, 2 muted yellow bags." |
2021-12-09 15:46:52 +0100 | <fizbin> | So far this year, I've done all the parsing with "lines" and "words". |
2021-12-09 15:46:55 +0100 | <byorgey> | fizbin: agreed. |
2021-12-09 15:47:46 +0100 | <merijn> | fizbin: You can do it with lines/words if you assume only valid input, which violates my attempt to handle all errors explicitly approach :p |
2021-12-09 15:48:22 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2021-12-09 15:48:28 +0100 | <merijn> | Not sure if I actually handle *everything*, but certainly the vast majority of cases |
2021-12-09 15:49:05 +0100 | <byorgey> | heh. My day 9 solution only has 6 imports: Control.Arrow, Data.Array.Unboxed, Data.List, Data.Maybe, and 2x Data.Set |
2021-12-09 15:49:59 +0100 | <fizbin> | TBH if I were doing that, (input validation) I'd do it with regex. |
2021-12-09 15:50:11 +0100 | <byorgey> | merijn: throw up your solution on a web server and let us try to send it malicious inputs =) |
2021-12-09 15:50:29 +0100 | smartin | (~Thunderbi@88.135.18.171) (Remote host closed the connection) |
2021-12-09 15:51:04 +0100 | jinsun__ | jinsun |
2021-12-09 15:51:49 +0100 | <merijn> | byorgey: You can clone the repo and throw malicious input at it yourself :p |
2021-12-09 15:52:00 +0100 | curiousgay | (~curiousga@77-120-141-90.kha.volia.net) (Quit: Leaving) |
2021-12-09 15:52:12 +0100 | <fizbin> | byorgey: If I remove the Debug.Trace import (that isn't needed in the final version but was very much needed during development), I only have 5 on day 9: Data.List, Data.Maybe, System.Environment, qualified Data.Map as M, qualified Data.MultiSet as MS |
2021-12-09 15:52:13 +0100 | motherfsck | (~motherfsc@user/motherfsck) |
2021-12-09 15:52:21 +0100 | <merijn> | byorgey: I just want with a Map for the data structure :p |
2021-12-09 15:52:51 +0100 | Kevin578 | (~Kevin578@pool-96-237-112-198.bstnma.fios.verizon.net) |
2021-12-09 15:52:56 +0100 | <byorgey> | merijn: hehe |
2021-12-09 15:52:58 +0100 | <byorgey> | fizbin: nice |
2021-12-09 15:53:00 +0100 | <merijn> | byorgey: https://github.com/merijn/AdventOfCode/blob/master/Day9.hs |
2021-12-09 15:53:15 +0100 | <merijn> | I did also include a renderer for my maps for debugging purposes |
2021-12-09 15:54:38 +0100 | <byorgey> | merijn: ah, I like your way of finding basins using repeated convolution |
2021-12-09 15:54:51 +0100 | <byorgey> | I just used BFS |
2021-12-09 15:55:01 +0100 | <fizbin> | I'm not sure how people get by without having their "main" get the name of the input file with getArgs, though I guess people could be writing stuff to always read the input from stdin. (Personally, I write my solutions - python and haskell - to take an optional first argument that's the input file with the default being "aocNN.in") |
2021-12-09 15:55:07 +0100 | <merijn> | byorgey: Yeah, I'm quite pleased with that and (in general) the generic convolution |
2021-12-09 15:55:30 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
2021-12-09 15:55:40 +0100 | <merijn> | byorgey: Given some of the earlier puzzles I expect more convolutions to come :p |
2021-12-09 15:55:51 +0100 | <merijn> | byorgey: So I figured I can easily copy and extend this one for future puzzles :p |
2021-12-09 15:56:07 +0100 | nebu | (~user@user/wavion) |
2021-12-09 15:56:09 +0100 | <byorgey> | merijn: indeed |
2021-12-09 15:56:22 +0100 | smartin | (~Thunderbi@88.135.18.171) |
2021-12-09 15:56:45 +0100 | <byorgey> | fizbin: meh, I just say runhaskell 09.hs < input or whatever, I can't be bothered to do anything fancy =) |
2021-12-09 15:57:38 +0100 | Widget | (~widget@2a04:ee41:6:70cd:e189:3667:bb4:f6ac) (Quit: Leaving...) |
2021-12-09 15:57:55 +0100 | <byorgey> | The optional first argument approach sounds nice though. |
2021-12-09 15:57:58 +0100 | <merijn> | byorgey: Biggest flaw in my map rendering is that I should probably extend it to automatically detect cell size and account for that, so I can use multi character values instead of the current Char labelling which...does not quite work out for the big problems |
2021-12-09 15:58:13 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2021-12-09 15:58:18 +0100 | shapr | (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
2021-12-09 15:58:21 +0100 | <merijn> | because there's basins with characters that fuck up my terminal xD |
2021-12-09 15:58:26 +0100 | <byorgey> | lol |
2021-12-09 15:59:23 +0100 | <merijn> | I've been thinking about making a library for my parse wrapper, getting the file and things like rendering maps, since those are so frequent with AOC. OTOH, that'd stop being standalone :\ |
2021-12-09 15:59:53 +0100 | <merijn> | We'll see. This is probably the first year I actually finish AOC, so I will actually need to keep using code the entire time :p |
2021-12-09 16:00:50 +0100 | <fizbin> | byorgey: Especially because you write that code once and then copy/paste. Just don't forget to update the name of the default input file like I did on day5... |
2021-12-09 16:01:04 +0100 | nebu | (~user@user/wavion) (Ping timeout: 256 seconds) |
2021-12-09 16:01:13 +0100 | <merijn> | fizbin: See, my megaparsec parsers would catch that ;) |
2021-12-09 16:01:36 +0100 | <fizbin> | Oh, I mean, I didn't get the wrong answer and submit it, I got errors. |
2021-12-09 16:02:22 +0100 | <fizbin> | It's just that errors are naturally showing up at 12:30-1am local time because of where I am and my brain takes a while to think through what might cause things like that. |
2021-12-09 16:02:52 +0100 | <merijn> | I don't even try to compete, tbh |
2021-12-09 16:02:56 +0100 | fizbin | does not have a brain that functions at peak at that hour. |
2021-12-09 16:03:03 +0100 | <merijn> | puzzles are posted at 6 AM local time. Screw that |
2021-12-09 16:03:16 +0100 | <merijn> | I refuse to acknowledge the existence of times before 9:00 |
2021-12-09 16:04:09 +0100 | <fizbin> | I haven't gotten any main board points since 2018. I got three sub-200 "part 2" times in 2020, and have gotten one so far this year. |
2021-12-09 16:04:38 +0100 | <fizbin> | Last night was bad though. Sub-2000, but over 1500 |
2021-12-09 16:05:14 +0100 | <fizbin> | I feel like the number of people doing them as the problems come out jumped by a lot in 2019. |
2021-12-09 16:10:01 +0100 | cfricke | (~cfricke@user/cfricke) |
2021-12-09 16:11:04 +0100 | acidjnk_new | (~acidjnk@p200300d0c7271e730cb547fb259b1246.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
2021-12-09 16:13:22 +0100 | sprout | (~quassel@2a02:a467:ccd6:1:2835:2428:a8d4:1d95) |
2021-12-09 16:16:59 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:cd28:ecf9:b8a2:d95a) (Ping timeout: 268 seconds) |
2021-12-09 16:18:14 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) |
2021-12-09 16:21:59 +0100 | fizbin | sets up a github repo for aoc2021, like all the cool kids. https://github.com/fizbin/aoc2021/blob/main/aoc9.hs |
2021-12-09 16:22:26 +0100 | <fizbin> | If the formatting looks weird, that's all hindent's doing. |
2021-12-09 16:22:30 +0100 | <yushyin> | very cool, much wow |
2021-12-09 16:25:04 +0100 | <merijn> | fizbin: Isn't multiset just |
2021-12-09 16:25:10 +0100 | <merijn> | "Map v Int"? :p |
2021-12-09 16:25:40 +0100 | <fizbin> | merijn: It's "Map v Int" with loads of convenience functions on it. |
2021-12-09 16:26:01 +0100 | <merijn> | fizbin: I mean, you can just use "M.fromListWith (+) . map (,1)" like I do ;) |
2021-12-09 16:26:16 +0100 | <fizbin> | Sure. For this problem it's a bit overkill. |
2021-12-09 16:27:30 +0100 | <fizbin> | But I saw the nice uses people used it for on day 6, so I wanted to start using it for those times when it'd be convenient. |
2021-12-09 16:28:25 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:25b5:2708:65a9:4e7d) (Quit: gone to sleep. ZZZzzz…) |
2021-12-09 16:29:08 +0100 | <merijn> | fizbin: I mean, for Day6 it's even more overkill xD |
2021-12-09 16:29:11 +0100 | n3t | (n3t@s45.mydevil.net) (Changing host) |
2021-12-09 16:29:11 +0100 | n3t | (n3t@user/n3t) |
2021-12-09 16:29:26 +0100 | <fizbin> | e.g. "MS.concatMap func myms" is nicer than "M.fromList (+) $ concatMap func $ M.toList mymap", plus the signature of "func" is nicer. |
2021-12-09 16:30:02 +0100 | <fizbin> | simulate = Data.MultiSet.concatMap (\i -> if i == 0 then [6, 8] else [i - 1]) |
2021-12-09 16:30:28 +0100 | <merijn> | fizbin: https://github.com/merijn/AdventOfCode/blob/master/Day6.hs#L45-L51 :) |
2021-12-09 16:32:48 +0100 | meinside | (uid24933@id-24933.helmsley.irccloud.com) |
2021-12-09 16:36:16 +0100 | <fizbin> | I'd argue that the one line is faster to type and also easier to read because it follows the flow of the problem rather than needing the mentally invert the "this on day N becomes this on day N+1" story structure to work out "this on day N+1 came form this and that on day N" |
2021-12-09 16:37:03 +0100 | <fizbin> | But yeah, I did day 6 with just Data.Map: https://github.com/fizbin/aoc2021/blob/main/aoc6.hs#L10-L14 |
2021-12-09 16:37:07 +0100 | doyougnu | (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) |
2021-12-09 16:39:09 +0100 | hololeap | (~hololeap@user/hololeap) (Ping timeout: 276 seconds) |
2021-12-09 16:39:34 +0100 | <fizbin> | Huh. I could trim my imports on day 6 down to just Data.Map and System.Environment. Oh well. |
2021-12-09 16:42:07 +0100 | Cajun | (~Cajun@user/cajun) (Quit: Client closed) |
2021-12-09 16:42:27 +0100 | JoshuaBelden | (~JoshuaBel@131.150.106.37) |
2021-12-09 16:42:42 +0100 | <kuribas> | Exception instance is rather infectious with Typeable... |
2021-12-09 16:42:52 +0100 | <kuribas> | if the exception type takes a type variable. |
2021-12-09 16:45:17 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:1b4:2cec:47c3:871e) |
2021-12-09 16:45:32 +0100 | <merijn> | kuribas: Don't make parametric exceptions, then? >.> |
2021-12-09 16:45:49 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) (Ping timeout: 240 seconds) |
2021-12-09 16:45:53 +0100 | <kuribas> | merijn: it is nice to give some context... |
2021-12-09 16:46:20 +0100 | <kuribas> | or I pass the context as a string... |
2021-12-09 16:47:33 +0100 | jinsun | (~quassel@user/jinsun) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2021-12-09 16:47:55 +0100 | jinsun | (~quassel@user/jinsun) |
2021-12-09 16:50:42 +0100 | motherfsck | (~motherfsc@user/motherfsck) (Ping timeout: 265 seconds) |
2021-12-09 16:50:54 +0100 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 268 seconds) |
2021-12-09 16:54:02 +0100 | JoshuaBelden | (~JoshuaBel@131.150.106.37) (Quit: Leaving...) |
2021-12-09 16:54:33 +0100 | burnsidesLlama | (~burnsides@dhcp168-015.wadham.ox.ac.uk) |
2021-12-09 16:59:11 +0100 | derelict | tetrahedron |
2021-12-09 16:59:17 +0100 | nvmd | (~nvmd@user/nvmd) |
2021-12-09 16:59:23 +0100 | synthmeat | (~synthmeat@user/synthmeat) (Quit: WeeChat 3.0) |
2021-12-09 17:00:47 +0100 | synthmeat | (~synthmeat@user/synthmeat) |
2021-12-09 17:02:14 +0100 | synthmeat | (~synthmeat@user/synthmeat) (Client Quit) |
2021-12-09 17:05:58 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) |
2021-12-09 17:07:49 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-12-09 17:08:21 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:25b5:2708:65a9:4e7d) |
2021-12-09 17:08:29 +0100 | hololeap | (~hololeap@user/hololeap) |
2021-12-09 17:09:15 +0100 | synthmeat | (~synthmeat@user/synthmeat) |
2021-12-09 17:11:07 +0100 | synthmeat | (~synthmeat@user/synthmeat) (Client Quit) |
2021-12-09 17:11:52 +0100 | mncheck | (~mncheck@193.224.205.254) (Quit: Leaving) |
2021-12-09 17:12:49 +0100 | motherfsck | (~motherfsc@user/motherfsck) |
2021-12-09 17:15:15 +0100 | chele | (~chele@user/chele) (Remote host closed the connection) |
2021-12-09 17:17:05 +0100 | <fizbin> | Most of my haskell AOC solutions are just translations of the python versions, but I do like my alternate day 8 solution of https://github.com/fizbin/aoc2021/blob/main/aoc8b.hs which uses the List monad to do logic programming. |
2021-12-09 17:18:17 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:48df:3af4:d67f:b5a0) (Quit: WeeChat 2.8) |
2021-12-09 17:20:14 +0100 | InternetCitizen | (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
2021-12-09 17:20:15 +0100 | Neuromancer | (~Neuromanc@user/neuromancer) |
2021-12-09 17:20:58 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-12-09 17:21:07 +0100 | synthmeat | (~synthmeat@user/synthmeat) |
2021-12-09 17:21:54 +0100 | <maerwald[m]> | You guys make me feel guilty for being too lazy doing AoC |
2021-12-09 17:24:35 +0100 | <yushyin> | blame it on your rsi syndrome, it is healthier not to do aoc |
2021-12-09 17:28:03 +0100 | <fizbin> | It's definitely healthier not to for people in the US-East timezone |
2021-12-09 17:30:46 +0100 | WHatever666 | (~fuzzypixe@tchebychev.ensimag.fr) |
2021-12-09 17:30:49 +0100 | InternetCitizen | (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 265 seconds) |
2021-12-09 17:33:06 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:25b5:2708:65a9:4e7d) (Quit: gone to sleep. ZZZzzz…) |
2021-12-09 17:34:00 +0100 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) |
2021-12-09 17:37:49 +0100 | alx741 | (~alx741@186.178.108.192) (Ping timeout: 240 seconds) |
2021-12-09 17:40:20 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-12-09 17:40:31 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) |
2021-12-09 17:41:17 +0100 | <sm> | resist maerwald! just say no |
2021-12-09 17:41:26 +0100 | curiousgay | (~curiousga@77-120-141-90.kha.volia.net) |
2021-12-09 17:41:45 +0100 | max22- | (~maxime@2a01cb0883359800d97fa420b95dd877.ipv6.abo.wanadoo.fr) (Quit: Leaving) |
2021-12-09 17:42:17 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-12-09 17:46:52 +0100 | gaff | (~gaff@49.207.222.161) |
2021-12-09 17:46:55 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-12-09 17:47:21 +0100 | maroloccio | (~marolocci@151.53.155.184) (Quit: WeeChat 3.0) |
2021-12-09 17:47:38 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-09 17:47:38 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-09 17:47:38 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-09 17:49:47 +0100 | <gaff> | when you run cabal v2-repl :target, and have some module `m` in scope at GHCi prompt, shouldn't whatever exported functions in modules module `m` imports be visible at GHCi prompt? |
2021-12-09 17:51:01 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-09 17:51:07 +0100 | kaol_ | kaol |
2021-12-09 17:51:58 +0100 | <sm> | unless module m re-exports them.. you will need to be "inside" module m, ie seeing all bindings within m. The command is `:m +*M` |
2021-12-09 17:52:34 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 265 seconds) |
2021-12-09 17:52:47 +0100 | xff0x | (~xff0x@2001:1a81:5338:9c00:c1d:978d:6bc0:7433) (Ping timeout: 252 seconds) |
2021-12-09 17:53:28 +0100 | <xerox> | > foldl f a [b,c,d] |
2021-12-09 17:53:29 +0100 | <lambdabot> | f (f (f a b) c) d |
2021-12-09 17:53:36 +0100 | xff0x | (~xff0x@2001:1a81:5338:9c00:1be4:4471:6bbc:3532) |
2021-12-09 17:53:54 +0100 | <xerox> | I forget what the module is that gives those show instances, something like simple-expression I thought |
2021-12-09 17:54:04 +0100 | <gaff> | for example, if module `m` (the one in scope in GHCi) imports `Test.QuickCheck`, then in GHCi,, :t quickCheck should show the type information, correct? |
2021-12-09 17:54:30 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-12-09 17:54:46 +0100 | <xerox> | simple reflect |
2021-12-09 17:55:01 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 17:55:14 +0100 | <monochrom> | BTW deliberately confusing (or not): |
2021-12-09 17:55:22 +0100 | <monochrom> | > foldr f z [a,b,c,d,e,f] |
2021-12-09 17:55:24 +0100 | <lambdabot> | f a (f b (f c (f d (f e (f f z))))) |
2021-12-09 17:56:02 +0100 | <monochrom> | Trick question: Expand (x-a)(x-b)(x-c)...(x-z) |
2021-12-09 17:56:19 +0100 | <monochrom> | Answer: it has an (x-x) so the whole thing is 0 >:) |
2021-12-09 17:56:20 +0100 | <xerox> | neat |
2021-12-09 17:56:53 +0100 | nebu | (~user@user/wavion) |
2021-12-09 17:57:57 +0100 | <gaff> | sm: thanks. that worked. i didn't know that! |
2021-12-09 17:58:13 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) (Ping timeout: 240 seconds) |
2021-12-09 17:58:54 +0100 | jippiedoe | (~david@2a02-a44c-e14e-1-9f6f-678f-3cd5-9f8c.fixed6.kpn.net) (Quit: Leaving) |
2021-12-09 17:59:23 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-09 17:59:40 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-12-09 18:00:07 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-12-09 18:00:10 +0100 | <gaff> | monochrom: that is nice |
2021-12-09 18:00:33 +0100 | gaff | (~gaff@49.207.222.161) () |
2021-12-09 18:00:50 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 18:01:58 +0100 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) |
2021-12-09 18:02:14 +0100 | nebu | (~user@user/wavion) (Ping timeout: 265 seconds) |
2021-12-09 18:03:47 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
2021-12-09 18:04:14 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2021-12-09 18:05:38 +0100 | <int-e> | dminuoso: https://paste.tomsmeding.com/WoV7elom confirms my suspicion that writing polymorphic PrimMonad code is bad for optimization |
2021-12-09 18:05:59 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-12-09 18:06:31 +0100 | <tomsmeding> | xerox: this? https://hackage.haskell.org/package/simple-reflect |
2021-12-09 18:06:31 +0100 | <int-e> | (unless things are small enough to be fully inlined to where the actual monad is known) |
2021-12-09 18:06:39 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 18:06:51 +0100 | <geekosaur> | yes |
2021-12-09 18:07:26 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:25b5:2708:65a9:4e7d) |
2021-12-09 18:07:46 +0100 | <tomsmeding> | what's interesting is that searching for Debug.SimpleReflect in the lambdabot repo on github doesn't give any hits |
2021-12-09 18:08:09 +0100 | <geekosaur> | @where L.hs |
2021-12-09 18:08:09 +0100 | <lambdabot> | what lambdabot has in scope is at https://silicon.int-e.eu/lambdabot/State/Pristine.hs |
2021-12-09 18:08:12 +0100 | <int-e> | dminuoso: PrimMonad still solves a problem though: how to avoid exporting all primitives twice, once for ST s and once for IO. (The cost is some extra `cast`-s in the core, which hopefully don't hurt) |
2021-12-09 18:08:21 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) (Remote host closed the connection) |
2021-12-09 18:08:45 +0100 | emf | (~emf@2620:10d:c091:480::1:58ea) |
2021-12-09 18:11:08 +0100 | <int-e> | tomsmeding: its in the libera branch (which I hardly ever mention because I force-push things there) |
2021-12-09 18:11:25 +0100 | <tomsmeding> | int-e: ah |
2021-12-09 18:11:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-12-09 18:12:21 +0100 | <int-e> | I really need to get on updating lambdabot for 9.0 (maybe 9.2, depending on the level of pain). |
2021-12-09 18:12:37 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 18:14:10 +0100 | JoshuaBelden | (~JoshuaBel@131.150.106.37) |
2021-12-09 18:17:10 +0100 | synthmeat | (~synthmeat@user/synthmeat) (Quit: WeeChat 3.0) |
2021-12-09 18:18:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-12-09 18:18:25 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 18:18:49 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) |
2021-12-09 18:20:07 +0100 | <int-e> | > unwords $ map (\x -> printf "%.2f" (190-x/18)) [3361,3351,3322,3299,3242,3223,3209,3205,3185,3182] -- still not settled though, cyphase seems to have prioritized sleep over finishing part 2 (can still reach rank 6) |
2021-12-09 18:20:08 +0100 | <lambdabot> | "3.28 3.83 5.44 6.72 9.89 10.94 11.72 11.94 13.06 13.22" |
2021-12-09 18:20:23 +0100 | Akiva | (~Akiva@user/Akiva) |
2021-12-09 18:21:33 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-09 18:23:35 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-12-09 18:23:51 +0100 | <xerox> | oh no I'll get bumped off if he finishes |
2021-12-09 18:24:22 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 18:24:53 +0100 | waleee | (~waleee@h-98-128-229-110.NA.cust.bahnhof.se) (Quit: WeeChat 3.3) |
2021-12-09 18:27:23 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) |
2021-12-09 18:27:49 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) |
2021-12-09 18:28:59 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) (Remote host closed the connection) |
2021-12-09 18:29:23 +0100 | cfricke | (~cfricke@user/cfricke) |
2021-12-09 18:29:32 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-09 18:30:23 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 18:32:22 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) (Ping timeout: 256 seconds) |
2021-12-09 18:33:36 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-09 18:33:36 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) |
2021-12-09 18:33:51 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) |
2021-12-09 18:35:03 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-09 18:35:41 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-12-09 18:36:19 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 18:36:23 +0100 | synthmeat | (~synthmeat@user/synthmeat) |
2021-12-09 18:37:10 +0100 | kupi | (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-09 18:37:31 +0100 | zebrag | (~chris@user/zebrag) |
2021-12-09 18:38:00 +0100 | xff0x | (~xff0x@2001:1a81:5338:9c00:1be4:4471:6bbc:3532) (Ping timeout: 265 seconds) |
2021-12-09 18:38:19 +0100 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Remote host closed the connection) |
2021-12-09 18:38:53 +0100 | xff0x | (~xff0x@2001:1a81:5338:9c00:d04b:38a4:ed4b:d288) |
2021-12-09 18:39:07 +0100 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) |
2021-12-09 18:41:39 +0100 | Guest48 | (~Guest48@wireless-student-pt3-240-131.lut.ac.uk) |
2021-12-09 18:41:54 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
2021-12-09 18:42:13 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 18:45:39 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
2021-12-09 18:47:10 +0100 | Kevin578 | (~Kevin578@pool-96-237-112-198.bstnma.fios.verizon.net) (Remote host closed the connection) |
2021-12-09 18:47:23 +0100 | d34df00d | (~d34df00d@2600:1700:8c60:3a10::48) (Remote host closed the connection) |
2021-12-09 18:49:05 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-12-09 18:53:00 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
2021-12-09 18:54:20 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 18:54:55 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 265 seconds) |
2021-12-09 18:55:30 +0100 | Guest18 | (~Guest18@client-8-71.eduroam.oxuni.org.uk) |
2021-12-09 18:56:47 +0100 | Guest18 | (~Guest18@client-8-71.eduroam.oxuni.org.uk) (Client Quit) |
2021-12-09 18:56:52 +0100 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.3) |
2021-12-09 18:59:46 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-12-09 19:00:30 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 19:01:27 +0100 | lky | (~hbghlyj@client-8-71.eduroam.oxuni.org.uk) |
2021-12-09 19:02:53 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
2021-12-09 19:03:32 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 256 seconds) |
2021-12-09 19:04:58 +0100 | Guest48 | (~Guest48@wireless-student-pt3-240-131.lut.ac.uk) (Quit: Client closed) |
2021-12-09 19:05:04 +0100 | teo | (~teo@user/teo) (Ping timeout: 265 seconds) |
2021-12-09 19:05:48 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-09 19:05:55 +0100 | whatif | (~user@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-12-09 19:06:06 +0100 | whatif | (~user@2400:8902::f03c:92ff:fe60:98d8) |
2021-12-09 19:06:33 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 19:11:50 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-12-09 19:12:32 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-09 19:12:33 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 19:13:49 +0100 | k60`` | (~user@static.100.218.46.78.clients.your-server.de) (Ping timeout: 240 seconds) |
2021-12-09 19:16:48 +0100 | k60`` | (~user@static.100.218.46.78.clients.your-server.de) |
2021-12-09 19:17:42 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-09 19:18:09 +0100 | lky | (~hbghlyj@client-8-71.eduroam.oxuni.org.uk) (Quit: Leaving) |
2021-12-09 19:18:18 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 19:23:05 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2021-12-09 19:23:56 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-09 19:28:57 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-12-09 19:34:01 +0100 | motherfsck | (~motherfsc@user/motherfsck) (Read error: Connection reset by peer) |
2021-12-09 19:37:35 +0100 | <hololeap> | deriving stock instance (forall f. Functor f => Functor (t f), forall f. Foldable f => Foldable (t f), forall f. Traversable f => Traversable (t f)) => Traversable (Row t) |
2021-12-09 19:37:42 +0100 | <hololeap> | at least I know it's possible now |
2021-12-09 19:37:43 +0100 | motherfsck | (~motherfsc@user/motherfsck) |
2021-12-09 19:39:35 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:25b5:2708:65a9:4e7d) (Quit: gone to sleep. ZZZzzz…) |
2021-12-09 19:40:22 +0100 | k60`` | (~user@static.100.218.46.78.clients.your-server.de) (Ping timeout: 256 seconds) |
2021-12-09 19:41:42 +0100 | <EvanR> | with enough Functor and Foldable you can do anything it seems |
2021-12-09 19:41:56 +0100 | <EvanR> | maybe that's why mapreduce is a buzzword |
2021-12-09 19:44:01 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-09 19:44:42 +0100 | <hololeap> | I kind of wish "forall f. Traversable f => Traversable (t f)" implied the other two with QuantifiedConstraints, but I don't understand the underlaying type theory well enough to know if that's a reasonable feature |
2021-12-09 19:50:01 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-09 19:50:33 +0100 | <awpr> | that should imply `forall f. Traversable f => Functor (t f)` etc., but the left side of the `=>` is effectively contravariant, and that doesn't in turn imply `forall f. Functor f => Functor (t f)` |
2021-12-09 19:52:02 +0100 | <awpr> | first one is saying the instance expects `Traversable f` in order for `t f` to be `Functor`, but trying to convert it to the second one would mean trying to solve `Functor (t f)` given only `Functor f`, which isn't enough to satisfy that instance's context |
2021-12-09 19:52:08 +0100 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3) |
2021-12-09 19:52:23 +0100 | <cyphase> | int-e, i knew going in to part 1 that i was going to be distracted, and it took me longer than it would have. then yea, i just decided to focus on the (pleasantly) distracting thing and leave part 2 for daylight |
2021-12-09 19:54:03 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 268 seconds) |
2021-12-09 19:57:38 +0100 | nebu | (~user@user/wavion) |
2021-12-09 19:58:09 +0100 | <EvanR> | it's getting kind of brutal doing these at midnight xD |
2021-12-09 19:58:24 +0100 | Kevin578 | (~Kevin578@pool-96-237-112-198.bstnma.fios.verizon.net) |
2021-12-09 20:03:02 +0100 | nebu | (~user@user/wavion) (Ping timeout: 256 seconds) |
2021-12-09 20:04:57 +0100 | <dsal> | ghc: panic! (the 'impossible' happened) |
2021-12-09 20:05:00 +0100 | <dsal> | that's kinda my thing. |
2021-12-09 20:05:03 +0100 | <dsal> | I make the impossible happen. |
2021-12-09 20:05:43 +0100 | econo | (uid147250@user/econo) |
2021-12-09 20:06:08 +0100 | <boxscape> | % GHC.Utils.Misc.only [] |
2021-12-09 20:06:08 +0100 | <yahb> | boxscape: *** Exception: ghc: panic! (the 'impossible' happened); (GHC version 9.0.1:; Util: only; Please report this as a GHC bug: https://www.haskell.org/ghc/reportabug |
2021-12-09 20:06:11 +0100 | <int-e> | . o O ( asserted to be a failure ) |
2021-12-09 20:07:11 +0100 | WilliamJ | (~WilliamJ@wireless-student-pt10-182-232.lut.ac.uk) |
2021-12-09 20:07:13 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-09 20:08:25 +0100 | <EvanR> | I hate it when impossible happens |
2021-12-09 20:08:30 +0100 | <EvanR> | it's the worst |
2021-12-09 20:09:06 +0100 | <dsal> | EvanR: don't let your dreams be dreams |
2021-12-09 20:09:15 +0100 | <EvanR> | almost as bad when necessarily doesn't happen |
2021-12-09 20:13:52 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) (Remote host closed the connection) |
2021-12-09 20:15:16 +0100 | nebu | (~user@user/wavion) |
2021-12-09 20:15:53 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f80d:43f5:ddf4:fb26) |
2021-12-09 20:16:15 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) (Ping timeout: 268 seconds) |
2021-12-09 20:18:05 +0100 | sluigi | (~sluigi@18.31.9.106) |
2021-12-09 20:19:42 +0100 | <WilliamJ> | hi guys, i'm new to haskell and have a task to program a function where it takes the length and width of a rectangle and the number of steps, for example putStr(rectangles 2 3 3) would be |
2021-12-09 20:19:42 +0100 | <WilliamJ> | *** |
2021-12-09 20:19:43 +0100 | <WilliamJ> | *** |
2021-12-09 20:19:43 +0100 | <WilliamJ> | ****** |
2021-12-09 20:19:44 +0100 | <WilliamJ> | ****** |
2021-12-09 20:19:44 +0100 | <WilliamJ> | ********* |
2021-12-09 20:19:45 +0100 | <WilliamJ> | ********* |
2021-12-09 20:19:45 +0100 | <WilliamJ> | I have managed to program an initial function to get the initial rectangle but stuck on how to do the other 2, the code is here https://paste.tomsmeding.com/OJQyGfBT any help would be appreciated :) |
2021-12-09 20:20:29 +0100 | <monochrom> | What does "number of step" mean? |
2021-12-09 20:20:49 +0100 | curiousgay | (~curiousga@77-120-141-90.kha.volia.net) (Quit: Leaving) |
2021-12-09 20:20:54 +0100 | <EvanR> | is that ascii art accurate |
2021-12-09 20:21:07 +0100 | <WilliamJ> | there is 3 rectangles outputted |
2021-12-09 20:21:16 +0100 | <WilliamJ> | steps is the number |
2021-12-09 20:21:41 +0100 | <monochrom> | That doesn't explain anything. |
2021-12-09 20:21:49 +0100 | <monochrom> | Why are there 3 rectangles? |
2021-12-09 20:21:57 +0100 | <monochrom> | Why are some of them bigger? |
2021-12-09 20:22:05 +0100 | <monochrom> | Why are some of them indented? |
2021-12-09 20:22:53 +0100 | <monochrom> | I only know that a rectangle has width and height. What is "step" doing with a rectangle? |
2021-12-09 20:23:11 +0100 | <aplainzetakind> | It's obvious. The first parameter is the height, the second is the number of rectangles, and the third is the increase both in indentation and width as well as the initial width. What's the problem? |
2021-12-09 20:23:25 +0100 | <EvanR> | so it is accurate |
2021-12-09 20:23:43 +0100 | <WilliamJ> | Oh sorry, ok so, each step there will be another rectangle created. On each step the width will be the width of the last one + the width inputted by the user step is basically how many rectangles there will be, the indentation therefore is the width of the last rectangle sorry for not explaining |
2021-12-09 20:23:52 +0100 | <WilliamJ> | currently my code only outputs the first rectangle |
2021-12-09 20:23:58 +0100 | <monochrom> | No, it is non-obvious. What not three kinds of steps, one for indentation, one for increase in width, one for increase in height |
2021-12-09 20:24:15 +0100 | <EvanR> | given the picture is accurate, it's a simple IQ test to figure the rest out |
2021-12-09 20:24:23 +0100 | <monochrom> | And for that matter, why linear growth for any of them, why not logarithmic growth or quadratic growth |
2021-12-09 20:24:33 +0100 | <aplainzetakind> | monochrom: I was being sarcastic. |
2021-12-09 20:24:44 +0100 | <WilliamJ> | What I am confused about is how do I make it repeat it with the whitespace and make the width get bigger by that increment each time? |
2021-12-09 20:24:46 +0100 | <monochrom> | OK sorry, thanks. |
2021-12-09 20:24:48 +0100 | <aplainzetakind> | WilliamJ: The indentation is not the width of the previous rectangle though. |
2021-12-09 20:25:08 +0100 | <WilliamJ> | Do I mean length? Habe I gotten them mixed up |
2021-12-09 20:25:18 +0100 | <EvanR> | width, height |
2021-12-09 20:25:19 +0100 | <WilliamJ> | The 2nd rectangle is meant to be indented by 3 whitespace |
2021-12-09 20:25:35 +0100 | <aplainzetakind> | And the third? |
2021-12-09 20:25:37 +0100 | <WilliamJ> | 6 |
2021-12-09 20:25:38 +0100 | <EvanR> | length is for rods and line segments |
2021-12-09 20:25:43 +0100 | <aplainzetakind> | But why? |
2021-12-09 20:25:47 +0100 | <aplainzetakind> | What does it all mean? |
2021-12-09 20:26:35 +0100 | <WilliamJ> | What does what mean, the output or the indentation? It's meant to be an ascii art creator with asterixes, as EvanR mentioned before |
2021-12-09 20:26:47 +0100 | <WilliamJ> | the Indentation is part of it |
2021-12-09 20:26:59 +0100 | <WilliamJ> | sorry if this is unclear |
2021-12-09 20:27:07 +0100 | <int-e> | aplainzetakind: try ##philosophy ;-) |
2021-12-09 20:27:47 +0100 | <aplainzetakind> | In any case, I think you should first write a function f i w h, which outputs a single rectangle of the given indentation width and height, and use that to output multiple such rectangles. |
2021-12-09 20:28:58 +0100 | sluigi | (~sluigi@18.31.9.106) (Quit: Client closed) |
2021-12-09 20:29:30 +0100 | <monochrom> | https://esmemes.com/t/what-does-it-mean-to-be-a-good-person |
2021-12-09 20:29:41 +0100 | <WilliamJ> | But on the task, it does not ask specifically for the indentation to be given as an input, it is worked out through the width of the last one |
2021-12-09 20:30:24 +0100 | <WilliamJ> | hence on the example I gave, it went 3 whitespace, 6 whitespace. |
2021-12-09 20:30:31 +0100 | <EvanR> | ah yes, the ancient philosopher esmemes |
2021-12-09 20:31:26 +0100 | <aplainzetakind> | WilliamJ: I understand, you can use the proposed f above with values of i computed in the main task-fulfilling function. |
2021-12-09 20:33:07 +0100 | <monochrom> | Write a helper function that makes one rectangle of height, width, indentation controlled by parameters. |
2021-12-09 20:33:34 +0100 | <monochrom> | Now you just have to call that function multiple times, each time with larger numbers. |
2021-12-09 20:33:36 +0100 | <monochrom> | "just" |
2021-12-09 20:33:55 +0100 | <WilliamJ> | ok I got it working for the first place of the function, not sure why it isnt working on the other lines. |
2021-12-09 20:34:00 +0100 | <WilliamJ> | What is a helper function? |
2021-12-09 20:34:19 +0100 | <monochrom> | A function that the assignment doesn't directly say you have to write. |
2021-12-09 20:34:33 +0100 | <monochrom> | But the assignment would be trivial if you wrote it first. |
2021-12-09 20:34:48 +0100 | <monochrom> | This is why the assignment keeps it a secret. |
2021-12-09 20:34:54 +0100 | JoshuaBelden | (~JoshuaBel@131.150.106.37) (Quit: Leaving...) |
2021-12-09 20:35:00 +0100 | <monochrom> | Can't tell every student how to get full marks. |
2021-12-09 20:35:08 +0100 | <aplainzetakind> | Only selected ones? |
2021-12-09 20:35:27 +0100 | <WilliamJ> | monochrom haha obviously, we have not been introduced to them yet. |
2021-12-09 20:35:41 +0100 | Midjak | (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) |
2021-12-09 20:35:41 +0100 | <WilliamJ> | aplainzetakind the first line |
2021-12-09 20:35:53 +0100 | <WilliamJ> | rectangle :: Int -> Int -> Int -> String |
2021-12-09 20:35:53 +0100 | <WilliamJ> | rectangle i m n = (replicate i ' ' ++ unlines(replicate m(replicate n '*'))) |
2021-12-09 20:36:28 +0100 | <monochrom> | If your rectangle has 10 lines, clearly you have 10 lines to indent. |
2021-12-09 20:36:30 +0100 | <aplainzetakind> | Not quite. |
2021-12-09 20:36:31 +0100 | <monochrom> | "clearly" |
2021-12-09 20:37:40 +0100 | <WilliamJ> | I tried it within the other brackets but it did not work so I put it on the outside hence I got that solution, do I need to do something with the unlines function? |
2021-12-09 20:38:06 +0100 | <aplainzetakind> | WilliamJ: Are you actually trying what the above function does in the repl? |
2021-12-09 20:38:16 +0100 | <WilliamJ> | I tried it in GHCI |
2021-12-09 20:38:24 +0100 | <aplainzetakind> | And did you get what you wanted? |
2021-12-09 20:38:32 +0100 | <WilliamJ> | *** |
2021-12-09 20:38:32 +0100 | <WilliamJ> | *** |
2021-12-09 20:38:33 +0100 | <WilliamJ> | I got this |
2021-12-09 20:39:00 +0100 | <aplainzetakind> | So you can see what's wrong with it then. |
2021-12-09 20:39:41 +0100 | <WilliamJ> | Yeah, I thought at first I had to group it with the other replicate functions but it didnt work so I tried that solution and I got this |
2021-12-09 20:40:10 +0100 | <WilliamJ> | I know why this isnt working though |
2021-12-09 20:40:23 +0100 | <WilliamJ> | as I am concatinating with the first line only, it is not being repeated on every line |
2021-12-09 20:41:53 +0100 | <aplainzetakind> | In what way did it not work in the first try? |
2021-12-09 20:42:03 +0100 | <WilliamJ> | unlines(replicate i ' '(replicate m(replicate n '*'))) I tried this the first time |
2021-12-09 20:42:39 +0100 | <WilliamJ> | I receive an error saying it could not match [[Char]] -> [String] |
2021-12-09 20:43:02 +0100 | <aplainzetakind> | Figuring out what those type errors are telling you is a very important skill. |
2021-12-09 20:43:23 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2021-12-09 20:43:38 +0100 | <aplainzetakind> | Around that line you can find exactly what it expected to be of that type and what it found instead. |
2021-12-09 20:43:45 +0100 | <WilliamJ> | My actual type is [Char] which makes sense to me, but why is it telling me the expected type is [[char]] |
2021-12-09 20:44:15 +0100 | <aplainzetakind> | Paste the whole error (not here, on a paste bin). |
2021-12-09 20:44:23 +0100 | <WilliamJ> | (y) |
2021-12-09 20:44:25 +0100 | <geekosaur> | @where paste |
2021-12-09 20:44:26 +0100 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
2021-12-09 20:44:54 +0100 | <WilliamJ> | https://paste.tomsmeding.com/gXYCtrZY |
2021-12-09 20:45:25 +0100 | <WilliamJ> | Is it saying [[Char]] because I am trying to do 2 outputs of different characters? whitespace and asterix |
2021-12-09 20:45:54 +0100 | <aplainzetakind> | It's sayin something clearer. |
2021-12-09 20:46:09 +0100 | <aplainzetakind> | Lines 3 and 4 |
2021-12-09 20:46:25 +0100 | <WilliamJ> | Oh ok, I see |
2021-12-09 20:47:04 +0100 | <WilliamJ> | So because these are all grouped together due to the type of replicate being that it is not possible? |
2021-12-09 20:47:52 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-12-09 20:49:17 +0100 | <aplainzetakind> | "grouped together" sounds a bit off. |
2021-12-09 20:49:51 +0100 | <monochrom> | replicate wants 2 arguments. Why are you giving it 3? |
2021-12-09 20:50:19 +0100 | <aplainzetakind> | If something like `f a b c` is supposed to be a valid expression, then f should take at least three arguments. |
2021-12-09 20:50:39 +0100 | <WilliamJ> | I tried to give it 3 arguments as I thought in order to get the indentation on each line, they had to be together inside the same brackets but it seems that cannot be the case |
2021-12-09 20:51:00 +0100 | <aplainzetakind> | Whitespace is function application. |
2021-12-09 20:51:29 +0100 | Successus | (~Successus@gateway/tor-sasl/successus) () |
2021-12-09 20:51:37 +0100 | <WilliamJ> | Oh ok, I see now |
2021-12-09 20:51:43 +0100 | <monochrom> | Did you ever concatenation two strings "abc" and "def" but just coding up "abc" "def"? |
2021-12-09 20:51:50 +0100 | <monochrom> | s/but/by/ |
2021-12-09 20:51:54 +0100 | <aplainzetakind> | You are trying to apply `replicate i ' '` to that thing that follows, but it's a String and does not take any arguments. |
2021-12-09 20:52:04 +0100 | <int-e> | aplainzetakind: . o O { and braces and semicolons } |
2021-12-09 20:52:34 +0100 | <aplainzetakind> | > succ; 5 |
2021-12-09 20:52:35 +0100 | <WilliamJ> | monochrom when using ++ for concatenation, no |
2021-12-09 20:52:35 +0100 | <lambdabot> | <hint>:1:5: error: parse error on input ‘;’ |
2021-12-09 20:52:48 +0100 | <aplainzetakind> | int-e: Semicolons? |
2021-12-09 20:52:54 +0100 | <monochrom> | OK so you know ++ for concatenation. Why didn't you use it? |
2021-12-09 20:53:15 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-09 20:53:20 +0100 | <int-e> | > let x = 1;{- ordinarily you'd use a newline and indentation here, that is also whitespace-} y = 2 in x + y |
2021-12-09 20:53:21 +0100 | <lambdabot> | 3 |
2021-12-09 20:53:21 +0100 | <dsal> | I think my impossible problem is from using stack to grab a thing out of git with different symbols but the same version number. |
2021-12-09 20:53:27 +0100 | <dsal> | I've scorched the earth. |
2021-12-09 20:53:27 +0100 | <WilliamJ> | I tried to use it at first when I did it on the outside of the group of brackets but it only did it on the first line, I have an idea now i shall give it a go |
2021-12-09 20:53:53 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:36fe:413:d066:5593) |
2021-12-09 20:53:54 +0100 | <aplainzetakind> | int-e: I should've said horizontal whitespace. |
2021-12-09 20:54:00 +0100 | <WilliamJ> | ok, I just tried it and it gave me a different error |
2021-12-09 20:54:23 +0100 | <int-e> | aplainzetakind: yeah my thought bubbles are not to be taken too seriously :-P |
2021-12-09 20:54:25 +0100 | <WilliamJ> | I added ++ between unlines(replicate i ' '++(replicate m(replicate n '*'))) |
2021-12-09 20:54:44 +0100 | <aplainzetakind> | And that error must also be pretty clear if you give it a chance. |
2021-12-09 20:54:49 +0100 | averell | (~averell@user/averell) (Quit: .) |
2021-12-09 20:55:25 +0100 | <WilliamJ> | Yes, it is talking about the types |
2021-12-09 20:55:26 +0100 | <monochrom> | > zip"abc""def" |
2021-12-09 20:55:28 +0100 | <lambdabot> | [('a','d'),('b','e'),('c','f')] |
2021-12-09 20:55:38 +0100 | <monochrom> | No space, brace, semicolon. |
2021-12-09 20:55:52 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
2021-12-09 20:55:52 +0100 | <monochrom> | Now you have to add quotes to your list. |
2021-12-09 20:55:53 +0100 | <int-e> | unlines (replicate i ' ' ++ replicate m (replicate n '*')) -- these extra spaces really improve readability though |
2021-12-09 20:56:06 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-09 20:56:25 +0100 | <aplainzetakind> | Guys I did not say "ONLY whitespace is function application". |
2021-12-09 20:56:32 +0100 | <aplainzetakind> | Add $ to the list then. |
2021-12-09 20:56:36 +0100 | <WilliamJ> | So as it is no longer being applied to a string, it is talking about characters instead |
2021-12-09 20:56:54 +0100 | <WilliamJ> | https://paste.tomsmeding.com/VDjqp1eA |
2021-12-09 20:57:02 +0100 | <int-e> | aplainzetakind: eh calm down a little... we nitpick facts, not people, it's not personal |
2021-12-09 20:57:33 +0100 | <monochrom> | > let snoc = flip (:) in snoc"bcd"'a' |
2021-12-09 20:57:34 +0100 | <lambdabot> | "abcd" |
2021-12-09 20:57:49 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2021-12-09 20:57:50 +0100 | <aplainzetakind> | I am calm, I'm nitpicking semantics in return. |
2021-12-09 20:58:04 +0100 | <int-e> | Okay. |
2021-12-09 20:58:08 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2021-12-09 20:58:34 +0100 | <monochrom> | I was not nitpicking you, aplainzetakind. I was nitpicking int-e's list! |
2021-12-09 20:58:54 +0100 | <aplainzetakind> | WilliamJ: What's not clear about lines 2--5? |
2021-12-09 20:58:57 +0100 | <monochrom> | $ is no fun, though. |
2021-12-09 20:59:06 +0100 | <aplainzetakind> | monochrom: & then? |
2021-12-09 20:59:24 +0100 | <int-e> | monochrom: Hmm, why though? Whitespace doesn't turn into quotes... |
2021-12-09 20:59:41 +0100 | <WilliamJ> | Ok, I got it running but it does not work as expected |
2021-12-09 20:59:42 +0100 | <int-e> | monochrom: tbf there's some ambiguity in what that list was |
2021-12-09 20:59:43 +0100 | <monochrom> | Perhaps quotes turn into whitespace? |
2021-12-09 21:00:11 +0100 | <int-e> | monochrom: again that would be irrelevant |
2021-12-09 21:00:11 +0100 | <monochrom> | Consider the zip"abc""def" example. |
2021-12-09 21:00:19 +0100 | <WilliamJ> | I made the single quotes into double quotes but when I run the program, it outputs the whitespace and separate lines and then the rectangles |
2021-12-09 21:00:39 +0100 | <aplainzetakind> | You did not read the error. |
2021-12-09 21:01:03 +0100 | <aplainzetakind> | Lines 4 and 5 in what you pasted. |
2021-12-09 21:01:13 +0100 | geekosaur | thinks the whole "function application" subthread here can only bve explained in terms of tokens, not what characters count as "application" |
2021-12-09 21:01:14 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-12-09 21:01:28 +0100 | <aplainzetakind> | Don't blindly change things around and hope it works out somehow. |
2021-12-09 21:01:30 +0100 | <WilliamJ> | Yes, but I don't really understand what it is asking me aplainzetakind |
2021-12-09 21:02:30 +0100 | <aplainzetakind> | (++) concatenates two Strings, and a String is just a [Char], but the second argument you gave (++) is not a String but a list of Strings. Reread the error to appreciate that this is what it's saying. |
2021-12-09 21:02:31 +0100 | nvmd | (~nvmd@user/nvmd) (Quit: Later, nerds.) |
2021-12-09 21:02:36 +0100 | curiousgay | (~curiousga@77-120-141-90.kha.volia.net) |
2021-12-09 21:02:42 +0100 | <geekosaur> | :t replicate 2 (replicate 3 '*') |
2021-12-09 21:02:43 +0100 | <lambdabot> | [[Char]] |
2021-12-09 21:02:48 +0100 | <monochrom> | I am OK with blind changes. But you have to learn from the consequences. |
2021-12-09 21:03:15 +0100 | <zero> | wuld there be any usefulness in distinguishing lazy Sets from strict Sets? |
2021-12-09 21:03:27 +0100 | <int-e> | +1 on practicing to read ghc's error messages |
2021-12-09 21:03:44 +0100 | <geekosaur> | zero, not really. |
2021-12-09 21:03:51 +0100 | <zero> | why? |
2021-12-09 21:03:55 +0100 | <aplainzetakind> | WilliamJ: To be more precise, (++) concatenates two lists of the same type, but here the first one encountered is a list of Char's. |
2021-12-09 21:03:56 +0100 | <WilliamJ> | Yes I understand that ++ concatenates 2 strings but why would it not work? as they are both technically strings? |
2021-12-09 21:04:02 +0100 | <int-e> | they can be scary, they can become very big, but they do follow regular patterns that you can learn to identify relevant information |
2021-12-09 21:04:12 +0100 | <monochrom> | What do lazy Sets do? Why do strict Sets do? |
2021-12-09 21:04:15 +0100 | <aplainzetakind> | No, it's telling you that the second one is not. |
2021-12-09 21:04:26 +0100 | <int-e> | [String] isn't the same type as String |
2021-12-09 21:04:29 +0100 | <WilliamJ> | How is '***' not a string? |
2021-12-09 21:04:38 +0100 | <geekosaur> | zero, why would there be value to it when they'd just be duplicates of each other? |
2021-12-09 21:04:40 +0100 | <int-e> | > '***' |
2021-12-09 21:04:42 +0100 | <lambdabot> | <hint>:1:2: error: parse error on input ‘***’ |
2021-12-09 21:04:55 +0100 | juhp | (~juhp@128.106.188.82) (Ping timeout: 252 seconds) |
2021-12-09 21:04:58 +0100 | <aplainzetakind> | In the second argument of `(++)' namely replicate m (replicate n '*') |
2021-12-09 21:05:07 +0100 | <aplainzetakind> | Is what it's saying. |
2021-12-09 21:05:11 +0100 | <geekosaur> | > replicate 2 (replicate 3 '*') |
2021-12-09 21:05:12 +0100 | <lambdabot> | ["***","***"] |
2021-12-09 21:05:18 +0100 | <WilliamJ> | Ok, so have I done it in the incorrect place? |
2021-12-09 21:05:21 +0100 | <geekosaur> | is the above a String? |
2021-12-09 21:05:22 +0100 | <monochrom> | What is the type of replicate m (replicate n '*') ? |
2021-12-09 21:05:28 +0100 | <WilliamJ> | No, that is a list geekosaur |
2021-12-09 21:05:34 +0100 | <zero> | are Sets strict or lazy? |
2021-12-09 21:05:41 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-09 21:05:41 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-09 21:05:41 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-09 21:05:49 +0100 | <WilliamJ> | monochrom as I see above, that would be a list of strings |
2021-12-09 21:05:51 +0100 | <monochrom> | False dichotomy. |
2021-12-09 21:05:51 +0100 | <aplainzetakind> | So that's your problem. You are attmeting something that doesn't make sense. |
2021-12-09 21:05:56 +0100 | <geekosaur> | zero, both. the data structure is identical, only the operations are striuct/lazy |
2021-12-09 21:06:00 +0100 | <aplainzetakind> | attempting* |
2021-12-09 21:06:16 +0100 | <WilliamJ> | Okay, I am seeing where it is coming from now |
2021-12-09 21:06:20 +0100 | <monochrom> | Data.Set is strict in BST skeleton, lazy in value. |
2021-12-09 21:06:28 +0100 | <boxscape> | hackage says "A Set is strict in its elements." |
2021-12-09 21:06:33 +0100 | <monochrom> | err, wait, no, not entirely lazy in value. |
2021-12-09 21:06:35 +0100 | <int-e> | monochrom: there's no values, only keys |
2021-12-09 21:06:38 +0100 | <zero> | ah. i get it. thanks |
2021-12-09 21:06:56 +0100 | <zero> | because order |
2021-12-09 21:06:57 +0100 | <aplainzetakind> | WilliamJ: You want to prepend i spaces to each chunk of '*', where are they?. |
2021-12-09 21:07:08 +0100 | <monochrom> | It is somewhat strict in values to the point of resolving x<=y questions. |
2021-12-09 21:07:18 +0100 | <geekosaur> | and it makes no sense to have a lazy Set because (a) no values to be lazy (b) spine has to be strict due to ordering and balancing |
2021-12-09 21:07:18 +0100 | juhp | (~juhp@128.106.188.82) |
2021-12-09 21:07:19 +0100 | <int-e> | Oh I guess if your keys are lists they're only evaluated as far as necessary to compare all the keys |
2021-12-09 21:07:31 +0100 | <WilliamJ> | the chunk of '*' are in a list |
2021-12-09 21:07:44 +0100 | <int-e> | So yeah there's some laziness in that, though I'd attribute that to Ord, not to the Set |
2021-12-09 21:07:54 +0100 | jinsun__ | (~quassel@user/jinsun) |
2021-12-09 21:07:56 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-09 21:08:19 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
2021-12-09 21:08:22 +0100 | <aplainzetakind> | > replicate 5 '*' |
2021-12-09 21:08:24 +0100 | <lambdabot> | "*****" |
2021-12-09 21:08:25 +0100 | <monochrom> | Well, Map.Strict is only strict in values to the extent of WHNF anyway. |
2021-12-09 21:08:37 +0100 | <aplainzetakind> | Such things are what you want to indent right? |
2021-12-09 21:08:49 +0100 | <WilliamJ> | correct |
2021-12-09 21:08:56 +0100 | <monochrom> | False dichotomies are false. |
2021-12-09 21:09:00 +0100 | <aplainzetakind> | Then prepend your spaces to those expressions. |
2021-12-09 21:09:16 +0100 | <monochrom> | The world is more interesting than "lazy vs strict". |
2021-12-09 21:09:20 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-09 21:09:29 +0100 | <monochrom> | And more interesting than "functions vs not functions" |
2021-12-09 21:09:35 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-09 21:09:43 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-09 21:09:47 +0100 | <WilliamJ> | Ok, I shall give it a try |
2021-12-09 21:09:58 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-09 21:10:05 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-09 21:10:08 +0100 | <monochrom> | I am monochrom but even my avatar is a 256-level gray scale, not just two blobs of white and black. |
2021-12-09 21:10:13 +0100 | vgtw | (~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se) (Ping timeout: 240 seconds) |
2021-12-09 21:10:13 +0100 | swistak | (~swistak@185.21.216.141) (Ping timeout: 240 seconds) |
2021-12-09 21:10:20 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-09 21:10:26 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-09 21:10:38 +0100 | vgtw | (~vgtw@c-2359205c.07-348-756d651.bbcust.telenor.se) |
2021-12-09 21:10:41 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-09 21:10:48 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-09 21:11:01 +0100 | jinsun | (~quassel@user/jinsun) (Ping timeout: 240 seconds) |
2021-12-09 21:11:40 +0100 | <johnw> | not 50-level gray scale? |
2021-12-09 21:11:44 +0100 | <WilliamJ> | I just tried to prepend using : instead of ++ but I am having no luck, am i doing something wrong? |
2021-12-09 21:11:45 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
2021-12-09 21:11:58 +0100 | <aplainzetakind> | Yes. |
2021-12-09 21:12:04 +0100 | <monochrom> | Haha but I made my avatar long before 50 Shades of Grey. |
2021-12-09 21:12:08 +0100 | <aplainzetakind> | Why did you feel the need to use (:)? |
2021-12-09 21:12:27 +0100 | bonz060 | (~quassel@2001:bc8:47a4:a23::1) |
2021-12-09 21:12:31 +0100 | <aplainzetakind> | :t replicate 3 ' ' |
2021-12-09 21:12:32 +0100 | <lambdabot> | [Char] |
2021-12-09 21:12:37 +0100 | <aplainzetakind> | :t replicate 3 '*' |
2021-12-09 21:12:38 +0100 | <lambdabot> | [Char] |
2021-12-09 21:12:49 +0100 | <WilliamJ> | Because when I have done other exercises, I have used : to add stuff onto the end of stuff hence I thought it would be the same for this |
2021-12-09 21:12:53 +0100 | <WilliamJ> | rectangle i m n = unlines (replicate i ' ' : replicate m (replicate n '*')) is what I tried |
2021-12-09 21:13:07 +0100 | swistak | (~swistak@185.21.216.141) |
2021-12-09 21:13:14 +0100 | <EvanR> | : adds 1 stuff to the beginning |
2021-12-09 21:13:23 +0100 | <int-e> | well at least it type-checks |
2021-12-09 21:13:27 +0100 | <aplainzetakind> | I mean that typechecks. |
2021-12-09 21:13:29 +0100 | <aplainzetakind> | At least. |
2021-12-09 21:13:32 +0100 | <monochrom> | The vagueness of "add stuff to stuff" is why you are failing. |
2021-12-09 21:13:34 +0100 | <WilliamJ> | it runs, but doesnt how I expect it to |
2021-12-09 21:13:35 +0100 | <aplainzetakind> | But does not do what you want. |
2021-12-09 21:13:49 +0100 | <int-e> | you'll get one line full of spaces |
2021-12-09 21:14:01 +0100 | <WilliamJ> | yeah |
2021-12-09 21:14:01 +0100 | <aplainzetakind> | Because you are not putting spaces before the asterisks. |
2021-12-09 21:14:04 +0100 | <int-e> | followed by a non-idented rectangle |
2021-12-09 21:14:08 +0100 | <aplainzetakind> | But somewhere else. |
2021-12-09 21:14:22 +0100 | <int-e> | you need to modify every single line to achieve indentation |
2021-12-09 21:14:30 +0100 | <aplainzetakind> | replicate 3 ' ' ++ replicate 5 '*' |
2021-12-09 21:14:35 +0100 | <aplainzetakind> | > replicate 3 ' ' ++ replicate 5 '*' |
2021-12-09 21:14:37 +0100 | <lambdabot> | " *****" |
2021-12-09 21:14:43 +0100 | <aplainzetakind> | These are your lines. |
2021-12-09 21:14:55 +0100 | <WilliamJ> | Yes that is what I want to acheive |
2021-12-09 21:14:58 +0100 | <WilliamJ> | achieve* |
2021-12-09 21:15:02 +0100 | <aplainzetakind> | Then please achive it. |
2021-12-09 21:15:10 +0100 | <WilliamJ> | I am trying |
2021-12-09 21:17:54 +0100 | <WilliamJ> | ok I got it working |
2021-12-09 21:18:00 +0100 | <WilliamJ> | rectangle i m n = unlines (replicate m (replicate i ' ' ++ (replicate n '*'))) |
2021-12-09 21:18:00 +0100 | <aplainzetakind> | Great. |
2021-12-09 21:18:14 +0100 | <aplainzetakind> | The innermost parens are unnecessary. |
2021-12-09 21:18:16 +0100 | <WilliamJ> | give me the output I want |
2021-12-09 21:18:33 +0100 | <WilliamJ> | Ok |
2021-12-09 21:18:35 +0100 | <aplainzetakind> | function application has highest precedence. |
2021-12-09 21:19:05 +0100 | <WilliamJ> | I understand, I had them there from a previous attempt. |
2021-12-09 21:19:12 +0100 | <aplainzetakind> | Now you need to call this with appropriate parameters an appropriate number of times as dictated by the parameters of your main function. |
2021-12-09 21:19:46 +0100 | nebu | (~user@user/wavion) (Ping timeout: 268 seconds) |
2021-12-09 21:19:57 +0100 | <aplainzetakind> | And "call" can be misleading. Let's say evaluate. |
2021-12-09 21:20:11 +0100 | <WilliamJ> | yes, so the main function lets say is called rectangles since it will be a plural |
2021-12-09 21:20:43 +0100 | <WilliamJ> | So for that, it will be similar but now we need to include the steps |
2021-12-09 21:21:02 +0100 | <aplainzetakind> | Well, it may not be so similar. |
2021-12-09 21:21:20 +0100 | <aplainzetakind> | So what were your parameters again? |
2021-12-09 21:21:30 +0100 | <WilliamJ> | Width, Height/length and steps |
2021-12-09 21:21:43 +0100 | <WilliamJ> | So the type definition would be the same as theyre all integers |
2021-12-09 21:21:56 +0100 | averell | (~averell@user/averell) |
2021-12-09 21:22:30 +0100 | <monochrom> | I would be surprised if normally the caller of a function is similar to the internals of the called function. |
2021-12-09 21:22:30 +0100 | <aplainzetakind> | rectangles a b c -> a is height, b is starting width, indentation starts with 0 and both indentation and with increase by c for each successive rectangle? |
2021-12-09 21:22:47 +0100 | <WilliamJ> | Yes, that is it |
2021-12-09 21:23:10 +0100 | <WilliamJ> | Hence it would be rectangles :: Int -> Int -> Int -> String? |
2021-12-09 21:23:16 +0100 | <aplainzetakind> | So first produce your sequence of indentations and widths. |
2021-12-09 21:23:20 +0100 | <aplainzetakind> | That is correct. |
2021-12-09 21:23:38 +0100 | <aplainzetakind> | Are you familiar with `let` bindings? |
2021-12-09 21:23:58 +0100 | <WilliamJ> | We have been shown where bindings but not let I dont think |
2021-12-09 21:24:10 +0100 | phma | (~phma@host-67-44-208-5.hnremote.net) (Read error: Connection reset by peer) |
2021-12-09 21:24:11 +0100 | <aplainzetakind> | OK, use where. |
2021-12-09 21:24:13 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-12-09 21:24:45 +0100 | alx741 | (~alx741@157.100.93.160) (Ping timeout: 265 seconds) |
2021-12-09 21:24:45 +0100 | <aplainzetakind> | Write rectangles h w s = undefined; where ... |
2021-12-09 21:25:01 +0100 | neurocyte0132889 | (~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat) |
2021-12-09 21:25:07 +0100 | phma | (~phma@host-67-44-209-94.hnremote.net) |
2021-12-09 21:25:08 +0100 | <aplainzetakind> | And in that where clause create useful building blocks. |
2021-12-09 21:25:30 +0100 | <aplainzetakind> | I think you need the lists of successive indentations and successive widths. |
2021-12-09 21:25:31 +0100 | <WilliamJ> | where |
2021-12-09 21:25:32 +0100 | <WilliamJ> | h=0 or w = 0 or s = 0? |
2021-12-09 21:26:02 +0100 | <WilliamJ> | or is the undefinied a place holder for the sequence? |
2021-12-09 21:26:15 +0100 | <aplainzetakind> | No, such things would shadow the actual parameters. |
2021-12-09 21:26:24 +0100 | <aplainzetakind> | You will create new names. |
2021-12-09 21:26:43 +0100 | <aplainzetakind> | Or would they just be errors outright, I'm not sure actually. |
2021-12-09 21:27:09 +0100 | <WilliamJ> | I think it would just output lines unless s = 0 |
2021-12-09 21:27:27 +0100 | <WilliamJ> | in that case, nothing would be output |
2021-12-09 21:27:31 +0100 | <aplainzetakind> | Structurally, you want something like the following: addOneToDouble x = y + 1; where y = 2 * x. |
2021-12-09 21:27:33 +0100 | jinsun__ | jinsun |
2021-12-09 21:27:55 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-09 21:27:55 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-09 21:27:55 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-09 21:28:10 +0100 | <WilliamJ> | ok so, sorry if this is a bit annoying, but why would be use a where binding within this function? |
2021-12-09 21:29:05 +0100 | neurocyte0132889 | (~neurocyte@45.93.108.168) |
2021-12-09 21:29:05 +0100 | neurocyte0132889 | (~neurocyte@45.93.108.168) (Changing host) |
2021-12-09 21:29:05 +0100 | neurocyte0132889 | (~neurocyte@user/neurocyte) |
2021-12-09 21:29:11 +0100 | Flonk7 | (~Flonk@vps-zap441517-1.zap-srv.com) |
2021-12-09 21:29:19 +0100 | <aplainzetakind> | In the where clause, define indentSeq :: [Int] and widthSeq :: [Int] in an appropriate manner. After that you will replace undefined with your final expression which will use those as building blocks. |
2021-12-09 21:30:13 +0100 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) (Ping timeout: 252 seconds) |
2021-12-09 21:30:13 +0100 | Flonk7 | Flonk |
2021-12-09 21:30:20 +0100 | <aplainzetakind> | It's not strictly necessary, just makes things cleaner and more structured. It's better practice to write many small and easily readible things then combine them in again small and easily readible things, as opposed to writing a huge expression. |
2021-12-09 21:31:07 +0100 | <WilliamJ> | ok so, for indentSeq, we should have it as 0 then after each rectangle, we add the value of w to it |
2021-12-09 21:31:29 +0100 | <aplainzetakind> | You can write addOneToDouble = 2 * x + 1, and in that toy example of course there's no gain in readibility in using where. |
2021-12-09 21:31:31 +0100 | <aplainzetakind> | Yes. |
2021-12-09 21:32:14 +0100 | <WilliamJ> | Ok so, I'm going to pastebin to show you what I currently have if that is ok |
2021-12-09 21:32:20 +0100 | <aplainzetakind> | Sure. |
2021-12-09 21:32:29 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 265 seconds) |
2021-12-09 21:32:42 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) |
2021-12-09 21:32:48 +0100 | <WilliamJ> | https://paste.tomsmeding.com/V9aT8LHO |
2021-12-09 21:33:23 +0100 | <WilliamJ> | so for Indentseq, I should do indentseq = 0 + w correct? Or have I missed something? |
2021-12-09 21:33:51 +0100 | <aplainzetakind> | That would give you a single number. You want a List. |
2021-12-09 21:34:15 +0100 | <aplainzetakind> | > [1..10] |
2021-12-09 21:34:17 +0100 | <lambdabot> | [1,2,3,4,5,6,7,8,9,10] |
2021-12-09 21:34:24 +0100 | <aplainzetakind> | ^ You are familiar with this notation? |
2021-12-09 21:34:37 +0100 | <WilliamJ> | Yes, I have used that a few times when we practiced list comprehensions |
2021-12-09 21:34:52 +0100 | <aplainzetakind> | > [1,7..100] |
2021-12-09 21:34:53 +0100 | <lambdabot> | [1,7,13,19,25,31,37,43,49,55,61,67,73,79,85,91,97] |
2021-12-09 21:34:57 +0100 | <aplainzetakind> | ^ This too? |
2021-12-09 21:35:12 +0100 | <WilliamJ> | mhm, not that one |
2021-12-09 21:35:22 +0100 | <aplainzetakind> | Well, no you know. |
2021-12-09 21:35:29 +0100 | <aplainzetakind> | now you know* |
2021-12-09 21:35:37 +0100 | <WilliamJ> | so does it take the difference of the first 2 numbers and add it to every number afterwards |
2021-12-09 21:35:56 +0100 | <aplainzetakind> | Yes. |
2021-12-09 21:35:57 +0100 | <geekosaur> | yes |
2021-12-09 21:35:58 +0100 | Kevin578 | (~Kevin578@pool-96-237-112-198.bstnma.fios.verizon.net) (Ping timeout: 256 seconds) |
2021-12-09 21:36:05 +0100 | <geekosaur> | it's also called enumFromThenTo |
2021-12-09 21:36:28 +0100 | <WilliamJ> | so for indentseq, would we do something online the lines of [0..w+w]? |
2021-12-09 21:36:37 +0100 | <WilliamJ> | along* |
2021-12-09 21:36:52 +0100 | Kevin578 | (~Kevin578@pool-96-237-112-198.bstnma.fios.verizon.net) |
2021-12-09 21:37:06 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) (Ping timeout: 256 seconds) |
2021-12-09 21:37:06 +0100 | curiousgay | (~curiousga@77-120-141-90.kha.volia.net) (Ping timeout: 256 seconds) |
2021-12-09 21:37:15 +0100 | <aplainzetakind> | Try it in the repl with concrete numbers to see what gives you what you want. |
2021-12-09 21:37:30 +0100 | <monochrom> | You can try [0 .. 4+4] and see what you get. |
2021-12-09 21:37:50 +0100 | <WilliamJ> | ok, that is not what i want that gives me numbers up 8 |
2021-12-09 21:37:57 +0100 | <WilliamJ> | I see why it is doing it |
2021-12-09 21:37:59 +0100 | k60`` | (~user@static.100.218.46.78.clients.your-server.de) |
2021-12-09 21:38:44 +0100 | <aplainzetakind> | Does the indentation increase by the width or the step parameter? |
2021-12-09 21:39:37 +0100 | <WilliamJ> | width, so for example if we had rectangles 3 2 3, the indentation would be 0,3,6 |
2021-12-09 21:39:52 +0100 | <WilliamJ> | due to that being the width of the last rectangle |
2021-12-09 21:40:19 +0100 | <aplainzetakind> | By the way, you don't need to specify an end. For example [0,2..] is the infinite list of all even positive integers. |
2021-12-09 21:40:40 +0100 | <WilliamJ> | sounds good |
2021-12-09 21:40:54 +0100 | <aplainzetakind> | I thought we said both the width and the indentation increase by the step parameter. |
2021-12-09 21:41:23 +0100 | <monochrom> | The step parameter is how many rectangles to make. |
2021-12-09 21:41:28 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-09 21:41:31 +0100 | <WilliamJ> | step parameter is how many rectangles there is, did I not say before? Sorry if I didnt |
2021-12-09 21:42:57 +0100 | <monochrom> | I am surprised the teacher didn't word it as "count" or "numRects" or "n". |
2021-12-09 21:43:05 +0100 | <aplainzetakind> | so for `rectangles 2 5 7`, there are 7 rectangles, each of height 2, with widths 5,10,15, ... and indented such that they touch at the corners? |
2021-12-09 21:43:24 +0100 | <WilliamJ> | yeah that is correct |
2021-12-09 21:43:33 +0100 | <WilliamJ> | monochrom i'll admit, it did confuse me at the start too |
2021-12-09 21:43:38 +0100 | stevenxl | (~stevenxl@174.128.182.199) (Quit: leaving) |
2021-12-09 21:44:06 +0100 | <aplainzetakind> | So indentation depends on width. First write widthseq then. |
2021-12-09 21:44:28 +0100 | <int-e> | :t scanl |
2021-12-09 21:44:29 +0100 | <lambdabot> | (b -> a -> b) -> b -> [a] -> [b] |
2021-12-09 21:44:32 +0100 | <WilliamJ> | so for width, we will start with w |
2021-12-09 21:44:32 +0100 | <monochrom> | If you look at BASIC or FORTRAN "for i = 1 to 100 step 3" no one would ever guess "it means 3 iterations". |
2021-12-09 21:45:03 +0100 | neurocyte0132889 | (~neurocyte@user/neurocyte) (Ping timeout: 265 seconds) |
2021-12-09 21:45:06 +0100 | <int-e> | monochrom: hmm, why not though |
2021-12-09 21:45:07 +0100 | <aplainzetakind> | WilliamJ: And the next one in line is? |
2021-12-09 21:45:20 +0100 | <WilliamJ> | w+w |
2021-12-09 21:45:32 +0100 | <aplainzetakind> | Yes. |
2021-12-09 21:45:45 +0100 | <aplainzetakind> | Are you familiar with take? |
2021-12-09 21:45:46 +0100 | mrkajetanp | (~mrkajetan@2a01:4b00:ea36:6c00:7994:941c:3f5d:2b88) (Ping timeout: 245 seconds) |
2021-12-09 21:45:48 +0100 | <aplainzetakind> | :t take |
2021-12-09 21:45:49 +0100 | <lambdabot> | Int -> [a] -> [a] |
2021-12-09 21:45:50 +0100 | <WilliamJ> | but as I saw before, w+w inside the list doesnt add it |
2021-12-09 21:45:56 +0100 | <WilliamJ> | Yes, we have used it |
2021-12-09 21:46:03 +0100 | <aplainzetakind> | You put it in the wrong spot. |
2021-12-09 21:46:05 +0100 | Benzi-Junior | (~BenziJuni@88-149-66-61.du.xdsl.is) (Remote host closed the connection) |
2021-12-09 21:46:08 +0100 | <WilliamJ> | oh |
2021-12-09 21:46:12 +0100 | <aplainzetakind> | > [1..7] |
2021-12-09 21:46:14 +0100 | <lambdabot> | [1,2,3,4,5,6,7] |
2021-12-09 21:46:21 +0100 | Benzi-Junior | (~BenziJuni@88-149-66-61.du.xdsl.is) |
2021-12-09 21:46:21 +0100 | <aplainzetakind> | > [1,7..] |
2021-12-09 21:46:22 +0100 | <lambdabot> | [1,7,13,19,25,31,37,43,49,55,61,67,73,79,85,91,97,103,109,115,121,127,133,13... |
2021-12-09 21:46:26 +0100 | mrkajetanp | (~mrkajetan@2a01:4b00:ea36:6c00:7994:941c:3f5d:2b88) |
2021-12-09 21:46:29 +0100 | <aplainzetakind> | (infinite list) |
2021-12-09 21:46:36 +0100 | mrmonday | (~robert@what.i.hope.is.not.a.tabernaevagant.es) (Read error: Connection reset by peer) |
2021-12-09 21:46:39 +0100 | <WilliamJ> | so for take, would take the last index and add w |
2021-12-09 21:46:55 +0100 | <aplainzetakind> | Don't jump to take for now. |
2021-12-09 21:46:55 +0100 | quantum | (~quantum@user/quantum/x-8556232) (Ping timeout: 268 seconds) |
2021-12-09 21:46:55 +0100 | utk | (~utk@2001:470:69fc:105::1:2fe0) (Ping timeout: 268 seconds) |
2021-12-09 21:46:55 +0100 | jophish | (~jophish@2001:470:69fc:105::670) (Ping timeout: 268 seconds) |
2021-12-09 21:46:55 +0100 | Deide | (~deide@user/deide) (Ping timeout: 268 seconds) |
2021-12-09 21:46:59 +0100 | <WilliamJ> | ok |
2021-12-09 21:47:25 +0100 | ServerStatsDisco | (~serversta@2001:470:69fc:105::1a) (Ping timeout: 240 seconds) |
2021-12-09 21:47:26 +0100 | carmysilna | (~brightly-@2001:470:69fc:105::2190) (Ping timeout: 245 seconds) |
2021-12-09 21:47:26 +0100 | justosophy[m] | (~justosoph@2001:470:69fc:105::572f) (Ping timeout: 245 seconds) |
2021-12-09 21:47:26 +0100 | SawyerBergeron[m | (~sawyerber@2001:470:69fc:105::3036) (Ping timeout: 245 seconds) |
2021-12-09 21:47:32 +0100 | acco[m] | (~accotedom@2001:470:69fc:105::1:3236) (Ping timeout: 240 seconds) |
2021-12-09 21:47:32 +0100 | unclechu | (~unclechu@2001:470:69fc:105::354) (Ping timeout: 240 seconds) |
2021-12-09 21:47:35 +0100 | fcortesi | (~fcortesi@2001:470:69fc:105::f3a9) (Ping timeout: 250 seconds) |
2021-12-09 21:47:35 +0100 | aidy | (~aidy@2001:470:69fc:105::c7b4) (Ping timeout: 250 seconds) |
2021-12-09 21:47:36 +0100 | <aplainzetakind> | subtask: create an infinite list of multiples of w: [w, 2*w, 3*w, etc.] |
2021-12-09 21:47:38 +0100 | jinsun_ | (~jinsun@user/jinsun) (Ping timeout: 252 seconds) |
2021-12-09 21:47:45 +0100 | mrmonday | (~robert@what.i.hope.is.not.a.tabernaevagant.es) |
2021-12-09 21:47:46 +0100 | ilkecan[m] | (~ilkecanma@2001:470:69fc:105::1:79b) (Ping timeout: 260 seconds) |
2021-12-09 21:47:46 +0100 | thomasjm[m] | (~thomasjmm@2001:470:69fc:105::c6d9) (Ping timeout: 260 seconds) |
2021-12-09 21:47:46 +0100 | craige[m] | (~craigemcw@2001:470:69fc:105::35f1) (Ping timeout: 260 seconds) |
2021-12-09 21:47:46 +0100 | fendor[m] | (~fendormat@2001:470:69fc:105::fcbd) (Ping timeout: 260 seconds) |
2021-12-09 21:47:46 +0100 | Topik[m] | (~topikmatr@2001:470:69fc:105::a082) (Ping timeout: 260 seconds) |
2021-12-09 21:47:48 +0100 | TomasJakl[m] | (~jaklttchn@2001:470:69fc:105::a42) (Ping timeout: 250 seconds) |
2021-12-09 21:47:54 +0100 | <raehik> | Every time I generate Hackage docs to upload, it ends up not linking types like Functor, Eq correctly to their definitions. I'm invoking the v2 cabal command Hackage tells me to. Any potential pointers? |
2021-12-09 21:48:02 +0100 | siraben | (~siraben@user/siraben) (Ping timeout: 240 seconds) |
2021-12-09 21:48:02 +0100 | inkbottle[m] | (~inkbottle@2001:470:69fc:105::2ff5) (Ping timeout: 240 seconds) |
2021-12-09 21:48:02 +0100 | benjamin[m]12 | (~benjaminm@2001:470:69fc:105::1:3f2f) (Ping timeout: 240 seconds) |
2021-12-09 21:48:02 +0100 | denbrahe[m] | (~denbrahem@2001:470:69fc:105::19c0) (Ping timeout: 240 seconds) |
2021-12-09 21:48:02 +0100 | JoelMcCracken[m] | (~joelmccra@2001:470:69fc:105::8405) (Ping timeout: 240 seconds) |
2021-12-09 21:48:02 +0100 | <raehik> | example https://hackage.haskell.org/package/fortran-src-0.7.0/docs/Language-Fortran-AST.html |
2021-12-09 21:48:13 +0100 | bb010g | (~bb010g@2001:470:69fc:105::9a5) (Ping timeout: 240 seconds) |
2021-12-09 21:48:13 +0100 | thedward[m] | (~thedwardm@2001:470:69fc:105::f79) (Ping timeout: 250 seconds) |
2021-12-09 21:48:14 +0100 | smichel17[m] | (~smichel17@2001:470:69fc:105::2d32) (Ping timeout: 250 seconds) |
2021-12-09 21:48:14 +0100 | boxscape | (~boxscape@user/boxscape) (Ping timeout: 260 seconds) |
2021-12-09 21:48:16 +0100 | ppseafield[m] | (~elementpp@2001:470:69fc:105::1:250a) (Ping timeout: 245 seconds) |
2021-12-09 21:48:27 +0100 | vaibhavsagar[m] | (~vaibhavsa@2001:470:69fc:105::ffe) (Ping timeout: 250 seconds) |
2021-12-09 21:48:27 +0100 | fgaz | (~fgaz@2001:470:69fc:105::842) (Ping timeout: 250 seconds) |
2021-12-09 21:48:27 +0100 | Ollie[m] | (~ollieocha@2001:470:69fc:105::41a5) (Ping timeout: 250 seconds) |
2021-12-09 21:48:27 +0100 | Movedtosridoneem | (~sridmatri@2001:470:69fc:105::1c2) (Ping timeout: 250 seconds) |
2021-12-09 21:48:34 +0100 | <WilliamJ> | ok i'll give that a go now and report back in a minute or 2 if i figure out how to get it to work |
2021-12-09 21:48:42 +0100 | fsckskye[m] | (~kmatrixth@2001:470:69fc:105::1:3b2f) (Ping timeout: 260 seconds) |
2021-12-09 21:48:42 +0100 | the-coot[m] | (~the-cootm@2001:470:69fc:105::95f) (Ping timeout: 260 seconds) |
2021-12-09 21:48:42 +0100 | hughjfchen[m] | (~hughjfche@2001:470:69fc:105::c29d) (Ping timeout: 260 seconds) |
2021-12-09 21:48:44 +0100 | jchia[m] | (~jchiamatr@2001:470:69fc:105::c50b) (Ping timeout: 252 seconds) |
2021-12-09 21:49:05 +0100 | InternetManaging | (~imjmatrix@2001:470:69fc:105::1:2ea5) (Ping timeout: 250 seconds) |
2021-12-09 21:49:06 +0100 | shiraeeshi[m] | (~shiraeesh@2001:470:69fc:105::1:77) (Ping timeout: 245 seconds) |
2021-12-09 21:49:06 +0100 | james[m]12 | (~jamesnina@2001:470:69fc:105::1:4203) (Ping timeout: 245 seconds) |
2021-12-09 21:49:06 +0100 | surgeon[m] | (~surge9nma@2001:470:69fc:105::f585) (Ping timeout: 245 seconds) |
2021-12-09 21:49:06 +0100 | octeep[m] | (~octeepoct@2001:470:69fc:105::1:3dbf) (Ping timeout: 245 seconds) |
2021-12-09 21:49:17 +0100 | unrooted | (~unrooted@2001:470:69fc:105::a4a) (Ping timeout: 252 seconds) |
2021-12-09 21:49:17 +0100 | hsiktas[m] | (~hsiktasma@2001:470:69fc:105::30d4) (Ping timeout: 252 seconds) |
2021-12-09 21:49:19 +0100 | schuelermine[m] | (~schuelerm@user/schuelermine) (Ping timeout: 250 seconds) |
2021-12-09 21:49:19 +0100 | peddie | (~peddie@2001:470:69fc:105::25d) (Ping timeout: 250 seconds) |
2021-12-09 21:49:31 +0100 | Christoph[m] | (~hpotsirhc@2001:470:69fc:105::2ff8) (Ping timeout: 245 seconds) |
2021-12-09 21:49:31 +0100 | asdofindia-m | (~akshaymat@2001:470:69fc:105::831) (Ping timeout: 245 seconds) |
2021-12-09 21:49:31 +0100 | lambdandy[m] | (~lambdandy@2001:470:69fc:105::1:3045) (Ping timeout: 250 seconds) |
2021-12-09 21:49:31 +0100 | oak- | (~oakuniver@2001:470:69fc:105::fcd) (Ping timeout: 250 seconds) |
2021-12-09 21:49:31 +0100 | Artem[m] | (~artemtype@2001:470:69fc:105::75b) (Ping timeout: 250 seconds) |
2021-12-09 21:49:32 +0100 | xddq[m] | (~xddqmatri@2001:470:69fc:105::bfd8) (Ping timeout: 240 seconds) |
2021-12-09 21:49:32 +0100 | soft | (~soft@2001:470:69fc:105::c75) (Ping timeout: 240 seconds) |
2021-12-09 21:49:32 +0100 | DemiMarieObenour | (~alwayscur@2001:470:69fc:105::4886) (Ping timeout: 240 seconds) |
2021-12-09 21:49:32 +0100 | zfnmxt | (~zfnmxtzfn@2001:470:69fc:105::2b32) (Ping timeout: 240 seconds) |
2021-12-09 21:49:32 +0100 | bitonic | (~bitonic@2001:470:69fc:105::1812) (Ping timeout: 240 seconds) |
2021-12-09 21:49:38 +0100 | puffnfresh[m] | (~puffnfres@2001:470:69fc:105::1:22da) (Ping timeout: 260 seconds) |
2021-12-09 21:49:38 +0100 | amesgen[m] | (~amesgenm]@2001:470:69fc:105::82b) (Ping timeout: 260 seconds) |
2021-12-09 21:49:38 +0100 | tomku[m] | (~tomkumozi@2001:470:69fc:105::1:2fcb) (Ping timeout: 260 seconds) |
2021-12-09 21:49:45 +0100 | alex[m]121 | (~alexchete@2001:470:69fc:105::1:1001) (Ping timeout: 250 seconds) |
2021-12-09 21:49:45 +0100 | TomWesterhout[m] | (~twesterho@2001:470:69fc:105::1:2918) (Ping timeout: 250 seconds) |
2021-12-09 21:49:45 +0100 | cdsmith | (~cdsmithma@2001:470:69fc:105::284) (Ping timeout: 250 seconds) |
2021-12-09 21:49:45 +0100 | MatrixTravelerbo | (~voyagert2@2001:470:69fc:105::22) (Ping timeout: 250 seconds) |
2021-12-09 21:49:45 +0100 | chizil[m] | (~chizilmat@2001:470:69fc:105::1:34ab) (Ping timeout: 250 seconds) |
2021-12-09 21:49:45 +0100 | jneira[m] | (~jneiramat@2001:470:69fc:105::d729) (Ping timeout: 250 seconds) |
2021-12-09 21:49:45 +0100 | zwro[m] | (~zwromatri@2001:470:69fc:105::1d4) (Ping timeout: 250 seconds) |
2021-12-09 21:49:50 +0100 | <WilliamJ> | Ok, it isnt with w's, but I found a way to multiply each index by 2 but not going up in 1 |
2021-12-09 21:49:50 +0100 | moats | (~oats@user/oats) (Ping timeout: 252 seconds) |
2021-12-09 21:49:50 +0100 | <aplainzetakind> | WilliamJ: If you write something like [1..] in the repl it will flood with infinite numbers, so do things like `take 20 [1..]` so that you can see what's going on. |
2021-12-09 21:49:53 +0100 | reza[m] | (~rezaphone@2001:470:69fc:105::3eda) (Ping timeout: 265 seconds) |
2021-12-09 21:49:57 +0100 | Magnus[m] | (~magthetch@2001:470:69fc:105::d1a7) (Ping timeout: 250 seconds) |
2021-12-09 21:50:02 +0100 | sm | (~sm@plaintextaccounting/sm) (Ping timeout: 240 seconds) |
2021-12-09 21:50:02 +0100 | Tisoxin | (~ikosit@user/ikosit) (Ping timeout: 240 seconds) |
2021-12-09 21:50:02 +0100 | psydroid | (~psydroid@user/psydroid) (Ping timeout: 240 seconds) |
2021-12-09 21:50:06 +0100 | ongy[m] | (~ongymatri@2001:470:69fc:105::5018) (Ping timeout: 260 seconds) |
2021-12-09 21:50:06 +0100 | kadoban | (~kadoban@user/kadoban) (Ping timeout: 260 seconds) |
2021-12-09 21:50:06 +0100 | maerwald[m] | (~maerwaldm@2001:470:69fc:105::1ee) (Ping timeout: 260 seconds) |
2021-12-09 21:50:06 +0100 | ManofLetters[m] | (~manoflett@2001:470:69fc:105::3be) (Ping timeout: 260 seconds) |
2021-12-09 21:50:17 +0100 | <aplainzetakind> | WilliamJ: What do you mean? Can you paste the expression here? |
2021-12-09 21:50:22 +0100 | aveltras[m] | (~aveltrasm@2001:470:69fc:105::3ef9) (Ping timeout: 265 seconds) |
2021-12-09 21:50:27 +0100 | <WilliamJ> | map (*2) [1..5] |
2021-12-09 21:50:33 +0100 | <WilliamJ> | gives me [2,4,6,8,10] |
2021-12-09 21:50:37 +0100 | iammrinal0[m] | (~iammrinal@2001:470:69fc:105::1:2248) (Ping timeout: 268 seconds) |
2021-12-09 21:50:37 +0100 | std_mutex[m] | (~stdmutexm@2001:470:69fc:105::1:4534) (Ping timeout: 268 seconds) |
2021-12-09 21:50:37 +0100 | AlainJourez[m] | (~sherekahn@2001:470:69fc:105::1:4a71) (Ping timeout: 250 seconds) |
2021-12-09 21:50:38 +0100 | maralorn | (~maralorn@2001:470:69fc:105::251) (Ping timeout: 268 seconds) |
2021-12-09 21:50:38 +0100 | rednaZ[m] | (~r3dnazmat@2001:470:69fc:105::ba70) (Ping timeout: 268 seconds) |
2021-12-09 21:50:38 +0100 | ericson2314 | (~ericson23@2001:470:69fc:105::70c) (Ping timeout: 268 seconds) |
2021-12-09 21:50:38 +0100 | wildsebastian | (~wildsebas@2001:470:69fc:105::1:14b1) (Ping timeout: 268 seconds) |
2021-12-09 21:50:38 +0100 | meatfeather[m] | (~meatfeath@2001:470:69fc:105::1:3311) (Ping timeout: 268 seconds) |
2021-12-09 21:50:38 +0100 | ocramz[m] | (~ocramzmat@2001:470:69fc:105::1:35b0) (Ping timeout: 268 seconds) |
2021-12-09 21:50:38 +0100 | wysteriary[m] | (~wysteriar@2001:470:69fc:105::a42e) (Ping timeout: 268 seconds) |
2021-12-09 21:50:38 +0100 | marinelli[m] | (~marinelli@2001:470:69fc:105::2d8) (Ping timeout: 268 seconds) |
2021-12-09 21:50:40 +0100 | <aplainzetakind> | That's also good. |
2021-12-09 21:50:50 +0100 | <aplainzetakind> | So you can replace 2 by ... |
2021-12-09 21:51:03 +0100 | <WilliamJ> | but like you said, w: [w, 2*w, 3*w, etc.] I am not sure how to make it go up each time |
2021-12-09 21:51:20 +0100 | <aplainzetakind> | What you did does go up each time, just by 2 and not w. |
2021-12-09 21:51:31 +0100 | <WilliamJ> | wait, i sde |
2021-12-09 21:51:32 +0100 | <WilliamJ> | see |
2021-12-09 21:51:38 +0100 | <WilliamJ> | so if i replace 2 with w |
2021-12-09 21:51:51 +0100 | jkachmar | (~jkachmar@2001:470:69fc:105::c72d) (Ping timeout: 268 seconds) |
2021-12-09 21:51:51 +0100 | RosarioPulella[m | (~rosariopu@2001:470:69fc:105::a57) (Ping timeout: 268 seconds) |
2021-12-09 21:51:51 +0100 | jmcantrell | (~jmcantrel@user/jmcantrell) (Ping timeout: 268 seconds) |
2021-12-09 21:51:51 +0100 | Arathorn | (~arathorn@2001:470:69fc:105::1f) (Ping timeout: 268 seconds) |
2021-12-09 21:51:51 +0100 | alexfmpe[m] | (~alexfmpem@2001:470:69fc:105::38ba) (Ping timeout: 268 seconds) |
2021-12-09 21:52:14 +0100 | WilliamJ17 | (~WilliamJ@wireless-student-pt10-182-232.lut.ac.uk) |
2021-12-09 21:52:20 +0100 | acidjnk_new | (~acidjnk@pd9e0bdc0.dip0.t-ipconnect.de) |
2021-12-09 21:52:22 +0100 | <WilliamJ17> | I got disconnected sorry |
2021-12-09 21:52:23 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:25b5:2708:65a9:4e7d) |
2021-12-09 21:52:24 +0100 | <aplainzetakind> | Also you want s numbers and not 5. |
2021-12-09 21:52:27 +0100 | <WilliamJ17> | yes |
2021-12-09 21:52:28 +0100 | Orbstheorem | (~orbstheor@2001:470:69fc:105::a56) (Ping timeout: 268 seconds) |
2021-12-09 21:52:44 +0100 | <WilliamJ17> | I was thinking map (*w) [1..s] |
2021-12-09 21:52:52 +0100 | pavonia | (~user@user/siracusa) |
2021-12-09 21:52:58 +0100 | <aplainzetakind> | That is correct. |
2021-12-09 21:53:20 +0100 | <WilliamJ17> | widthseq = map (*w) [1..s] is what I have then |
2021-12-09 21:53:33 +0100 | <aplainzetakind> | Now write out the first few terms of indentseq |
2021-12-09 21:53:43 +0100 | <aplainzetakind> | Yes that's good. |
2021-12-09 21:53:55 +0100 | <WilliamJ17> | so is it the same, but starts at 0 and is s-1? |
2021-12-09 21:54:02 +0100 | son0p | (~ff@181.136.122.143) (Remote host closed the connection) |
2021-12-09 21:54:03 +0100 | <aplainzetakind> | Yes. |
2021-12-09 21:54:43 +0100 | <WilliamJ17> | indentseq :: [Int] |
2021-12-09 21:54:43 +0100 | <WilliamJ17> | indentseq = map (*w) [1..s-1] |
2021-12-09 21:54:44 +0100 | <WilliamJ17> | widthseq :: [Int] |
2021-12-09 21:54:44 +0100 | <WilliamJ17> | widthseq = map (*w) [1..s] |
2021-12-09 21:54:45 +0100 | <WilliamJ17> | is what I have |
2021-12-09 21:54:56 +0100 | <WilliamJ17> | should be 0 not 1 in indentseq |
2021-12-09 21:55:23 +0100 | <aplainzetakind> | Now you need a way to call your other rectangle function on these somehow. |
2021-12-09 21:55:29 +0100 | <aplainzetakind> | :t zipWith |
2021-12-09 21:55:30 +0100 | <lambdabot> | (a -> b -> c) -> [a] -> [b] -> [c] |
2021-12-09 21:55:43 +0100 | std_mutex[m] | (~stdmutexm@2001:470:69fc:105::1:4534) |
2021-12-09 21:55:44 +0100 | RosarioPulella[m | (~rosariopu@2001:470:69fc:105::a57) |
2021-12-09 21:55:46 +0100 | Morrow | (~quassel@bzq-110-168-31-106.red.bezeqint.net) (Remote host closed the connection) |
2021-12-09 21:55:47 +0100 | <aplainzetakind> | Study this type signature and figure out how to make use of this function. |
2021-12-09 21:55:51 +0100 | <WilliamJ17> | I have seen zip before, but not zipwith |
2021-12-09 21:56:02 +0100 | alexfmpe[m] | (~alexfmpem@2001:470:69fc:105::38ba) |
2021-12-09 21:56:17 +0100 | WilliamJ | (~WilliamJ@wireless-student-pt10-182-232.lut.ac.uk) (Ping timeout: 256 seconds) |
2021-12-09 21:56:28 +0100 | wysteriary[m] | (~wysteriar@2001:470:69fc:105::a42e) |
2021-12-09 21:56:46 +0100 | <WilliamJ17> | so it takes 3 parameters and puts them into lists? |
2021-12-09 21:57:09 +0100 | <WilliamJ17> | wait bo |
2021-12-09 21:57:10 +0100 | <WilliamJ17> | no |
2021-12-09 21:57:19 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-09 21:57:25 +0100 | xddq[m] | (~xddqmatri@2001:470:69fc:105::bfd8) |
2021-12-09 21:57:36 +0100 | <aplainzetakind> | No, (a -> b -> c) is a function type. |
2021-12-09 21:57:46 +0100 | Morrow | (~quassel@bzq-110-168-31-106.red.bezeqint.net) |
2021-12-09 21:57:59 +0100 | <aplainzetakind> | It is a function which takes an a and a b and gives you a c. |
2021-12-09 21:58:07 +0100 | bitonic | (~bitonic@2001:470:69fc:105::1812) |
2021-12-09 21:58:07 +0100 | <WilliamJ17> | Ok |
2021-12-09 21:58:17 +0100 | <WilliamJ17> | So the c would be a list |
2021-12-09 21:58:21 +0100 | <aplainzetakind> | No. |
2021-12-09 21:58:26 +0100 | <WilliamJ17> | why not? |
2021-12-09 21:58:31 +0100 | <aplainzetakind> | c can be anything. |
2021-12-09 21:58:35 +0100 | <WilliamJ17> | ok |
2021-12-09 21:58:53 +0100 | <WilliamJ17> | so |
2021-12-09 21:58:57 +0100 | <aplainzetakind> | An example to inspect: |
2021-12-09 21:59:01 +0100 | <WilliamJ17> | ok |
2021-12-09 21:59:25 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) |
2021-12-09 21:59:48 +0100 | <aplainzetakind> | > zipWith take [1,3,5] ["sdofijoi", "wqwqwqwq", "qwertyuio"] |
2021-12-09 21:59:49 +0100 | <lambdabot> | ["s","wqw","qwert"] |
2021-12-09 22:00:01 +0100 | <aplainzetakind> | :t take |
2021-12-09 22:00:04 +0100 | <lambdabot> | Int -> [a] -> [a] |
2021-12-09 22:00:05 +0100 | hgolden | (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (Quit: Konversation terminated!) |
2021-12-09 22:00:18 +0100 | <WilliamJ17> | so its taking the first, first 3 and first 5 elements of each index |
2021-12-09 22:00:39 +0100 | <aplainzetakind> | Yes. |
2021-12-09 22:01:14 +0100 | <WilliamJ17> | so for us, would we be using it to get each length, width and indentation for each rectangle? |
2021-12-09 22:01:45 +0100 | <aplainzetakind> | ...of the string at the corresponding index would be a more precise way to put it. |
2021-12-09 22:01:48 +0100 | jmcantrell | (~jmcantrel@user/jmcantrell) |
2021-12-09 22:02:00 +0100 | <WilliamJ17> | Ok |
2021-12-09 22:02:06 +0100 | <aplainzetakind> | You mean height, width and indentation? |
2021-12-09 22:02:12 +0100 | Orbstheorem | (~orbstheor@2001:470:69fc:105::a56) |
2021-12-09 22:02:21 +0100 | <WilliamJ17> | Yes, sorry for saying length keep saying it since that is what I wrote in the first place |
2021-12-09 22:02:41 +0100 | <aplainzetakind> | We always have the same height, so that's fixed. we have created our lists of the indentations and widths. |
2021-12-09 22:03:17 +0100 | <aplainzetakind> | Now we want a function of two parameters, width and indentation, but the function you already wrote takes three. |
2021-12-09 22:03:30 +0100 | hgolden | (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) |
2021-12-09 22:03:37 +0100 | <WilliamJ17> | yes, this one |
2021-12-09 22:03:38 +0100 | kadoban | (~kadoban@user/kadoban) |
2021-12-09 22:03:38 +0100 | <WilliamJ17> | rectangle :: Int -> Int -> Int -> String |
2021-12-09 22:03:38 +0100 | <WilliamJ17> | rectangle i m n = unlines replicate m (replicate i ' ' ++ (replicate n '*')) |
2021-12-09 22:03:46 +0100 | Arathorn | (~arathorn@2001:470:69fc:105::1f) |
2021-12-09 22:04:29 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-12-09 22:04:30 +0100 | moats | (~oats@user/oats) |
2021-12-09 22:05:02 +0100 | <WilliamJ17> | so can we just get rid of m? |
2021-12-09 22:05:03 +0100 | <aplainzetakind> | If you change `rectangle i m n` to `rectangle m i n` on the left hand side of the definition to change the order of the argument, the first parameter becomes the height right? |
2021-12-09 22:05:11 +0100 | <WilliamJ17> | i shall give it a go |
2021-12-09 22:05:33 +0100 | <aplainzetakind> | No you can't get rid of it, you will pass h to it in the other function. |
2021-12-09 22:05:45 +0100 | <WilliamJ17> | ok |
2021-12-09 22:06:01 +0100 | psydroid | (~psydroid@user/psydroid) |
2021-12-09 22:06:11 +0100 | <WilliamJ17> | ok slight problem, when I am trying to run I am getting a parse error due to where. I can comment this out for the time being right? |
2021-12-09 22:06:24 +0100 | MatrixTravelerbo | (~voyagert2@2001:470:69fc:105::22) |
2021-12-09 22:06:27 +0100 | zwro[m] | (~zwromatri@2001:470:69fc:105::1d4) |
2021-12-09 22:06:47 +0100 | InternetManaging | (~imjmatrix@2001:470:69fc:105::1:2ea5) |
2021-12-09 22:06:54 +0100 | surgeon[m] | (~surge9nma@2001:470:69fc:105::f585) |
2021-12-09 22:06:59 +0100 | <WilliamJ17> | and Yes it will become the height |
2021-12-09 22:07:00 +0100 | <aplainzetakind> | When you rearrange the parameter in the way I said, `rectangle 5`, for instance, becomes a function of two parameters, indentation and width, fit to be used in zipWith. |
2021-12-09 22:07:27 +0100 | <aplainzetakind> | Just indent the lines following where more than where itself. |
2021-12-09 22:07:28 +0100 | <WilliamJ17> | ok, I get you |
2021-12-09 22:07:41 +0100 | schuelermine[m] | (~schuelerm@user/schuelermine) |
2021-12-09 22:08:20 +0100 | <WilliamJ17> | https://paste.tomsmeding.com/pvtHk3yv what I currently have |
2021-12-09 22:09:17 +0100 | jkachmar | (~jkachmar@2001:470:69fc:105::c72d) |
2021-12-09 22:09:22 +0100 | <aplainzetakind> | Now assemble all those things we mentioned in an expression to replace that `undefined` to produce a list of results of appropriate calls to `rectangle`.. |
2021-12-09 22:09:30 +0100 | <WilliamJ17> | ok |
2021-12-09 22:09:47 +0100 | quantum | (~quantum@user/quantum/x-8556232) |
2021-12-09 22:09:47 +0100 | <WilliamJ17> | so, we need a zipWith function |
2021-12-09 22:10:19 +0100 | <aplainzetakind> | You already have it. |
2021-12-09 22:10:32 +0100 | <aplainzetakind> | Yo give appropriate parameters to it. |
2021-12-09 22:10:42 +0100 | Deide | (~deide@user/deide) |
2021-12-09 22:10:46 +0100 | <aplainzetakind> | First is a function, then two lists. |
2021-12-09 22:10:50 +0100 | <WilliamJ17> | Ok |
2021-12-09 22:10:52 +0100 | <WilliamJ17> | I understand now |
2021-12-09 22:10:54 +0100 | utk | (~utk@2001:470:69fc:105::1:2fe0) |
2021-12-09 22:11:04 +0100 | <WilliamJ17> | So |
2021-12-09 22:11:11 +0100 | jophish | (~jophish@2001:470:69fc:105::670) |
2021-12-09 22:11:58 +0100 | <aplainzetakind> | You will get a type error because we are not done yet. Temporarily comment out the type signature of rectangles to avoid the complaints. |
2021-12-09 22:12:18 +0100 | <WilliamJ17> | I am slightly confused, might seem like a rookie error. We need to do zip each corresponding index in widthseq and indentseq correct? |
2021-12-09 22:12:25 +0100 | zfnmxt | (~zfnmxtzfn@2001:470:69fc:105::2b32) |
2021-12-09 22:12:44 +0100 | <aplainzetakind> | Yes. |
2021-12-09 22:12:57 +0100 | <aplainzetakind> | zipWith rather. |
2021-12-09 22:13:07 +0100 | acco[m] | (~accotedom@2001:470:69fc:105::1:3236) |
2021-12-09 22:13:38 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) |
2021-12-09 22:13:50 +0100 | DemiMarieObenour | (~alwayscur@2001:470:69fc:105::4886) |
2021-12-09 22:13:58 +0100 | soft | (~soft@2001:470:69fc:105::c75) |
2021-12-09 22:13:59 +0100 | <WilliamJ17> | Since I'm used to imperative languages, I keep thinkign I can just write i for each index, but in haskell that is not the case |
2021-12-09 22:14:54 +0100 | <EvanR> | haskell is not opinionated on how you label your items hehe |
2021-12-09 22:15:14 +0100 | <aplainzetakind> | You don't need to introduce any new names. You have all the building blocks now. |
2021-12-09 22:15:22 +0100 | <WilliamJ17> | yeah lol im just trying to think what to put to make it so each index is zipped with one another |
2021-12-09 22:15:42 +0100 | <aplainzetakind> | That's what zipWith does. You don't need to do anything. |
2021-12-09 22:15:53 +0100 | <EvanR> | > zip [0..] "supercalifragilistic" |
2021-12-09 22:15:54 +0100 | <lambdabot> | [(0,'s'),(1,'u'),(2,'p'),(3,'e'),(4,'r'),(5,'c'),(6,'a'),(7,'l'),(8,'i'),(9,... |
2021-12-09 22:15:55 +0100 | dsrt^ | (~dsrt@wsip-98-188-240-142.mc.at.cox.net) |
2021-12-09 22:16:03 +0100 | <WilliamJ17> | yeah like that |
2021-12-09 22:16:24 +0100 | <WilliamJ17> | but with zipWith, you need a function first correct? |
2021-12-09 22:16:29 +0100 | <WilliamJ17> | before the 2 lists |
2021-12-09 22:16:31 +0100 | <aplainzetakind> | Yes. |
2021-12-09 22:16:58 +0100 | <WilliamJ17> | I'm just confused what to put there, as I just saw with zip it has done it |
2021-12-09 22:17:02 +0100 | <EvanR> | yeah then you avoid a tuple if you don't want one |
2021-12-09 22:17:27 +0100 | <aplainzetakind> | The elements of the first list are used as the first parameter to the function, those of second for the second parameter of the function, and the resulting list is the list of the results of the function. |
2021-12-09 22:18:22 +0100 | <WilliamJ17> | so is it just as simple as zipWith indentseq widthseq? |
2021-12-09 22:18:31 +0100 | <WilliamJ17> | I dont think it is |
2021-12-09 22:18:32 +0100 | <aplainzetakind> | zipWith f [x1, x2, x3] [y1, y2, y3] gives you [f x1 y1, f x2 y2, f x3 y3] |
2021-12-09 22:18:41 +0100 | <WilliamJ17> | Yeah |
2021-12-09 22:18:46 +0100 | <aplainzetakind> | zipWith needs a function to zip "With". |
2021-12-09 22:19:01 +0100 | <WilliamJ17> | Yeah, thats what I'm stumped on since Im not sure what it is |
2021-12-09 22:19:08 +0100 | <WilliamJ17> | is it just rectangle? |
2021-12-09 22:19:10 +0100 | <aplainzetakind> | What function do you want to feed your widths and indentations into? |
2021-12-09 22:19:27 +0100 | Topik[m] | (~topikmatr@2001:470:69fc:105::a082) |
2021-12-09 22:19:37 +0100 | <WilliamJ17> | zipWith rectangle widthseq indentseq? |
2021-12-09 22:19:40 +0100 | <aplainzetakind> | Almost, why did we reorder the parameters of `rectangle`? |
2021-12-09 22:19:55 +0100 | <WilliamJ17> | so we got m first which was the height |
2021-12-09 22:19:58 +0100 | <aplainzetakind> | How many parameters does rectangle take? How many are appropriate for zipWith? |
2021-12-09 22:20:02 +0100 | <WilliamJ17> | so its m? |
2021-12-09 22:20:20 +0100 | <WilliamJ17> | zipWith m widthseq indentseq? |
2021-12-09 22:20:36 +0100 | <aplainzetakind> | m is not a function. (rectangle an_integer) however, is. |
2021-12-09 22:20:59 +0100 | <aplainzetakind> | Do you have a good understanding of currying? |
2021-12-09 22:21:01 +0100 | <WilliamJ17> | zipWith (rectangle m) widthseq indentseq |
2021-12-09 22:21:14 +0100 | <WilliamJ17> | We have looked at it |
2021-12-09 22:21:26 +0100 | <aplainzetakind> | Almost, except m is out of scope in where you want to put this. What do you need m to be? |
2021-12-09 22:21:34 +0100 | river | (~My_user_n@tilde.team/user/river) |
2021-12-09 22:21:36 +0100 | <river> | hiy |
2021-12-09 22:21:47 +0100 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Ping timeout: 265 seconds) |
2021-12-09 22:22:01 +0100 | <WilliamJ17> | wait |
2021-12-09 22:22:25 +0100 | <WilliamJ17> | we made m as h here |
2021-12-09 22:22:30 +0100 | <aplainzetakind> | Yes. |
2021-12-09 22:22:42 +0100 | <WilliamJ17> | so is it just zipWith (rectangles h) widthseq indentseq? |
2021-12-09 22:22:51 +0100 | <aplainzetakind> | rectangle h, not rectangles. |
2021-12-09 22:22:53 +0100 | Christoph[m] | (~hpotsirhc@2001:470:69fc:105::2ff8) |
2021-12-09 22:23:13 +0100 | <WilliamJ17> | ok, but why does that work if we havent input h in the rectangle function |
2021-12-09 22:23:22 +0100 | <aplainzetakind> | Make sure the type signature is commented out. |
2021-12-09 22:23:24 +0100 | <WilliamJ17> | its part of the rectangles function |
2021-12-09 22:24:07 +0100 | <dsal> | Does ghc inline stuff within the same module by default? |
2021-12-09 22:24:08 +0100 | reza[m] | (~rezaphone@2001:470:69fc:105::3eda) |
2021-12-09 22:24:17 +0100 | <sshine> | is there a standard way to perform modular arithmetic in small spaces? e.g. if I do Z_{2^{32}} arithmetic directly in Word32, that's fine. but if I do Z_N arithmetic where N < 2^32 in Word32, then e.g. multiplication would overflow at the wrong place. is there a way to compensate either before or after multiplying if N is prime? |
2021-12-09 22:24:19 +0100 | carmysilna | (~brightly-@2001:470:69fc:105::2190) |
2021-12-09 22:24:19 +0100 | <aplainzetakind> | Those are variable names. When you write f x = x + 1 and then write f y, it takes whatever y is and adds 1 to it. |
2021-12-09 22:24:32 +0100 | <WilliamJ17> | ok |
2021-12-09 22:24:59 +0100 | justosophy[m] | (~justosoph@2001:470:69fc:105::572f) |
2021-12-09 22:25:02 +0100 | <WilliamJ17> | so I've commented out rectangles type signature, but I dont think if I run this, it will give me the solution? |
2021-12-09 22:25:10 +0100 | <WilliamJ17> | still feel theres something else to do |
2021-12-09 22:25:11 +0100 | <aplainzetakind> | The letters are not parts of the function, they represent places where things can be put. |
2021-12-09 22:25:19 +0100 | <aplainzetakind> | Yes, see what this gives you first. |
2021-12-09 22:25:21 +0100 | Pickchea | (~private@user/pickchea) |
2021-12-09 22:25:24 +0100 | _xor | (~xor@dsl-50-5-233-169.fuse.net) (Read error: Connection reset by peer) |
2021-12-09 22:25:31 +0100 | <aplainzetakind> | Running it is not a huge chore I suppose. |
2021-12-09 22:25:35 +0100 | <WilliamJ17> | yeah lol |
2021-12-09 22:25:49 +0100 | <WilliamJ17> | Ok, It's given me an error on rectangle since we changed the order |
2021-12-09 22:26:02 +0100 | <geekosaur> | dsal, yes as long as it's not recursive (and a few other rules) |
2021-12-09 22:26:05 +0100 | SawyerBergeron[m | (~sawyerber@2001:470:69fc:105::3036) |
2021-12-09 22:26:07 +0100 | <WilliamJ17> | https://paste.tomsmeding.com/4WpSDX8w |
2021-12-09 22:26:49 +0100 | unclechu | (~unclechu@2001:470:69fc:105::354) |
2021-12-09 22:27:00 +0100 | <geekosaur> | dsal, https://downloads.haskell.org/ghc/latest/docs/html/users_guide/exts/pragmas.html#inline-pragma |
2021-12-09 22:27:02 +0100 | <WilliamJ17> | I am confused as to why this has happened as all we did was change the order or i and m |
2021-12-09 22:27:39 +0100 | <aplainzetakind> | You removed parentheses after unlines. |
2021-12-09 22:27:42 +0100 | <dsal> | geekosaur: Thanks. My mental model is "ghc doesn't like inlining" |
2021-12-09 22:27:52 +0100 | <WilliamJ17> | ok |
2021-12-09 22:28:16 +0100 | TomasJakl[m] | (~jaklttchn@2001:470:69fc:105::a42) |
2021-12-09 22:28:17 +0100 | <geekosaur> | dsal, mine is "ghc inlines anything it thinks won't explode on it" |
2021-12-09 22:28:19 +0100 | <WilliamJ17> | Ok, I have gotten the same error as I did before on this I think |
2021-12-09 22:28:32 +0100 | <WilliamJ17> | https://paste.tomsmeding.com/dMRlFJe6 |
2021-12-09 22:28:40 +0100 | <geekosaur> | you can either force it to inline anyway or fine-tune its notion of "won't explode" |
2021-12-09 22:28:50 +0100 | lally | (sid388228@id-388228.uxbridge.irccloud.com) |
2021-12-09 22:29:45 +0100 | ilkecan[m] | (~ilkecanma@2001:470:69fc:105::1:79b) |
2021-12-09 22:29:51 +0100 | ManofLetters[m] | (~manoflett@2001:470:69fc:105::3be) |
2021-12-09 22:30:08 +0100 | <aplainzetakind> | I told you twice to comment out the type signature for rectangles, because we're not done yet. |
2021-12-09 22:30:21 +0100 | <WilliamJ17> | oh sorry, I commented out it in rectangle |
2021-12-09 22:30:23 +0100 | fendor[m] | (~fendormat@2001:470:69fc:105::fcbd) |
2021-12-09 22:30:24 +0100 | <aplainzetakind> | It doesn't yet give what you declared in the signature. |
2021-12-09 22:30:29 +0100 | xff0x | (~xff0x@2001:1a81:5338:9c00:d04b:38a4:ed4b:d288) (Ping timeout: 265 seconds) |
2021-12-09 22:31:01 +0100 | ServerStatsDisco | (~serversta@2001:470:69fc:105::1a) |
2021-12-09 22:31:03 +0100 | xff0x | (~xff0x@2001:1a81:5338:9c00:9209:5fa4:fe4c:a1bd) |
2021-12-09 22:31:17 +0100 | _xor | (~xor@dsl-50-5-233-169.fuse.net) |
2021-12-09 22:31:33 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-12-09 22:31:34 +0100 | <WilliamJ17> | Ok |
2021-12-09 22:31:43 +0100 | <WilliamJ17> | [" \n \n \n"," **\n **\n **\n"," ****\n ****\n ****\n"] is my output |
2021-12-09 22:31:53 +0100 | <WilliamJ17> | when I ran the function not in a putStr function |
2021-12-09 22:32:14 +0100 | jinsun_ | (~jinsun@user/jinsun) |
2021-12-09 22:32:41 +0100 | <aplainzetakind> | Can you paste the code? |
2021-12-09 22:32:44 +0100 | <[exa]> | dsal: ghc _loves_ inlining but widely avoids all these kinds of traps and spikes |
2021-12-09 22:32:45 +0100 | Magnus[m] | (~magthetch@2001:470:69fc:105::d1a7) |
2021-12-09 22:32:57 +0100 | <WilliamJ17> | https://paste.tomsmeding.com/vfemMaf0 |
2021-12-09 22:34:05 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-09 22:34:17 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-09 22:34:39 +0100 | <aplainzetakind> | Well you see that the firs string in your list is rectangles of width 0, indented by 2 spaces, as opposed to rectangles of width 2 indented by zero spaces. Why ever could that be? |
2021-12-09 22:34:50 +0100 | <dsal> | [exa]: I've had issues across modules where dumping INLINE directives everywhere helped. |
2021-12-09 22:35:12 +0100 | <[exa]> | dumping as in "removing" or "adding"? :D |
2021-12-09 22:35:13 +0100 | <geekosaur> | cross-module is another thing |
2021-12-09 22:35:13 +0100 | <WilliamJ17> | is it because I've done widthseq and indentseq the wrong way round? |
2021-12-09 22:35:25 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3) |
2021-12-09 22:35:43 +0100 | ongy[m] | (~ongymatri@2001:470:69fc:105::5018) |
2021-12-09 22:35:48 +0100 | <aplainzetakind> | WilliamJ17: https://twitter.com/ThePracticalDev/status/720257210161311744 |
2021-12-09 22:36:06 +0100 | <[exa]> | anyway yeah that's actually one thing I wanted to ask a long time ago, is the (expectable) content of .hi files documented? |
2021-12-09 22:36:12 +0100 | <WilliamJ17> | Ok, I've tried it and I get a different output which looks more like it should |
2021-12-09 22:36:13 +0100 | WHatever666 | (~fuzzypixe@tchebychev.ensimag.fr) (Ping timeout: 240 seconds) |
2021-12-09 22:36:14 +0100 | InternetCitizen | (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
2021-12-09 22:36:19 +0100 | <WilliamJ17> | ["**\n**\n**\n"," ****\n ****\n ****\n"," ******\n ******\n ******\n"] |
2021-12-09 22:36:56 +0100 | <[exa]> | WilliamJ17: btw what's the target of the exercise? |
2021-12-09 22:37:02 +0100 | asdofindia-m | (~akshaymat@2001:470:69fc:105::831) |
2021-12-09 22:37:03 +0100 | <aplainzetakind> | Yes. Now what you have is [String] instead of String. |
2021-12-09 22:37:07 +0100 | craige[m] | (~craigemcw@2001:470:69fc:105::35f1) |
2021-12-09 22:37:12 +0100 | <dsal> | [exa]: littering my files with demands of INLINEs :) |
2021-12-09 22:37:20 +0100 | <aplainzetakind> | Of course String is [Char]. |
2021-12-09 22:37:20 +0100 | <WilliamJ17> | [exa] it;s kind of an ascii art thing |
2021-12-09 22:37:22 +0100 | <dsal> | I was just trying them here in this one module and it had no effect. |
2021-12-09 22:37:35 +0100 | thomasjm[m] | (~thomasjmm@2001:470:69fc:105::c6d9) |
2021-12-09 22:37:36 +0100 | <[exa]> | WilliamJ17: yeah I noticed but where's the hardness, I'd say |
2021-12-09 22:37:47 +0100 | <WilliamJ17> | I'm a beginner |
2021-12-09 22:38:11 +0100 | <aplainzetakind> | So you have [[Char]] when you need [Char]. |
2021-12-09 22:38:22 +0100 | <WilliamJ17> | Ok |
2021-12-09 22:38:35 +0100 | <[exa]> | :t concat |
2021-12-09 22:38:36 +0100 | <lambdabot> | Foldable t => t [a] -> [a] |
2021-12-09 22:38:37 +0100 | river | (~My_user_n@tilde.team/user/river) (WeeChat 2.3) |
2021-12-09 22:38:51 +0100 | <WilliamJ17> | what does foldable mean? |
2021-12-09 22:38:55 +0100 | <aplainzetakind> | https://hoogle.haskell.org/ this lets you search in Haskell libraries. Among other things, by type signatures. |
2021-12-09 22:39:01 +0100 | <geekosaur> | % :t concat @[] |
2021-12-09 22:39:01 +0100 | <yahb> | geekosaur: [[a]] -> [a] |
2021-12-09 22:39:09 +0100 | <WilliamJ17> | (y) |
2021-12-09 22:39:14 +0100 | <aplainzetakind> | Go there and search for [[a]] -> [a] |
2021-12-09 22:39:20 +0100 | <[exa]> | WilliamJ17: 't' in there is any type that can be folded, e.g. a list (or a set, vector, ...) |
2021-12-09 22:39:38 +0100 | <WilliamJ17> | ok so it concats a list of lists |
2021-12-09 22:39:47 +0100 | <geekosaur> | Foldable means anything that you can do a foldl or foldr on. I just asked the other bot to give the type of concat with lists as the Foldable |
2021-12-09 22:40:03 +0100 | <geekosaur> | (lambdabot doesn't yet understand that syntax) |
2021-12-09 22:40:10 +0100 | <WilliamJ17> | Ok, I read about foldl and foldr but havent been introduced to them yet on the course |
2021-12-09 22:40:13 +0100 | <fizbin> | Or a Vector of lists, or a Set of lists, or a .... |
2021-12-09 22:40:48 +0100 | <[exa]> | WilliamJ17: anyway since it does [[a]] -> [a] and you need [[Char]] -> [Char], I hoped that it could help. |
2021-12-09 22:40:50 +0100 | <fizbin> | But basically, yeah, it concats a (some container) of lists, because nearly any sensible container will have a Foldable instance. |
2021-12-09 22:41:19 +0100 | <aplainzetakind> | WilliamJ17: So concat is what you need, but please note how to find "something that does whatever" on hoogle by putting in an appropriate type signature. |
2021-12-09 22:41:35 +0100 | <[exa]> | dsal: that stuff is complicated, actually I have no idea if you can force-inline something across modules |
2021-12-09 22:41:39 +0100 | <aplainzetakind> | Most things already exist. |
2021-12-09 22:41:41 +0100 | meatfeather[m] | (~meatfeath@2001:470:69fc:105::1:3311) |
2021-12-09 22:41:42 +0100 | wildsebastian | (~wildsebas@2001:470:69fc:105::1:14b1) |
2021-12-09 22:41:44 +0100 | <WilliamJ17> | Ok I appreciate you showing me hoogle, I didn't know about it |
2021-12-09 22:41:55 +0100 | <[exa]> | hoogle is top |
2021-12-09 22:42:05 +0100 | <aplainzetakind> | So concat what you have, and you're done. |
2021-12-09 22:42:32 +0100 | <WilliamJ17> | So do I just concat the zipWith function? |
2021-12-09 22:42:45 +0100 | ocramz[m] | (~ocramzmat@2001:470:69fc:105::1:35b0) |
2021-12-09 22:42:46 +0100 | maralorn | (~maralorn@2001:470:69fc:105::251) |
2021-12-09 22:42:47 +0100 | marinelli[m] | (~marinelli@2001:470:69fc:105::2d8) |
2021-12-09 22:43:05 +0100 | <aplainzetakind> | You could concat the zipWith function if the zipWith function were a list of lists of things. |
2021-12-09 22:43:09 +0100 | <[exa]> | WilliamJ17: you mean the result of it, right? |
2021-12-09 22:43:14 +0100 | <aplainzetakind> | You will concat the entire expression. |
2021-12-09 22:43:21 +0100 | Tisoxin | (~ikosit@user/ikosit) |
2021-12-09 22:43:27 +0100 | <WilliamJ17> | ok, I got it working |
2021-12-09 22:43:33 +0100 | <WilliamJ17> | putStr (rectangles 2 3 4) |
2021-12-09 22:43:34 +0100 | <WilliamJ17> | *** |
2021-12-09 22:43:35 +0100 | <WilliamJ17> | ****** |
2021-12-09 22:43:36 +0100 | <WilliamJ17> | ********* |
2021-12-09 22:43:37 +0100 | <WilliamJ17> | ************ |
2021-12-09 22:43:40 +0100 | <[exa]> | oh noes |
2021-12-09 22:43:55 +0100 | <WilliamJ17> | Thank you for being patient with me aplainzetakind |
2021-12-09 22:43:58 +0100 | <aplainzetakind> | `concat $ ...` or `concat (...)` |
2021-12-09 22:44:08 +0100 | <aplainzetakind> | But is this the intended behaviour? |
2021-12-09 22:44:12 +0100 | <WilliamJ17> | Yeah |
2021-12-09 22:44:16 +0100 | <aplainzetakind> | Really? |
2021-12-09 22:44:26 +0100 | <WilliamJ17> | Thats what it looks like on the examples given on the exercise sheet |
2021-12-09 22:44:30 +0100 | <[exa]> | WilliamJ17: please don't paste too many lines at once to IRC, you might get pwned by ops |
2021-12-09 22:44:36 +0100 | <WilliamJ17> | (y) |
2021-12-09 22:45:10 +0100 | <WilliamJ17> | If I per say wanted to create a mirror of it going in the other direction once its done all the rectangles, would that be possible? |
2021-12-09 22:45:21 +0100 | <aplainzetakind> | Try changing to `indentseq = scanl (+) 0 widthseq` |
2021-12-09 22:45:23 +0100 | <WilliamJ17> | so going back down to 0 on indentation |
2021-12-09 22:45:31 +0100 | <aplainzetakind> | That would be nicer behaviour I think. |
2021-12-09 22:45:33 +0100 | <WilliamJ17> | i'll give it a go to see what happens |
2021-12-09 22:45:36 +0100 | <aplainzetakind> | And you're welcome. |
2021-12-09 22:45:39 +0100 | <WilliamJ17> | what does scanl do> |
2021-12-09 22:45:40 +0100 | <WilliamJ17> | ? |
2021-12-09 22:45:40 +0100 | <[exa]> | WilliamJ17: just expand the lists that you have there with more specifications? |
2021-12-09 22:45:44 +0100 | <aplainzetakind> | Figure it out. |
2021-12-09 22:45:51 +0100 | <[exa]> | :t scanl |
2021-12-09 22:45:52 +0100 | <lambdabot> | (b -> a -> b) -> b -> [a] -> [b] |
2021-12-09 22:46:15 +0100 | <WilliamJ17> | so it essentially feeds it onto the next |
2021-12-09 22:46:17 +0100 | deadmarshal | (~deadmarsh@95.38.230.89) (Ping timeout: 250 seconds) |
2021-12-09 22:46:26 +0100 | <[exa]> | yap |
2021-12-09 22:46:32 +0100 | <WilliamJ17> | [exa] Yeah I'm going to try that |
2021-12-09 22:46:38 +0100 | <WilliamJ17> | Want to try test myself |
2021-12-09 22:46:56 +0100 | smartin | (~Thunderbi@88.135.18.171) (Quit: smartin) |
2021-12-09 22:47:07 +0100 | iammrinal0[m] | (~iammrinal@2001:470:69fc:105::1:2248) |
2021-12-09 22:47:12 +0100 | rednaZ[m] | (~r3dnazmat@2001:470:69fc:105::ba70) |
2021-12-09 22:47:16 +0100 | <WilliamJ17> | so I'd have to make the lists go back down to 0 |
2021-12-09 22:47:27 +0100 | <int-e> | [exa]: scroll back one hour ;-) |
2021-12-09 22:48:19 +0100 | <aplainzetakind> | A design improvement could be to remove unlines from rectangle, so it gives you a list of the lines. Then you can call lines at the end to the result of concat. |
2021-12-09 22:48:34 +0100 | <[exa]> | int-e: ayay. |
2021-12-09 22:48:45 +0100 | <hololeap> | sshine: this first example looks like what you're looking for, although it's written in C: https://en.wikipedia.org/wiki/Modular_arithmetic#Example_implementations |
2021-12-09 22:48:51 +0100 | <WilliamJ17> | unlines gives the new lines doesnt it or did i read into the function wrong |
2021-12-09 22:49:04 +0100 | <aplainzetakind> | Then if you `fmap reverse` before that last unlines is applied, you'll get each line recersed. |
2021-12-09 22:49:20 +0100 | boxscape | (~boxscape@user/boxscape) |
2021-12-09 22:49:24 +0100 | <WilliamJ17> | (y) |
2021-12-09 22:49:31 +0100 | <WilliamJ17> | what is the difference between fmap and map? |
2021-12-09 22:49:38 +0100 | <[exa]> | WilliamJ17: yeah but you can keep the lines nicely separate for longer, then smash them together with one big unlines |
2021-12-09 22:49:51 +0100 | <WilliamJ17> | I see |
2021-12-09 22:49:55 +0100 | <aplainzetakind> | map is lists only fmap is polymorphic. |
2021-12-09 22:50:01 +0100 | <aplainzetakind> | Or is it? |
2021-12-09 22:50:08 +0100 | <[exa]> | likely saving a bit of code |
2021-12-09 22:50:11 +0100 | <aplainzetakind> | > fmap succ $ Just 1 |
2021-12-09 22:50:12 +0100 | <lambdabot> | Just 2 |
2021-12-09 22:50:17 +0100 | <aplainzetakind> | > map succ $ Just 1 |
2021-12-09 22:50:19 +0100 | <lambdabot> | error: |
2021-12-09 22:50:19 +0100 | <lambdabot> | • Couldn't match expected type ‘[b]’ with actual type ‘Maybe a0’ |
2021-12-09 22:50:19 +0100 | <lambdabot> | • In the second argument of ‘($)’, namely ‘Just 1’ |
2021-12-09 22:50:22 +0100 | <aplainzetakind> | Yes. |
2021-12-09 22:50:25 +0100 | <WilliamJ17> | Ok |
2021-12-09 22:50:38 +0100 | <WilliamJ17> | is "Just" a built in function within haskell |
2021-12-09 22:50:50 +0100 | <[exa]> | no |
2021-12-09 22:50:53 +0100 | ericson2314 | (~ericson23@2001:470:69fc:105::70c) |
2021-12-09 22:50:55 +0100 | <aplainzetakind> | It's a data constructor of the type Maybe. |
2021-12-09 22:51:09 +0100 | <[exa]> | it's in the standard library, but not "built in" per se |
2021-12-09 22:51:13 +0100 | <WilliamJ17> | Ok what is it used for? |
2021-12-09 22:51:22 +0100 | <[exa]> | for distinguishing stuff from Nothing |
2021-12-09 22:51:31 +0100 | <aplainzetakind> | To model computations which may not return meaningful results. |
2021-12-09 22:51:38 +0100 | <geekosaur> | some languages call it "optional" |
2021-12-09 22:52:01 +0100 | <WilliamJ17> | Ok, I kind of understand that |
2021-12-09 22:52:01 +0100 | <aplainzetakind> | Something like safeDiv x y = if y == 0 then Nothing else Just (x / y) |
2021-12-09 22:52:10 +0100 | <WilliamJ17> | ah right |
2021-12-09 22:52:22 +0100 | <dsal> | Some languages call it "null pointer exception" |
2021-12-09 22:52:22 +0100 | <WilliamJ17> | so its essentially a blank line |
2021-12-09 22:52:37 +0100 | denbrahe[m] | (~denbrahem@2001:470:69fc:105::19c0) |
2021-12-09 22:52:38 +0100 | JoelMcCracken[m] | (~joelmccra@2001:470:69fc:105::8405) |
2021-12-09 22:52:39 +0100 | <[exa]> | blank value, yes. |
2021-12-09 22:52:40 +0100 | inkbottle[m] | (~inkbottle@2001:470:69fc:105::2ff5) |
2021-12-09 22:53:03 +0100 | sm | (~sm@plaintextaccounting/sm) |
2021-12-09 22:53:05 +0100 | siraben | (~siraben@user/siraben) |
2021-12-09 22:53:13 +0100 | <WilliamJ17> | I see |
2021-12-09 22:53:26 +0100 | <aplainzetakind> | WilliamJ17: I suggest reading lyah. |
2021-12-09 22:53:28 +0100 | maerwald[m] | (~maerwaldm@2001:470:69fc:105::1ee) |
2021-12-09 22:53:38 +0100 | <dsal> | If you think about it in terms of value cardinality, Maybe adds one additional value to whatever type it's applied to. So if you have a Maybe Bool, there are now three possibilities. Nothing, Just True, and Just False. |
2021-12-09 22:53:45 +0100 | <WilliamJ17> | learn you a haskell? I have been looking at it when doing previous exercises |
2021-12-09 22:53:52 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2021-12-09 22:55:04 +0100 | <aplainzetakind> | Are those exercises for a course? |
2021-12-09 22:55:10 +0100 | <aplainzetakind> | Where do they come from? |
2021-12-09 22:55:23 +0100 | <WilliamJ17> | they're weekly exercises set by our lecturer |
2021-12-09 22:55:29 +0100 | benjamin[m]12 | (~benjaminm@2001:470:69fc:105::1:3f2f) |
2021-12-09 22:55:37 +0100 | <WilliamJ17> | for practice |
2021-12-09 22:55:40 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-09 22:55:51 +0100 | <dsal> | Advent of Code is currently giving us daily exercises that are pretty fun. |
2021-12-09 22:56:21 +0100 | <WilliamJ17> | I come from an imperative background so I have been trying to do some AoC in python whenever I can |
2021-12-09 22:56:37 +0100 | son0p | (~ff@2800:484:1d81:b700:d40b:900:b387:320) |
2021-12-09 22:56:48 +0100 | <dsal> | Your background can be repaired with time and practice. |
2021-12-09 22:57:34 +0100 | <WilliamJ17> | I have used functional concepts such as lambdas before when doing exercises on per say hackerrank so I did run into it before I did start the course |
2021-12-09 22:58:23 +0100 | <dsal> | I'm not sure I'd call lambda a particularly significant functional concept, but nobody can agree on what functional programming is. heh |
2021-12-09 22:59:21 +0100 | <WilliamJ17> | I thought haskell is based upon the lambda? Or am I being silly |
2021-12-09 22:59:38 +0100 | vicfred | (~vicfred@user/vicfred) |
2021-12-09 22:59:50 +0100 | <[exa]> | you mean lambda calculus? |
2021-12-09 23:00:11 +0100 | <[exa]> | (in that case, yeah, mostly, but that's by far not only lambdas) |
2021-12-09 23:00:41 +0100 | <int-e> | > (\f g x -> f x + g x) (\x -> 2 * x) (\x -> 3 - x) 42 |
2021-12-09 23:00:43 +0100 | <lambdabot> | 45 |
2021-12-09 23:00:48 +0100 | <dsal> | Yeah, lambda calculus, but if you didn't have lambda in haskell, you'd still be able to do all the functional things. Just some stuff would be annoying because you'd have to name things you didn't' want to name. |
2021-12-09 23:01:16 +0100 | <exarkun> | WilliamJ17: If you are thinking of "lambda" from Python then it's really just syntactic sugar for a certain subset of "regular" Python functions. It doesn't have much to do with anything Haskell is based on. |
2021-12-09 23:01:40 +0100 | <WilliamJ17> | yeah I must mean lambda calculus |
2021-12-09 23:01:50 +0100 | <WilliamJ17> | exarkun ah I see |
2021-12-09 23:02:18 +0100 | <dsal> | At a high level, functional programming (to me), is more about telling the computer what you want done without telling it all the details of how to do it. |
2021-12-09 23:02:19 +0100 | <int-e> | there are lambda abstractions but it's often useful to name functions... so they're kind of rare |
2021-12-09 23:02:48 +0100 | <exarkun> | dsal: Like what we do in SQL, right |
2021-12-09 23:02:49 +0100 | <int-e> | (it's also a matter of style; some people use them more than others) |
2021-12-09 23:03:07 +0100 | <dsal> | exarkun: Yeah, kind of. |
2021-12-09 23:03:09 +0100 | dmenz | (~dmenz@2804:14d:5cd4:5e94::1) |
2021-12-09 23:03:54 +0100 | MOTERF | (~MOTERF@105.66.3.166) |
2021-12-09 23:04:19 +0100 | <int-e> | There's also useful operators that avoid lambdas. Function composition is a commone one: `f . g` can be used instead of `\x -> f (g x)`. |
2021-12-09 23:04:31 +0100 | <WilliamJ17> | Yeah I read about function composition |
2021-12-09 23:04:40 +0100 | <WilliamJ17> | Haven't used it though yet |
2021-12-09 23:04:41 +0100 | <xsperry> | also partial application and setions |
2021-12-09 23:04:49 +0100 | chomwitt | (~chomwitt@2a02:587:dc0d:3700:12c3:7bff:fe6d:d374) (Ping timeout: 252 seconds) |
2021-12-09 23:04:56 +0100 | <xsperry> | instead of (\x -> x + 1) you can just do (+1) |
2021-12-09 23:04:56 +0100 | <int-e> | *sections |
2021-12-09 23:05:03 +0100 | <xsperry> | ^^ |
2021-12-09 23:05:10 +0100 | <dsal> | A friend of mine is trying to do some of the AoC stuff in Haskell with ~no FP background. His first attempt at the first problem was pages of code opening a file and reading it line by line while trying to convert stuff and accumulate it and all this other junk. It was a screenful of code to do something like `map read . words <$> readFile p` |
2021-12-09 23:05:33 +0100 | <dsal> | One of the greatest things we get from FP is being able to actually compose things. |
2021-12-09 23:05:44 +0100 | <int-e> | :t interact |
2021-12-09 23:05:45 +0100 | <lambdabot> | (String -> String) -> IO () |
2021-12-09 23:06:12 +0100 | <dsal> | It takes so much planning to be able to do any sort of composition in most languages. |
2021-12-09 23:06:20 +0100 | <WilliamJ17> | I have found since I started the FP course that in haskell and maybe FP in general, everything does seem shorter |
2021-12-09 23:06:29 +0100 | <int-e> | (it's my get-out-of-IO-for-free card ;-) |
2021-12-09 23:07:06 +0100 | <dsal> | WilliamJ17: It's not so much shorter, it's just that you write the parts you care about and don't have to spend as much effort describing *how* to do all the things (at least, not in the same place). |
2021-12-09 23:07:09 +0100 | nebu | (~user@user/wavion) |
2021-12-09 23:07:15 +0100 | <xsperry> | > map (\xs -> map (\x -> x * 10) xs) [[1,2,3],[4,5,6]] |
2021-12-09 23:07:17 +0100 | <lambdabot> | [[10,20,30],[40,50,60]] |
2021-12-09 23:07:21 +0100 | <xsperry> | now compare that to: |
2021-12-09 23:07:25 +0100 | <int-e> | FP is really good at abstraction |
2021-12-09 23:07:28 +0100 | aveltras[m] | (~aveltrasm@2001:470:69fc:105::3ef9) |
2021-12-09 23:07:29 +0100 | <xsperry> | > map (map (*10)) [[1,2,3],[4,5,6]] |
2021-12-09 23:07:30 +0100 | <lambdabot> | [[10,20,30],[40,50,60]] |
2021-12-09 23:08:17 +0100 | <dsal> | > [[1,2,3],[4,5,6]] & traversed . traversed *~ 10 |
2021-12-09 23:08:19 +0100 | <lambdabot> | [[10,20,30],[40,50,60]] |
2021-12-09 23:08:27 +0100 | <dsal> | If you want clarity, you have to use lens. |
2021-12-09 23:08:49 +0100 | <int-e> | ...after spending years of mastering the vocabulary |
2021-12-09 23:08:59 +0100 | <exarkun> | int-e++ |
2021-12-09 23:09:02 +0100 | <dsal> | You only need that to read it. |
2021-12-09 23:09:02 +0100 | kennyd | (~bc8147f2@cerf.good1.com) |
2021-12-09 23:09:35 +0100 | <WilliamJ17> | mhm that looks quite complex dsal to me at least |
2021-12-09 23:09:36 +0100 | MOTERF | (~MOTERF@105.66.3.166) (Remote host closed the connection) |
2021-12-09 23:09:59 +0100 | dmenz | (~dmenz@2804:14d:5cd4:5e94::1) (Quit: Leaving) |
2021-12-09 23:10:06 +0100 | <dsal> | WilliamJ17: It's a whole category of concepts that you aren't expected to care about. |
2021-12-09 23:10:12 +0100 | <WilliamJ17> | ah |
2021-12-09 23:10:27 +0100 | <int-e> | > ((10*) <$>) <$> [[1,2,3],[4,5,6]] -- needed more sections |
2021-12-09 23:10:28 +0100 | <lambdabot> | [[10,20,30],[40,50,60]] |
2021-12-09 23:10:32 +0100 | <dsal> | It solves a class of problems, but has overlap with other solutions that may fit better. Such as (fmap.fmap) |
2021-12-09 23:10:57 +0100 | <dsal> | @pl (((10*) <$>) <$>) |
2021-12-09 23:10:57 +0100 | <lambdabot> | (((10 *) <$>) <$>) |
2021-12-09 23:11:06 +0100 | <dsal> | not even pl can make that worse |
2021-12-09 23:11:11 +0100 | <int-e> | <$> is too new for pl |
2021-12-09 23:12:23 +0100 | <dsal> | > let (<$$>) = (fmap.fmap) in (10 *) <$$> [[10,20,30],[40,50,60]] |
2021-12-09 23:12:25 +0100 | <lambdabot> | [[100,200,300],[400,500,600]] |
2021-12-09 23:12:32 +0100 | <dsal> | oops, pasted the wrong input |
2021-12-09 23:13:14 +0100 | <kennyd> | I'd prefer <<$>> |
2021-12-09 23:13:28 +0100 | <dsal> | > let (<<$>>) = (fmap.fmap) in (10 *) <<$>> [[10,20,30],[40,50,60]] |
2021-12-09 23:13:29 +0100 | <lambdabot> | [[100,200,300],[400,500,600]] |
2021-12-09 23:13:33 +0100 | <dsal> | Yeah, that makes sense. |
2021-12-09 23:13:58 +0100 | <dsal> | I've never written one of those. Starts getting bad once you start getting really deep, though. |
2021-12-09 23:14:16 +0100 | <kennyd> | yeah, we are approaching caaddr |
2021-12-09 23:14:18 +0100 | <geekosaur> | next someone'll drag in type level programming |
2021-12-09 23:14:21 +0100 | <dsal> | > let (<<<$>>>) = (fmap.fmap.fmap) in (10 *) <<<$>>> cycle [[10,20,30],[40,50,60]] |
2021-12-09 23:14:22 +0100 | <lambdabot> | error: |
2021-12-09 23:14:23 +0100 | <lambdabot> | • Ambiguous type variable ‘f0’ arising from a use of ‘show_M827152648093... |
2021-12-09 23:14:23 +0100 | <lambdabot> | prevents the constraint ‘(Show (f0 Integer))’ from being solved. |
2021-12-09 23:14:40 +0100 | <dsal> | > let (<<<$>>>) = (fmap.fmap.fmap) in (10 *) <<<$>>> repeat [[10,20,30],[40,50,60]] |
2021-12-09 23:14:41 +0100 | <lambdabot> | [[[100,200,300],[400,500,600]],[[100,200,300],[400,500,600]],[[100,200,300],... |
2021-12-09 23:17:45 +0100 | ppseafield[m] | (~elementpp@2001:470:69fc:105::1:250a) |
2021-12-09 23:17:55 +0100 | <kennyd> | hopefully we didn't scare WilliamJ17 away with these silly examples. :P |
2021-12-09 23:18:02 +0100 | hsiktas[m] | (~hsiktasma@2001:470:69fc:105::30d4) |
2021-12-09 23:18:35 +0100 | <dsal> | I think structured learning is more helpful than just seeing random stuff and asking questions about how to say French idioms in Japanese. |
2021-12-09 23:18:52 +0100 | <dsal> | Imperative instincts are hard to unlearn. |
2021-12-09 23:19:22 +0100 | smichel17[m] | (~smichel17@2001:470:69fc:105::2d32) |
2021-12-09 23:20:38 +0100 | <kennyd> | that's true. but curiosity and interest is often sparked by the first two, before deciding to spend more time learning something |
2021-12-09 23:21:54 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
2021-12-09 23:22:04 +0100 | smichel17[m] | (~smichel17@2001:470:69fc:105::2d32) (Read error: Connection reset by peer) |
2021-12-09 23:22:04 +0100 | hsiktas[m] | (~hsiktasma@2001:470:69fc:105::30d4) (Write error: Connection reset by peer) |
2021-12-09 23:22:04 +0100 | JoelMcCracken[m] | (~joelmccra@2001:470:69fc:105::8405) (Write error: Connection reset by peer) |
2021-12-09 23:22:04 +0100 | benjamin[m]12 | (~benjaminm@2001:470:69fc:105::1:3f2f) (Write error: Connection reset by peer) |
2021-12-09 23:22:04 +0100 | aveltras[m] | (~aveltrasm@2001:470:69fc:105::3ef9) (Read error: Connection reset by peer) |
2021-12-09 23:22:04 +0100 | marinelli[m] | (~marinelli@2001:470:69fc:105::2d8) (Read error: Connection reset by peer) |
2021-12-09 23:22:05 +0100 | ppseafield[m] | (~elementpp@2001:470:69fc:105::1:250a) (Read error: Connection reset by peer) |
2021-12-09 23:22:05 +0100 | sm | (~sm@plaintextaccounting/sm) (Write error: Connection reset by peer) |
2021-12-09 23:22:05 +0100 | maralorn | (~maralorn@2001:470:69fc:105::251) (Write error: Connection reset by peer) |
2021-12-09 23:22:05 +0100 | ServerStatsDisco | (~serversta@2001:470:69fc:105::1a) (Read error: Connection reset by peer) |
2021-12-09 23:22:05 +0100 | alexfmpe[m] | (~alexfmpem@2001:470:69fc:105::38ba) (Read error: Connection reset by peer) |
2021-12-09 23:22:05 +0100 | carmysilna | (~brightly-@2001:470:69fc:105::2190) (Read error: Connection reset by peer) |
2021-12-09 23:22:05 +0100 | ericson2314 | (~ericson23@2001:470:69fc:105::70c) (Write error: Connection reset by peer) |
2021-12-09 23:22:05 +0100 | wildsebastian | (~wildsebas@2001:470:69fc:105::1:14b1) (Read error: Connection reset by peer) |
2021-12-09 23:22:05 +0100 | schuelermine[m] | (~schuelerm@user/schuelermine) (Write error: Connection reset by peer) |
2021-12-09 23:22:05 +0100 | maerwald[m] | (~maerwaldm@2001:470:69fc:105::1ee) (Read error: Connection reset by peer) |
2021-12-09 23:22:05 +0100 | std_mutex[m] | (~stdmutexm@2001:470:69fc:105::1:4534) (Write error: Connection reset by peer) |
2021-12-09 23:22:05 +0100 | jkachmar | (~jkachmar@2001:470:69fc:105::c72d) (Read error: Connection reset by peer) |
2021-12-09 23:22:05 +0100 | boxscape | (~boxscape@user/boxscape) (Write error: Connection reset by peer) |
2021-12-09 23:22:05 +0100 | iammrinal0[m] | (~iammrinal@2001:470:69fc:105::1:2248) (Write error: Connection reset by peer) |
2021-12-09 23:22:05 +0100 | fendor[m] | (~fendormat@2001:470:69fc:105::fcbd) (Write error: Connection reset by peer) |
2021-12-09 23:22:05 +0100 | quantum | (~quantum@user/quantum/x-8556232) (Write error: Connection reset by peer) |
2021-12-09 23:22:05 +0100 | meatfeather[m] | (~meatfeath@2001:470:69fc:105::1:3311) (Write error: Connection reset by peer) |
2021-12-09 23:22:05 +0100 | Topik[m] | (~topikmatr@2001:470:69fc:105::a082) (Read error: Connection reset by peer) |
2021-12-09 23:22:05 +0100 | rednaZ[m] | (~r3dnazmat@2001:470:69fc:105::ba70) (Write error: Connection reset by peer) |
2021-12-09 23:22:05 +0100 | jinsun_ | (~jinsun@user/jinsun) (Write error: Connection reset by peer) |
2021-12-09 23:22:06 +0100 | justosophy[m] | (~justosoph@2001:470:69fc:105::572f) (Read error: Connection reset by peer) |
2021-12-09 23:22:06 +0100 | inkbottle[m] | (~inkbottle@2001:470:69fc:105::2ff5) (Write error: Connection reset by peer) |
2021-12-09 23:22:06 +0100 | Orbstheorem | (~orbstheor@2001:470:69fc:105::a56) (Read error: Connection reset by peer) |
2021-12-09 23:22:06 +0100 | Deide | (~deide@user/deide) (Read error: Connection reset by peer) |
2021-12-09 23:22:06 +0100 | surgeon[m] | (~surge9nma@2001:470:69fc:105::f585) (Write error: Connection reset by peer) |
2021-12-09 23:22:06 +0100 | moats | (~oats@user/oats) (Write error: Connection reset by peer) |
2021-12-09 23:22:06 +0100 | InternetManaging | (~imjmatrix@2001:470:69fc:105::1:2ea5) (Write error: Connection reset by peer) |
2021-12-09 23:22:06 +0100 | jmcantrell | (~jmcantrel@user/jmcantrell) (Read error: Connection reset by peer) |
2021-12-09 23:22:06 +0100 | zwro[m] | (~zwromatri@2001:470:69fc:105::1d4) (Read error: Connection reset by peer) |
2021-12-09 23:22:06 +0100 | denbrahe[m] | (~denbrahem@2001:470:69fc:105::19c0) (Write error: Connection reset by peer) |
2021-12-09 23:22:06 +0100 | ManofLetters[m] | (~manoflett@2001:470:69fc:105::3be) (Write error: Connection reset by peer) |
2021-12-09 23:22:06 +0100 | ocramz[m] | (~ocramzmat@2001:470:69fc:105::1:35b0) (Read error: Connection reset by peer) |
2021-12-09 23:22:06 +0100 | acco[m] | (~accotedom@2001:470:69fc:105::1:3236) (Read error: Connection reset by peer) |
2021-12-09 23:22:06 +0100 | craige[m] | (~craigemcw@2001:470:69fc:105::35f1) (Read error: Connection reset by peer) |
2021-12-09 23:22:06 +0100 | RosarioPulella[m | (~rosariopu@2001:470:69fc:105::a57) (Write error: Connection reset by peer) |
2021-12-09 23:22:06 +0100 | kadoban | (~kadoban@user/kadoban) (Read error: Connection reset by peer) |
2021-12-09 23:22:06 +0100 | Arathorn | (~arathorn@2001:470:69fc:105::1f) (Write error: Connection reset by peer) |
2021-12-09 23:22:06 +0100 | TomasJakl[m] | (~jaklttchn@2001:470:69fc:105::a42) (Write error: Connection reset by peer) |
2021-12-09 23:22:06 +0100 | utk | (~utk@2001:470:69fc:105::1:2fe0) (Write error: Connection reset by peer) |
2021-12-09 23:22:06 +0100 | wysteriary[m] | (~wysteriar@2001:470:69fc:105::a42e) (Write error: Connection reset by peer) |
2021-12-09 23:22:06 +0100 | SawyerBergeron[m | (~sawyerber@2001:470:69fc:105::3036) (Read error: Connection reset by peer) |
2021-12-09 23:22:07 +0100 | xddq[m] | (~xddqmatri@2001:470:69fc:105::bfd8) (Read error: Connection reset by peer) |
2021-12-09 23:22:07 +0100 | unclechu | (~unclechu@2001:470:69fc:105::354) (Read error: Connection reset by peer) |
2021-12-09 23:22:07 +0100 | bitonic | (~bitonic@2001:470:69fc:105::1812) (Write error: Connection reset by peer) |
2021-12-09 23:22:07 +0100 | soft | (~soft@2001:470:69fc:105::c75) (Read error: Connection reset by peer) |
2021-12-09 23:22:07 +0100 | thomasjm[m] | (~thomasjmm@2001:470:69fc:105::c6d9) (Write error: Connection reset by peer) |
2021-12-09 23:22:07 +0100 | zfnmxt | (~zfnmxtzfn@2001:470:69fc:105::2b32) (Read error: Connection reset by peer) |
2021-12-09 23:22:07 +0100 | Tisoxin | (~ikosit@user/ikosit) (Write error: Connection reset by peer) |
2021-12-09 23:22:07 +0100 | psydroid | (~psydroid@user/psydroid) (Write error: Connection reset by peer) |
2021-12-09 23:22:07 +0100 | ongy[m] | (~ongymatri@2001:470:69fc:105::5018) (Write error: Connection reset by peer) |
2021-12-09 23:22:07 +0100 | DemiMarieObenour | (~alwayscur@2001:470:69fc:105::4886) (Read error: Connection reset by peer) |
2021-12-09 23:22:07 +0100 | MatrixTravelerbo | (~voyagert2@2001:470:69fc:105::22) (Read error: Connection reset by peer) |
2021-12-09 23:22:07 +0100 | Magnus[m] | (~magthetch@2001:470:69fc:105::d1a7) (Write error: Connection reset by peer) |
2021-12-09 23:22:07 +0100 | reza[m] | (~rezaphone@2001:470:69fc:105::3eda) (Write error: Connection reset by peer) |
2021-12-09 23:22:07 +0100 | asdofindia-m | (~akshaymat@2001:470:69fc:105::831) (Write error: Connection reset by peer) |
2021-12-09 23:22:07 +0100 | ilkecan[m] | (~ilkecanma@2001:470:69fc:105::1:79b) (Read error: Connection reset by peer) |
2021-12-09 23:22:07 +0100 | siraben | (~siraben@user/siraben) (Write error: Connection reset by peer) |
2021-12-09 23:22:07 +0100 | jophish | (~jophish@2001:470:69fc:105::670) (Write error: Connection reset by peer) |
2021-12-09 23:22:07 +0100 | Christoph[m] | (~hpotsirhc@2001:470:69fc:105::2ff8) (Read error: Connection reset by peer) |
2021-12-09 23:22:12 +0100 | <dsal> | Yeah. It's possibly counterintuitive, but I like working in Haskell because it's easier than just about any other language I've worked in. |
2021-12-09 23:22:26 +0100 | <dsal> | Which is a rather long list. |
2021-12-09 23:23:39 +0100 | michalz | (~michalz@185.246.204.55) (Remote host closed the connection) |
2021-12-09 23:24:44 +0100 | jchia[m] | (~jchiamatr@2001:470:69fc:105::c50b) |
2021-12-09 23:26:37 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-09 23:29:41 +0100 | <monochrom> | Yeah, "shorter code" is a very first impression but is also just a side effect. The benefit of Haskell I go for is "less micromanagement". |
2021-12-09 23:29:41 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:36fe:413:d066:5593) (Quit: WeeChat 2.8) |
2021-12-09 23:29:41 +0100 | MatrixTravelerbo | (~voyagert2@2001:470:69fc:105::22) |
2021-12-09 23:29:41 +0100 | fgaz | (~fgaz@2001:470:69fc:105::842) |
2021-12-09 23:29:42 +0100 | peddie | (~peddie@2001:470:69fc:105::25d) |
2021-12-09 23:29:42 +0100 | cdsmith | (~cdsmithma@2001:470:69fc:105::284) |
2021-12-09 23:29:42 +0100 | thomasjm[m] | (~thomasjmm@2001:470:69fc:105::c6d9) |
2021-12-09 23:29:56 +0100 | bb010g | (~bb010g@2001:470:69fc:105::9a5) |
2021-12-09 23:29:56 +0100 | ServerStatsDisco | (~serversta@2001:470:69fc:105::1a) |
2021-12-09 23:29:56 +0100 | amesgen[m] | (~amesgenm]@2001:470:69fc:105::82b) |
2021-12-09 23:29:56 +0100 | the-coot[m] | (~the-cootm@2001:470:69fc:105::95f) |
2021-12-09 23:29:56 +0100 | moats | (~oats@user/oats) |
2021-12-09 23:29:57 +0100 | nunggu | (~q@gateway/tor-sasl/nunggu) (Ping timeout: 276 seconds) |
2021-12-09 23:29:58 +0100 | <Square> | Right, thats what im trying say to my colleagues at work. But they assume its just massive extra work. |
2021-12-09 23:30:06 +0100 | <Square> | to* |
2021-12-09 23:30:09 +0100 | soft | (~soft@2001:470:69fc:105::c75) |
2021-12-09 23:30:09 +0100 | zfnmxt | (~zfnmxtzfn@2001:470:69fc:105::2b32) |
2021-12-09 23:30:22 +0100 | oak- | (~oakuniver@2001:470:69fc:105::fcd) |
2021-12-09 23:30:22 +0100 | kadoban | (~kadoban@user/kadoban) |
2021-12-09 23:30:22 +0100 | bitonic | (~bitonic@2001:470:69fc:105::1812) |
2021-12-09 23:30:22 +0100 | jophish | (~jophish@2001:470:69fc:105::670) |
2021-12-09 23:30:22 +0100 | ericson2314 | (~ericson23@2001:470:69fc:105::70c) |
2021-12-09 23:30:23 +0100 | Arathorn | (~arathorn@2001:470:69fc:105::1f) |
2021-12-09 23:30:23 +0100 | Ollie[m] | (~ollieocha@2001:470:69fc:105::41a5) |
2021-12-09 23:30:23 +0100 | unclechu | (~unclechu@2001:470:69fc:105::354) |
2021-12-09 23:30:23 +0100 | rednaZ[m] | (~r3dnazmat@2001:470:69fc:105::ba70) |
2021-12-09 23:30:35 +0100 | xddq[m] | (~xddqmatri@2001:470:69fc:105::bfd8) |
2021-12-09 23:30:35 +0100 | maralorn | (~maralorn@2001:470:69fc:105::251) |
2021-12-09 23:30:35 +0100 | denbrahe[m] | (~denbrahem@2001:470:69fc:105::19c0) |
2021-12-09 23:30:48 +0100 | reza[m] | (~rezaphone@2001:470:69fc:105::3eda) |
2021-12-09 23:30:48 +0100 | quantum | (~quantum@user/quantum/x-8556232) |
2021-12-09 23:30:48 +0100 | marinelli[m] | (~marinelli@2001:470:69fc:105::2d8) |
2021-12-09 23:30:48 +0100 | hsiktas[m] | (~hsiktasma@2001:470:69fc:105::30d4) |
2021-12-09 23:30:49 +0100 | <monochrom> | But self-selection bias implies that programmers are control freaks. Good luck telling them to even learn to let go. |
2021-12-09 23:31:01 +0100 | chizil[m] | (~chizilmat@2001:470:69fc:105::1:34ab) |
2021-12-09 23:31:16 +0100 | craige[m] | (~craigemcw@2001:470:69fc:105::35f1) |
2021-12-09 23:31:16 +0100 | schuelermine[m] | (~schuelerm@user/schuelermine) |
2021-12-09 23:31:16 +0100 | sm | (~sm@plaintextaccounting/sm) |
2021-12-09 23:31:30 +0100 | Orbstheorem | (~orbstheor@2001:470:69fc:105::a56) |
2021-12-09 23:31:36 +0100 | nunggu | (~q@gateway/tor-sasl/nunggu) |
2021-12-09 23:31:41 +0100 | <hpc> | on a mac they are command freaks |
2021-12-09 23:31:42 +0100 | justosophy[m] | (~justosoph@2001:470:69fc:105::572f) |
2021-12-09 23:31:45 +0100 | <monochrom> | Or at least, self-selection bias of von-Neumann-model (so, mainstream languages, the lot of them) programmers. |
2021-12-09 23:31:54 +0100 | <monochrom> | hahaha |
2021-12-09 23:31:54 +0100 | ppseafield[m] | (~elementpp@2001:470:69fc:105::1:250a) |
2021-12-09 23:31:54 +0100 | Deide | (~deide@user/deide) |
2021-12-09 23:31:55 +0100 | hughjfchen[m] | (~hughjfche@2001:470:69fc:105::c29d) |
2021-12-09 23:31:55 +0100 | Artem[m] | (~artemtype@2001:470:69fc:105::75b) |
2021-12-09 23:31:55 +0100 | Christoph[m] | (~hpotsirhc@2001:470:69fc:105::2ff8) |
2021-12-09 23:31:55 +0100 | psydroid | (~psydroid@user/psydroid) |
2021-12-09 23:32:07 +0100 | wysteriary[m] | (~wysteriar@2001:470:69fc:105::a42e) |
2021-12-09 23:32:07 +0100 | zwro[m] | (~zwromatri@2001:470:69fc:105::1d4) |
2021-12-09 23:32:22 +0100 | fsckskye[m] | (~kmatrixth@2001:470:69fc:105::1:3b2f) |
2021-12-09 23:32:22 +0100 | Topik[m] | (~topikmatr@2001:470:69fc:105::a082) |
2021-12-09 23:32:22 +0100 | asdofindia-m | (~akshaymat@2001:470:69fc:105::831) |
2021-12-09 23:32:22 +0100 | alexfmpe[m] | (~alexfmpem@2001:470:69fc:105::38ba) |
2021-12-09 23:32:23 +0100 | ongy[m] | (~ongymatri@2001:470:69fc:105::5018) |
2021-12-09 23:32:23 +0100 | jneira[m] | (~jneiramat@2001:470:69fc:105::d729) |
2021-12-09 23:32:23 +0100 | Magnus[m] | (~magthetch@2001:470:69fc:105::d1a7) |
2021-12-09 23:32:23 +0100 | siraben | (~siraben@user/siraben) |
2021-12-09 23:32:23 +0100 | Movedtosridoneem | (~sridmatri@2001:470:69fc:105::1c2) |
2021-12-09 23:32:23 +0100 | smichel17[m] | (~smichel17@2001:470:69fc:105::2d32) |
2021-12-09 23:32:24 +0100 | SawyerBergeron[m | (~sawyerber@2001:470:69fc:105::3036) |
2021-12-09 23:32:24 +0100 | alex[m] | (~alexchete@2001:470:69fc:105::1:1001) |
2021-12-09 23:32:24 +0100 | ManofLetters[m] | (~manoflett@2001:470:69fc:105::3be) |
2021-12-09 23:32:24 +0100 | Tisoxin | (~ikosit@user/ikosit) |
2021-12-09 23:32:24 +0100 | carmysilna | (~brightly-@2001:470:69fc:105::2190) |
2021-12-09 23:32:24 +0100 | fendor[m] | (~fendormat@2001:470:69fc:105::fcbd) |
2021-12-09 23:32:24 +0100 | aidy | (~aidy@2001:470:69fc:105::c7b4) |
2021-12-09 23:32:24 +0100 | DemiMarieObenour | (~alwayscur@2001:470:69fc:105::4886) |
2021-12-09 23:32:28 +0100 | <hpc> | anecdote along the same lines: i wanted to mess around with one of those quantum programming simulators |
2021-12-09 23:32:37 +0100 | iammrinal0[m] | (~iammrinal@2001:470:69fc:105::1:2248) |
2021-12-09 23:32:38 +0100 | <monochrom> | You know I'm telling the truth because every Haskell beginner begins by asking "so how do I say c=c+1" |
2021-12-09 23:32:42 +0100 | <hpc> | i tried microsoft's Q# thing, ran into an endless parade of python issues |
2021-12-09 23:32:50 +0100 | ocramz[m] | (~ocramzmat@2001:470:69fc:105::1:35b0) |
2021-12-09 23:32:50 +0100 | TomasJakl[m] | (~jaklttchn@2001:470:69fc:105::a42) |
2021-12-09 23:32:50 +0100 | ilkecan[m] | (~ilkecanma@2001:470:69fc:105::1:79b) |
2021-12-09 23:32:50 +0100 | vaibhavsagar[m] | (~vaibhavsa@2001:470:69fc:105::ffe) |
2021-12-09 23:32:50 +0100 | jmcantrell | (~jmcantrel@user/jmcantrell) |
2021-12-09 23:32:50 +0100 | maerwald[m] | (~maerwaldm@2001:470:69fc:105::1ee) |
2021-12-09 23:32:52 +0100 | <monochrom> | micromanagement mentality right there. |
2021-12-09 23:32:53 +0100 | <hpc> | then just finally went "screw it", switched to haskell |
2021-12-09 23:32:57 +0100 | <hpc> | looked at the time first |
2021-12-09 23:33:04 +0100 | jkachmar | (~jkachmar@2001:470:69fc:105::c72d) |
2021-12-09 23:33:09 +0100 | <hpc> | went to hackage, installed the first package i could find, wrote some code, built and ran it |
2021-12-09 23:33:12 +0100 | <hpc> | done in under an hour |
2021-12-09 23:33:16 +0100 | JoelMcCracken[m] | (~joelmccra@2001:470:69fc:105::8405) |
2021-12-09 23:33:30 +0100 | RosarioPulella[m | (~rosariopu@2001:470:69fc:105::a57) |
2021-12-09 23:33:30 +0100 | puffnfresh[m] | (~puffnfres@2001:470:69fc:105::1:22da) |
2021-12-09 23:33:40 +0100 | <EvanR> | c=c+1, 0=1, programmer gets a punishing shock from the type checker |
2021-12-09 23:33:42 +0100 | TomWesterhout[m] | (~twesterho@2001:470:69fc:105::1:2918) |
2021-12-09 23:33:42 +0100 | wildsebastian | (~wildsebas@2001:470:69fc:105::1:14b1) |
2021-12-09 23:33:42 +0100 | jinsun_ | (~jinsun@user/jinsun) |
2021-12-09 23:33:57 +0100 | benjamin[m]1234 | (~benjaminm@2001:470:69fc:105::1:3f2f) |
2021-12-09 23:34:09 +0100 | <hpc> | that's just refusing to approach the language on its own terms |
2021-12-09 23:34:09 +0100 | acco[m] | (~accotedom@2001:470:69fc:105::1:3236) |
2021-12-09 23:34:09 +0100 | surgeon[m] | (~surge9nma@2001:470:69fc:105::f585) |
2021-12-09 23:34:09 +0100 | octeep[m] | (~octeepoct@2001:470:69fc:105::1:3dbf) |
2021-12-09 23:34:09 +0100 | unrooted | (~unrooted@2001:470:69fc:105::a4a) |
2021-12-09 23:34:09 +0100 | inkbottle[m] | (~inkbottle@2001:470:69fc:105::2ff5) |
2021-12-09 23:34:09 +0100 | tomku[m] | (~tomkumozi@2001:470:69fc:105::1:2fcb) |
2021-12-09 23:34:09 +0100 | fcortesi | (~fcortesi@2001:470:69fc:105::f3a9) |
2021-12-09 23:34:10 +0100 | utk | (~utk@2001:470:69fc:105::1:2fe0) |
2021-12-09 23:34:21 +0100 | <hpc> | it's like writing |
2021-12-09 23:34:22 +0100 | thedward[m] | (~thedwardm@2001:470:69fc:105::f79) |
2021-12-09 23:34:22 +0100 | meatfeather[m] | (~meatfeath@2001:470:69fc:105::1:3311) |
2021-12-09 23:34:29 +0100 | <hpc> | % putStrLn("abc") |
2021-12-09 23:34:30 +0100 | <yahb> | hpc: abc |
2021-12-09 23:34:34 +0100 | lambdandy[m] | (~lambdandy@2001:470:69fc:105::1:3045) |
2021-12-09 23:34:34 +0100 | <monochrom> | BTW is it "micromanagement" as one word or is it 2 words "micro management"? |
2021-12-09 23:34:34 +0100 | std_mutex[m] | (~stdmutexm@2001:470:69fc:105::1:4534) |
2021-12-09 23:34:34 +0100 | InternetManaging | (~imjmatrix@2001:470:69fc:105::1:2ea5) |
2021-12-09 23:34:43 +0100 | monochrom | micro-managers his language >:) |
2021-12-09 23:34:45 +0100 | <EvanR> | it's one word |
2021-12-09 23:34:46 +0100 | shiraeeshi[m] | (~shiraeesh@2001:470:69fc:105::1:77) |
2021-12-09 23:34:46 +0100 | boxscape | (~boxscape@user/boxscape) |
2021-12-09 23:34:47 +0100 | <hpc> | or trying to find the lambdas in java, or the types in javascript |
2021-12-09 23:34:51 +0100 | <dsal> | Lisp programmers are macromanagers |
2021-12-09 23:34:56 +0100 | <monochrom> | hahaha |
2021-12-09 23:34:59 +0100 | james[m]12 | (~jamesnina@2001:470:69fc:105::1:4203) |
2021-12-09 23:35:05 +0100 | <hpc> | lol |
2021-12-09 23:35:10 +0100 | <monochrom> | @remember dsal Lisp programmers are macromanagers |
2021-12-09 23:35:10 +0100 | <lambdabot> | It is stored. |
2021-12-09 23:35:11 +0100 | AlainJourez[m] | (~sherekahn@2001:470:69fc:105::1:4a71) |
2021-12-09 23:35:24 +0100 | aveltras[m] | (~aveltrasm@2001:470:69fc:105::3ef9) |
2021-12-09 23:35:25 +0100 | <hpc> | java programmers are SingletonManagers |
2021-12-09 23:35:35 +0100 | <dsal> | A whole factory of them |
2021-12-09 23:36:12 +0100 | dsal | suddenly wonders how many singleton factories there are |
2021-12-09 23:37:00 +0100 | <hpc> | i searched for "singleton factory" and the first result is a stack overflow question, "singleton factories, good or bad?" |
2021-12-09 23:37:09 +0100 | <EvanR> | a singleton factory sounds like a contradiction |
2021-12-09 23:37:33 +0100 | <monochrom> | NFT factory |
2021-12-09 23:38:31 +0100 | infinity0 | (~infinity0@occupy.ecodis.net) (Ping timeout: 268 seconds) |
2021-12-09 23:39:39 +0100 | infinity0 | (~infinity0@occupy.ecodis.net) |
2021-12-09 23:42:29 +0100 | <kennyd> | hpc, I'm pretty sure new java has lambda |
2021-12-09 23:43:13 +0100 | <hpc> | sure, but everyone's going to be on 1.8 for at least the next 10 years :P |
2021-12-09 23:43:16 +0100 | <dsal> | You probably have to give them really long names, though. |
2021-12-09 23:43:25 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:1b4:2cec:47c3:871e) (Ping timeout: 240 seconds) |
2021-12-09 23:43:49 +0100 | deadmarshal | (~deadmarsh@95.38.116.82) |
2021-12-09 23:44:23 +0100 | <kennyd> | not bad! https://www.w3schools.com/java/java_lambda.asp |
2021-12-09 23:44:57 +0100 | <dsal> | OMG. Is Java copying JavaScript now? |
2021-12-09 23:46:21 +0100 | MatrixTravelerbo | (~voyagert2@2001:470:69fc:105::22) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:46:28 +0100 | <Pickchea> | Hello! In the Hindley-Milner type system, the expression `\f.((g (f 0)) (f "foo")) (\x.x)' cannot be typed because `\x.x' would have to be monomorphic in order for the application inference rule to apply. This restriction exists because type inference in polymorphic lambda calculus is not decidable. But I can do that in Haskell and Haskell type inference in Haskell is decidable. So what gives? |
2021-12-09 23:46:33 +0100 | siraben | (~siraben@user/siraben) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:46:37 +0100 | MatrixTravelerbo | (~voyagert2@2001:470:69fc:105::22) |
2021-12-09 23:46:40 +0100 | puffnfresh[m] | (~puffnfres@2001:470:69fc:105::1:22da) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:46:42 +0100 | denbrahe[m] | (~denbrahem@2001:470:69fc:105::19c0) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:46:49 +0100 | kadoban | (~kadoban@user/kadoban) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:46:52 +0100 | siraben | (~siraben@user/siraben) |
2021-12-09 23:46:54 +0100 | peddie | (~peddie@2001:470:69fc:105::25d) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:46:58 +0100 | fgaz | (~fgaz@2001:470:69fc:105::842) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:47:01 +0100 | <hpc> | :t \x -> x |
2021-12-09 23:47:02 +0100 | <lambdabot> | p -> p |
2021-12-09 23:47:04 +0100 | Arathorn | (~arathorn@2001:470:69fc:105::1f) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:47:05 +0100 | puffnfresh[m] | (~puffnfres@2001:470:69fc:105::1:22da) |
2021-12-09 23:47:06 +0100 | wildsebastian | (~wildsebas@2001:470:69fc:105::1:14b1) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:47:10 +0100 | cdsmith | (~cdsmithma@2001:470:69fc:105::284) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:47:16 +0100 | fgaz | (~fgaz@2001:470:69fc:105::842) |
2021-12-09 23:47:17 +0100 | kadoban | (~kadoban@user/kadoban) |
2021-12-09 23:47:20 +0100 | <hpc> | er, somehow i read that as \x -> x x |
2021-12-09 23:47:21 +0100 | <monochrom> | You cannot do \f.((g (f 0)) (f "foo")) (\x.x) in Haskell either. |
2021-12-09 23:47:27 +0100 | Tisoxin | (~ikosit@user/ikosit) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:47:27 +0100 | InternetManaging | (~imjmatrix@2001:470:69fc:105::1:2ea5) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:47:30 +0100 | peddie | (~peddie@2001:470:69fc:105::25d) |
2021-12-09 23:47:31 +0100 | denbrahe[m] | (~denbrahem@2001:470:69fc:105::19c0) |
2021-12-09 23:47:31 +0100 | rednaZ[m] | (~r3dnazmat@2001:470:69fc:105::ba70) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:47:31 +0100 | ongy[m] | (~ongymatri@2001:470:69fc:105::5018) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:47:31 +0100 | cdsmith | (~cdsmithma@2001:470:69fc:105::284) |
2021-12-09 23:47:33 +0100 | Arathorn | (~arathorn@2001:470:69fc:105::1f) |
2021-12-09 23:47:33 +0100 | wildsebastian | (~wildsebas@2001:470:69fc:105::1:14b1) |
2021-12-09 23:47:33 +0100 | amesgen[m] | (~amesgenm]@2001:470:69fc:105::82b) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:47:33 +0100 | ericson2314 | (~ericson23@2001:470:69fc:105::70c) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:47:36 +0100 | the-coot[m] | (~the-cootm@2001:470:69fc:105::95f) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:47:36 +0100 | jophish | (~jophish@2001:470:69fc:105::670) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:47:45 +0100 | unclechu | (~unclechu@2001:470:69fc:105::354) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:47:47 +0100 | hsiktas[m] | (~hsiktasma@2001:470:69fc:105::30d4) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:47:48 +0100 | rednaZ[m] | (~r3dnazmat@2001:470:69fc:105::ba70) |
2021-12-09 23:47:51 +0100 | unrooted | (~unrooted@2001:470:69fc:105::a4a) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:47:56 +0100 | boxscape | (~boxscape@user/boxscape) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:47:59 +0100 | maralorn | (~maralorn@2001:470:69fc:105::251) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:47:59 +0100 | vaibhavsagar[m] | (~vaibhavsa@2001:470:69fc:105::ffe) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:48:00 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2021-12-09 23:48:02 +0100 | hsiktas[m] | (~hsiktasma@2001:470:69fc:105::30d4) |
2021-12-09 23:48:08 +0100 | carmysilna | (~brightly-@2001:470:69fc:105::2190) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:48:09 +0100 | zfnmxt | (~zfnmxtzfn@2001:470:69fc:105::2b32) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:48:14 +0100 | ongy[m] | (~ongymatri@2001:470:69fc:105::5018) |
2021-12-09 23:48:14 +0100 | quantum | (~quantum@user/quantum/x-8556232) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:48:19 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-09 23:48:25 +0100 | <monochrom> | What you can do, and this is right from HM again, is "let f = \x.x in ((g (f 0)) (f "foo"))". So, a "let" construct that polymorphizes "f = \x.x". |
2021-12-09 23:48:29 +0100 | Tisoxin | (~ikosit@user/ikosit) |
2021-12-09 23:48:29 +0100 | Deide | (~deide@user/deide) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:48:29 +0100 | bitonic | (~bitonic@2001:470:69fc:105::1812) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:48:40 +0100 | amesgen[m] | (~amesgenm]@2001:470:69fc:105::82b) |
2021-12-09 23:48:40 +0100 | smichel17[m] | (~smichel17@2001:470:69fc:105::2d32) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:48:43 +0100 | carmysilna | (~brightly-@2001:470:69fc:105::2190) |
2021-12-09 23:48:48 +0100 | <hpc> | wouldn't that work if the lambda was rank-2? |
2021-12-09 23:48:53 +0100 | Artem[m] | (~artemtype@2001:470:69fc:105::75b) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:48:54 +0100 | the-coot[m] | (~the-cootm@2001:470:69fc:105::95f) |
2021-12-09 23:48:54 +0100 | bitonic | (~bitonic@2001:470:69fc:105::1812) |
2021-12-09 23:48:57 +0100 | jchia[m] | (~jchiamatr@2001:470:69fc:105::c50b) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:48:58 +0100 | jmcantrell | (~jmcantrel@user/jmcantrell) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:49:02 +0100 | zwro[m] | (~zwromatri@2001:470:69fc:105::1d4) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:49:03 +0100 | vaibhavsagar[m] | (~vaibhavsa@2001:470:69fc:105::ffe) |
2021-12-09 23:49:07 +0100 | <monochrom> | Yes but you have to hand-write some type annotations. |
2021-12-09 23:49:08 +0100 | zfnmxt | (~zfnmxtzfn@2001:470:69fc:105::2b32) |
2021-12-09 23:49:08 +0100 | jneira[m] | (~jneiramat@2001:470:69fc:105::d729) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:49:08 +0100 | <hpc> | (granted, that's haskell deviating from H-M) |
2021-12-09 23:49:15 +0100 | jmcantrell | (~jmcantrel@user/jmcantrell) |
2021-12-09 23:49:21 +0100 | jchia[m] | (~jchiamatr@2001:470:69fc:105::c50b) |
2021-12-09 23:49:22 +0100 | jophish | (~jophish@2001:470:69fc:105::670) |
2021-12-09 23:49:27 +0100 | surgeon[m] | (~surge9nma@2001:470:69fc:105::f585) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:49:29 +0100 | unrooted | (~unrooted@2001:470:69fc:105::a4a) |
2021-12-09 23:49:29 +0100 | InternetManaging | (~imjmatrix@2001:470:69fc:105::1:2ea5) |
2021-12-09 23:49:36 +0100 | Topik[m] | (~topikmatr@2001:470:69fc:105::a082) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:49:39 +0100 | ericson2314 | (~ericson23@2001:470:69fc:105::70c) |
2021-12-09 23:49:39 +0100 | <monochrom> | Even in Haskell, you have to write at least "\(f :: forall a. a -> a)" |
2021-12-09 23:49:40 +0100 | Christoph[m] | (~hpotsirhc@2001:470:69fc:105::2ff8) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:49:43 +0100 | boxscape | (~boxscape@user/boxscape) |
2021-12-09 23:49:45 +0100 | DemiMarieObenour | (~alwayscur@2001:470:69fc:105::4886) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:49:53 +0100 | unclechu | (~unclechu@2001:470:69fc:105::354) |
2021-12-09 23:49:55 +0100 | jinsun_ | (~jinsun@user/jinsun) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:50:06 +0100 | alex[m] | (~alexchete@2001:470:69fc:105::1:1001) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:50:08 +0100 | maralorn | (~maralorn@2001:470:69fc:105::251) |
2021-12-09 23:50:12 +0100 | quantum | (~quantum@user/quantum/x-8556232) |
2021-12-09 23:50:13 +0100 | Deide | (~deide@user/deide) |
2021-12-09 23:50:16 +0100 | Ollie[m] | (~ollieocha@2001:470:69fc:105::41a5) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:50:17 +0100 | tomku[m] | (~tomkumozi@2001:470:69fc:105::1:2fcb) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:50:28 +0100 | Artem[m] | (~artemtype@2001:470:69fc:105::75b) |
2021-12-09 23:50:34 +0100 | CiaoSen | (~Jura@p200300c9570204002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2021-12-09 23:50:38 +0100 | ManofLetters[m] | (~manoflett@2001:470:69fc:105::3be) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:50:40 +0100 | Christoph[m] | (~hpotsirhc@2001:470:69fc:105::2ff8) |
2021-12-09 23:50:40 +0100 | zwro[m] | (~zwromatri@2001:470:69fc:105::1d4) |
2021-12-09 23:50:53 +0100 | Topik[m] | (~topikmatr@2001:470:69fc:105::a082) |
2021-12-09 23:50:58 +0100 | deadmarshal | (~deadmarsh@95.38.116.82) (Ping timeout: 260 seconds) |
2021-12-09 23:50:59 +0100 | fendor[m] | (~fendormat@2001:470:69fc:105::fcbd) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:51:02 +0100 | SawyerBergeron[m | (~sawyerber@2001:470:69fc:105::3036) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:51:02 +0100 | moats | (~oats@user/oats) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:51:03 +0100 | alexfmpe[m] | (~alexfmpem@2001:470:69fc:105::38ba) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:51:05 +0100 | maerwald[m] | (~maerwaldm@2001:470:69fc:105::1ee) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:51:07 +0100 | jneira[m] | (~jneiramat@2001:470:69fc:105::d729) |
2021-12-09 23:51:07 +0100 | smichel17[m] | (~smichel17@2001:470:69fc:105::2d32) |
2021-12-09 23:51:07 +0100 | schuelermine[m] | (~schuelerm@user/schuelermine) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:51:19 +0100 | SawyerBergeron[m | (~sawyerber@2001:470:69fc:105::3036) |
2021-12-09 23:51:53 +0100 | geekosaur | wonders how long before they do something about that "Client limit exceeded" error on the bridge |
2021-12-09 23:52:01 +0100 | <geekosaur> | 20000 is clearly too small |
2021-12-09 23:52:08 +0100 | utk | (~utk@2001:470:69fc:105::1:2fe0) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:52:08 +0100 | moats | (~oats@user/oats) |
2021-12-09 23:52:10 +0100 | marinelli[m] | (~marinelli@2001:470:69fc:105::2d8) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:52:22 +0100 | Ollie[m] | (~ollieocha@2001:470:69fc:105::41a5) |
2021-12-09 23:52:22 +0100 | <EvanR> | oof |
2021-12-09 23:52:31 +0100 | Magnus[m] | (~magthetch@2001:470:69fc:105::d1a7) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:52:36 +0100 | marinelli[m] | (~marinelli@2001:470:69fc:105::2d8) |
2021-12-09 23:52:36 +0100 | schuelermine[m] | (~schuelerm@user/schuelermine) |
2021-12-09 23:52:36 +0100 | alexfmpe[m] | (~alexfmpem@2001:470:69fc:105::38ba) |
2021-12-09 23:52:50 +0100 | Magnus[m] | (~magthetch@2001:470:69fc:105::d1a7) |
2021-12-09 23:53:21 +0100 | <hpc> | wouldn't they have at least matched the limit they set on freenode? |
2021-12-09 23:53:56 +0100 | <geekosaur> | presumably they did. but I gather a lot of folks switched to matrix to get a more modern ux |
2021-12-09 23:54:24 +0100 | fcortesi | (~fcortesi@2001:470:69fc:105::f3a9) (Quit: Client limit exceeded: 20000) |
2021-12-09 23:54:32 +0100 | <geekosaur> | for example there was a fair amount of talk about #ghc switching to matrix, and discussing other folks who were doing so |
2021-12-09 23:54:47 +0100 | <hpc> | ah |
2021-12-09 23:54:51 +0100 | <perro> | I've never understsood matrix dev |
2021-12-09 23:55:02 +0100 | <Pickchea> | monochrom, right, I actually can't do that in Haskell, I thought wrong! |
2021-12-09 23:55:07 +0100 | <perro> | it's just never seemed consistent to me |
2021-12-09 23:55:46 +0100 | <mniip> | (not on our side btw) |
2021-12-09 23:55:57 +0100 | <dsal> | I've wanted to try matrix, but it seems like I either have to do a tremendous amount of work with a static IP address and stuff, or just like, use a different central service. |
2021-12-09 23:55:59 +0100 | dsal | misses xmpp |
2021-12-09 23:56:26 +0100 | <perro> | that's what I don't get. xmpp existed if you wanted to make a better system work off that |
2021-12-09 23:56:30 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-12-09 23:56:37 +0100 | <perro> | the bikeshedding ti has taken to get to where it is is like wow |
2021-12-09 23:56:42 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-12-09 23:57:10 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-09 23:57:14 +0100 | <perro> | it would be one thing if it was actually noticably superior and simpler but.... /me hushes |
2021-12-09 23:58:06 +0100 | <dsal> | https://xkcd.com/927/ |
2021-12-09 23:58:54 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-12-09 23:59:38 +0100 | <geekosaur> | matrix fairly obviously wanted to be a better irc, not a different paradigm |
2021-12-09 23:59:50 +0100 | <geekosaur> | although I guess this is -offtopic fodder |