Logs on 2021-12-22 (liberachat/#haskell)
| 00:00:37 | × | chomwitt quits (~chomwitt@94.66.63.187) (Ping timeout: 240 seconds) |
| 00:01:23 | × | Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 268 seconds) |
| 00:01:42 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 00:03:20 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
| 00:08:29 | × | hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection) |
| 00:08:57 | × | slaydr quits (~seriley@45.131.194.254) (Quit: leaving) |
| 00:09:43 | → | Guest4242 joins (~Guest4242@78.198.4.122) |
| 00:11:01 | → | hololeap joins (~hololeap@user/hololeap) |
| 00:11:15 | × | Morrow quits (~quassel@bzq-110-168-31-106.red.bezeqint.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 00:14:49 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 00:15:01 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 00:15:01 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 00:15:01 | → | wroathe joins (~wroathe@user/wroathe) |
| 00:16:11 | <EvanR> | is there something weird about how defining equations sometimes require this idea of "what order do you try them in" to make sense |
| 00:16:12 | × | euandreh quits (~euandreh@2804:14c:33:9fe5:1bce:ba7c:3f01:c9f3) (Ping timeout: 268 seconds) |
| 00:16:28 | <EvanR> | other times they don't |
| 00:16:57 | <EvanR> | in math they would call bullshit on such definitions |
| 00:17:26 | <geekosaur> | patternmatching can't be smart like humans, it has to rely on humans to order things |
| 00:19:12 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 256 seconds) |
| 00:24:03 | <yin> | EvanR: how long did it take you to calc part2 ? |
| 00:24:18 | <EvanR> | what day |
| 00:24:30 | <yin> | the pathfinding day |
| 00:24:33 | <yin> | huh.. |
| 00:24:35 | <yin> | 15 |
| 00:24:50 | <EvanR> | it took a second or two |
| 00:25:12 | <yin> | well i'm doing something wrong then |
| 00:26:06 | <EvanR> | oh part 2, it took a little longer, iirc |
| 00:26:30 | <EvanR> | not so long that I did this \o/ cancelled it and looked for some other solution |
| 00:26:39 | <yin> | tests ok for both parts, part1 is fast but part2 is going on 7 minutes and counting... i tried both libraries aStar and dijkstra |
| 00:26:42 | <EvanR> | which doesn't take long |
| 00:27:01 | <EvanR> | when stuff may take a while I make sure to put print out of progress somehow |
| 00:27:42 | <EvanR> | the performance of astar apparently depends on the quality of the h function |
| 00:27:50 | <yin> | tbf i'm on 32bit 1G Ram |
| 00:29:56 | <dsal> | My day 15 various timing things: https://www.irccloud.com/pastebin/SFN8Et1K/day15.txt |
| 00:30:45 | <dsal> | c is A* Data.Graph.AStar where b is my own Dijkstra implementation. |
| 00:31:29 | <dsal> | (These tests are concurrent, so the timing interfere) |
| 00:31:37 | × | jkaye quits (~jkaye@2601:281:8300:7530:e0f7:dc28:dd0d:f0d5) (Ping timeout: 240 seconds) |
| 00:32:36 | <dsal> | part 2 spoiler: part2 = part1b . embiggen . gridToMap |
| 00:33:28 | <dsal> | I don't even remember this one. I should sleep more. |
| 00:33:32 | <EvanR> | spoiler: print =<< solve =<< getData |
| 00:36:43 | <monochrom> | Haha that's like Feynman's method written in Haskell. |
| 00:36:48 | <dsal> | haha |
| 00:37:05 | <monochrom> | 1. Read the input carefully. 2. Compute very hard. 3. Print the output. |
| 00:37:16 | <hpc> | i have that on my whiteboard |
| 00:37:25 | <zero> | i suffer from aoc amnesia, where my memory resets every 2 stars |
| 00:37:37 | <dsal> | If I switch from lazy map to strict map, it goes from almost instantly to just hangs. |
| 00:37:38 | <hpc> | along with "every impossible problem has an impossible cause" and "asking for help is the original proof of work protocol" |
| 00:37:59 | <dsal> | zero: I keep seeing people say, "This is exactly probably X from year Y" and I don't even remember there being a year Y. |
| 00:38:27 | <monochrom> | Yeah if you use Map for lazy person's dynamic programming, it is imperative to use lazy Map.insert. |
| 00:38:57 | <zero> | dsal: that might be cause for concern |
| 00:39:15 | <dsal> | I'm just using Map.fromList with Map.! inside a list comprehension. |
| 00:39:21 | <dsal> | (for The Embiggening) |
| 00:39:55 | <monochrom> | Yeah, that. |
| 00:39:59 | <dsal> | I've wasted time trying to get lazy maps to do my bidding on a couple of these problems where there were loops. |
| 00:40:02 | <zero> | my embiggening: unions [ S.map (\((x,y),c) -> ((x + side * x',y + side * y'),iterate suc c !! (x'+y'))) g | let ss = [0..4] , x' <- ss , y' <- ss ] |
| 00:40:13 | <monochrom> | byorgey really likes to promote that simple trick. |
| 00:40:32 | <dsal> | zero: Mine's way more lines than yours. I wrote a minivan. |
| 00:41:18 | → | yauhsien joins (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) |
| 00:41:18 | <zero> | the trick is to own one wide screen |
| 00:46:24 | × | yauhsien quits (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
| 00:46:37 | × | ksqsf quits (~user@134.209.106.31) (Ping timeout: 240 seconds) |
| 00:49:58 | → | Guest|47 joins (~Guest|47@c-73-221-44-172.hsd1.wa.comcast.net) |
| 00:53:32 | × | pfurla quits (~pfurla@2804:14d:5c5a:9a78:dc7f:5982:796e:a1e5) (Quit: gone to sleep. ZZZzzz…) |
| 00:54:25 | <EvanR> | One Wide Trick |
| 00:54:47 | <EvanR> | your monitor will hate it |
| 00:57:15 | <zero> | i'm not too ashamed of my day 14 solution (protein insertion) |
| 00:57:17 | <zero> | https://paste.jrvieira.com/1640134606624 |
| 00:58:45 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 01:00:20 | → | pfurla joins (~pfurla@189.60.63.81) |
| 01:04:04 | → | euandreh joins (~euandreh@2804:14c:33:9fe5:157f:fad:702e:d7a) |
| 01:10:17 | → | ksqsf joins (~user@134.209.106.31) |
| 01:13:13 | <EvanR> | I feel like I'm playing clue or mastermind reading this pattern matching code |
| 01:13:37 | <EvanR> | https://paste.tomsmeding.com/Bcx0Usru after the first line, c is not Air... after the second d is not Air... |
| 01:15:18 | × | ksqsf quits (~user@134.209.106.31) (Ping timeout: 256 seconds) |
| 01:16:30 | <EvanR> | I hope I'm accurately appreciating how much if then statements it's not |
| 01:18:32 | → | mk-fg joins (~mk-fg@46.48.96.28) |
| 01:18:59 | → | Axma99203 joins (~Axman6@user/axman6) |
| 01:19:37 | ← | mk-fg parts (~mk-fg@46.48.96.28) () |
| 01:21:14 | → | jkaye joins (~jkaye@2601:281:8300:7530:6da5:b4a4:e0e4:a76e) |
| 01:21:16 | × | Axman6 quits (~Axman6@user/axman6) (Ping timeout: 260 seconds) |
| 01:22:12 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 01:22:14 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 01:23:27 | <geekosaur> | Guest|47, have you tried loading the URL curl can't open with a browser and saving it to a file? |
| 01:27:45 | × | waleee quits (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 250 seconds) |
| 01:28:11 | → | waleee joins (~waleee@h-98-128-229-110.NA.cust.bahnhof.se) |
| 01:30:23 | <Guest|47> | geekosaur, I had updates on my OS turn off. |
| 01:30:24 | <Guest|47> | I just finished: |
| 01:30:25 | <Guest|47> | updating OS |
| 01:30:25 | <Guest|47> | installing haskell package with curl |
| 01:30:38 | <Guest|47> | ghcup tui does nothing in bash |
| 01:30:53 | <geekosaur> | did you add it to your PATH? |
| 01:31:10 | <Guest|47> | and running ghci still shows version 8.4.2 |
| 01:31:21 | <geekosaur> | export PATH=$HOME/.ghcup/bin:$PATH |
| 01:31:25 | × | doyougnu quits (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
| 01:31:31 | <Guest|47> | I don't quite understand your question... |
| 01:32:28 | <geekosaur> | run the command I just gave you, in bash. the one starting with "export" |
| 01:32:31 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 01:32:31 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 01:32:37 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 01:32:55 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 01:32:56 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 01:33:38 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 01:33:38 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 01:33:52 | <Guest|47> | okay that worked |
| 01:34:40 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 01:34:40 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 01:34:44 | <geekosaur> | then you'll want to edit ~/.bash_profile to add that command to it, so future shells you open know about ghcup |
| 01:36:59 | × | jeetelongname quits (~jeet@88-111-159-26.dynamic.dsl.as9105.com) (Ping timeout: 268 seconds) |
| 01:38:37 | × | incertia quits (~incertia@d4-50-26-103.nap.wideopenwest.com) (Ping timeout: 240 seconds) |
| 01:38:37 | <Guest|47> | >> ~/.bash_profile |
| 01:38:37 | <Guest|47> | -bash: /Users/mainUser/.bash_profile: Permission denied |
| 01:39:28 | <geekosaur> | it's not generally runnable. you want to *edit* it |
| 01:39:56 | → | incertia joins (~incertia@d4-50-26-103.nap.wideopenwest.com) |
| 01:39:59 | → | ksqsf joins (~user@134.209.106.31) |
| 01:40:11 | <Guest|47> | okay i'll give it a go |
| 01:40:19 | <yin> | how do i tell ghc what i want my literal types to default to? |
| 01:41:09 | <yin> | `default Num Int` ? |
| 01:41:50 | <geekosaur> | `default (Int, Double)` or similar |
| 01:43:40 | <zero> | what does it mean? |
| 01:43:48 | <geekosaur> | Guest|47, open -e ~/.bash_profile |
| 01:44:19 | <Guest|47> | then paste, |
| 01:44:19 | <Guest|47> | export PATH=$HOME/.ghcup/bin:$PATH |
| 01:44:20 | <Guest|47> | into the file? |
| 01:44:25 | <geekosaur> | yes |
| 01:44:37 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:84c9:5514:9bd3:b2f5) (Remote host closed the connection) |
| 01:44:58 | <geekosaur> | zero, it means, for any typeclass instance it has not yet managed to resolve to a type, first try Int, then Double |
| 01:45:20 | × | ksqsf quits (~user@134.209.106.31) (Ping timeout: 256 seconds) |
| 01:45:29 | <geekosaur> | with various ghc extensions this list gets extended |
| 01:47:51 | <geekosaur> | https://www.haskell.org/onlinereport/haskell2010/haskellch4.html#x10-790004.3.4 discusses the default declaration |
| 01:48:18 | × | angerman quits (sid209936@id-209936.ilkley.irccloud.com) () |
| 01:48:51 | <dsal> | I usually just tell it what I want, but I can see a few places that might help. |
| 01:51:06 | × | burnsidesLlama quits (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Remote host closed the connection) |
| 01:51:29 | <Guest|47> | geekosaur, can you recommend resource for better understanding the PATH business you led me through? How did you even come up with |
| 01:51:29 | <Guest|47> | "export PATH=$HOME/.ghcup/bin:$PATH"? was it a lucky guess? |
| 01:52:05 | <geekosaur> | I've been using systems like this for, uh, over 35 years :) and I know where ghcup installs itself |
| 01:52:14 | × | danso quits (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 260 seconds) |
| 01:52:19 | × | Tuplanolla quits (~Tuplanoll@91-159-68-169.elisa-laajakaista.fi) (Quit: Leaving.) |
| 01:52:51 | <geekosaur> | https://www.cs.purdue.edu/homes/bb/cs348/www-S08/unix_path.html is one resource |
| 01:53:20 | × | ph88 quits (~ph88@ip5f5af068.dynamic.kabel-deutschland.de) (Quit: Leaving) |
| 01:53:53 | <geekosaur> | mm, actually I'm up to 40 years now |
| 01:54:11 | <zero> | thanks! dsal i just want various list of strings (show <$> [n..m]) and it get's annoying |
| 01:54:12 | <Guest|47> | Okay, experience is sensible reason. thanks for the extra resource though |
| 01:56:08 | <pfurla-matrix> | geekosaur: I got my first copy of Linux in 40 floppy disks in '95 |
| 01:57:02 | <zero> | i copied the binary from a radio transmission in morse code |
| 01:57:06 | <geekosaur> | so did I. I started out on a dialup TRS-80 Model 16 running Xenix though |
| 01:58:18 | <EvanR> | 40 years ... dang so since the 60s |
| 01:58:20 | <sm> | Commodore PET and Sinclair ZX80 user checking in! |
| 01:58:33 | <zero> | EvanR: right? |
| 01:58:35 | <EvanR> | lol |
| 01:58:40 | × | shailangsa_ quits (~shailangs@host109-159-108-207.range109-159.btcentralplus.com) () |
| 01:59:40 | <geekosaur> | mm? |
| 01:59:44 | <geekosaur> | > 2021 - 1981 |
| 01:59:45 | <lambdabot> | 40 |
| 02:00:01 | <EvanR> | forgot it was the future for a second |
| 02:00:09 | <geekosaur> | 60s would be when I was born :) |
| 02:00:19 | <EvanR> | :tron: |
| 02:00:31 | → | ksqsf joins (~user@134.209.106.31) |
| 02:03:34 | <EvanR> | I also regularly think of the 80s when anyone says "20 years ago" |
| 02:03:44 | <zero> | > let _ !- y = 2000 - y in 2021 - 40 |
| 02:03:46 | <lambdabot> | 1981 |
| 02:04:00 | <zero> | > let _ !- y = 2000 - y in 2021 !- 40 |
| 02:04:02 | <lambdabot> | 1960 |
| 02:04:59 | <EvanR> | what in the |
| 02:05:07 | <EvanR> | math |
| 02:05:23 | <dsal> | Math and time were generally easier around 2000 |
| 02:05:35 | <zero> | no no no |
| 02:05:38 | <zero> | Y2k |
| 02:05:44 | × | ksqsf quits (~user@134.209.106.31) (Ping timeout: 256 seconds) |
| 02:06:07 | <dsal> | Yeah, that had a bit of an effect, I guess |
| 02:06:20 | <zero> | people arguing about when was it *really* the turn of the millennium |
| 02:06:33 | <zero> | was there year 0 ? |
| 02:06:42 | <zero> | did it really matter? |
| 02:06:51 | <zero> | all the calendar patches |
| 02:07:19 | <zero> | then somehow a single second was added to a random year |
| 02:07:20 | <EvanR> | lambdabot doesn't have Data.Time :( |
| 02:07:49 | <zero> | like wtf? i miss the 90s |
| 02:07:53 | <zero> | simpler times |
| 02:07:55 | <EvanR> | said no one ever |
| 02:08:10 | → | ksqsf joins (~user@134.209.106.31) |
| 02:08:43 | <zero> | anyways it's now T-what? to Metaverse? |
| 02:09:15 | <zero> | maybe we should start cunting backwards |
| 02:09:34 | <zero> | counting |
| 02:09:48 | <zero> | damned 'o' key.. |
| 02:09:53 | <zero> | i should shut up |
| 02:10:08 | <Guest|47> | Do the creators of haskell hang out here? |
| 02:10:26 | <Guest|47> | vague question |
| 02:10:48 | <geekosaur> | I don't think any of them are on IRC |
| 02:11:08 | <Guest|47> | Sounds like something a creator would say... |
| 02:11:31 | <yin> | lol what's happening today? :D |
| 02:11:44 | geekosaur | didn't discover haskell until 2006 |
| 02:12:26 | <zero> | > 2021 - 2006 -- just so you know |
| 02:12:27 | <lambdabot> | 15 |
| 02:12:37 | × | ksqsf quits (~user@134.209.106.31) (Ping timeout: 240 seconds) |
| 02:12:37 | × | mvk quits (~mvk@2607:fea8:5cdd:f000::917a) (Ping timeout: 240 seconds) |
| 02:12:59 | <EvanR> | like 20 years ago |
| 02:13:16 | <int-e> | 20 years ago, 2006 was in the far future |
| 02:14:34 | Guest|47 | is now known as AlpacaPrince |
| 02:15:01 | <int-e> | . o O ( "far future" = "after the next general election" ) |
| 02:15:37 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 240 seconds) |
| 02:16:04 | dsal | sings “in the year two thousand…” |
| 02:16:29 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 02:18:49 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 02:19:36 | → | euouae joins (~euouae@user/euouae) |
| 02:20:39 | <yin> | dsal: read my mind. love how he kept doing it years after |
| 02:21:07 | <dsal> | yin: ha, yeah, that just made it better |
| 02:22:17 | → | mvk joins (~mvk@2607:fea8:5cdd:f000::917a) |
| 02:22:42 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:84c9:5514:9bd3:b2f5) |
| 02:24:57 | × | jkaye quits (~jkaye@2601:281:8300:7530:6da5:b4a4:e0e4:a76e) (Ping timeout: 240 seconds) |
| 02:26:25 | → | burnsidesLlama joins (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
| 02:29:42 | <AlpacaPrince> | upon updating haskell, the final prompt says: |
| 02:29:42 | <AlpacaPrince> | "If you are new to Haskell, check out https://www.haskell.org/ghcup/install/#first-steps" |
| 02:30:06 | <AlpacaPrince> | then: |
| 02:30:07 | <dsal> | AlpacaPrince: What does "updating haskell" mean? |
| 02:30:20 | <AlpacaPrince> | This will generate the following files: |
| 02:30:21 | <AlpacaPrince> | tree |
| 02:30:21 | <AlpacaPrince> | . |
| 02:30:22 | <AlpacaPrince> | ├── app |
| 02:30:22 | <AlpacaPrince> | │ └── Main.hs |
| 02:30:23 | <AlpacaPrince> | ├── CHANGELOG.md |
| 02:30:23 | <AlpacaPrince> | └── myfirstapp.cabal |
| 02:30:24 | <AlpacaPrince> | app/Main.hs is where your package’s code lives. |
| 02:30:42 | <AlpacaPrince> | by updating haskell I mean: |
| 02:30:43 | <AlpacaPrince> | curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh |
| 02:31:06 | <dsal> | You mean installing ghcup? |
| 02:31:11 | <zero> | ha! |
| 02:31:20 | <zero> | AlpacaPrince: run ghcup tui |
| 02:31:51 | × | burnsidesLlama quits (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Ping timeout: 268 seconds) |
| 02:31:52 | <AlpacaPrince> | Yes, only I already had it installed, so it felt more like updating to me- though computers don't share my sentiment of feelings. |
| 02:32:00 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 276 seconds) |
| 02:32:21 | <AlpacaPrince> | The point I'm getting at, is that my tree lacks app >> main.hs |
| 02:32:24 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 02:32:33 | <zero> | AlpacaPrince: it can be confusing having multiple installations of ghc or whatever in different places |
| 02:33:11 | <AlpacaPrince> | ...after running : |
| 02:33:11 | <AlpacaPrince> | cabal init -n |
| 02:33:12 | <AlpacaPrince> | ...that is |
| 02:33:18 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds) |
| 02:34:03 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 02:35:17 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
| 02:36:33 | <euouae> | Are you saying that `cabal init` doesn't generate an app/Main.hs for you? |
| 02:36:58 | → | ksqsf joins (~user@134.209.106.31) |
| 02:37:02 | <AlpacaPrince> | Yes. |
| 02:37:29 | <EvanR> | I think I've had that happen |
| 02:37:29 | <zero> | what's the -n flag? |
| 02:37:50 | <euouae> | zero just use `cabal init --help` and see for yourself |
| 02:38:10 | <AlpacaPrince> | Also, I'm uncertain why ghcup prompts me to use `cabal init` when it is an overly complicated way to just save a text.hs and run that instead? |
| 02:38:12 | <euouae> | AlpacaPrince can you pastebin an example invocation? `mkdir foo; cd foo; cabal init; ls *` |
| 02:38:38 | → | shailangsa joins (~shailangs@host109-159-108-207.range109-159.btcentralplus.com) |
| 02:38:45 | <zero> | oops i was looking in the wrong place |
| 02:38:54 | <euouae> | Use https://paste.tomsmeding.com to paste |
| 02:42:00 | × | ksqsf quits (~user@134.209.106.31) (Ping timeout: 256 seconds) |
| 02:42:36 | <AlpacaPrince> | euouae what do you want me to paste into that? |
| 02:43:02 | → | yauhsien joins (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) |
| 02:43:03 | <euouae> | AlpacaPrince the output of the commands I wrote above |
| 02:43:52 | → | ksqsf joins (~user@134.209.106.31) |
| 02:47:10 | <AlpacaPrince> | it says that foo is already in use by another package on Hackage |
| 02:47:29 | <euouae> | Please paste the output of the commands in the link |
| 02:47:47 | × | yauhsien quits (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) (Ping timeout: 252 seconds) |
| 02:48:07 | → | fef joins (~thedawn@user/thedawn) |
| 02:48:25 | → | khumba joins (~khumba@user/khumba) |
| 02:49:17 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 240 seconds) |
| 02:50:49 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 02:50:51 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 276 seconds) |
| 02:51:00 | → | danso joins (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) |
| 02:52:05 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:52:10 | <AlpacaPrince> | I did |
| 02:52:25 | <euouae> | and now you can share the generated link here |
| 02:53:22 | <AlpacaPrince> | https://paste.tomsmeding.com/DceZ4mht/raw/1 |
| 02:53:54 | <euouae> | That's not the command I told you to run |
| 02:53:54 | × | waleee quits (~waleee@h-98-128-229-110.NA.cust.bahnhof.se) (Ping timeout: 256 seconds) |
| 02:54:46 | <AlpacaPrince> | euouae 18:38:13 |
| 02:54:47 | <AlpacaPrince> | AlpacaPrince can you pastebin an example invocation? `mkdir foo; cd foo; cabal init; ls *` |
| 02:55:02 | × | xff0x quits (~xff0x@port-92-195-26-37.dynamic.as20676.net) (Ping timeout: 256 seconds) |
| 02:55:04 | <euouae> | There is no need to repeat messages on IRC |
| 02:55:21 | <AlpacaPrince> | good point. |
| 02:56:20 | <AlpacaPrince> | this command?cabal init --help |
| 02:56:38 | <euouae> | You used the -n flag and I did not include ti |
| 02:56:44 | → | xff0x joins (~xff0x@2001:1a81:5290:1c00:7707:2a36:9641:195d) |
| 02:57:19 | <euouae> | In any case, you may delete the `foo` directory and instead do `mkdir foo665; cd foo665; cabal init; ls *` and paste the results as before in the website linked |
| 02:58:54 | <AlpacaPrince> | oh I see, I tried that too (without -n) and got: |
| 02:58:55 | <AlpacaPrince> | https://paste.tomsmeding.com/tnaJZ5pW/raw/1 |
| 02:59:46 | <int-e> | pfffffffft, read the error |
| 03:01:51 | <AlpacaPrince> | Using cabal init seems like it over complicates learning to write haskell code. I don't want to blindly brush `cabal init` off as being "useless to me" before I know for sure that it is. |
| 03:01:51 | <AlpacaPrince> | Basically I'm just going through "learn you a haskell for great good" and for the first four chapters I was just making new .hs files for each chapter to practice code for easy execution, now I'm prompted by haskell (after reinstallation, in hopes to be able to download Euterpea and HSoM libraries) to try this `cabal init' method that seems |
| 03:01:52 | <AlpacaPrince> | overly complicated with no benefit. Should I just continue with my clunky method of making .hs files and practicing haskell that way, or is cabal init something I should be using now? |
| 03:02:07 | <int-e> | oh, it's just a warning |
| 03:02:58 | <int-e> | what's the version of that cabal-install? |
| 03:03:13 | <monochrom> | Most favourite toy Haskell package name: foo. Most favourite toy Unix program name: test. |
| 03:04:08 | <euouae> | AlpacaPrince if you plan to share a program with the world at some point, you need to do it through a distribution channel; those channels in the programming world are typically utilizing package managers and servers that packages may be uploaded/downloaded to/from. |
| 03:05:22 | <euouae> | AlpacaPrince `Cabal is a system for building and packaging Haskell libraries and programs.` (from haskell.org/cabal) and https://hackage.haskell.org/ is the server where packages may be downloaded from and uploaded to |
| 03:06:09 | <euouae> | AlpacaPrince the fun of learning programming doesn't compare to the "fun" of learning how to share your code, and is obviously a more advanced topic. So you can be the judge of when it is necessary to learn these things. |
| 03:06:38 | <int-e> | (Works for me with cabal-install 3.6.2.0 on Linux.) |
| 03:07:38 | <AlpacaPrince> | >> cabal -V |
| 03:07:39 | <AlpacaPrince> | cabal-install version 3.6.2.0 |
| 03:07:39 | <AlpacaPrince> | compiled using version 3.6.2.0 of the Cabal library |
| 03:09:47 | <AlpacaPrince> | thanks euouae, that makes it clear that I currently don't need the cabal service (despite it not making the app directory and main.hs like the main tutorial said it should). |
| 03:10:07 | <euouae> | It's because you're using a name that is already in use |
| 03:10:35 | <euouae> | but since you don't need cabal, that's good. |
| 03:10:58 | <int-e> | Ah, no, it doesn't work for me. I suck at testing, evidently. |
| 03:11:24 | <int-e> | So that name clash is a fatal error. |
| 03:12:02 | <int-e> | well, that is ridiculous |
| 03:12:31 | <AlpacaPrince> | hmm, yeah I don't need it so I don't want to occupy available public names for the sake of practice.... but maybe now is the time to acquire AlpacaPrince while it's available... |
| 03:13:30 | <AlpacaPrince> | (...dry humor) |
| 03:13:51 | <int-e> | the thing is, it's not really difficult to rename a package after the fact. a bit annoying (you have to both rename and edit the .cabal file, and possibly other packages if you depend on it yourself) |
| 03:13:56 | <euouae> | int-e My main beef with languages and package managers is that there's no security framework in place for updates |
| 03:14:29 | <euouae> | so hijacking an account and pushing malware is possible in python, haskell, rust etc |
| 03:14:53 | <AlpacaPrince> | you mean false updates could happen? |
| 03:14:56 | <int-e> | Oh, I'm missing that the hackage package will conflict with build planning. |
| 03:14:58 | → | yauhsien joins (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) |
| 03:15:38 | <monochrom> | Yeah, suppose you depend on xxx, and xxx depends on foo. Um, which foo again? :) |
| 03:15:50 | <euouae> | AlpacaPrince If you're interested in the topic, see https://theupdateframework.io/ |
| 03:16:27 | <int-e> | So you wouldn't be able to depend on it anyway. Now who was the evil person to upload a package with that name... dons? :-/ |
| 03:16:37 | <euouae> | I'm somewhat interested but I'm just learning about cryptography and related things, so I don't know how much I can involve myself in this stuff. But it's notable that the above languages lack mechanisms to ensure the esecurity of the users |
| 03:16:56 | <int-e> | (it's funny that uploader != author here) |
| 03:17:12 | <monochrom> | Perhaps someone should create https://hackage.haskell.org/package/test , too >:) |
| 03:18:03 | <euouae> | cybersquatting is fun and games until you can't compile your package |
| 03:18:03 | <int-e> | and bar and fred and barney and xyzzy and frotz and... uh... I forget what others |
| 03:18:13 | <euouae> | quux |
| 03:18:40 | <monochrom> | Paper soccer. Interesting. |
| 03:18:46 | <AlpacaPrince> | so in layman terms, is cabal a pipeline for sharing and updating programs to publicly executable locations? |
| 03:18:56 | Axma99203 | is now known as Axman6 |
| 03:19:24 | × | td_ quits (~td@muedsl-82-207-238-131.citykom.de) (Ping timeout: 256 seconds) |
| 03:20:00 | <euouae> | AlpacaPrince they're called software repositories and they contain various peoples' programming projects. There's some automation for quickly downloading them and so on |
| 03:20:56 | → | td_ joins (~td@94.134.91.68) |
| 03:20:57 | × | coot quits (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot) |
| 03:21:22 | <monochrom> | No, Hackage is the software repository. |
| 03:21:47 | <int-e> | Ah, http://www.catb.org/jargon/html/M/metasyntactic-variable.html looks like a proper late 90s website. |
| 03:25:20 | <int-e> | Oh I didn't remember the jab at Python in there :) |
| 03:26:57 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 240 seconds) |
| 03:28:00 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 03:28:00 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 03:28:00 | → | wroathe joins (~wroathe@user/wroathe) |
| 03:28:33 | × | fef quits (~thedawn@user/thedawn) (Ping timeout: 276 seconds) |
| 03:28:38 | → | waleee joins (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) |
| 03:29:38 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 03:32:13 | → | chozorho joins (~chozorho@2601:146:300:c30::d1a0) |
| 03:32:32 | <AlpacaPrince> | do you know how to exit this situation: |
| 03:32:32 | <AlpacaPrince> | >> cd "folder name with spaces --forgot to add closing parentheses |
| 03:32:33 | <AlpacaPrince> | > -- now we are in nebulous single > territory... |
| 03:32:48 | <AlpacaPrince> | without closing terminal... |
| 03:33:02 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
| 03:33:03 | → | lavaman joins (~lavaman@98.38.249.169) |
| 03:33:04 | <EvanR> | you could try control C |
| 03:33:22 | <EvanR> | or Escape |
| 03:33:22 | <AlpacaPrince> | That is the solution, thank you |
| 03:33:41 | <AlpacaPrince> | what is the point of: |
| 03:33:41 | <AlpacaPrince> | > |
| 03:34:00 | <chozorho> | It probably indicates that they're quoting somebody else's post |
| 03:34:09 | <chozorho> | wait |
| 03:34:14 | <chozorho> | maybe not |
| 03:34:18 | <chozorho> | forgive me, I'm new |
| 03:34:19 | <AlpacaPrince> | I mean inside of bash |
| 03:34:23 | <dsal> | > print "It's OK" |
| 03:34:24 | <lambdabot> | <IO ()> |
| 03:34:26 | × | whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 03:34:29 | <chozorho> | ohh that's redirected output |
| 03:34:44 | <chozorho> | like... if instead of outputting stuff to stdout, you can redirect it to a file |
| 03:34:56 | <euouae> | bash is off topic and your answer is wrong chozorho |
| 03:34:58 | <AlpacaPrince> | is <|O ()> and emoji? |
| 03:35:00 | <chozorho> | you can also use `tee` to - |
| 03:35:02 | <AlpacaPrince> | an* |
| 03:35:28 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 03:35:45 | <chozorho> | erm... I don't see how it's wrong but ok |
| 03:35:48 | <EvanR> | the shell... big topic |
| 03:36:20 | <monochrom> | No one reads the question, eh? |
| 03:37:07 | <monochrom> | In bash, the prompt > means bash thinks your previous line didn't finish your command, it now invites you to go on. |
| 03:37:08 | <EvanR> | AlpacaPrince, does your font really make <IO ()> look like <|O ()> |
| 03:37:10 | <euouae> | chozorho well it's wrong because the original issue was about multiline input, but it's also wrong that you participate in offtopic discussion... the original issue simply should not had been brought up here and the proper response is to point out that it is off topic |
| 03:37:32 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
| 03:37:54 | <EvanR> | shit the topic police showed up, run |
| 03:38:10 | ← | euouae parts (~euouae@user/euouae) ( ) |
| 03:39:31 | <AlpacaPrince> | Monochrom that is enlightening, thank you. I'll be more cognizant of topic. |
| 03:40:03 | <AlpacaPrince> | EvanR, yes. |
| 03:40:37 | × | jespada quits (~jespada@87.74.33.157) (Ping timeout: 240 seconds) |
| 03:40:37 | <EvanR> | you should fix your font, since I in IO is a capital I |
| 03:40:38 | <monochrom> | No worries, it was a fair question in the midst of using the "cd sakldjf; cabal init" idiom. |
| 03:40:41 | <EvanR> | um... Eye |
| 03:40:48 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 03:40:48 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 03:40:48 | → | wroathe joins (~wroathe@user/wroathe) |
| 03:40:56 | → | fef joins (~thedawn@user/thedawn) |
| 03:41:30 | × | yauhsien quits (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
| 03:42:34 | <AlpacaPrince> | Well it is the brow of the emoji, but I now get your point. capital i, not a vertical bar. |
| 03:43:06 | → | jespada joins (~jespada@87.74.33.157) |
| 03:43:06 | <EvanR> | also personally I didn't see any emoji |
| 03:43:28 | <EvanR> | unlike this one 😎 |
| 03:43:52 | <EvanR> | some irc client friction going on I presume |
| 03:45:51 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
| 03:53:50 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 03:56:08 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 03:56:09 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 03:56:20 | × | xff0x quits (~xff0x@2001:1a81:5290:1c00:7707:2a36:9641:195d) (Ping timeout: 268 seconds) |
| 03:56:50 | → | xff0x joins (~xff0x@2001:1a81:5290:1c00:7789:5df4:4cdc:7899) |
| 03:58:53 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 03:58:53 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 04:01:32 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 240 seconds) |
| 04:04:10 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 04:05:06 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 04:05:06 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 04:14:56 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
| 04:17:19 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 04:17:57 | → | notzmv joins (~zmv@user/notzmv) |
| 04:21:03 | → | jinsun__ joins (~quassel@user/jinsun) |
| 04:21:20 | × | jinsun__ quits (~quassel@user/jinsun) (Client Quit) |
| 04:21:37 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 240 seconds) |
| 04:22:57 | × | jinsun quits (~quassel@user/jinsun) (Ping timeout: 240 seconds) |
| 04:24:42 | × | yin quits (~yin@user/zero) (Ping timeout: 268 seconds) |
| 04:26:13 | → | deadmarshal joins (~deadmarsh@95.38.229.128) |
| 04:26:14 | × | ksqsf quits (~user@134.209.106.31) (Ping timeout: 252 seconds) |
| 04:29:05 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 04:29:15 | <AlpacaPrince> | take 2 [1,13..] |
| 04:30:19 | <pfurla-matrix> | [1,13] |
| 04:30:23 | <AlpacaPrince> | > take 2 [1,13..] |
| 04:30:24 | <lambdabot> | [1,13] |
| 04:33:58 | <ChaiTRex> | Is there some nice way to do `filter ((== 8) . sum) . sequence` on a [[Word]] (i.e., everything is nonnegative) such that it short circuits lists that begin with a sum that's too high. Like if the elements produced by sequence are [1, 9, ...], when it sees 1, 9 are the first elements, it should stop processing elements that start with 1, 9 and go to some other starting two elements? |
| 04:34:39 | <ChaiTRex> | I could write a function to do it, but I was wondering if there's something built in that I don't know about. |
| 04:37:04 | <EvanR> | how would you ever write a function like that that will work from within the filter callback |
| 04:37:07 | <EvanR> | even* |
| 04:37:28 | → | x88x88x joins (~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb) |
| 04:37:56 | <EvanR> | you mean it looks ahead before you even sum |
| 04:38:30 | <ChaiTRex> | I don't mean it has to use sequence or filter. |
| 04:39:27 | <ChaiTRex> | I mean to replace that with something that short circuits instead. It would look ahead. If the first element in the [Word]s produced by sequence is higher than 8, it throws away that first element. |
| 04:39:43 | <ChaiTRex> | If the first two elements sum to higher than 8, it goes to the next second element. |
| 04:39:50 | × | obfusk quits (~quassel@a82-161-150-56.adsl.xs4all.nl) (Quit: No Ping reply in 180 seconds.) |
| 04:39:59 | <ChaiTRex> | Let me see if I can write the function. |
| 04:41:08 | → | obfusk joins (~quassel@a82-161-150-56.adsl.xs4all.nl) |
| 04:46:16 | <int-e> | > map reverse $ filter ((== 8) . sum) . foldM (\b -> filter ((<= 8) . sum) . fmap (:b)) [] $ [[0,1,2],[0,2,4],[0,3,9]] |
| 04:46:17 | <lambdabot> | [[1,4,3]] |
| 04:48:49 | <EvanR> | you can also just stick another filter in front |
| 04:48:56 | <int-e> | I don't know. I tend to write manual recursions for these things |
| 04:49:27 | <int-e> | which make it easier to stick in things like partial sums |
| 04:50:18 | <int-e> | also, for a fixed sum in particular I'd probably do some meet-in-the-middle stuff. |
| 04:50:35 | <int-e> | (if performance of that enumeration is critical) |
| 04:50:54 | → | sprout joins (~quassel@2a02:a467:ccd6:1:bc5b:dbe0:79e5:a909) |
| 04:54:57 | × | deadmarshal quits (~deadmarsh@95.38.229.128) (Ping timeout: 240 seconds) |
| 04:55:13 | → | deadmarshal joins (~deadmarsh@95.38.229.128) |
| 04:56:37 | × | slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving) |
| 04:57:13 | → | yauhsien joins (~yauhsien@2402:7500:5e5:1e81:bd32:4029:4cc:7e5a) |
| 04:58:53 | <AlpacaPrince> | Anyone here have experience with Euterpea or HSoM? |
| 05:00:11 | <AlpacaPrince> | As a new user to Haskell, I'm trying to figure out if these libraries are evening functioning/operational. |
| 05:09:17 | × | yauhsien quits (~yauhsien@2402:7500:5e5:1e81:bd32:4029:4cc:7e5a) (Ping timeout: 240 seconds) |
| 05:11:06 | × | acidsys quits (~LSD@2.lsd.systems) (Excess Flood) |
| 05:11:40 | → | acidsys joins (~LSD@2.lsd.systems) |
| 05:14:42 | <ChaiTRex> | int-e: Thanks! I was able to reduce the partial sum repeated calculations. |
| 05:14:45 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 05:14:50 | <ChaiTRex> | > map (reverse . tail) . filter ((== 8) . head) . foldM (\ (sum:ys) xs -> filter ((<= 8) . head) . fmap (\ x -> (sum + x):x:ys) $ xs) [0] $ [[0,1,2],[0,2,4],[0,3,9]] |
| 05:14:51 | <lambdabot> | [[1,4,3]] |
| 05:16:35 | <Square> | could you write a standalone deriving statement for all members of a type family? |
| 05:16:41 | → | analognoise joins (~analognoi@185.202.221.238) |
| 05:19:03 | × | fef quits (~thedawn@user/thedawn) (Ping timeout: 276 seconds) |
| 05:25:32 | × | x_kuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
| 05:25:32 | × | statusbot4 quits (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Read error: Connection reset by peer) |
| 05:25:40 | → | statusbot joins (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) |
| 05:26:20 | × | deadmarshal quits (~deadmarsh@95.38.229.128) (Ping timeout: 256 seconds) |
| 05:28:39 | → | yauhsien joins (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) |
| 05:28:43 | <lyxia> | uh, you might want to be more specific because deriving is commonly associated with data, not type families. |
| 05:30:54 | → | fizbin_ joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 05:31:35 | <Square> | lyxia, Atm, i feel unable to be more specific. Struggling with create a Show-like class and make it fly using generics and I somehow end up needing to specify things for the URec data family. =D |
| 05:31:45 | <Square> | creating* |
| 05:31:49 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Read error: Connection reset by peer) |
| 05:32:22 | <Square> | specify things = provide instances |
| 05:33:08 | → | pfurla_ joins (~pfurla@2804:18:5822:8094:5d30:a5f7:fbaf:167c) |
| 05:33:08 | × | pfurla quits (~pfurla@189.60.63.81) (Ping timeout: 256 seconds) |
| 05:33:24 | × | analognoise quits (~analognoi@185.202.221.238) (Quit: Leaving) |
| 05:34:16 | × | yauhsien quits (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
| 05:38:07 | → | analognoise joins (~analognoi@185.202.221.238) |
| 05:39:45 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
| 05:45:45 | <int-e> | ChaiTRex: oh abusing (:) as an ordered pair, nasty :P |
| 05:47:51 | × | xff0x quits (~xff0x@2001:1a81:5290:1c00:7789:5df4:4cdc:7899) (Ping timeout: 245 seconds) |
| 05:49:04 | → | xff0x joins (~xff0x@2001:1a81:5290:1c00:9996:3caa:8169:8a61) |
| 05:50:01 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 05:51:44 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 05:51:45 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 05:52:16 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: closed) |
| 05:52:25 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 05:53:39 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 05:53:39 | → | emf joins (~emf@2620:10d:c091:480::1:3408) |
| 05:53:43 | → | pfurla joins (~pfurla@2804:14d:5c5a:9a78:1daa:99f1:8d08:c258) |
| 05:53:53 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 05:54:59 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 05:55:15 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 05:55:41 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 05:56:43 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 05:56:45 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 05:57:14 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: closed) |
| 05:57:16 | → | pfurla__ joins (~pfurla@2804:18:5822:8094:2d64:e7e1:c381:269f) |
| 05:57:17 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 05:57:18 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 05:57:43 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 250 seconds) |
| 05:57:44 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 05:57:49 | × | pfurla_ quits (~pfurla@2804:18:5822:8094:5d30:a5f7:fbaf:167c) (Ping timeout: 268 seconds) |
| 05:58:37 | × | pfurla quits (~pfurla@2804:14d:5c5a:9a78:1daa:99f1:8d08:c258) (Ping timeout: 240 seconds) |
| 05:59:17 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 05:59:37 | × | emf quits (~emf@2620:10d:c091:480::1:3408) (Ping timeout: 240 seconds) |
| 05:59:51 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 06:00:03 | → | deadmarshal joins (~deadmarsh@95.38.229.128) |
| 06:00:07 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 06:01:26 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 06:01:32 | × | pfurla__ quits (~pfurla@2804:18:5822:8094:2d64:e7e1:c381:269f) (Ping timeout: 240 seconds) |
| 06:01:57 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 06:03:32 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 06:03:49 | → | pfurla joins (~pfurla@2804:14d:5c5a:9a78:74e3:e9be:881c:edd5) |
| 06:03:59 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 06:04:03 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 06:04:04 | → | dibblego joins (~dibblego@122-199-1-30.ip4.superloop.com) |
| 06:04:04 | × | dibblego quits (~dibblego@122-199-1-30.ip4.superloop.com) (Changing host) |
| 06:04:04 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 06:05:36 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 06:06:12 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 06:07:45 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 06:08:22 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 06:09:56 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 06:10:15 | × | phma quits (phma@2001:5b0:211f:1938:f16a:3063:a09d:1c4c) (Read error: Connection reset by peer) |
| 06:10:17 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 06:10:35 | → | ksqsf joins (~user@134.209.106.31) |
| 06:11:09 | → | phma joins (~phma@2001:5b0:210d:e448:bd04:4091:a4d4:4fae) |
| 06:11:15 | → | dirtcastle joins (~dirtcastl@103.43.203.229) |
| 06:11:54 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 06:12:21 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 06:13:55 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 06:14:20 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 06:15:56 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 06:16:24 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 06:17:59 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 06:18:30 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 06:20:04 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 06:20:37 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 06:21:39 | → | Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
| 06:22:11 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 06:22:36 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 06:24:10 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 06:24:41 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 06:26:15 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 06:26:45 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 06:27:17 | → | yauhsien joins (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) |
| 06:28:21 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 06:28:48 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 06:30:24 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 06:30:45 | × | fizbin_ quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
| 06:30:51 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 06:32:29 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 06:32:52 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 06:33:57 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 06:34:28 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 06:34:32 | × | dirtcastle quits (~dirtcastl@103.43.203.229) (Remote host closed the connection) |
| 06:35:04 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 06:38:14 | → | mbuf joins (~Shakthi@171.61.232.157) |
| 06:38:19 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 256 seconds) |
| 06:38:32 | × | deadmarshal quits (~deadmarsh@95.38.229.128) (Ping timeout: 240 seconds) |
| 06:39:12 | → | Morrow joins (~quassel@bzq-110-168-31-106.red.bezeqint.net) |
| 06:39:47 | × | khumba quits (~khumba@user/khumba) () |
| 06:40:51 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 06:42:14 | × | shailangsa quits (~shailangs@host109-159-108-207.range109-159.btcentralplus.com) (Ping timeout: 268 seconds) |
| 06:42:20 | × | zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection) |
| 06:45:50 | → | zaquest joins (~notzaques@5.130.79.72) |
| 06:50:22 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 06:50:57 | <AlpacaPrince> | > xs = [(1,1), (1,2), (1,3)] |
| 06:50:57 | <AlpacaPrince> | >sumxs = [a+b | (a,b) <- xs] |
| 06:50:58 | <lambdabot> | <hint>:1:4: error: parse error on input ‘=’ |
| 06:52:05 | <AlpacaPrince> | I suppose lambda bot cannot have user defined variables... |
| 06:52:23 | <AlpacaPrince> | > foo = 7 |
| 06:52:24 | <AlpacaPrince> | > foo |
| 06:52:25 | <lambdabot> | <hint>:1:5: error: parse error on input ‘=’ |
| 06:52:26 | <lambdabot> | error: |
| 06:52:26 | <lambdabot> | • Variable not in scope: foo |
| 06:52:26 | <lambdabot> | • Perhaps you meant ‘for’ (imported from Data.Traversable) |
| 06:54:41 | → | coot joins (~coot@89-64-85-93.dynamic.chello.pl) |
| 06:56:54 | <AlpacaPrince> | regarding pattern matching in list comprehension, "Learn you a haskell for great good" says: |
| 06:56:55 | <AlpacaPrince> | "Should a pattern match fail, it will just move on to the next element." |
| 06:56:55 | <AlpacaPrince> | so I try to put it to the test by putting a pair of strings in a list of pairs, and the module does not even load. |
| 06:57:15 | <AlpacaPrince> | ghci> let xs = [(1,3), (4,3), (2,4), (5,3), (5,6), (3,1)] |
| 06:57:16 | <AlpacaPrince> | ghci> [a+b | (a,b) <- xs] |
| 06:57:16 | <AlpacaPrince> | [4,7,6,8,11,4] |
| 06:58:37 | <AlpacaPrince> | that is the code that does work, but replace one pair from xs with (Char, Char) or even (Char, Int) and it does not run. It seems like it should just be a False pair and get skipped. |
| 06:59:20 | <pavonia> | The elements all still have to have the same type |
| 06:59:59 | × | puke quits (~puke@user/puke) (Quit: puke) |
| 07:00:04 | <pavonia> | But try something like [ (a, 3) | (a, 3) <- xs ] |
| 07:01:33 | × | ksqsf quits (~user@134.209.106.31) (Ping timeout: 256 seconds) |
| 07:01:41 | → | puke joins (~puke@user/puke) |
| 07:02:00 | → | pfurla_ joins (~pfurla@2804:14d:5c5a:9a78:6ce0:1b08:23ee:4eaf) |
| 07:03:14 | <int-e> | does this exist somewhere in base? xs <||> ys = if null xs then xs else ys |
| 07:03:34 | <int-e> | uh |
| 07:03:49 | <int-e> | I swapped xs and ys in the results: xs <||> ys = if null xs then ys else xs |
| 07:05:37 | × | pfurla quits (~pfurla@2804:14d:5c5a:9a78:74e3:e9be:881c:edd5) (Ping timeout: 240 seconds) |
| 07:08:29 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:09:29 | <AlpacaPrince> | pavonia yes this seems to produce the effect the author indicates |
| 07:12:15 | <AlpacaPrince> | int-e I'm not sure how to even test your code. I did type it into ghci and it gave no error, but it also produced no return. |
| 07:12:57 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 07:13:56 | → | deadmarshal joins (~deadmarsh@95.38.229.128) |
| 07:15:09 | <int-e> | AlpacaPrince: that wasn't for you. but when you typed that into ghci, it defined an infix operator <||>, so for example :t (<||>) will print its type. |
| 07:15:40 | <g> | int-e: in readp it's like <++, biased choice |
| 07:15:57 | <g> | I think LogicT has an operator for it |
| 07:16:09 | <int-e> | > let xs <||> ys = if null xs then ys else xs in ([] <||> [1,2,3], [42] <||> [1,2,3]) |
| 07:16:11 | <lambdabot> | ([1,2,3],[42]) |
| 07:16:38 | → | jinsun joins (~quassel@user/jinsun) |
| 07:18:17 | × | deadmarshal quits (~deadmarsh@95.38.229.128) (Ping timeout: 240 seconds) |
| 07:19:05 | → | phma_ joins (~phma@2001:5b0:210d:e448:bd04:4091:a4d4:4fae) |
| 07:19:31 | <int-e> | Oh I guess I could cobble it together with Data.Monoid.First |
| 07:19:50 | × | phma quits (~phma@2001:5b0:210d:e448:bd04:4091:a4d4:4fae) (Ping timeout: 260 seconds) |
| 07:20:12 | → | shailangsa_ joins (~shailangs@host109-159-108-207.range109-159.btcentralplus.com) |
| 07:21:56 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 07:21:57 | × | shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
| 07:23:36 | → | deadmarshal joins (~deadmarsh@95.38.229.128) |
| 07:24:46 | × | deech` quits (~user@024-217-244-075.res.spectrum.com) (Ping timeout: 256 seconds) |
| 07:27:08 | → | deech` joins (~user@024-217-244-075.res.spectrum.com) |
| 07:28:41 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 07:28:58 | → | img joins (~img@user/img) |
| 07:30:13 | <dsal> | I'm always surprised when <|> or <!> don't do that. |
| 07:32:05 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 07:32:29 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 07:34:47 | → | lavaman joins (~lavaman@98.38.249.169) |
| 07:37:15 | × | deadmarshal quits (~deadmarsh@95.38.229.128) (Ping timeout: 256 seconds) |
| 07:38:57 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
| 07:41:21 | × | shailangsa_ quits (~shailangs@host109-159-108-207.range109-159.btcentralplus.com) () |
| 07:41:25 | × | perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Ping timeout: 268 seconds) |
| 07:41:39 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
| 07:42:08 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 07:42:42 | × | sagax quits (~sagax_nb@user/sagax) (Ping timeout: 260 seconds) |
| 07:44:28 | → | deadmarshal joins (~deadmarsh@95.38.229.128) |
| 07:45:40 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:84c9:5514:9bd3:b2f5) (Remote host closed the connection) |
| 07:56:52 | <int-e> | > _2 (\x -> [x, x+1]) (1,2,3) |
| 07:56:54 | <lambdabot> | [(1,2,3),(1,3,3)] |
| 07:59:58 | × | pfurla_ quits (~pfurla@2804:14d:5c5a:9a78:6ce0:1b08:23ee:4eaf) (Ping timeout: 260 seconds) |
| 08:02:33 | → | chomwitt joins (~chomwitt@ppp-2-85-245-134.home.otenet.gr) |
| 08:03:41 | → | dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be) |
| 08:05:41 | → | perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
| 08:08:35 | → | jonathanx joins (~jonathan@217-210-129-139-no2450.tbcn.telia.com) |
| 08:11:13 | × | yauhsien quits (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 08:11:59 | → | yauhsien joins (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) |
| 08:14:17 | → | pfurla joins (~pfurla@2804:14d:5c5a:9a78:6ce0:1b08:23ee:4eaf) |
| 08:17:47 | × | jonathanx quits (~jonathan@217-210-129-139-no2450.tbcn.telia.com) (Ping timeout: 252 seconds) |
| 08:21:19 | → | shailangsa joins (~shailangs@host109-159-108-207.range109-159.btcentralplus.com) |
| 08:21:52 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 08:21:57 | × | coot quits (~coot@89-64-85-93.dynamic.chello.pl) (Remote host closed the connection) |
| 08:27:45 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 08:31:02 | × | darchitect quits (~darchitec@2a00:23c6:3584:df00:7dec:bf13:8fa:748c) (Ping timeout: 240 seconds) |
| 08:31:16 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 08:35:04 | × | pfurla quits (~pfurla@2804:14d:5c5a:9a78:6ce0:1b08:23ee:4eaf) (Quit: gone to sleep. ZZZzzz…) |
| 08:35:17 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 240 seconds) |
| 08:45:51 | → | neurocyte0132889 joins (~neurocyte@IP-045014189127.dynamic.medianet-world.de) |
| 08:45:51 | × | neurocyte0132889 quits (~neurocyte@IP-045014189127.dynamic.medianet-world.de) (Changing host) |
| 08:45:51 | → | neurocyte0132889 joins (~neurocyte@user/neurocyte) |
| 08:46:04 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4) |
| 08:46:09 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 08:46:49 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 08:48:17 | × | deadmarshal quits (~deadmarsh@95.38.229.128) (Ping timeout: 240 seconds) |
| 08:50:17 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4) (Ping timeout: 240 seconds) |
| 08:51:22 | → | max22- joins (~maxime@2a01cb08833598002412bf121caf815d.ipv6.abo.wanadoo.fr) |
| 08:51:28 | × | chozorho quits (~chozorho@2601:146:300:c30::d1a0) (Quit: WeeChat 3.0) |
| 08:57:53 | → | darchitect joins (~darchitec@82-132-213-95.dab.02.net) |
| 08:59:47 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 09:01:35 | × | danso quits (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 268 seconds) |
| 09:03:57 | × | neurocyte0132889 quits (~neurocyte@user/neurocyte) (Ping timeout: 256 seconds) |
| 09:05:38 | → | coot joins (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) |
| 09:06:29 | → | cosimone joins (~user@93-47-230-208.ip115.fastwebnet.it) |
| 09:08:12 | → | neurocyte0132889 joins (~neurocyte@IP-045014189127.dynamic.medianet-world.de) |
| 09:08:12 | × | neurocyte0132889 quits (~neurocyte@IP-045014189127.dynamic.medianet-world.de) (Changing host) |
| 09:08:12 | → | neurocyte0132889 joins (~neurocyte@user/neurocyte) |
| 09:09:37 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 268 seconds) |
| 09:11:01 | → | pfurla joins (~pfurla@2804:14d:5c5a:9a78:6ce0:1b08:23ee:4eaf) |
| 09:12:13 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 09:13:02 | × | shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit) |
| 09:13:02 | → | dirtcastle joins (~dirtcastl@103.43.203.229) |
| 09:14:37 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 09:15:02 | <AlpacaPrince> | is there a way to convert a pair into a list? |
| 09:15:23 | <AlpacaPrince> | (1,3) into [1,3] |
| 09:16:06 | → | danso joins (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) |
| 09:16:47 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 09:17:49 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
| 09:17:50 | → | allbery_b joins (~geekosaur@xmonad/geekosaur) |
| 09:17:53 | allbery_b | is now known as geekosaur |
| 09:20:17 | × | danso quits (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 240 seconds) |
| 09:21:19 | → | danso joins (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) |
| 09:22:32 | → | deadmarshal joins (~deadmarsh@95.38.229.128) |
| 09:22:57 | × | yauhsien quits (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 09:27:31 | → | acidjnk joins (~acidjnk@p200300d0c7271e256ce23fbe5bf2eea3.dip0.t-ipconnect.de) |
| 09:28:53 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 256 seconds) |
| 09:29:06 | → | yauhsien joins (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) |
| 09:31:02 | → | Codaraxis joins (~Codaraxis@user/codaraxis) |
| 09:32:29 | <carbolymer> | AlpacaPrince: Not really, unless you mean type level list, then it should |
| 09:32:34 | → | Bartol joins (~Bartol@user/Bartol) |
| 09:32:59 | <carbolymer> | AlpacaPrince: you'd need to make sure that all tuple elements are of the same type |
| 09:33:38 | <carbolymer> | AlpacaPrince: well... I assumed you don't want `[fst pair, snd pair` |
| 09:33:44 | <carbolymer> | ] |
| 09:34:17 | × | wolfshappen quits (~waff@irc.furworks.de) (Ping timeout: 240 seconds) |
| 09:34:57 | × | mvk quits (~mvk@2607:fea8:5cdd:f000::917a) (Ping timeout: 240 seconds) |
| 09:35:14 | × | coot quits (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Quit: coot) |
| 09:35:54 | <AlpacaPrince> | carbolymer: that would probably work. I'm trying to pattern match with lists comprehension. |
| 09:36:31 | <AlpacaPrince> | carbolymer: basically trying to use x:xs in the case where xs is a list of pairs |
| 09:36:46 | nckx | is now known as nckxmas |
| 09:43:13 | × | dirtcastle quits (~dirtcastl@103.43.203.229) (Quit: Quit) |
| 09:43:35 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 09:44:05 | <AlpacaPrince> | > zip [1..] [10,20..90] |
| 09:44:06 | <lambdabot> | [(1,10),(2,20),(3,30),(4,40),(5,50),(6,60),(7,70),(8,80),(9,90)] |
| 09:44:28 | <AlpacaPrince> | into: |
| 09:44:29 | <AlpacaPrince> | > [[fst a, snd a] | a <- zip [1..] [10,20..90]] |
| 09:44:30 | <lambdabot> | [[1,10],[2,20],[3,30],[4,40],[5,50],[6,60],[7,70],[8,80],[9,90]] |
| 09:46:22 | × | danso quits (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 260 seconds) |
| 09:49:50 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 10:03:01 | × | sprout quits (~quassel@2a02:a467:ccd6:1:bc5b:dbe0:79e5:a909) (Ping timeout: 240 seconds) |
| 10:05:20 | <int-e> | > zipWith (\a b -> [a,b]) [1..] "Hello" |
| 10:05:21 | <lambdabot> | error: |
| 10:05:21 | <lambdabot> | • No instance for (Num Char) arising from the literal ‘1’ |
| 10:05:21 | <lambdabot> | • In the expression: 1 |
| 10:05:22 | <int-e> | :P |
| 10:05:28 | <int-e> | > zipWith (\a b -> [a,b]) [1..] [2,3,5] |
| 10:05:29 | <lambdabot> | [[1,2],[2,3],[3,5]] |
| 10:11:51 | → | irfan joins (~irfan@user/irfan) |
| 10:15:12 | → | coot joins (~coot@89-64-85-93.dynamic.chello.pl) |
| 10:16:22 | × | coot quits (~coot@89-64-85-93.dynamic.chello.pl) (Remote host closed the connection) |
| 10:18:03 | → | coot joins (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) |
| 10:19:16 | <xsperry> | @pl (\a b -> [a,b]) |
| 10:19:16 | <lambdabot> | (. return) . (:) |
| 10:19:22 | <xsperry> | ^_^ |
| 10:19:24 | × | yauhsien quits (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 10:19:38 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 10:20:31 | <AlpacaPrince> | From Learn you a haskell for great good: |
| 10:20:31 | <AlpacaPrince> | "If you want to bind, say, the first three elements to variables and the rest of the list to another variable, you can use something like x:y:z:zs. It will only match against lists that have three elements or more." |
| 10:20:44 | <AlpacaPrince> | what is a simple example of this? |
| 10:21:01 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds) |
| 10:21:01 | Lord_of_Life_ | is now known as Lord_of_Life |
| 10:21:21 | → | Tuplanolla joins (~Tuplanoll@91-159-68-169.elisa-laajakaista.fi) |
| 10:22:01 | <Taneb> | > let shuffleFirstThree (x:y:z:zs) = (z:x:y:zs); shuffleFirstThree zs = zs in shuffleFirstThree "lpAacaPrince" |
| 10:22:02 | <lambdabot> | "AlpacaPrince" |
| 10:22:58 | × | coot quits (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Remote host closed the connection) |
| 10:23:22 | → | coot joins (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) |
| 10:28:48 | → | danso joins (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) |
| 10:29:00 | <AlpacaPrince> | Taneb |
| 10:29:01 | <AlpacaPrince> | *Main> zs = [7,8,9] |
| 10:29:01 | <AlpacaPrince> | *Main> shuffleFirstThree zs = zs in shuffleFirstThree |
| 10:29:02 | <AlpacaPrince> | <interactive>:110:27: error: parse error on input ‘in’ |
| 10:29:36 | <geekosaur> | "let" is not optional if you're using "in" |
| 10:30:24 | → | yauhsien joins (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) |
| 10:30:25 | <AlpacaPrince> | I first did: |
| 10:30:26 | <AlpacaPrince> | *Main> shuffleFirstThree (2:4:6:[7,8,9]) |
| 10:30:26 | <AlpacaPrince> | [6,2,4,7,8,9] |
| 10:30:35 | <AlpacaPrince> | *Main> let shuffleFirstThree (x:y:z:zs) = (z:x:y:zs) |
| 10:30:56 | <AlpacaPrince> | let command was first in my order of operations |
| 10:31:57 | × | deadmarshal quits (~deadmarsh@95.38.229.128) (Ping timeout: 240 seconds) |
| 10:33:33 | <xsperry> | either write that definition in a file, where you can use newlines, or copy/paste entire Taneb's line to ghci |
| 10:33:50 | <geekosaur> | "let <bindings> in <expression>" is an expression, not a command that can be split up like that |
| 10:34:16 | <xsperry> | this works too: |
| 10:34:24 | <xsperry> | GHCI> let shuffleFirstThree (x:y:z:zs) = (z:x:y:zs); shuffleFirstThree zs = zs |
| 10:34:29 | <xsperry> | GHCI> shuffleFirstThree [1,2,3,4] |
| 10:35:17 | × | yauhsien quits (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) (Ping timeout: 252 seconds) |
| 10:38:32 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 10:38:47 | <AlpacaPrince> | I see now, thanks. |
| 10:38:57 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 10:39:16 | <AlpacaPrince> | The part that i'm focusing on is: |
| 10:39:16 | <AlpacaPrince> | "x:y:z:zs. It will only match against lists that have three elements or more." |
| 10:39:30 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 10:40:15 | → | kranius joins (~kranius@user/kranius) |
| 10:40:56 | <geekosaur> | % shuffleFirstThree (x:y:z:xs) = (z:x:y:zs) |
| 10:40:56 | <yahb> | geekosaur: ; <interactive>:220:39: error:; * Variable not in scope: zs :: [a]; * Perhaps you meant one of these: `z' (line 220), `xs' (line 220), `s' (line 206) |
| 10:41:04 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 10:41:04 | <geekosaur> | % shuffleFirstThree (x:y:z:xs) = (z:x:y:xs) |
| 10:41:04 | <yahb> | geekosaur: |
| 10:41:18 | <geekosaur> | % shuffleFirstThree [1,2] |
| 10:41:18 | <yahb> | geekosaur: *** Exception: <interactive>:221:1-41: Non-exhaustive patterns in function shuffleFirstThree |
| 10:41:39 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 10:42:11 | <geekosaur> | to understand this, you have to understand that a list like [1,2,3] is internally represented as (1:2:3:[]) |
| 10:43:01 | <geekosaur> | > 1 : [2,3] |
| 10:43:02 | <lambdabot> | [1,2,3] |
| 10:43:13 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 10:43:48 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Remote host closed the connection) |
| 10:44:54 | <geekosaur> | > (1:2:3:[]) |
| 10:44:56 | <lambdabot> | [1,2,3] |
| 10:45:00 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 10:45:05 | <xsperry> | AlpacaPrince, do you understand this function? isZero 0 = True; isZero _ = False |
| 10:45:24 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 10:45:52 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 10:47:29 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 10:47:57 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 10:48:05 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4) |
| 10:48:08 | <AlpacaPrince> | I see they are both Bool |
| 10:48:36 | <AlpacaPrince> | They seem like a long way to write True and False |
| 10:48:52 | <AlpacaPrince> | xsperry |
| 10:49:32 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 10:50:07 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 10:51:24 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 10:51:41 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 10:52:17 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4) (Ping timeout: 240 seconds) |
| 10:52:18 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 10:53:52 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 10:54:25 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 10:54:39 | <geekosaur> | well, except (a) it's "backwards" (b) you cannot use a number in place of a Bool in Haskell |
| 10:54:58 | <geekosaur> | > if 1 then "a" else "b" -- type error |
| 10:54:59 | <lambdabot> | error: |
| 10:54:59 | <lambdabot> | • No instance for (Num Bool) arising from the literal ‘1’ |
| 10:54:59 | <lambdabot> | • In the expression: 1 |
| 10:55:34 | <geekosaur> | (numbers are handled specially in Haskell so you get a slightly weird error) |
| 10:56:01 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 10:56:34 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 10:58:11 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 10:58:24 | → | deadmarshal joins (~deadmarsh@95.38.229.128) |
| 10:58:43 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 10:59:22 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 268 seconds) |
| 11:00:18 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:00:46 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 11:01:52 | × | pfurla quits (~pfurla@2804:14d:5c5a:9a78:6ce0:1b08:23ee:4eaf) (Quit: gone to sleep. ZZZzzz…) |
| 11:02:22 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:02:57 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 11:03:18 | × | m1dnight quits (~christoph@christophe.dev) (Quit: WeeChat 3.1) |
| 11:04:31 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:04:37 | → | m1dnight joins (~christoph@christophe.dev) |
| 11:05:05 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 11:05:45 | <xsperry> | AlpacaPrince, it is a single function, not two functions. top definition is executed only if passed argument is 0, second matches everything else. pattern matching is checked from top to bottom |
| 11:06:41 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:07:09 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 11:07:24 | <xsperry> | s/executed/evaluated |
| 11:08:04 | → | zardoz2 joins (~bc8147f2@cerf.good1.com) |
| 11:08:32 | → | zer0bitz joins (~zer0bitz@2001:2003:f444:a000:e954:6a22:3202:5b23) |
| 11:08:42 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:09:17 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 11:10:46 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 11:10:51 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:11:27 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 11:12:00 | <AlpacaPrince> | xsperry, I see, it is only false if order switches. |
| 11:13:02 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:13:17 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 11:13:39 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Remote host closed the connection) |
| 11:14:15 | <AlpacaPrince> | I was expecting 1==True would evaluate True. |
| 11:15:15 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:15:16 | <geekosaur> | it's possible to arrange for that, but it just makes for more silent type mismatches without adding any useful functionality so we don't |
| 11:15:43 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 11:17:16 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:17:50 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 11:18:34 | <AlpacaPrince> | is isZero 0=True; isZero_ = False useful outside of being instructional? |
| 11:18:40 | <zardoz2> | AlpacaPrince, yes isZero _ matches every value, so isZero 0 = True is never reached |
| 11:18:49 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 256 seconds) |
| 11:19:26 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:19:34 | <zardoz2> | the concept is. pattern matching is used all the time in haskell |
| 11:19:53 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 11:21:11 | → | ProfSimm joins (~ProfSimm@87.227.196.109) |
| 11:21:27 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:21:30 | → | yin joins (~yin@user/zero) |
| 11:21:58 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 11:23:32 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:23:37 | <geekosaur> | note the space between "isZero" and "_" |
| 11:23:48 | <geekosaur> | the "_" is a wildcard pattern that matches anything |
| 11:23:51 | <AlpacaPrince> | geekosaur it was helpful to see (1:2:3:[4,5,6,7]), the parentheses solved some confusion. |
| 11:23:59 | <AlpacaPrince> | there is no space |
| 11:24:06 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 11:24:28 | <geekosaur> | [22 10:45:06] <xsperry> AlpacaPrince, do you understand this function? isZero 0 = True; isZero _ = False |
| 11:24:50 | × | coot quits (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Quit: coot) |
| 11:25:16 | <AlpacaPrince> | oh I noticed it wrong |
| 11:25:41 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:26:17 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 11:26:18 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 276 seconds) |
| 11:27:52 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:28:16 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 11:29:51 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:30:23 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 11:31:00 | <zero> | True |
| 11:31:08 | <AlpacaPrince> | without a space it is just part of the function name, _ |
| 11:31:56 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:32:23 | <AlpacaPrince> | xsperry i'm now prepared to answer your question. |
| 11:32:24 | <AlpacaPrince> | yes, I do understand this function. |
| 11:32:30 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 11:32:39 | <zardoz2> | AlpacaPrince try this: https://paste.tomsmeding.com/lQa26HTa |
| 11:32:56 | <zardoz2> | and then try putting line 3 (f x = "value is " ++ show 0) at the top |
| 11:33:24 | <zardoz2> | that should have been f x = "value is " ++ show x |
| 11:34:06 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:34:08 | × | kranius quits (~kranius@user/kranius) (Ping timeout: 252 seconds) |
| 11:34:21 | → | coot joins (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) |
| 11:34:33 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 11:35:52 | → | jkaye joins (~jkaye@2601:281:8300:7530:6aeb:18f5:2700:2624) |
| 11:36:08 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:36:08 | <AlpacaPrince> | it would always be "value is 0" |
| 11:36:12 | → | lavaman joins (~lavaman@98.38.249.169) |
| 11:36:21 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 11:36:22 | <AlpacaPrince> | Why can the x not be replaced with _ |
| 11:36:29 | → | kranius joins (~kranius@162.19.149.77.rev.sfr.net) |
| 11:36:40 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 11:36:44 | <zardoz2> | it can, but I wanted to write this: f x = "value is " ++ show x |
| 11:36:48 | <zardoz2> | show x, not show 0 |
| 11:36:53 | <geekosaur> | because _ is anonymous. you need to name it to use it |
| 11:37:10 | <zardoz2> | if you use the value you need a name |
| 11:37:19 | × | coot quits (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Client Quit) |
| 11:37:31 | <AlpacaPrince> | okay i'll try those things |
| 11:38:13 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:38:22 | × | yin quits (~yin@user/zero) (Ping timeout: 260 seconds) |
| 11:38:41 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 11:40:13 | → | coot joins (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) |
| 11:40:16 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:40:17 | × | jkaye quits (~jkaye@2601:281:8300:7530:6aeb:18f5:2700:2624) (Ping timeout: 240 seconds) |
| 11:40:44 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 11:40:55 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
| 11:42:18 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:42:37 | × | kranius quits (~kranius@162.19.149.77.rev.sfr.net) (Ping timeout: 240 seconds) |
| 11:42:56 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 11:44:31 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:44:56 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 11:45:42 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 11:46:33 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:46:56 | → | sprout joins (~quassel@2a02:a467:ccd6:1:bc5b:dbe0:79e5:a909) |
| 11:47:06 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 11:47:44 | <AlpacaPrince> | is it possible to open the source code for the definition of _ in haskell? |
| 11:48:03 | → | kranius joins (~kranius@162.19.149.77.rev.sfr.net) |
| 11:48:04 | <AlpacaPrince> | ...or any function for that matter. |
| 11:48:41 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:49:12 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 11:50:48 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:50:53 | <sshine> | AlpacaPrince, yes? |
| 11:51:20 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 11:51:21 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 11:51:31 | <sshine> | AlpacaPrince, _ isn't a function, but since it is defined in the compiler, you can find either the place it is defined as a syntactic element, or the places that refer to it in the process of compilation. |
| 11:52:04 | <AlpacaPrince> | zardoz2 https://paste.tomsmeding.com/eFgi1uCb/raw/1 |
| 11:52:57 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:53:22 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 11:54:56 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:55:31 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 11:55:57 | × | xff0x quits (~xff0x@2001:1a81:5290:1c00:9996:3caa:8169:8a61) (Ping timeout: 240 seconds) |
| 11:56:03 | <zardoz2> | AlpacaPrince, ghci tells you that other two matches are redundant, because "g x" matches everything. put it at the bottom |
| 11:56:34 | <AlpacaPrince> | I've tried a bunch of variations on: |
| 11:56:34 | <AlpacaPrince> | :browse _ |
| 11:56:35 | <AlpacaPrince> | and |
| 11:56:35 | <AlpacaPrince> | :def [_] |
| 11:57:06 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:57:13 | → | xff0x joins (~xff0x@2001:1a81:5290:1c00:5bd7:cadf:8543:27d3) |
| 11:57:41 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 11:57:59 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 11:59:15 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 11:59:25 | × | kranius quits (~kranius@162.19.149.77.rev.sfr.net) (Ping timeout: 240 seconds) |
| 11:59:36 | × | deadmarshal quits (~deadmarsh@95.38.229.128) (Ping timeout: 256 seconds) |
| 11:59:50 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Remote host closed the connection) |
| 11:59:53 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 12:00:25 | × | jespada quits (~jespada@87.74.33.157) (Ping timeout: 268 seconds) |
| 12:01:23 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 12:02:04 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 12:02:35 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 12:02:49 | <zardoz2> | _ is a variable place holder name when you don't care about value, and just want to match everything. it avoids "unused variable" warning |
| 12:02:55 | → | jespada joins (~jespada@87.74.33.157) |
| 12:03:13 | <tomsmeding> | AlpacaPrince: in haskell, patterns are tried from top to bottom. When calling e.g. `g 10`, we first try to match `10` against the pattern `x`; this succeeds, so we take that option. When calling `g 1`, we first try to match `1` against the pattern `x`; this succeeds, so we take that option. |
| 12:03:29 | <tomsmeding> | If you want the other two cases to take precedence, you have to put then above the `g x` case. |
| 12:03:31 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 12:03:38 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 12:04:13 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 12:04:20 | <tomsmeding> | and ghci is aware of this rule, and already sees that the `g 1` and `g 2` cases can never be reached in your code, because the `g x` case will already handle everything. So it gives you those warnings |
| 12:05:46 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 12:06:21 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 12:06:24 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 12:06:33 | → | Vajb joins (~Vajb@2001:999:62:f3d1:4390:fbed:1f9b:9d03) |
| 12:07:38 | → | mestre joins (~mestre@191.177.175.57) |
| 12:07:58 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 12:08:28 | <AlpacaPrince> | Got it. I was trying the variation of mismatching the order; putting the catch all at the top of the pattern. Interesting that Ghci gives warnings for the pattern being defined in the wrong order while still letting the program execute. |
| 12:08:36 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 12:08:43 | <dminuoso> | AlpacaPrince: Well its not defined in the "wrong order" |
| 12:09:03 | → | burnsidesLlama joins (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
| 12:09:34 | <dminuoso> | In fact, there are some good reasons to have such "dead" code" |
| 12:10:03 | <AlpacaPrince> | The program still runs, it just never reaches any definitions past g x |
| 12:10:05 | <AlpacaPrince> | hmm |
| 12:10:14 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 12:10:41 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 12:10:42 | <AlpacaPrince> | so g x could be overridden in certain cases, then allowing g 1 and g 2 to be "discovered" by the code? |
| 12:11:23 | <dminuoso> | AlpacaPrince: Yeah. You could for example have some `f x | True = ... | otherwise = ...` style of code, where by commenting out the `| True` branch you alter the behavior for debugging. |
| 12:11:29 | <dminuoso> | (Or perhaps via a C macro) |
| 12:11:47 | <dminuoso> | Granted, for this particular usage we have a magical primitive to let GHC know not to report errors. |
| 12:12:15 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 12:12:31 | <zardoz2> | there's no way to reach g 1 and g 2, unless you comment out g x, or move it to the bottom |
| 12:12:43 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 12:12:47 | <dminuoso> | AlpacaPrince: Another thing is, pattern coverage checking has historically been very error prone because it's a very non-trivial problem, it was filled with false positives. |
| 12:12:59 | <dminuoso> | So by default promoting this to an error would cause a lot of grief |
| 12:13:20 | <dminuoso> | But since have drastically improved in recent GHC versions. |
| 12:14:20 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 12:14:48 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 12:16:03 | → | tewrdh^ joins (~tewrdh@64.253.22.77) |
| 12:16:23 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 12:16:50 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 12:18:08 | × | danso quits (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 252 seconds) |
| 12:18:23 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 12:18:37 | × | mestre quits (~mestre@191.177.175.57) (Remote host closed the connection) |
| 12:18:39 | → | danso joins (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) |
| 12:18:57 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 12:19:37 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 12:20:30 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 12:21:05 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 12:22:40 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 12:23:08 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 12:24:26 | → | kranius joins (~kranius@162.19.149.77.rev.sfr.net) |
| 12:24:30 | × | darchitect quits (~darchitec@82-132-213-95.dab.02.net) (Read error: Connection reset by peer) |
| 12:24:40 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 12:25:12 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 12:26:46 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 12:26:56 | × | danso quits (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 268 seconds) |
| 12:27:20 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 12:27:24 | → | danso joins (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) |
| 12:28:35 | × | chomwitt quits (~chomwitt@ppp-2-85-245-134.home.otenet.gr) (Ping timeout: 252 seconds) |
| 12:28:57 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 12:29:04 | → | benin joins (~benin@183.82.27.57) |
| 12:29:27 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 12:30:58 | → | kuribas joins (~user@ptr-25vy0i6xaq2sd6gk5rt.18120a2.ip6.access.telenet.be) |
| 12:31:04 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 12:31:37 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 12:32:57 | × | xff0x quits (~xff0x@2001:1a81:5290:1c00:5bd7:cadf:8543:27d3) (Ping timeout: 240 seconds) |
| 12:33:13 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 12:33:37 | × | danso quits (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 240 seconds) |
| 12:33:44 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 12:33:52 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 12:33:55 | → | xff0x joins (~xff0x@2001:1a81:5290:1c00:cc0:4c26:7636:4d9e) |
| 12:34:59 | → | deadmarshal joins (~deadmarsh@95.38.229.128) |
| 12:35:18 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 12:35:37 | → | danso joins (~danso@d67-193-121-2.home3.cgocable.net) |
| 12:35:48 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 12:37:24 | × | synthmeat quits (~synthmeat@user/synthmeat) (Quit: WeeChat 3.0) |
| 12:37:25 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 12:37:52 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 12:38:08 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 256 seconds) |
| 12:39:26 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 12:39:57 | × | danso quits (~danso@d67-193-121-2.home3.cgocable.net) (Ping timeout: 240 seconds) |
| 12:40:02 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 12:40:28 | → | danso joins (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) |
| 12:41:35 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 12:42:03 | → | ubert joins (~Thunderbi@p200300ecdf0994cb1dfd4ca95c98fa37.dip0.t-ipconnect.de) |
| 12:42:14 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 12:43:48 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 12:44:17 | → | chomwitt joins (~chomwitt@2a02:587:dc1c:a00:12c3:7bff:fe6d:d374) |
| 12:44:27 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 12:46:01 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 12:46:38 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 12:48:12 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 12:48:50 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 12:49:44 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4) |
| 12:50:24 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 12:51:01 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 12:52:14 | × | dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3) |
| 12:52:38 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 12:52:38 | → | dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be) |
| 12:53:04 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Remote host closed the connection) |
| 12:53:57 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4) (Ping timeout: 240 seconds) |
| 12:54:38 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 12:55:14 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 12:56:18 | × | xff0x quits (~xff0x@2001:1a81:5290:1c00:cc0:4c26:7636:4d9e) (Ping timeout: 260 seconds) |
| 12:56:49 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 12:57:08 | → | xff0x joins (~xff0x@2001:1a81:5290:1c00:a0e1:b3e2:3952:22f) |
| 12:57:28 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 12:59:00 | × | chomwitt quits (~chomwitt@2a02:587:dc1c:a00:12c3:7bff:fe6d:d374) (Ping timeout: 268 seconds) |
| 12:59:02 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 12:59:41 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 12:59:58 | → | chomwitt joins (~chomwitt@2a02:587:dc1c:a00:12c3:7bff:fe6d:d374) |
| 13:00:15 | × | max22- quits (~maxime@2a01cb08833598002412bf121caf815d.ipv6.abo.wanadoo.fr) (Ping timeout: 268 seconds) |
| 13:01:15 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:01:51 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 13:02:48 | → | ub joins (~Thunderbi@p548c8cd6.dip0.t-ipconnect.de) |
| 13:03:04 | × | ubert quits (~Thunderbi@p200300ecdf0994cb1dfd4ca95c98fa37.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 13:03:04 | ub | is now known as ubert |
| 13:03:26 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:03:28 | → | sagax joins (~sagax_nb@user/sagax) |
| 13:04:02 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 13:05:37 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:06:09 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 13:07:37 | × | Akiva quits (~Akiva@user/Akiva) (Ping timeout: 256 seconds) |
| 13:07:37 | × | chomwitt quits (~chomwitt@2a02:587:dc1c:a00:12c3:7bff:fe6d:d374) (Ping timeout: 240 seconds) |
| 13:07:45 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:08:17 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 13:09:50 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:10:22 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 13:10:54 | × | coolnickname quits (uid531864@user/coolnickname) (Quit: Connection closed for inactivity) |
| 13:11:56 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:12:33 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 13:14:10 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:14:38 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 13:16:10 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:16:41 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 13:16:57 | × | rembo10 quits (~rembo10@remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
| 13:17:17 | → | pfurla joins (~pfurla@2804:14d:5c5a:9a78:6ce0:1b08:23ee:4eaf) |
| 13:18:02 | → | rembo10 joins (~rembo10@remulis.com) |
| 13:18:15 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:18:45 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 13:19:21 | × | danso quits (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 268 seconds) |
| 13:20:05 | × | deadmarshal quits (~deadmarsh@95.38.229.128) (Ping timeout: 256 seconds) |
| 13:20:18 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:20:55 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Remote host closed the connection) |
| 13:21:46 | <AlpacaPrince> | > :doc length |
| 13:21:47 | <lambdabot> | <hint>:1:1: error: parse error on input ‘:’ |
| 13:22:01 | <AlpacaPrince> | doc length |
| 13:22:11 | <AlpacaPrince> | : doc length |
| 13:22:19 | <AlpacaPrince> | >: doc length |
| 13:22:29 | <AlpacaPrince> | > :doc length |
| 13:22:30 | <lambdabot> | <hint>:1:1: error: parse error on input ‘:’ |
| 13:22:31 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:22:58 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 13:23:23 | × | coot quits (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Remote host closed the connection) |
| 13:23:58 | <dminuoso> | AlpacaPrince: Use % instead |
| 13:24:28 | <dminuoso> | AlpacaPrince: > invokes lambdabot which is a rather custom thing. % invokes yahb on the other hand, which is an IRC client bolted onto GHCi |
| 13:24:32 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:24:43 | <dminuoso> | Also, you can use a direct message/query to talk to yahb directly for experimentation |
| 13:25:07 | <AlpacaPrince> | yahb %:doc length |
| 13:25:10 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 13:25:19 | <AlpacaPrince> | yahb % :doc length |
| 13:25:35 | <AlpacaPrince> | % :doc length yahb |
| 13:25:35 | <yahb> | AlpacaPrince: ; <interactive>:1:8: error: parse error on input `yahb' |
| 13:25:51 | <AlpacaPrince> | %:doc length yahb |
| 13:26:03 | <AlpacaPrince> | % >:doc length yahb |
| 13:26:03 | <yahb> | AlpacaPrince: ; <interactive>:227:1: error: parse error on input `>:' |
| 13:26:14 | <AlpacaPrince> | % :browse length yahb |
| 13:26:14 | <yahb> | AlpacaPrince: syntax: :browse <module> |
| 13:26:22 | <dminuoso> | % :doc length |
| 13:26:22 | <yahb> | dminuoso: Returns the size/length of a finite structure as an 'Int'. The; default implementation just counts elements starting with the left-most.; Instances for structures that can compute the element count faster; than via element-by-element counting, should provide a specialised; implementation.; ==== __Examples__; Basic usage:; >>> length []; 0; >>> length ['a', 'b', 'c']; 3; >>> length [1..]; * H |
| 13:26:30 | <AlpacaPrince> | % :browse length yahb |
| 13:26:30 | <yahb> | AlpacaPrince: syntax: :browse <module> |
| 13:26:35 | <dminuoso> | AlpacaPrince: Try `/query yahb` to experiment without adding noise to the channel |
| 13:26:44 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:26:47 | <dminuoso> | Also consider using `ghci` instead :) |
| 13:26:53 | <dminuoso> | In your favourite terminal |
| 13:27:21 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 13:28:54 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:29:05 | → | dan-so joins (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) |
| 13:29:09 | → | chomwitt joins (~chomwitt@2a02:587:dc1c:a00:12c3:7bff:fe6d:d374) |
| 13:29:30 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 13:31:04 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:31:43 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 13:33:03 | × | irfan quits (~irfan@user/irfan) (Quit: leaving) |
| 13:33:17 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:33:17 | × | dan-so quits (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 240 seconds) |
| 13:33:41 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 13:34:03 | → | dan-so joins (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) |
| 13:34:49 | × | kranius quits (~kranius@162.19.149.77.rev.sfr.net) (Ping timeout: 256 seconds) |
| 13:35:14 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:35:49 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 13:36:02 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 13:36:53 | × | rembo10 quits (~rembo10@remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
| 13:37:22 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:37:58 | → | rembo10 joins (~rembo10@remulis.com) |
| 13:37:58 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 13:39:32 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:39:52 | × | dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3) |
| 13:40:05 | → | dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be) |
| 13:40:13 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 13:41:47 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:42:19 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 13:43:52 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:44:28 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 13:45:01 | → | coot joins (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) |
| 13:46:02 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:46:30 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 13:48:08 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:48:37 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 13:49:42 | → | max22- joins (~maxime@2a01cb088335980001474809897dc97d.ipv6.abo.wanadoo.fr) |
| 13:50:10 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:50:41 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 13:52:16 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:52:36 | × | AlpacaPrince quits (~Guest|47@c-73-221-44-172.hsd1.wa.comcast.net) (Quit: Connection closed) |
| 13:52:40 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 13:54:12 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:54:53 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 13:56:27 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:56:54 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 13:58:04 | → | Guest|47 joins (~Guest|47@c-73-221-44-172.hsd1.wa.comcast.net) |
| 13:58:28 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 13:59:06 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 13:59:10 | Guest|47 | is now known as pringlePie |
| 13:59:42 | → | neverfindme joins (~hayden@158.123.160.43) |
| 14:00:15 | → | deadmarshal joins (~deadmarsh@95.38.229.128) |
| 14:00:39 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 14:00:59 | × | dan-so quits (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 252 seconds) |
| 14:01:11 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 14:01:22 | → | dan-so joins (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) |
| 14:02:44 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 14:03:11 | × | Vajb quits (~Vajb@2001:999:62:f3d1:4390:fbed:1f9b:9d03) (Read error: Connection reset by peer) |
| 14:03:12 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 14:03:17 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 14:03:19 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 14:03:50 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 14:04:30 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 14:04:51 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 14:05:19 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 14:06:52 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 14:07:34 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 14:08:13 | × | coot quits (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Quit: coot) |
| 14:08:20 | × | zardoz2 quits (~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Ping timeout)) |
| 14:09:10 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 14:09:50 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 14:09:56 | → | coot joins (~coot@89-64-85-93.dynamic.chello.pl) |
| 14:09:57 | <pringlePie> | in the same way documentation can be called with |
| 14:09:58 | <pringlePie> | :doc ++ |
| 14:09:58 | <pringlePie> | how can I add documentation for my own functions, that can be called by GHCi? |
| 14:10:02 | × | dan-so quits (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 260 seconds) |
| 14:10:19 | → | arjun joins (~arjun@user/arjun) |
| 14:10:29 | → | dan-so joins (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) |
| 14:11:12 | → | kranius joins (~kranius@162.19.149.77.rev.sfr.net) |
| 14:11:25 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 14:11:52 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 14:13:26 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 14:14:00 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 14:15:34 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 14:16:05 | × | kranius quits (~kranius@162.19.149.77.rev.sfr.net) (Ping timeout: 268 seconds) |
| 14:16:09 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 14:16:15 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 14:16:56 | × | dan-so quits (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 252 seconds) |
| 14:17:09 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3) |
| 14:17:42 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 14:17:53 | × | neverfindme quits (~hayden@158.123.160.43) (Ping timeout: 256 seconds) |
| 14:18:19 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 14:19:54 | → | betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be) |
| 14:20:22 | → | yin joins (~yin@user/zero) |
| 14:20:32 | × | betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer) |
| 14:22:59 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 14:24:14 | → | shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
| 14:24:41 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 14:24:57 | × | coot quits (~coot@89-64-85-93.dynamic.chello.pl) (Remote host closed the connection) |
| 14:25:53 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 14:28:42 | → | CiaoSen joins (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 14:28:53 | → | coot joins (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) |
| 14:30:37 | × | yin quits (~yin@user/zero) (Ping timeout: 240 seconds) |
| 14:34:04 | → | yauhsien joins (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) |
| 14:38:10 | × | coot quits (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Remote host closed the connection) |
| 14:38:17 | × | yauhsien quits (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
| 14:38:51 | × | deadmarshal quits (~deadmarsh@95.38.229.128) (Ping timeout: 256 seconds) |
| 14:39:14 | × | pringlePie quits (~Guest|47@c-73-221-44-172.hsd1.wa.comcast.net) (Quit: Connection closed) |
| 14:42:37 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
| 14:43:24 | → | coot joins (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) |
| 14:44:27 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 14:45:12 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 14:45:12 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 14:45:12 | → | wroathe joins (~wroathe@user/wroathe) |
| 14:50:29 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 14:51:14 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 14:52:51 | → | yin joins (~yin@user/zero) |
| 14:52:57 | × | jinsun quits (~quassel@user/jinsun) (Ping timeout: 240 seconds) |
| 14:54:25 | × | pfurla quits (~pfurla@2804:14d:5c5a:9a78:6ce0:1b08:23ee:4eaf) (Quit: Textual IRC Client: www.textualapp.com) |
| 14:55:25 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 14:58:08 | × | ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
| 14:58:26 | → | ProfSimm joins (~ProfSimm@87.227.196.109) |
| 14:59:35 | → | dan-so joins (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) |
| 14:59:50 | × | Guest4242 quits (~Guest4242@78.198.4.122) (Quit: Client closed) |
| 15:01:16 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 15:04:37 | × | xff0x quits (~xff0x@2001:1a81:5290:1c00:a0e1:b3e2:3952:22f) (Ping timeout: 240 seconds) |
| 15:07:21 | → | darchitect joins (~darchitec@2a00:23c6:3584:df00:7dec:bf13:8fa:748c) |
| 15:07:44 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 15:09:06 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 15:09:59 | → | xff0x joins (~xff0x@2001:1a81:5290:1c00:a0e1:b3e2:3952:22f) |
| 15:10:59 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 15:12:12 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 15:15:30 | × | coot quits (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Remote host closed the connection) |
| 15:19:37 | × | x88x88x quits (~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb) (Ping timeout: 240 seconds) |
| 15:19:58 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 15:19:59 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 15:20:29 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: closed) |
| 15:20:53 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 15:22:03 | → | x88x88x joins (~x88x88x@149.28.53.172) |
| 15:23:18 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
| 15:25:55 | × | gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 15:26:36 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 15:30:08 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 15:30:37 | × | yin quits (~yin@user/zero) (Ping timeout: 240 seconds) |
| 15:30:53 | → | coot joins (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) |
| 15:31:03 | → | yauhsien joins (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) |
| 15:31:30 | → | jinsun joins (~quassel@user/jinsun) |
| 15:37:20 | → | evocatus joins (~evocatus@62.182.78.42) |
| 15:37:51 | → | lavaman joins (~lavaman@98.38.249.169) |
| 15:40:16 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 15:40:16 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 15:40:16 | → | wroathe joins (~wroathe@user/wroathe) |
| 15:42:19 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
| 15:45:09 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
| 15:47:03 | → | lavaman joins (~lavaman@98.38.249.169) |
| 15:47:48 | → | yin joins (~yin@user/zero) |
| 15:48:37 | × | acidjnk quits (~acidjnk@p200300d0c7271e256ce23fbe5bf2eea3.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 15:51:42 | <gentauro> | so I need to build `network-3.1.1.1` which is broken in `https://www.stackage.org/lts-18.19` but fixed in `nightly`. Is there a way to specify this in `stack.yaml`? |
| 15:51:55 | → | neverfindme joins (~hayden@158.123.160.43) |
| 15:52:49 | × | neverfindme quits (~hayden@158.123.160.43) (Remote host closed the connection) |
| 15:57:16 | × | burnsidesLlama quits (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Remote host closed the connection) |
| 15:59:24 | × | coot quits (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Quit: coot) |
| 15:59:50 | → | coot joins (~coot@89-64-85-93.dynamic.chello.pl) |
| 16:00:17 | × | yin quits (~yin@user/zero) (Ping timeout: 240 seconds) |
| 16:01:43 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 16:01:44 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 16:02:22 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 16:02:23 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 16:02:51 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 16:02:51 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 16:05:00 | × | phma_ quits (~phma@2001:5b0:210d:e448:bd04:4091:a4d4:4fae) (Read error: Connection reset by peer) |
| 16:06:08 | → | phma_ joins (~phma@2001:5b0:210f:6808:2fd4:ecc8:b8ea:8fba) |
| 16:08:35 | phma_ | is now known as phma |
| 16:09:31 | → | alfonsox joins (~quassel@103.92.42.192) |
| 16:14:03 | × | jespada quits (~jespada@87.74.33.157) (Ping timeout: 256 seconds) |
| 16:14:20 | → | kranius joins (~kranius@162.19.149.77.rev.sfr.net) |
| 16:14:51 | → | ph88 joins (~ph88@ip5f5af068.dynamic.kabel-deutschland.de) |
| 16:15:27 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4) |
| 16:16:15 | → | jespada joins (~jespada@87.74.33.157) |
| 16:19:50 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 16:19:50 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 16:23:59 | × | arjun quits (~arjun@user/arjun) (Ping timeout: 252 seconds) |
| 16:24:37 | × | x88x88x quits (~x88x88x@149.28.53.172) (Ping timeout: 240 seconds) |
| 16:25:01 | → | neverfindme joins (~hayden@158.123.160.43) |
| 16:25:23 | → | deadmarshal joins (~deadmarsh@95.38.229.128) |
| 16:25:37 | × | kranius quits (~kranius@162.19.149.77.rev.sfr.net) (Ping timeout: 240 seconds) |
| 16:27:50 | × | mbuf quits (~Shakthi@171.61.232.157) (Quit: Leaving) |
| 16:29:55 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 16:29:55 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 16:30:22 | × | ubert quits (~Thunderbi@p548c8cd6.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 16:31:55 | → | x88x88x joins (~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb) |
| 16:32:38 | × | neverfindme quits (~hayden@158.123.160.43) (Remote host closed the connection) |
| 16:32:55 | → | neverfindme joins (~hayden@158.123.160.43) |
| 16:33:03 | × | neverfindme quits (~hayden@158.123.160.43) (Remote host closed the connection) |
| 16:33:36 | → | burnsidesLlama joins (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
| 16:33:38 | × | evocatus quits (~evocatus@62.182.78.42) (Quit: Leaving) |
| 16:35:35 | → | doyougnu joins (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) |
| 16:36:14 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 16:36:14 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 16:36:54 | → | timCF joins (~timCF@m91-129-100-224.cust.tele2.ee) |
| 16:37:20 | × | timCF quits (~timCF@m91-129-100-224.cust.tele2.ee) (Client Quit) |
| 16:38:02 | × | burnsidesLlama quits (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Ping timeout: 240 seconds) |
| 16:39:03 | → | kranius joins (~kranius@162.19.149.77.rev.sfr.net) |
| 16:39:16 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 16:39:17 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 16:40:03 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 16:40:03 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 16:40:42 | × | stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
| 16:41:04 | → | stiell joins (~stiell@gateway/tor-sasl/stiell) |
| 16:45:56 | × | ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
| 16:46:14 | → | ProfSimm joins (~ProfSimm@87.227.196.109) |
| 16:46:47 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 16:47:21 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 16:47:22 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 16:48:58 | × | xff0x quits (~xff0x@2001:1a81:5290:1c00:a0e1:b3e2:3952:22f) (Remote host closed the connection) |
| 16:49:15 | → | xff0x joins (~xff0x@2001:1a81:5290:1c00:1cc4:2a6e:2e3f:d394) |
| 16:49:38 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 268 seconds) |
| 16:50:14 | × | kranius quits (~kranius@162.19.149.77.rev.sfr.net) (Changing host) |
| 16:50:14 | → | kranius joins (~kranius@user/kranius) |
| 16:52:18 | → | yin joins (~yin@user/zero) |
| 16:53:02 | <sm> | g'day all |
| 16:53:40 | <sm> | gentauro: |
| 16:53:40 | <sm> | extra-deps: |
| 16:53:40 | <sm> | - network-3.1.1.1 |
| 16:53:56 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 16:54:51 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 16:55:34 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 16:55:35 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 16:56:51 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 16:56:59 | → | chexum_ joins (~quassel@gateway/tor-sasl/chexum) |
| 16:56:59 | × | alfonsox quits (~quassel@103.92.42.192) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 16:57:41 | × | yin quits (~yin@user/zero) (Ping timeout: 256 seconds) |
| 16:59:21 | <EvanR> | is there a cool way to do a cross join of two lists, like a list comprehension, but exclude the middle diagonal and one of the halves |
| 16:59:42 | <EvanR> | ok middle is redundant |
| 17:01:26 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 17:01:40 | <monochrom> | Which half of [(x,y) | x<-[1,2], y<-['a', 'b', 'c']] do you want to receive? |
| 17:01:53 | <EvanR> | I guess x = y |
| 17:01:58 | <EvanR> | xs = ys |
| 17:02:08 | <monochrom> | But x==y is a type error. |
| 17:02:10 | <EvanR> | not two different lists |
| 17:02:13 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 17:02:19 | <EvanR> | same list with itself |
| 17:03:49 | × | xff0x quits (~xff0x@2001:1a81:5290:1c00:1cc4:2a6e:2e3f:d394) (Ping timeout: 268 seconds) |
| 17:04:37 | → | xff0x joins (~xff0x@2001:1a81:5290:1c00:84df:602d:a0a9:8535) |
| 17:05:14 | × | kuribas quits (~user@ptr-25vy0i6xaq2sd6gk5rt.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
| 17:05:25 | <int-e> | > [(x,y) | x:xs <- tails [1,2,3], y <- xs] |
| 17:05:26 | <lambdabot> | [(1,2),(1,3),(2,3)] |
| 17:05:48 | <monochrom> | Ah, nice. |
| 17:06:10 | <EvanR> | i will now steal that and then understand it, in that order |
| 17:06:17 | × | x88x88x quits (~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb) (Ping timeout: 240 seconds) |
| 17:09:41 | → | yin joins (~yin@user/zero) |
| 17:10:30 | → | burnsidesLlama joins (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
| 17:12:02 | × | deadmarshal quits (~deadmarsh@95.38.229.128) (Ping timeout: 240 seconds) |
| 17:12:56 | × | gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 17:12:58 | × | yauhsien quits (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 17:13:01 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 17:13:02 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 17:13:39 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 17:14:59 | <glguy> | I feel like today's problem deserves to be generalized to n-dimensions with a nice typed vector |
| 17:15:41 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 17:15:41 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 17:16:05 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 17:16:05 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 17:16:23 | × | burnsidesLlama quits (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Ping timeout: 256 seconds) |
| 17:16:59 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 17:18:24 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 17:18:25 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 17:18:50 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 17:19:26 | <EvanR> | today's problem is kicking my ass |
| 17:20:33 | → | jeetelongname joins (~jeet@88-111-159-26.dynamic.dsl.as9105.com) |
| 17:20:37 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 17:20:42 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 17:20:43 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 17:21:10 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 17:21:10 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 17:22:38 | → | x88x88x joins (~x88x88x@149.28.53.172) |
| 17:23:33 | → | analognoise1 joins (~analognoi@ip98-176-154-48.sd.sd.cox.net) |
| 17:23:42 | × | yin quits (~yin@user/zero) (Ping timeout: 260 seconds) |
| 17:25:32 | → | yauhsien joins (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) |
| 17:27:03 | × | Cale quits (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) (Remote host closed the connection) |
| 17:27:53 | × | analognoise quits (~analognoi@185.202.221.238) (Ping timeout: 268 seconds) |
| 17:28:40 | → | analognoise joins (~analognoi@91.196.220.236) |
| 17:30:20 | → | Cale joins (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) |
| 17:30:35 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 17:31:02 | <sshine> | can I, in any way, do pub const FOO: BigInt = ...? -- I feel like n.into() and BigInt::new(Sign::Plus, vec![n]) both complain about const-time allocation being a problem. |
| 17:31:35 | <sshine> | I've found this thing: https://gitlab.com/hjiayz/const_num_bigint -- but it doesn't come with a lot of explanation, I'm not sure it's a good approach. |
| 17:32:07 | → | Midjak joins (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) |
| 17:32:15 | × | analognoise1 quits (~analognoi@ip98-176-154-48.sd.sd.cox.net) (Ping timeout: 256 seconds) |
| 17:32:15 | <geekosaur> | channel? |
| 17:32:17 | <sshine> | oops, wrong channel :) |
| 17:33:24 | × | coot quits (~coot@89-64-85-93.dynamic.chello.pl) (Remote host closed the connection) |
| 17:33:51 | → | emf joins (~emf@2620:10d:c091:480::1:44aa) |
| 17:35:58 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: closed) |
| 17:36:09 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 17:37:24 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4) (Remote host closed the connection) |
| 17:39:42 | → | coot joins (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) |
| 17:40:17 | × | Tuplanolla quits (~Tuplanoll@91-159-68-169.elisa-laajakaista.fi) (Ping timeout: 240 seconds) |
| 17:40:31 | → | emf_ joins (~emf@2620:10d:c091:480::1:44aa) |
| 17:40:56 | <glguy> | OK, generalizing day 22 to n-dimensions actually made the program shorter |
| 17:41:12 | <glguy> | (and a tiny bit faster in my benchmark) |
| 17:41:14 | <gentauro> | sshine: what is that programming language? |
| 17:41:24 | <glguy> | https://glguy.net/advent2021/Day22/Main.html |
| 17:41:26 | <gentauro> | sshine: seems like a horrible syntax |
| 17:41:57 | × | emf quits (~emf@2620:10d:c091:480::1:44aa) (Ping timeout: 240 seconds) |
| 17:42:48 | <sshine> | gentauro, it's Haskell. |
| 17:43:21 | <gentauro> | sshine: more like Hask-LEL |
| 17:43:37 | <sshine> | gentauro, you just need {-# LANGUAGE RustySyntax #-} |
| 17:43:55 | → | BrokenClutch joins (~pioneer@2804:d41:c2a7:d800:e627:b00b:2c62:134) |
| 17:44:23 | <gentauro> | sshine: is that the PRAGMA that when used, God kills a kitten? :'( |
| 17:44:26 | gentauro | GG kittens |
| 17:45:22 | <BrokenClutch> | After scheme, I've started to like these functional languages thingy. After haskell I'm actually addicted. |
| 17:45:22 | <BrokenClutch> | Does haskell works well with reactive functional programming? |
| 17:45:34 | → | deadmarshal joins (~deadmarsh@95.38.229.128) |
| 17:46:37 | <EvanR> | FRP's brand was stolen from the haskell sphere for nefarious purposes elsewhere, elm, etc |
| 17:47:56 | <BrokenClutch> | oh my god, almost learned Elm, thanks brother for keeping me away from heresy. |
| 17:48:04 | <EvanR> | lol |
| 17:48:59 | <EvanR> | https://github.com/gelisam/frp-zoo |
| 17:49:21 | <gentauro> | BrokenClutch: Do a Google on "Ivan Perez FRP" (he is currently a researcher at NASA) |
| 17:49:23 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:49:23 | × | yauhsien quits (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 17:49:24 | <gentauro> | ;) |
| 17:49:37 | → | slowButPresent joins (~slowButPr@user/slowbutpresent) |
| 17:50:29 | <gentauro> | sm: `extra-deps: - network-3.1.1.1` why would this make any difference? |
| 17:51:59 | <sm> | gentauro, formatting may not have come through accurately. The stack user guide makes it clear |
| 17:52:41 | <geekosaur> | I do not understand "broken" vs. "fixed" |
| 17:52:57 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 17:52:57 | <sm> | in short, if you want a version other than the one in your chosen snapshot, listing a different version in extra-deps often works |
| 17:52:57 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 17:53:30 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: closed) |
| 17:53:36 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 17:53:50 | → | Akiva joins (~Akiva@user/Akiva) |
| 17:54:11 | <BrokenClutch> | EvanR: The guy has a fedora, should I trust him? |
| 17:54:37 | × | emf_ quits (~emf@2620:10d:c091:480::1:44aa) (Ping timeout: 240 seconds) |
| 17:56:05 | <gentauro> | sm: but the version is *broken* for the `lts` |
| 17:56:11 | <gentauro> | but not for `nightly |
| 17:56:31 | <gentauro> | my question was, is it possible to use `lts` but for a single package use the package from `nightly`? |
| 17:56:34 | <gentauro> | :) |
| 17:56:35 | → | Tuplanolla joins (~Tuplanoll@91-159-69-214.elisa-laajakaista.fi) |
| 17:56:52 | gentauro | perhaps point to a git repo or something like that? |
| 17:56:54 | <geekosaur> | the versions will be the same, unless something is especially perverse (and I'd expect it'd have been rejected in that case) |
| 17:57:10 | <geekosaur> | are you sure this brokenness is not because of compiler version? |
| 17:57:22 | <gentauro> | geekosaur: that could be as well |
| 17:57:51 | <sm> | not if it's broken.. what do you mean by that ? |
| 17:58:12 | <gentauro> | sm: `-- While building package network-3.1.1.1 (scroll up to its section to see the error) using:` |
| 17:58:24 | <gentauro> | like "not building" :) |
| 17:58:26 | <geekosaur> | hm, on hackage 3.1.1.1 is marked as deprecated |
| 17:58:43 | <sm> | you must be aware this is not enough information to help you :) |
| 17:58:59 | <sshine> | BrokenClutch, while there are FRP libraries in Haskell, I can't think of any killer libraries except perhaps Brick: https://github.com/jtdaugherty/brick |
| 17:59:02 | <sm> | @where paste |
| 17:59:02 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
| 17:59:38 | × | x88x88x quits (~x88x88x@149.28.53.172) (Ping timeout: 260 seconds) |
| 18:01:07 | <geekosaur> | I would suggest putting 3.1.2.0 in extra-deps and adjusting any other dependencies as needed |
| 18:01:15 | <gentauro> | I have added `Latest on Hackage:3.1.2.5` instead of `https://www.stackage.org/lts-18.19/package/network-3.1.1.1` |
| 18:01:21 | <geekosaur> | but yes, we need more information |
| 18:01:22 | <gentauro> | as an extra-dep |
| 18:01:34 | <gentauro> | pehaps that helps |
| 18:01:46 | <EvanR> | sshine, BrokenClutch there's reflex |
| 18:02:51 | <geekosaur> | I find it odd that a stackage lts depends on a deprecated package |
| 18:02:55 | <gentauro> | perhaps using `allow-newer: true` in the `stack.yaml` would go for the newest packages? |
| 18:03:29 | → | emf joins (~emf@2620:10d:c091:480::1:44aa) |
| 18:03:59 | <sm> | geekosaur yes that seems unfortunate, I guess it was found buggy and deprecated after the lts |
| 18:04:13 | <sm> | I hit that too |
| 18:04:38 | <sm> | lts's can be updated, I think, maybe it just hasn't happened |
| 18:05:26 | → | burnsidesLlama joins (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
| 18:06:54 | → | x88x88x joins (~x88x88x@149.28.53.172) |
| 18:07:08 | → | BenSimms[m] joins (~simmsb@2001:470:69fc:105::1:55c3) |
| 18:07:08 | → | econo joins (uid147250@user/econo) |
| 18:07:15 | <gentauro> | geekosaur: I don't think an LTS should be updated as such without `bumping` a minor version number right? |
| 18:07:35 | <geekosaur> | that's what I would expect |
| 18:07:44 | <gentauro> | `lts-18.19` with deprecated package -> `lts-18.20` without deprecated? |
| 18:07:45 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 18:08:18 | <geekosaur> | wondering if they got themselves stuck because nightly is already 9.0.1 which is buggy and probably going nowhere |
| 18:08:27 | → | coolnickname joins (uid531864@user/coolnickname) |
| 18:08:47 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 18:09:22 | <gentauro> | is it `FP Complete` that decides over `stack` or is it "the community"? |
| 18:09:26 | BenSimms[m] | is now known as simmsb |
| 18:10:17 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
| 18:10:33 | <geekosaur> | the community, I gather, but they have specific guidelines as to how things are done |
| 18:10:47 | <geekosaur> | so a new package has to be tested in the nightlies before it gets promoted to an lts |
| 18:10:58 | <geekosaur> | but the nightly is stuck on 9.0.1 |
| 18:10:59 | <gentauro> | go it |
| 18:11:11 | <gentauro> | I mean, "got it" :) |
| 18:11:15 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 18:11:15 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 18:11:25 | × | benin quits (~benin@183.82.27.57) (Quit: The Lounge - https://thelounge.chat) |
| 18:12:28 | → | analognoise1 joins (~analognoi@2600:8801:8c26:9e00:9810:dcc2:3d73:bd7a) |
| 18:12:34 | <geekosaur> | 8.10.5-8.10.7 really should never have happened |
| 18:13:08 | <geekosaur> | they were released after 9.0.1 and added a major new feature, and completely hosed versioning for everyone else |
| 18:13:26 | → | benin joins (~benin@183.82.27.57) |
| 18:13:28 | <sm> | gentauro: there's a bunch of stackage maintainers, working in the stackage repo. It's somewhat, not very active. I think as geekosaur said they are somewhat blocked by the state of ghc |
| 18:13:28 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 18:13:43 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 18:13:43 | <gentauro> | sm: :o |
| 18:13:43 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 18:13:48 | <gentauro> | good to know |
| 18:14:12 | <sm> | and, the state of packages building with newer ghc.. it's kind of circular |
| 18:14:42 | <sm> | still, I'm sure there's a solution for your build issue. It might be to use a newer nightly instead of lts, for now |
| 18:16:07 | × | analognoise quits (~analognoi@91.196.220.236) (Ping timeout: 250 seconds) |
| 18:17:34 | → | analognoise joins (~analognoi@23.105.41.153) |
| 18:18:10 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 18:18:11 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 18:19:37 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 18:19:38 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 18:20:03 | → | yauhsien joins (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) |
| 18:20:30 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 18:20:30 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 18:20:53 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 18:20:53 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 18:20:57 | × | analognoise1 quits (~analognoi@2600:8801:8c26:9e00:9810:dcc2:3d73:bd7a) (Ping timeout: 240 seconds) |
| 18:21:15 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 18:21:15 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 18:22:07 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 18:22:07 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 18:22:29 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 18:22:30 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 18:22:55 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 18:22:55 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 18:24:05 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 18:24:08 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 18:24:12 | <jneira[m]> | today i tried to use head.hackage with stack and no way, could be it even possible? |
| 18:24:57 | × | yauhsien quits (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
| 18:25:37 | × | CiaoSen quits (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 18:25:54 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 18:25:55 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 18:26:27 | × | kranius quits (~kranius@user/kranius) (Ping timeout: 268 seconds) |
| 18:27:00 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 18:27:01 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 18:27:17 | × | emf quits (~emf@2620:10d:c091:480::1:44aa) (Ping timeout: 240 seconds) |
| 18:27:34 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 18:27:35 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 18:27:42 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 18:27:52 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 18:28:11 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 18:28:17 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 18:28:18 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 18:29:17 | <geekosaur> | https://github.com/commercialhaskell/stack/issues/3844 does this look familiar? |
| 18:29:25 | → | __monty__ joins (~toonn@user/toonn) |
| 18:29:37 | <geekosaur> | otherwise I think you'll have to show what you tried and what went wrong |
| 18:29:40 | <geekosaur> | @where paste |
| 18:29:41 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
| 18:31:10 | → | phma_ joins (phma@2001:5b0:211c:9c18:ac13:6342:6a86:65e4) |
| 18:31:52 | <jneira[m]> | geekosaur: i tried something similar with 2 package indices, but stack told me you can use only one (although it is a list?) |
| 18:32:02 | <jneira[m]> | maybe i misinterpreted the error msg |
| 18:32:37 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds) |
| 18:32:49 | <jneira[m]> | an then i rea in docs: |
| 18:32:49 | <jneira[m]> | > Since Stack 1.11, this field may only be used to specify a single package index, which must use the Hackage Security format |
| 18:32:50 | <lambdabot> | <hint>:1:17: error: parse error on input ‘,’ |
| 18:33:20 | × | phma quits (~phma@2001:5b0:210f:6808:2fd4:ecc8:b8ea:8fba) (Read error: Connection reset by peer) |
| 18:34:02 | <jneira[m]> | if you set only head.hackage it does not find packages cause it is a overlay |
| 18:35:32 | × | chomwitt quits (~chomwitt@2a02:587:dc1c:a00:12c3:7bff:fe6d:d374) (Ping timeout: 240 seconds) |
| 18:35:37 | → | emf joins (~emf@2620:10d:c091:480::1:44aa) |
| 18:35:42 | → | mvk joins (~mvk@2607:fea8:5cdd:f000::917a) |
| 18:36:26 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 18:37:38 | × | jeetelongname quits (~jeet@88-111-159-26.dynamic.dsl.as9105.com) (Ping timeout: 252 seconds) |
| 18:38:37 | → | chomwitt joins (~chomwitt@2a02:587:dc1c:a00:12c3:7bff:fe6d:d374) |
| 18:39:31 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 250 seconds) |
| 18:40:28 | × | coot quits (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Remote host closed the connection) |
| 18:43:47 | → | pavonia joins (~user@user/siracusa) |
| 18:44:15 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 18:44:16 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 18:44:47 | × | deadmarshal quits (~deadmarsh@95.38.229.128) (Ping timeout: 256 seconds) |
| 18:45:20 | → | xkuru joins (~xkuru@user/xkuru) |
| 18:47:09 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:47:18 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 18:47:18 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 18:47:38 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 18:47:38 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 18:52:57 | × | Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 240 seconds) |
| 18:53:15 | × | neurocyte0132889 quits (~neurocyte@user/neurocyte) (Read error: Connection reset by peer) |
| 18:53:52 | × | ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
| 18:54:11 | → | ProfSimm joins (~ProfSimm@87.227.196.109) |
| 18:54:26 | → | neurocyte0132889 joins (~neurocyte@IP-045014189127.dynamic.medianet-world.de) |
| 18:54:26 | × | neurocyte0132889 quits (~neurocyte@IP-045014189127.dynamic.medianet-world.de) (Changing host) |
| 18:54:26 | → | neurocyte0132889 joins (~neurocyte@user/neurocyte) |
| 18:54:41 | → | yin joins (~yin@user/zero) |
| 18:54:49 | <jneira[m]> | hmm maybe adding the src tarballs from the repo in extra-deps? will try |
| 18:56:04 | → | kranius joins (~kranius@162.19.149.77.rev.sfr.net) |
| 18:56:44 | × | kranius quits (~kranius@162.19.149.77.rev.sfr.net) (Changing host) |
| 18:56:44 | → | kranius joins (~kranius@user/kranius) |
| 18:57:43 | → | Maxdamantus joins (~Maxdamant@user/maxdamantus) |
| 18:58:40 | × | BrokenClutch quits (~pioneer@2804:d41:c2a7:d800:e627:b00b:2c62:134) (Quit: Leaving.) |
| 18:59:49 | → | kaph joins (~kaph@net-2-47-236-216.cust.vodafonedsl.it) |
| 19:03:09 | × | max22- quits (~maxime@2a01cb088335980001474809897dc97d.ipv6.abo.wanadoo.fr) (Ping timeout: 250 seconds) |
| 19:05:20 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 19:05:21 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 19:05:45 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 19:05:45 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 19:06:41 | × | ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
| 19:07:00 | → | ProfSimm joins (~ProfSimm@87.227.196.109) |
| 19:13:57 | × | yin quits (~yin@user/zero) (Ping timeout: 240 seconds) |
| 19:13:57 | × | x88x88x quits (~x88x88x@149.28.53.172) (Ping timeout: 240 seconds) |
| 19:15:00 | × | emf quits (~emf@2620:10d:c091:480::1:44aa) (Read error: Connection reset by peer) |
| 19:17:40 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 19:18:07 | <energizer> | ghci seems like a reasonable repl. i assume it's missing something important so people don't want to use it for serious repling like they do with lisps. what is it missing? |
| 19:18:56 | <geekosaur> | sane multiline handling, for one |
| 19:19:28 | <monochrom> | I don't use a Lisp REPL for multiline, either. |
| 19:19:35 | <geekosaur> | since haskell uses layout by default, you kinda want reasonable multiline input where you can use layout. ghci provides two ways to do this and both kinda suck |
| 19:19:51 | <monochrom> | In fact I challenge the premise. What data do you have that says people don't use ghci? |
| 19:19:51 | <g> | It's better to do multiple line stuff in an editor in both |
| 19:19:58 | <geekosaur> | in particular you can't arrow up and edit a previous line |
| 19:20:28 | → | emf joins (~emf@2620:10d:c091:480::1:e0fe) |
| 19:20:35 | <geekosaur> | I use ghci but I use it on something I've entered using an editor instead of typing definitions directly into it |
| 19:21:06 | <geekosaur> | you also can't enter a bunch of definitions and then save the result to a file afterward |
| 19:21:12 | <monochrom> | REPLing is so commonly demanded that "cabal repl" and "stack repl" exist and were implemented with great pain. |
| 19:21:55 | <energizer> | geekosaur: yeah idk what the general name for "sending lines from editor to inferior repl process" is |
| 19:22:46 | <monochrom> | OK so this is an echo chamber "conversation" |
| 19:22:58 | <energizer> | monochrom? |
| 19:23:15 | <monochrom> | "I will ignore all doubts against my premise." |
| 19:23:49 | <monochrom> | Not the first time anyway. |
| 19:23:50 | <energizer> | monochrom: you made your point, give it a minute to settle before attacking please |
| 19:24:13 | → | mimmy joins (~mimmy@69.174.8.146) |
| 19:25:57 | → | x88x88x joins (~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb) |
| 19:26:49 | shapr | awakens |
| 19:26:53 | <shapr> | people not being nice? |
| 19:26:56 | <energizer> | there are many livestreams of lisp/python/whatever developers interactively exploring data as part of their workflow. are there any such videos for haskell? |
| 19:26:58 | shapr | hugs people |
| 19:27:37 | <shapr> | energizer: have you seen https://las.rs/blog/haskell-as-shell.html ? could be related? |
| 19:27:47 | <geekosaur> | possibly not, but that doesn't mean we don't do it |
| 19:28:11 | <Cale> | energizer: People use ghci constantly... I don't know why you'd expect otherwise. |
| 19:28:22 | <shapr> | I'd use GHCi for all my dev if I could easily file out definitions into a file, same as when I wrote python for a living. |
| 19:28:36 | <geekosaur> | was in a discussion earlier today elsewhere where it was pointed out that lisp/python/clojure/etc. folks always think they invented that idea |
| 19:28:46 | <geekosaur> | when it's been around for years |
| 19:29:19 | <geekosaur> | we just don't see any need to pretend we invented the idea and need to advertise it |
| 19:29:30 | <shapr> | energizer: does IHaskell fit into the repl box? |
| 19:30:09 | <energizer> | when was ghci released? |
| 19:30:20 | × | kranius quits (~kranius@user/kranius) (Quit: leaving) |
| 19:30:34 | <monochrom> | IMO DrRacket, Mathematica notebooks, IPython, and IHaskell are no longer REPL. They exceed REPL by far. |
| 19:31:00 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 19:31:50 | <monochrom> | REPL is when you are confined to a VT100. |
| 19:31:58 | → | max22- joins (~maxime@2a01cb0883359800bfc539327e2fa08b.ipv6.abo.wanadoo.fr) |
| 19:33:16 | <energizer> | shapr: that post is nice. i often wonder why people dont use haskell for their system shell. based on that post i think the answer is that there's no good syntax for it |
| 19:33:22 | <monochrom> | Mathematica already coined the name "notebook" for this, long before the rest of DrRacket and IPython IThis IThat. I say we can call this "notebook". |
| 19:33:25 | <geekosaur> | looks like ghci was introduced in ghc5 |
| 19:33:39 | <energizer> | (which isn't the conclusion it arrives at but i do) |
| 19:34:20 | <energizer> | monochrom: that is a good point |
| 19:34:45 | <monochrom> | And exploring data during programming, I think it's already part of Jackson Structured Design way back. |
| 19:35:08 | <shapr> | energizer: last I looked into GHCi, it works by compiling pieces and dynamically loading them. That needs extra support, so is often not present on uncommon architectures |
| 19:35:08 | <monochrom> | No one is going to get the credit except Jackson. |
| 19:35:25 | <monochrom> | BTW fun fact, his full name is Michael Jackson, no joke. |
| 19:36:02 | <monochrom> | In 2000 I had the honour to meet him. Same summer school when SPJ gave the Awkward Squad lectures. |
| 19:36:07 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 19:36:34 | <geekosaur> | shapr, not quite. it compiles to bytecode by default, which works fine. what does not automatically work on weird architectures is anything that wants to load external libraries for FFI |
| 19:36:48 | <shapr> | ah, thanks for the details |
| 19:36:50 | <monochrom> | And stupid me, when I met him I failed to connect him to "wait, are you Jackson as in Jackson Structure Design/Programming?" |
| 19:37:32 | <energizer> | geekosaur: what happens to the bytecode? |
| 19:37:52 | <shapr> | energizer: seems reasonable to me that whitespace syntax makes multi-line repl difficult |
| 19:38:22 | <shapr> | as far as I know the curly brace and semicolon syntax is still supported, maybe that'd be more repl friendly? |
| 19:38:42 | <geekosaur> | it's executed and discarded. a way to save and load it has been a low priority ghc ticket for years; you can't even save source currently, what point is bytecode? |
| 19:39:15 | <shapr> | energizer: at least for me, I write functions in emacs, and hit C-c C-l to dump the open buffer into ghci, that works well |
| 19:39:18 | <geekosaur> | it's still supported but less familiar to most folks, especially since once you switch to it you can't stop using it |
| 19:39:32 | <shapr> | haskell-language-server makes everything easier, I don't need ghci or ghcid much at all |
| 19:39:36 | <geekosaur> | so you also have to use brace syntax with a let inside a do, for example |
| 19:39:38 | <energizer> | geekosaur: i mean is there a bytecode vm or does the bytecode get compiled to native |
| 19:39:47 | <geekosaur> | there is a bytecode vm |
| 19:39:56 | <geekosaur> | it's also used by template haskell |
| 19:40:41 | <shapr> | energizer: oh, have you tried haskell-language-server ? if not, it's really amazing |
| 19:42:20 | <energizer> | i guess what i'm trying to get at is, what about lisp/python/whatever is more suitable for interactive exploration than what haskell offers |
| 19:43:02 | × | x88x88x quits (~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb) (Ping timeout: 240 seconds) |
| 19:43:47 | <shapr> | I can't think of any reason that would be true? |
| 19:44:05 | <geekosaur> | neither can I |
| 19:44:08 | <shapr> | not saying it isn't, just seems like they're equally powerful to me? |
| 19:44:18 | <geekosaur> | do you have a reason to think they are? |
| 19:44:34 | <shapr> | I did ~20 years of professional python before doing professional Haskell, I'd prefer to use Haskell for data exploration for a variety of reasons |
| 19:44:50 | <shapr> | mind you, python has lots of libraries that Haskell doesn't |
| 19:44:53 | <geekosaur> | the only reasons I can think of are (a) compiled instead of interpreted by default (b) not dynamically typed |
| 19:45:01 | <energizer> | one is that in python the compiler won't fail to infer, it'll just go |
| 19:45:03 | <geekosaur> | but neither is actually a problem |
| 19:45:28 | <geekosaur> | python will also happily accept unexpected Nones |
| 19:45:34 | <geekosaur> | and give you garbage |
| 19:45:40 | <shapr> | energizer: I think 'just go' has caused me the most problems in my professional python career. |
| 19:45:54 | <energizer> | i'm not asking "why is haskell better for interactive" i'm asking "why is python better for interactive" |
| 19:46:00 | shapr | thinks |
| 19:46:10 | <shapr> | I guess I'm not convinced it is? |
| 19:46:19 | <shapr> | What do you see that supports that hypothesis? |
| 19:46:23 | <energizer> | s/why/in what ways is/ |
| 19:47:12 | <shapr> | I'd agree with what geekosaur just said |
| 19:47:22 | <shapr> | Python will give you possibly incorrect results with less work |
| 19:47:39 | <energizer> | that aint what im asking |
| 19:47:56 | shapr | tries to read again |
| 19:48:05 | <energizer> | gimme the python pros column |
| 19:48:18 | <energizer> | not the python cons column |
| 19:48:34 | <shapr> | python pros: jupyter, lots of libraries, easy to find on stackoverflow |
| 19:48:57 | <energizer> | i'm not seeing how compiled/interpreted would matter |
| 19:49:14 | <shapr> | matters a bunch when your dataset is large |
| 19:49:40 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4) |
| 19:49:45 | <energizer> | geekosaur gave it as a python pro i think |
| 19:49:55 | <monochrom> | codeworld proves that python is not better for interactive. |
| 19:50:09 | <geekosaur> | why are you asking haskell folks why python is better? |
| 19:50:28 | <energizer> | cuz python folks dont know haskell |
| 19:50:38 | <shapr> | ha, good point |
| 19:51:01 | <shapr> | python has way more libraries for uncommon file formats and network protocols |
| 19:51:11 | <monochrom> | Well, DrRacket already proves that. But I want a statically typed proof. |
| 19:51:16 | → | x88x88x joins (~x88x88x@149.28.53.172) |
| 19:51:17 | × | emf quits (~emf@2620:10d:c091:480::1:e0fe) (Ping timeout: 240 seconds) |
| 19:51:19 | <shapr> | that's the biggest python advantage I see |
| 19:51:58 | <shapr> | energizer: do you write both Python and Haskell? |
| 19:52:13 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 19:52:26 | <shapr> | Python was my favorite language for a long time, but Haskell has overtaken that |
| 19:52:27 | <monochrom> | And there is also an interactive website that provides even a dependently typed proof. It uses Lean the math theorem prover. |
| 19:53:13 | <monochrom> | https://leanprover.github.io/live/latest/ |
| 19:53:57 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4) (Ping timeout: 240 seconds) |
| 19:54:09 | <monochrom> | Although, when I first googled "try lean", I discovered that now we also have an abused drug called "lean". |
| 19:54:16 | <monochrom> | What can't we have nice things. |
| 19:54:19 | <shapr> | energizer: personally, I want to get more differential dataflow support in my every day life. I it'll be a better tool for many things I do. |
| 19:54:43 | <monochrom> | You give a name to your hard-won theorem prover, now suddenly it is also the name of a drug. |
| 19:55:02 | <energizer> | my experience with theorem provers is that they require enormous work to get results |
| 19:56:13 | <energizer> | sure the results are correct but do i really need to cover all the cases in the first draft |
| 19:56:21 | <geekosaur> | proofs are never easy, that's why we have tools to help with them |
| 19:56:33 | <monochrom> | No no no... |
| 19:56:47 | <monochrom> | proofs are never easy, that's why we let only humans check them >:) |
| 19:56:52 | <energizer> | not needing a proof to get something running is even easier |
| 19:57:26 | <monochrom> | I mean, correct programs are never easy, that's why we are complacent with incorrect programs. |
| 19:57:39 | <energizer> | i think that's the answer to my question |
| 19:57:56 | <monochrom> | And Curry-Howard says why the two phenomena are the two sides of the same coin. |
| 19:57:57 | → | deadmarshal joins (~deadmarsh@95.38.229.128) |
| 19:58:32 | <geekosaur> | and why dynamic typed systems that don't warn you about an unexpected nil/None/whatever are so popular, you can pretend errors don't exist (right up until they bite you in the butt) |
| 19:58:33 | <energizer> | when i'm developing interactively, i dont want to be interrupted by an annoying program asking for a proof of cases i dont care about |
| 19:58:48 | <energizer> | or proof that ive satisfied all the properties |
| 19:59:30 | <energizer> | i just want to roll, i'll clean it up after i verify i'm on the right track |
| 20:00:00 | <shapr> | in my experience, GHC checking for unhandled cases is a sweet spot between a proof and a dynamic language like Python |
| 20:00:02 | <geekosaur> | and then you never do because it works well enough |
| 20:00:13 | <geekosaur> | see also: there is nothing so permanent as a temporary hack |
| 20:01:01 | <geekosaur> | (is my sysadmin hat showing? :) |
| 20:01:38 | <shapr> | they quickly become load bearing hacks |
| 20:01:51 | <pragma-> | if it ain't broke |
| 20:01:53 | <shapr> | we have several of those in the work codebase |
| 20:02:17 | × | deadmarshal quits (~deadmarsh@95.38.229.128) (Ping timeout: 240 seconds) |
| 20:02:20 | <monochrom> | A proof-heavy system is only as restrictive as what you promise it. |
| 20:02:32 | <shapr> | energizer: will you do a write-up of your findings? I'd be interested in reading it. |
| 20:02:51 | <monochrom> | So I relax that restriction by promising less at the beginning. I can promise more when I am ready for more. |
| 20:03:18 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 260 seconds) |
| 20:03:55 | <energizer> | shapr: i'm sure i wont have any novel conclusions, i'm just trying to catch up |
| 20:03:57 | <monochrom> | You don't want to prove that your function works for all cases? Well don't promise "all cases" in the first place. |
| 20:04:07 | <shapr> | energizer: if you want to learn about languages further into proof land, agda is informative. |
| 20:05:00 | <energizer> | shapr: yeah the whole family of fancy type systems seems interesting |
| 20:05:15 | × | juhp quits (~juhp@128.106.188.82) (Ping timeout: 256 seconds) |
| 20:05:15 | <energizer> | agda idris lean coq |
| 20:05:17 | → | zincy joins (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807) |
| 20:05:20 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4) |
| 20:05:56 | → | coot joins (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) |
| 20:06:35 | × | zincy quits (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807) (Remote host closed the connection) |
| 20:07:07 | → | zincy joins (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807) |
| 20:07:52 | → | juhp joins (~juhp@128.106.188.82) |
| 20:08:39 | × | nvmd quits (~nvmd@user/nvmd) (Quit: Later, nerds.) |
| 20:08:42 | × | dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3) |
| 20:08:52 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 20:10:51 | × | zincy quits (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807) (Remote host closed the connection) |
| 20:11:05 | → | zincy joins (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807) |
| 20:13:29 | → | vicfred joins (~vicfred@user/vicfred) |
| 20:15:02 | × | doyougnu quits (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
| 20:15:37 | → | wolfshappen joins (~waff@irc.furworks.de) |
| 20:19:02 | → | Guest|47 joins (~Guest|47@c-73-221-44-172.hsd1.wa.comcast.net) |
| 20:21:26 | → | darkstardevx joins (~darkstard@50.39.115.145) |
| 20:22:53 | × | darkstardevx quits (~darkstard@50.39.115.145) (Remote host closed the connection) |
| 20:23:17 | → | darkstardevx joins (~darkstard@50.39.115.145) |
| 20:23:59 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 20:24:23 | Guest|47 | is now known as space_llama |
| 20:25:39 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 20:36:49 | × | zincy quits (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807) (Remote host closed the connection) |
| 20:37:02 | → | zincy joins (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807) |
| 20:37:15 | <EvanR> | energizer, have you heard of this feature in ghc where type errors are delayed until some point at runtime |
| 20:37:38 | <EvanR> | haven't used it, but it fits the problem of "I just want to run the program NOW" |
| 20:37:54 | → | notzmv joins (~zmv@user/notzmv) |
| 20:38:11 | <EvanR> | i.e. part of your program could run but the whole thing is still broken |
| 20:39:10 | <EvanR> | seems handy and appealing to pythonic sensibilities |
| 20:39:47 | × | ph88 quits (~ph88@ip5f5af068.dynamic.kabel-deutschland.de) (Quit: Leaving) |
| 20:42:58 | <tomsmeding> | -fdefer-type-errors |
| 20:43:24 | <tomsmeding> | see also the more restricted -fdefer-typed-holes |
| 20:44:10 | <EvanR> | oh that's a good one... I put a _ and now I don't even get other errors xD |
| 20:44:57 | × | mimmy quits (~mimmy@69.174.8.146) (Ping timeout: 240 seconds) |
| 20:46:22 | → | lavaman joins (~lavaman@98.38.249.169) |
| 20:50:49 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
| 20:53:03 | × | space_llama quits (~Guest|47@c-73-221-44-172.hsd1.wa.comcast.net) (Quit: Connection closed) |
| 20:53:19 | × | coot quits (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Remote host closed the connection) |
| 20:57:11 | → | jackson99 joins (~bc8147f2@83.167.180.121) |
| 20:57:17 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3) |
| 21:05:00 | × | burnsidesLlama quits (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Remote host closed the connection) |
| 21:05:21 | × | tewrdh^ quits (~tewrdh@64.253.22.77) (Remote host closed the connection) |
| 21:05:45 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
| 21:06:49 | × | amk quits (~amk@109.255.169.126) (Remote host closed the connection) |
| 21:08:17 | → | amk joins (~amk@109.255.169.126) |
| 21:10:30 | → | coot joins (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) |
| 21:10:40 | <EvanR> | I tried an algebraic solution to todays puzzle |
| 21:10:46 | <EvanR> | did not work:tm: |
| 21:11:03 | → | CiaoSen joins (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 21:11:56 | → | mimmy joins (~mimmy@69.174.8.146) |
| 21:13:11 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:16:17 | × | benin quits (~benin@183.82.27.57) (Quit: The Lounge - https://thelounge.chat) |
| 21:16:37 | × | mimmy quits (~mimmy@69.174.8.146) (Ping timeout: 240 seconds) |
| 21:16:48 | → | jgeerds joins (~jgeerds@55d4ac73.access.ecotel.net) |
| 21:17:43 | → | benin joins (~benin@183.82.27.57) |
| 21:22:04 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 21:22:22 | → | whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com) |
| 21:23:01 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4) (Remote host closed the connection) |
| 21:24:40 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 21:24:57 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 21:24:57 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 21:25:49 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 21:25:50 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 21:26:21 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 21:26:22 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 21:26:47 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 21:26:47 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 21:28:53 | <d34df00d> | Alrighty, I have a small problem where I need to foldMap over a list, but with access to not just the current element, but, potentially, left and right neightbour of each element (except the first and last one). |
| 21:29:05 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 21:29:05 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 21:29:25 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 21:30:07 | <d34df00d> | zippers look relevant, but a couple of libraries I looked at don't provide the map-into-a-monoid-and-concat primitive. |
| 21:31:12 | <Rembane> | d34df00d: zip3 xs (tail xs) (tail . tail $ xs) |
| 21:31:25 | → | mimmy joins (~mimmy@69.174.8.146) |
| 21:32:11 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 21:32:11 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 21:32:13 | <Rembane> | d34df00d: That might help you, but it's not as fancy as what you were after. |
| 21:32:38 | <d34df00d> | Hmm, I came up with zipping together xs, tail (inits xs) and init (tails xs) |
| 21:33:03 | <d34df00d> | Yours looks somewhat similar, I think. Also, yep, I was curious if I'm reinventing the wheel, or if there is an abstraction I could use. |
| 21:33:18 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 21:33:19 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 21:33:40 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 21:33:41 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 21:34:04 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 21:34:05 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 21:34:21 | <justsomeguy> | Haskellbook says "Haskell has native recursion based on the same principle as the Y combinator". (Source here: https://gist.github.com/kingparra/a0600fe64999c391c320058aa0072125) What does that mean? |
| 21:35:05 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 21:35:05 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 21:35:19 | <justsomeguy> | In that gist, I added a comment with my stab at an explanation of that quote, but I feel like I'm missing something. |
| 21:35:30 | × | Hafydd quits (~Hafydd@user/hafydd) (Quit: WeeChat 3.3) |
| 21:35:35 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 21:35:36 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 21:35:55 | × | mimmy quits (~mimmy@69.174.8.146) (Ping timeout: 256 seconds) |
| 21:37:10 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 21:37:11 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 21:37:43 | <monochrom> | I think it is either false or requires a very postmodern definition of "same principles". |
| 21:38:49 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:39:07 | <monochrom> | So let me start from the most anal and see if I can progress (regress?) to the most lax. |
| 21:39:28 | <monochrom> | The Y combinator is untypable in Haskell. So it is irrelevant right there. |
| 21:39:44 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 21:39:45 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 21:39:59 | <justsomeguy> | There are a lot of quotes like that in this book ... I think the intention is to relate how the evaluation strategy of LC is a useful mental model for how Haskell evaluates, but sometimes it's frustrating because it seems like some of these are factually incorrect. |
| 21:40:07 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 21:40:08 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 21:40:50 | <monochrom> | But you can work around by introducing a few newtype wrappings and unwrappings. It is not too bad. Then you can have an edited version of the Y combinator in Haskell. |
| 21:40:59 | <justsomeguy> | I did find a definition of Y in haskell, but it requires unsafeCoerce: y = \f -> (\x -> f (x' x)) (\x -> f (x' x)) |
| 21:41:01 | <justsomeguy> | where x' = unsafeCoerce x |
| 21:41:03 | <justsomeguy> | y |
| 21:41:10 | <tomsmeding> | I mean, the primary characteristic of the Y combinator is that Y f = f (Y f); and such a function does indeed exist: it's Data.Function.fix, defined as, you guessed it, fix f = f (fix f) |
| 21:41:17 | <monochrom> | But then, this still doesn't mean that Haskell's native recursion is actually defined in terms of that. |
| 21:41:44 | <justsomeguy> | Right, that what I'm wondering about. ... |
| 21:42:16 | <monochrom> | OK right, the next laxation is "we just mean that the fixed-point equation is solvable, and Y is one way to solve that equation". |
| 21:42:19 | <tomsmeding> | you need the weird structure of the standard Y combinator (which is untypeable in Haskell) because you don't have direct recursion in the standard lambda calculs |
| 21:42:29 | → | random-jellyfish joins (~random-je@user/random-jellyfish) |
| 21:42:46 | <monochrom> | But Y is by far not the only solution, not even in the untyped lambda calculus in the book's chapter 1. |
| 21:43:12 | → | Hafydd joins (~Hafydd@user/hafydd) |
| 21:43:14 | <geekosaur> | I have this feeling it's really talking about letrec |
| 21:43:30 | <geekosaur> | but that's an odd way of putting it |
| 21:43:44 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 21:43:45 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 21:43:47 | <tomsmeding> | geekosaur: yeah, then it's doing the reader a disservice by saying that it's the same principle as the Y combinator |
| 21:43:52 | <monochrom> | This is a pretty broad disease. People cite Y as though it is the only solution. NO. There is an honest difference between "fixed point combinator" and Y. |
| 21:44:00 | <tomsmeding> | it's not, though it can be used to the same end |
| 21:44:14 | × | mcglk quits (~mcglk@131.191.49.120) (Read error: Connection reset by peer) |
| 21:44:15 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 21:44:16 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 21:44:18 | → | burnsidesLlama joins (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
| 21:44:25 | <monochrom> | In the same sense as "white horse is not horse" (white horses don't stand for all horses), Y is not fixed-point combinator. |
| 21:44:32 | <tomsmeding> | monochrom: are there any in the untyped lambda calculus that are typeable in Haskell? |
| 21:44:49 | <monochrom> | No. They all rely on \x -> x x |
| 21:44:56 | <tomsmeding> | makes sense |
| 21:45:23 | → | mcglk joins (~mcglk@131.191.49.120) |
| 21:46:11 | → | acidjnk joins (~acidjnk@p200300d0c7271e77d154eb1f1200bcdb.dip0.t-ipconnect.de) |
| 21:46:19 | <monochrom> | Alternatively, if you delete recursive bindings and recursive data type definitions from Haskell, you end up with something less powerful than System F, and System F doesn't have \x -> x x, we know this because every program in System F terminates. |
| 21:46:30 | <tomsmeding> | (are there any in the simply-typed lambda calculus? No, because STLC is total) |
| 21:46:45 | <tomsmeding> | (or, perhaps, _therefore_ STLC is total) |
| 21:46:45 | <monochrom> | Yeah, like that kind of arguments. |
| 21:47:19 | <tomsmeding> | (not sure you can sensibly put a causality relation there) |
| 21:47:41 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 21:47:42 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 21:48:13 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 21:48:21 | <monochrom> | The most lax level is to first acknowledge that Haskell has syntactic recursion, which is by far totally not the point of any fixed-point combinator (which spares you from syntactic recursion). |
| 21:49:20 | × | burnsidesLlama quits (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Ping timeout: 268 seconds) |
| 21:49:22 | <monochrom> | And then the semantics of Haskell goes on to map syntactic recursion to the use of a fixed-point combinator (and we don't care which). As alluded in the Haskell Report. |
| 21:49:54 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 21:49:55 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 21:50:15 | <monochrom> | So yeah, one point down for HFFP. |
| 21:50:20 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 21:50:21 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 21:50:32 | × | kjak quits (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Remote host closed the connection) |
| 21:50:41 | <monochrom> | It uses a good pedogogical strategy, but it gets a couple of facts wrong. |
| 21:51:24 | <monochrom> | Although, hiding behind the façade of "same" "principle" you can make any claim you like. |
| 21:51:42 | <monochrom> | http://www.vex.net/~trebla/humour/tautologies.html #0 |
| 21:52:02 | <justsomeguy> | There are a few mroe like this. From ch1 "Functional programming languages are all based on the lambda calculus.". Apparently the original lisp is based on McCarthys thesis. |
| 21:52:06 | <justsomeguy> | *more |
| 21:52:40 | <justsomeguy> | Thank you for clearing that up, monochrom |
| 21:52:54 | → | Guest|47 joins (~Guest|47@c-73-221-44-172.hsd1.wa.comcast.net) |
| 21:53:03 | Guest|47 | is now known as space_llama |
| 21:53:18 | <monochrom> | Oh, that one I have no objection. |
| 21:53:54 | <monochrom> | Lisp's primary concern was cons cell. FP is only its secondary concern. |
| 21:54:04 | <tomsmeding> | though it's fairly easy to be "based on" the lambda calculus :p |
| 21:54:20 | <Rembane> | Maybe it's harder to not be based on the lambda calculus? |
| 21:54:32 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 21:54:33 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 21:54:41 | <tomsmeding> | C isn't in any reasonable way, I guess |
| 21:54:42 | <justsomeguy> | So your position is that Lisp isn't a functional lanauge, then? (I would say it isn't purely functional, but it's still functional.) |
| 21:55:23 | → | regr joins (~regr@2a02:a466:cf4f:1:cbe9:8a75:f9d2:f3e4) |
| 21:55:31 | <monochrom> | I would pin Backus language "FP" as the 1st functional programming language. And it uses so many ideas from lambda calculus that I would not object to "based on that". |
| 21:55:35 | <oats> | you can write some really imperative code in some lisps |
| 21:55:55 | <monochrom> | But if you don't accept that, I have a weaker stance. |
| 21:55:59 | × | zincy quits (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807) (Remote host closed the connection) |
| 21:55:59 | <oats> | lisp-family languages tend to be more expression-oriented, but idk if that can qualify it as functional |
| 21:56:03 | <tomsmeding> | I mean, to be "based on" the lambda calculus, you need variables (only basically removes assembly and forth-likes from the list of candidates), function application (same), and inline functions (removes a couple more, but leaves almost any language that is still receiving updates today) |
| 21:56:03 | <geekosaur> | you can write some really imperative code in haskell |
| 21:56:31 | <oats> | new rule, lambda calculus is the only functional language :P |
| 21:57:08 | <Rembane> | tomsmeding: So having a language that with some effort can be turned into lambda calculus doesn't count? :) |
| 21:57:15 | <tomsmeding> | geekosaur: I wonder if our students, who are learning Haskell as a second language after an imperative one, would find that a consolation :p |
| 21:57:16 | <monochrom> | Landin taught us to explain programming languages by a lambda calculus on steroid. ("The Next 700 Programming Languages.") So a revisionist would say that FPLs are based on that, retrospectively. |
| 21:57:26 | <tomsmeding> | Rembane: such as? |
| 21:57:47 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 21:57:47 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 21:58:27 | <monochrom> | But Landin in that paper used lambda calculus to explain Algol, not very functional. So there. >:) |
| 21:58:52 | <tomsmeding> | lol |
| 21:59:07 | <monochrom> | Basically the paper covers everything except the Prolog camp... |
| 21:59:27 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 21:59:27 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 22:00:35 | <space_llama> | GHCi, version 8.10.7: https://www.haskell.org/ghc/ :? for help |
| 22:00:36 | <space_llama> | Prelude> import Graphics.Glass |
| 22:00:36 | <space_llama> | <no location info>: error: |
| 22:00:37 | <space_llama> | Could not find module ‘Graphics.Glass’ |
| 22:00:37 | <space_llama> | It is not a module in the current program, or in any known package. |
| 22:01:02 | <tomsmeding> | try Graphics.Gloss |
| 22:01:08 | <space_llama> | where does Graphics need to reside on my computer for ghci to see it? |
| 22:02:00 | <tomsmeding> | you need to create a project, either with stack or cabal, and add the 'gloss' package as a dependency; or you need to start a ghci shell via stack or cabal with the 'gloss' package as a dependency |
| 22:02:35 | <tomsmeding> | or you use an old-fashioned way of using cabal and install the library globally :p |
| 22:02:42 | × | darkstardevx quits (~darkstard@50.39.115.145) (Read error: Connection reset by peer) |
| 22:03:04 | <tomsmeding> | space_llama: do you have experience with python virtualenv, or rust, or nodejs? |
| 22:03:39 | <space_llama> | I did not use cabal. I downloaded a .tar.gz file directly from https://hackage.haskell.org/package/gloss |
| 22:03:56 | <tomsmeding> | you should use cabal (or stack) :) |
| 22:04:08 | <tomsmeding> | unless you have a good reason not to, and you probably don't |
| 22:04:11 | <space_llama> | I have about 8 hours experience on python. Mostly have used Matlab |
| 22:04:22 | → | mimmy joins (~mimmy@69.174.8.146) |
| 22:04:25 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 22:04:26 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 22:04:41 | <tomsmeding> | I believe with python, you put dependencies in requirements.txt, right? |
| 22:04:43 | <tomsmeding> | or something like that |
| 22:04:58 | <Rembane> | tomsmeding: What monochrom said about Landin, Algol and lambda calculus. That should mean that C can be turned into lambda calculus too. Or explained by it. |
| 22:05:00 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 22:05:01 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 22:05:06 | <tomsmeding> | (actually virtualenv is not really a good example, forget that) |
| 22:05:22 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 22:05:23 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 22:05:34 | <space_llama> | so how do I know what command to type into shell to download the graphics.gloss package via cabal? |
| 22:05:43 | <tomsmeding> | Rembane: not having read the paper (sorry), I wouldn't accept that as an argument why Algol/C is "based on" LC :p |
| 22:06:36 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 22:06:37 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 22:06:54 | <tomsmeding> | space_llama: the easiest way to start a ghci session with access to 'gloss', is 'cabal repl -b gloss' |
| 22:07:07 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 22:07:08 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 22:07:14 | × | space_llama quits (~Guest|47@c-73-221-44-172.hsd1.wa.comcast.net) (Quit: Connection closed) |
| 22:07:17 | <Rembane> | tomsmeding: That's reasonable. I must admit that I did a silly amount of handwaving there. |
| 22:07:21 | <tomsmeding> | if you want to actually write a .hs file that uses gloss, create a new directory and put a suitable yourprojct.cabal file in it |
| 22:07:26 | <oats> | poor space_llama |
| 22:07:26 | <tomsmeding> | oh by space_llama |
| 22:07:28 | <sclv> | space_llama: downloading it won't help. you need to build it (and to build it you need to build and link its dependencies, and their dependencies, etc). so that's why we use package managers like cabal to manage all that |
| 22:07:30 | <tomsmeding> | *bye |
| 22:07:35 | → | Guest|47 joins (~Guest|47@c-73-221-44-172.hsd1.wa.comcast.net) |
| 22:07:39 | Guest|47 | is now known as space_llama |
| 22:07:39 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 22:07:40 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 22:07:41 | <sclv> | oh lol |
| 22:07:48 | <sclv> | space_llama: downloading it won't help. you need to build it (and to build it you need to build and link its dependencies, and their dependencies, etc). so that's why we use package managers like cabal to manage all that |
| 22:08:00 | <tomsmeding> | space llama is lost in space |
| 22:08:08 | <oats> | space_llama, please trust us, it's worth it to learn to use the toolin |
| 22:08:08 | <space_llama> | oops I just held power instead of delete key and logged off computer... |
| 22:08:10 | <oats> | *tooling |
| 22:08:10 | <sclv> | so `cabal repl -b gloss` as suggested starts an interactive ghci session with a build dependency on gloss |
| 22:08:11 | <oats> | lol |
| 22:08:27 | <tomsmeding> | oops :p |
| 22:08:36 | <tomsmeding> | what sclv says |
| 22:08:43 | <sclv> | and that fetches and build and brings into scope all the stuff gloss needs and builds gloss and makes it available to the ghci session |
| 22:08:56 | <sclv> | and then to use it in a file, use a cabal project as suggested |
| 22:08:57 | × | mimmy quits (~mimmy@69.174.8.146) (Ping timeout: 240 seconds) |
| 22:11:05 | × | kmein quits (~weechat@user/kmein) (Quit: ciao kakao) |
| 22:11:25 | → | kmein joins (~weechat@user/kmein) |
| 22:12:09 | <tomsmeding> | space_llama: can start with this I guess https://paste.tomsmeding.com/M70m4yk4 |
| 22:13:04 | <tomsmeding> | (sorry for the poor spacing in the cabal file, that tab should be 4 spaces) |
| 22:13:25 | <space_llama> | well it did a bunch of installing, building, completed, starting, haddock business for 30+ lines |
| 22:14:48 | <justsomeguy> | If your prefer stack, you can run stack ghci -package gloss for the same effect. |
| 22:15:14 | <justsomeguy> | (Though, honestly, I think it makes more sense to learn cabal first.) |
| 22:16:16 | <space_llama> | now the terminal browser is flickering its heading title between "ghc", "clang" and something else " ... cabal reple -b gloss" and all my typed commands do nothing. |
| 22:16:31 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 22:16:31 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 22:16:31 | → | wroathe joins (~wroathe@user/wroathe) |
| 22:16:44 | <tomsmeding> | is it showing you a ghci prompt? |
| 22:16:50 | <space_llama> | no |
| 22:16:55 | <sclv> | if its still flickering between stuff thats because its still building? |
| 22:17:05 | <tomsmeding> | sounds like it |
| 22:17:08 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
| 22:17:18 | <sclv> | it might just not be printing loglines as frequently |
| 22:17:22 | <tomsmeding> | what is the last line it printed space_llama |
| 22:17:40 | <space_llama> | last4: |
| 22:17:40 | tomsmeding | suspects "Building OpenGLRaw" |
| 22:17:42 | <space_llama> | Building OpenGLRaw-3.3.4.1 (lib) |
| 22:17:43 | <space_llama> | Haddock bmp-1.2.6.3 (all, legacy fallback) |
| 22:17:43 | <space_llama> | Installing bmp-1.2.6.3 (all, legacy fallback) |
| 22:17:44 | <space_llama> | Completed bmp-1.2.6.3 (all, legacy fallback) |
| 22:17:46 | <tomsmeding> | bpp, |
| 22:17:48 | <tomsmeding> | *boom |
| 22:17:56 | <tomsmeding> | OpenGLRaw takes a while :p |
| 22:18:03 | → | darkstardevx joins (~darkstard@50.39.115.145) |
| 22:18:05 | <sclv> | right its building all this stuff in parallel, and now everything left is blocked on a really big complicated package |
| 22:18:13 | → | mimmy joins (~mimmy@69.174.8.146) |
| 22:18:23 | <tomsmeding> | (not sure if OpenGLRaw is _complicated_ per se, but it for sure is big) |
| 22:20:38 | <justsomeguy> | geekosaur: I think you said that you have a feeling the book is talking about letrec indirectly, earlier. What do you mean by that? Also, what is letrec? |
| 22:21:01 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
| 22:21:06 | <tomsmeding> | some languages make a distinction between recursive let (called letrec) and non-recursive let (callet let) |
| 22:21:13 | <tomsmeding> | in haskell, all lets are recursive |
| 22:21:20 | <tomsmeding> | IIRC scheme makes a distinction |
| 22:21:42 | <geekosaur> | yes, that |
| 22:22:04 | <geekosaur> | which means that if you refer to a binding on both sides of an equal sign, they're the same binding |
| 22:22:17 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 22:22:20 | <geekosaur> | which means it's a recursive binding that refers to itself |
| 22:22:38 | <geekosaur> | this is not the Y combinator, though |
| 22:23:08 | <tomsmeding> | it's recursive bindings, with which you can implement a fixpoint combinator :) |
| 22:23:26 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4) |
| 22:24:18 | <monochrom> | Fortunately, you can define and use Y directly in Scheme. |
| 22:24:45 | <monochrom> | Or better yet, another fixed-point combinator, one that is more friendly to eager languages. |
| 22:25:06 | → | doyougnu joins (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) |
| 22:25:37 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3) |
| 22:26:00 | <monochrom> | You would still prefer letrec for efficiency. |
| 22:26:17 | → | yin joins (~yin@user/zero) |
| 22:27:11 | <monochrom> | My idea of "the principle of Y" is not the fact that it solves the fixed-point equation, but how it does it, why it works. |
| 22:27:28 | <monochrom> | It (and other solutions) come down to something like \x -> x x |
| 22:27:37 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4) (Ping timeout: 240 seconds) |
| 22:27:50 | <tomsmeding> | probably if you would ask the author of that book this question, in isolation, they would agree |
| 22:28:03 | → | burnsidesLlama joins (~burnsides@dhcp168-011.wadham.ox.ac.uk) |
| 22:28:38 | <monochrom> | That, in turn, comes down to: Let D be the semantic domain of your untyped lambda calculus. Then D is order-isomorphic to the CPO of continuous functions D->D. |
| 22:29:33 | → | timCF joins (~timCF@m91-129-100-224.cust.tele2.ee) |
| 22:29:44 | tomsmeding | goes off to bed |
| 22:30:27 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:32:50 | <timCF> | Hello! Does anybody have an idea how to write conditional type class constraints, based on Data.Type.Equality.== result? Something like if result is 'True then use one constraint, if result is 'False - use another constraint? Basically type-level if-then-else expression for constaints. |
| 22:32:57 | × | sprout quits (~quassel@2a02:a467:ccd6:1:bc5b:dbe0:79e5:a909) (Ping timeout: 240 seconds) |
| 22:41:39 | × | kmein quits (~weechat@user/kmein) (Ping timeout: 256 seconds) |
| 22:42:57 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
| 22:44:08 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 22:45:56 | ← | regr parts (~regr@2a02:a466:cf4f:1:cbe9:8a75:f9d2:f3e4) (WeeChat 2.8) |
| 22:46:20 | → | sprout joins (~quassel@2a02:a467:ccd6:1:bc5b:dbe0:79e5:a909) |
| 22:51:18 | × | sprout quits (~quassel@2a02:a467:ccd6:1:bc5b:dbe0:79e5:a909) (Ping timeout: 260 seconds) |
| 22:52:53 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 22:52:55 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 22:53:53 | → | kmein joins (~weechat@user/kmein) |
| 22:56:17 | × | yin quits (~yin@user/zero) (Ping timeout: 240 seconds) |
| 22:57:54 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4) |
| 23:00:17 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 23:00:43 | → | sprout joins (~quassel@2a02:a467:ccd6:1:bc5b:dbe0:79e5:a909) |
| 23:04:02 | × | coolnickname quits (uid531864@user/coolnickname) (Quit: Connection closed for inactivity) |
| 23:04:50 | × | ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
| 23:05:29 | × | sprout quits (~quassel@2a02:a467:ccd6:1:bc5b:dbe0:79e5:a909) (Ping timeout: 252 seconds) |
| 23:06:45 | <dan-so> | is there a canonical way to get an element out of a HashMap, without caring which it is? |
| 23:06:57 | × | max22- quits (~maxime@2a01cb0883359800bfc539327e2fa08b.ipv6.abo.wanadoo.fr) (Quit: Leaving) |
| 23:07:05 | <dan-so> | something like get_any :: HashMap k v -> Maybe (k,v) |
| 23:08:18 | → | ProfSimm joins (~ProfSimm@87.227.196.109) |
| 23:08:21 | <dan-so> | lookupMin or lookupMax would be fine, if i were using a tree-based Map |
| 23:08:45 | × | ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection) |
| 23:08:48 | <jackdk> | `headMay . HashMap.toList`? |
| 23:09:57 | <dan-so> | yes, that would do fine. so there's not really a "right" way then? |
| 23:10:11 | <jackdk> | If you don't want to add the `safe` dep or similar, use something like `Map.foldrWithKey (\k v _ -> Just (k, v)) Nothing` |
| 23:10:20 | <jackdk> | I'm not aware of a canonical name for this function |
| 23:10:47 | <dan-so> | okay, thank you! |
| 23:13:57 | × | kmein quits (~weechat@user/kmein) (Quit: ciao kakao) |
| 23:14:35 | → | kmein joins (~weechat@user/kmein) |
| 23:16:11 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: closed) |
| 23:16:28 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 23:16:39 | × | random-jellyfish quits (~random-je@user/random-jellyfish) (Ping timeout: 256 seconds) |
| 23:17:40 | → | sprout joins (~quassel@2a02:a467:ccd6:1:bc5b:dbe0:79e5:a909) |
| 23:21:57 | × | sprout quits (~quassel@2a02:a467:ccd6:1:bc5b:dbe0:79e5:a909) (Ping timeout: 240 seconds) |
| 23:23:55 | <dsal> | :t maybeToList |
| 23:23:57 | <lambdabot> | Maybe a -> [a] |
| 23:24:05 | <dsal> | :t listToMaybe |
| 23:24:06 | <lambdabot> | [a] -> Maybe a |
| 23:24:41 | <dsal> | @src listToMaybe |
| 23:24:42 | <lambdabot> | listToMaybe [] = Nothing |
| 23:24:42 | <lambdabot> | listToMaybe (a:_) = Just a |
| 23:24:51 | <dsal> | It's kind of weird those aren't defined for Foldable in general. |
| 23:25:25 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 23:25:46 | × | darkstardevx quits (~darkstard@50.39.115.145) (Remote host closed the connection) |
| 23:26:57 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4) (Remote host closed the connection) |
| 23:26:59 | <dan-so> | hah, i wrote about that exact topic |
| 23:27:08 | <dan-so> | https://danso.ca/blog/frommaybe-is-just-a-fold/ |
| 23:33:57 | × | cosimone quits (~user@93-47-230-208.ip115.fastwebnet.it) (Ping timeout: 240 seconds) |
| 23:35:59 | → | sprout joins (~quassel@2a02:a467:ccd6:1:bc5b:dbe0:79e5:a909) |
| 23:36:37 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 240 seconds) |
| 23:40:17 | × | mimmy quits (~mimmy@69.174.8.146) (Ping timeout: 240 seconds) |
| 23:40:58 | × | sprout quits (~quassel@2a02:a467:ccd6:1:bc5b:dbe0:79e5:a909) (Ping timeout: 268 seconds) |
| 23:41:01 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 23:41:57 | ← | qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection) |
| 23:41:58 | → | qrpnxz joins (abc4f95c31@user/qrpnxz) |
| 23:47:22 | <space_llama> | unable to find module 'Graphics.Gloss' |
| 23:47:45 | <space_llama> | trying to follow https://mmhaskell.com/blog/2019/3/25/making-a-glossy-game-part-1 |
| 23:48:09 | → | mimmy joins (~mimmy@38.142.1.26) |
| 23:51:02 | <space_llama> | first I `cabal repl -b gloss`, then once downloaded. I 'mkdir newProject' -> 'cd newProject' -> 'cabal init' |
| 23:51:24 | <sm> | fixing-the-internet: tell the author their example is hard to follow |
| 23:52:11 | <space_llama> | am I the author or do you mean the author of mmhaskell? |
| 23:52:21 | → | sprout joins (~quassel@2a02:a467:ccd6:1:bc5b:dbe0:79e5:a909) |
| 23:52:30 | <sm> | likely-fix-for-you: add the gloss package to build-depends in your .cabal file |
| 23:52:51 | × | mimmy quits (~mimmy@38.142.1.26) (Client Quit) |
| 23:53:06 | <sm> | author = author of the blog post |
| 23:54:02 | → | falafel joins (~falafel@2603-8000-d800-688c-6093-c6e0-4810-959c.res6.spectrum.com) |
| 23:54:59 | × | Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 252 seconds) |
| 23:56:57 | × | sprout quits (~quassel@2a02:a467:ccd6:1:bc5b:dbe0:79e5:a909) (Ping timeout: 240 seconds) |
| 23:57:49 | <space_llama> | currently I have: |
| 23:57:50 | <space_llama> | build-depends: base ^>=4.14.3.0 |
| 23:57:50 | <space_llama> | gloss >= 1.33 && < 1.14 |
| 23:59:00 | <space_llama> | I was given this code, so I'm not really sure how to decipher if it is correct (I do not know what "base ^>= #'s means |
| 23:59:06 | × | johnw quits (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Quit: ZNC - http://znc.in) |
All times are in UTC on 2021-12-22.