Logs: liberachat/#haskell
| 2021-06-19 02:48:24 | → | llh joins (~coke@user/llh) |
| 2021-06-19 02:49:12 | → | lbseale joins (~lbseale@user/ep1ctetus) |
| 2021-06-19 02:56:43 | → | ukari joins (~ukari@user/ukari) |
| 2021-06-19 02:58:40 | → | CookE[] joins (~thedawn@user/thedawn) |
| 2021-06-19 02:59:50 | → | ding joins (~ding@2001:19f0:5:14c2:5400:2ff:fee0:a42c) |
| 2021-06-19 03:00:03 | × | td_ quits (~td@muedsl-82-207-238-207.citykom.de) (Ping timeout: 268 seconds) |
| 2021-06-19 03:00:30 | → | elf_fortrez joins (~elf_fortr@adsl-64-237-239-58.prtc.net) |
| 2021-06-19 03:01:37 | → | td_ joins (~td@muedsl-82-207-238-182.citykom.de) |
| 2021-06-19 03:01:58 | × | fef quits (~thedawn@user/thedawn) (Ping timeout: 252 seconds) |
| 2021-06-19 03:02:43 | → | pfurla_ joins (~pfurla@216.131.82.52) |
| 2021-06-19 03:02:44 | × | cheater quits (~Username@user/cheater) (Ping timeout: 244 seconds) |
| 2021-06-19 03:03:06 | → | cheater joins (~Username@user/cheater) |
| 2021-06-19 03:05:36 | × | pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 268 seconds) |
| 2021-06-19 03:06:50 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 268 seconds) |
| 2021-06-19 03:09:06 | × | renzhi quits (~xp@2607:fa49:6501:9500:5589:4dab:9f77:1a6b) (Ping timeout: 240 seconds) |
| 2021-06-19 03:09:27 | × | MQ-17J quits (~MQ-17J@8.6.144.186) (Ping timeout: 244 seconds) |
| 2021-06-19 03:09:37 | × | elf_fortrez quits (~elf_fortr@adsl-64-237-239-58.prtc.net) (Quit: Client closed) |
| 2021-06-19 03:10:57 | <cdsmith> | Did GHC 9 change anything regarding overlapping instances? I have some code with two overlapping instances (one annotated with OVERLAPPABLE), and GHC 9 chooses the overlappable one, while all earlier GHC choose the other intended instance. |
| 2021-06-19 03:11:02 | × | derelict quits (~derelict@user/derelict) (Ping timeout: 252 seconds) |
| 2021-06-19 03:16:48 | × | sheepduck quits (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Remote host closed the connection) |
| 2021-06-19 03:19:06 | → | sheepduck joins (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) |
| 2021-06-19 03:22:01 | → | MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
| 2021-06-19 03:29:02 | × | oxide quits (~lambda@user/oxide) (Ping timeout: 268 seconds) |
| 2021-06-19 03:35:05 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 2021-06-19 03:35:17 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 244 seconds) |
| 2021-06-19 03:36:18 | Lord_of_Life_ | is now known as Lord_of_Life |
| 2021-06-19 03:38:00 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 2021-06-19 03:40:08 | <curiousgay> | fix :: (a -> a) -> a |
| 2021-06-19 03:40:08 | <curiousgay> | fix f = let x = f x in x |
| 2021-06-19 03:40:24 | <curiousgay> | this is an ouch to my brain |
| 2021-06-19 03:40:50 | <curiousgay> | fix (\rec x -> if x == 0 then 1 else x * rec (pred x)) 10 == product [1..10] |
| 2021-06-19 03:41:02 | × | ddellacosta quits (~ddellacos@86.106.121.100) (Remote host closed the connection) |
| 2021-06-19 03:43:25 | <curiousgay> | I have no idea why that invocation works, it looks illegal |
| 2021-06-19 03:51:54 | <c_wraith> | a can unify with a function |
| 2021-06-19 03:55:19 | × | CookE[] quits (~thedawn@user/thedawn) (Ping timeout: 252 seconds) |
| 2021-06-19 03:55:48 | → | ddellacosta joins (~ddellacos@86.106.121.100) |
| 2021-06-19 03:59:57 | → | wei2912 joins (~wei2912@112.199.250.21) |
| 2021-06-19 04:00:01 | × | jolly quits (~jolly@208.180.97.158) (Quit: Connection closed) |
| 2021-06-19 04:01:38 | × | shapr quits (~user@pool-108-28-144-11.washdc.fios.verizon.net) (Ping timeout: 244 seconds) |
| 2021-06-19 04:02:46 | × | chexum quits (~chexum@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 2021-06-19 04:03:00 | → | chexum joins (~chexum@gateway/tor-sasl/chexum) |
| 2021-06-19 04:05:51 | → | cheater1__ joins (~Username@user/cheater) |
| 2021-06-19 04:06:02 | × | cheater quits (~Username@user/cheater) (Ping timeout: 268 seconds) |
| 2021-06-19 04:06:03 | cheater1__ | is now known as cheater |
| 2021-06-19 04:08:07 | <c_wraith> | curiousgay: for instance, in that case, fix :: ((Integer -> Integer) -> (Integer -> Intger)) -> (Integer -> Integer) |
| 2021-06-19 04:08:49 | <c_wraith> | curiousgay: but some of those parens are redundant, and it's equivalent to fix :: ((Integer -> Integer) -> Integer -> Integer) -> Integer -> Integer |
| 2021-06-19 04:09:34 | <c_wraith> | curiousgay: so the lambda has two arguments, the first of type (Integer -> Integer), the second of type Integer, and returns an Integer |
| 2021-06-19 04:09:54 | <c_wraith> | curiousgay: and applying fix to that lambda gives you back a function of type Integer -> Integer |
| 2021-06-19 04:11:15 | × | zaquest quits (~notzaques@5.128.210.178) (Remote host closed the connection) |
| 2021-06-19 04:12:13 | → | zaquest joins (~notzaques@5.128.210.178) |
| 2021-06-19 04:12:19 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
| 2021-06-19 04:12:54 | × | jao quits (jao@gateway/vpn/protonvpn/jao) (Ping timeout: 264 seconds) |
| 2021-06-19 04:13:08 | <curiousgay> | c_wraith: typing here is not enough to understand why it works |
| 2021-06-19 04:13:54 | <curiousgay> | `let x = f x in x` is confusing, it looks like a recursion |
| 2021-06-19 04:14:06 | <c_wraith> | well, that's why it's not a type error. why it *works* is totally separate |
| 2021-06-19 04:14:31 | <curiousgay> | and somehow I need to shorter that one to 4 characters |
| 2021-06-19 04:17:16 | <c_wraith> | fix is a combinator for abstracting out general recursion |
| 2021-06-19 04:17:43 | <c_wraith> | about the only thing it can't do is polymorphic recursion. |
| 2021-06-19 04:18:15 | <c_wraith> | it's generally more of theoretical interest than practical |
| 2021-06-19 04:18:16 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 2021-06-19 04:18:30 | → | lavaman joins (~lavaman@98.38.249.169) |
| 2021-06-19 04:18:38 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 2021-06-19 04:19:03 | <c_wraith> | though there are certain rare occasions when it can make code look a bit cleaner. but as I said... *rare* occasions |
| 2021-06-19 04:19:17 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 2021-06-19 04:19:31 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 2021-06-19 04:19:53 | <curiousgay> | but that recursive definition looks like it never terminates, but at the same time it somehow finds the value of x while not being a logic programming language? |
| 2021-06-19 04:21:07 | curiousgay | thinks even Prolog can't terminate this one |
| 2021-06-19 04:21:20 | <c_wraith> | it's not well-founded. it's general recursion. |
| 2021-06-19 04:21:42 | <c_wraith> | it will diverge on all sorts of inputs |
| 2021-06-19 04:21:54 | <c_wraith> | > fix (+) |
| 2021-06-19 04:21:56 | <lambdabot> | error: |
| 2021-06-19 04:21:56 | <lambdabot> | • Occurs check: cannot construct the infinite type: a ~ a -> a |
| 2021-06-19 04:21:56 | <lambdabot> | Expected type: (a -> a) -> a -> a |
| 2021-06-19 04:22:01 | <monochrom> | Right, termination still depends on what f you choose. |
| 2021-06-19 04:22:18 | <c_wraith> | err, that one wasn't even close to well typed. |
| 2021-06-19 04:22:32 | <monochrom> | And "x = f x" is meant to express recursion. The whole point of fix. |
| 2021-06-19 04:22:43 | → | chexum_ joins (~chexum@gateway/tor-sasl/chexum) |
| 2021-06-19 04:23:01 | <c_wraith> | > fix $ (0:) . scanl (+) 1 -- this is not a case where fix makes things better, but it's a classic. |
| 2021-06-19 04:23:03 | <lambdabot> | [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,... |
| 2021-06-19 04:23:07 | → | elf_fortrez joins (~elf_fortr@adsl-64-237-239-58.prtc.net) |
| 2021-06-19 04:26:40 | × | chexum quits (~chexum@gateway/tor-sasl/chexum) (Ping timeout: 252 seconds) |
| 2021-06-19 04:27:47 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Read error: Connection reset by peer) |
| 2021-06-19 04:28:42 | → | aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 2021-06-19 04:31:35 | × | ddellacosta quits (~ddellacos@86.106.121.100) (Remote host closed the connection) |
| 2021-06-19 04:32:06 | → | kmetric joins (~karthik@49.206.9.195) |
| 2021-06-19 04:34:11 | <qrpnxz> | >$< associated the wrong way smh |
| 2021-06-19 04:35:50 | <qrpnxz> | lmao that really do give fibbonacci wtf |
| 2021-06-19 04:35:57 | <qrpnxz> | *fibonacci |
| 2021-06-19 04:38:43 | → | lavaman joins (~lavaman@98.38.249.169) |
| 2021-06-19 04:40:58 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 2021-06-19 04:41:03 | → | ormaaj joins (~ormaaj@2001:470:69fc:105::35ca) |
| 2021-06-19 04:41:47 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 2021-06-19 04:44:34 | × | elf_fortrez quits (~elf_fortr@adsl-64-237-239-58.prtc.net) (Ping timeout: 250 seconds) |
| 2021-06-19 04:46:11 | × | teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 2021-06-19 04:46:43 | → | teaSlurper joins (~chris@81.96.113.213) |
| 2021-06-19 04:51:40 | ← | wwalker parts (~wwalker@platinum.solid-constructs.com) () |
| 2021-06-19 04:51:40 | × | teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 268 seconds) |
| 2021-06-19 04:53:30 | → | Feuermagier_ joins (~Feuermagi@154.28.188.168) |
| 2021-06-19 04:56:43 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Ping timeout: 268 seconds) |
| 2021-06-19 05:07:38 | × | slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving) |
All times are in UTC.