Logs on 2021-04-13 (freenode/#haskell)
| 00:01:44 | → | ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 00:04:05 | <ski> | "It already breaks down when its not purely syntactic anymore" -- this already happens in strict languages, too. see library syntax like e.g. `and',`or' in R⁵RS <https://schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-6.html#%_idx_80>, or the library procedures `any',`every' in SRFI 1 <https://srfi.schemers.org/srfi-1/srfi-1.html#any>, for Scheme |
| 00:04:06 | → | heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 00:05:21 | → | hexfive joins (~hexfive@50.35.83.177) |
| 00:06:35 | × | hexfive quits (~hexfive@50.35.83.177) (Client Quit) |
| 00:07:18 | × | ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds) |
| 00:09:57 | × | aerona quits (~aerona@2600:6c54:4600:f300:469c:10f6:fe62:fc1c) (Remote host closed the connection) |
| 00:10:38 | <ski> | tail calls in Haskell (which one can divide into forcing a computation (parameterized or not), in a tail context; and things like the execution of a invocation of a sub-action (parameterized or not) in a tail context of the execution of the action it's a part of) are still important, albeit not quite as important (relatively speaking) as in strict languages supporting "proper tail recursion"/"tail/last |
| 00:10:44 | <ski> | calls" (either the language itself, or an implementation thereof, supporting it), because of the increased importance of guarded recursion / incremental operations in Haskell |
| 00:11:36 | → | aerona joins (~aerona@2600:6c54:4600:f300:469c:10f6:fe62:fc1c) |
| 00:12:01 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 00:15:08 | <ski> | without acknowledging that tail calls are relevant, we can't state that a tail-recursive definition must necessarily lead to a bulky (iow non-incremental) operation (and vice versa). and certain eta-reductions (as involved in the CPS transformation, to explain tail calls), can be quite important for efficiency in Haskell, e.g. for the definition of `(>>=)' for |
| 00:15:13 | <ski> | `Cont'/`ContT'/`Codensity'/`Managed',`State'/`StateT',.. |
| 00:17:08 | <ski> | (well, i suppose by "vice versa", i meant the contrapositive, iow from `TailRecursive -> Not Incremental' to `Incremental -> Not TailRecursive', both being equivalent to `Not (TailRecursive,Incremental)') |
| 00:17:42 | × | Eoco quits (~ian@x-160-94-179-157.acm.umn.edu) (Quit: WeeChat 2.3) |
| 00:19:01 | → | Eoco joins (~ian@x-160-94-179-157.acm.umn.edu) |
| 00:19:10 | × | heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 00:19:45 | <ski> | and i'm pretty sure tail calls play some rôle in libraries intended to enable fusion of their operations (specifically, for "final summary" operations, which will typically be a loop that drives the computation by forcing the steps of the contained incremental operations) |
| 00:21:51 | × | infinity0 quits (~infinity0@freenet/developer/infinity0) (Ping timeout: 252 seconds) |
| 00:31:10 | → | infinity0 joins (~infinity0@freenet/developer/infinity0) |
| 00:33:06 | × | dansho quits (~dansho@ec2-13-112-45-179.ap-northeast-1.compute.amazonaws.com) (Ping timeout: 240 seconds) |
| 00:35:13 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
| 00:38:00 | → | vicfred joins (~vicfred@unaffiliated/vicfred) |
| 00:40:13 | × | dhil quits (~dhil@80.208.56.181) (Ping timeout: 240 seconds) |
| 00:40:47 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 00:40:53 | × | vicfred quits (~vicfred@unaffiliated/vicfred) (Client Quit) |
| 00:45:31 | × | __minoru__shirae quits (~shiraeesh@109.166.56.189) (Ping timeout: 252 seconds) |
| 00:45:44 | <DigitalKiwi> | edwardk: who? ;) |
| 00:46:21 | <DigitalKiwi> | edwardk: even on the occassions that i remember there is a third author i don't remember the name... |
| 00:46:40 | × | dariof4 quits (~dario@217.171.72.98) (Quit: WeeChat 3.1) |
| 00:46:47 | × | HannaM quits (~quassel@p54849510.dip0.t-ipconnect.de) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
| 00:46:59 | <Axman6> | Turns out that Real World HAskell leads to disappearing into the Faceborg |
| 00:47:34 | → | vicfred joins (~vicfred@unaffiliated/vicfred) |
| 00:49:02 | → | ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 00:50:15 | <DigitalKiwi> | ski: see that right there is that why python doesn't have TCO. all of those words that i know a few of... |
| 00:51:38 | <ski> | i could try to elaborate, if there's any particular ones you're wondering about |
| 00:52:25 | <ski> | (not sure about what the lack of TCO (a misnomer) in Python has to do with the above, though) |
| 00:54:38 | × | ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds) |
| 00:55:28 | <ski> | (sometimes people put forth the argument that proper tail calls interfere with (traditional procedural) debugging. however, i've not seen anyone complain about not being able to see in a stack trace all the previous iterations of a loop (whose execution hasn't ended yet), so i consider this argument to be specious, or at least not sufficiently taking the relevant issues into account) |
| 00:56:07 | × | gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 00:56:28 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 00:57:25 | → | falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
| 00:58:05 | × | zaquest quits (~notzaques@5.128.210.178) (Quit: Leaving) |
| 00:59:49 | × | Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Remote host closed the connection) |
| 01:00:09 | → | zaquest joins (~notzaques@5.128.210.178) |
| 01:00:34 | → | Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas) |
| 01:02:19 | → | Guest_88 joins (708d802a@112-141-128-42.sta.dodo.net.au) |
| 01:05:26 | → | rajivr joins (uid269651@gateway/web/irccloud.com/x-zldwlxmsftsxcrzs) |
| 01:06:11 | × | Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 240 seconds) |
| 01:08:57 | → | Codaraxis_ joins (Codaraxis@gateway/vpn/mullvad/codaraxis) |
| 01:10:06 | × | gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 01:10:28 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 01:11:22 | × | Guest_88 quits (708d802a@112-141-128-42.sta.dodo.net.au) (Quit: Connection closed) |
| 01:13:06 | × | Codaraxis__ quits (~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Ping timeout: 268 seconds) |
| 01:14:59 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 01:16:28 | × | chenshen quits (~chenshen@2620:10d:c090:400::5:d34f) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
| 01:19:56 | → | heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 01:20:59 | × | xff0x quits (~xff0x@2001:1a81:52af:1400:ec8a:b59a:161d:e7ba) (Ping timeout: 260 seconds) |
| 01:22:50 | → | xff0x joins (~xff0x@2001:1a81:52e3:ed00:5af0:6fcf:3010:c4d9) |
| 01:24:39 | × | heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
| 01:25:20 | × | krkini quits (~kini@unaffiliated/kini) (Remote host closed the connection) |
| 01:25:32 | × | wopas32 quits (uid384704@gateway/web/irccloud.com/x-nsunqoqlyntbwalw) (Quit: Connection closed for inactivity) |
| 01:26:04 | × | mud quits (~mud@unaffiliated/kadoban) (Quit: bye) |
| 01:26:37 | → | kini joins (~kini@unaffiliated/kini) |
| 01:27:20 | × | cafce25_ quits (~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 01:28:20 | → | Benzi-Junior joins (~BenziJuni@dsl-149-64-251.hive.is) |
| 01:28:23 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 01:28:39 | → | Tario joins (~Tario@201.192.165.173) |
| 01:29:58 | <DigitalKiwi> | ski: yeah the debugging argument (GVR) is bs. always was. i think it's a red herring. especially considering how bad the python error messages are that they find acceptable. always seemed more like a "I don't understand this thing but I can't let them know that" |
| 01:30:15 | <DigitalKiwi> | (GVR) gave* |
| 01:30:28 | → | ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 01:31:27 | <DigitalKiwi> | https://twitter.com/haskellhutt/status/1308076394417655820 |
| 01:32:06 | <monochrom> | How did Hutton manage to call himself haskellhutt :) |
| 01:33:01 | → | APic joins (apic@apic.name) |
| 01:33:03 | → | mud joins (~mud@unaffiliated/kadoban) |
| 01:33:29 | <monochrom> | Sounds like violin gang vs piano gang |
| 01:33:32 | <DigitalKiwi> | not understanding a thing is fine but sometimes it's really hard for people to allow for the possibility that they are wrong |
| 01:34:22 | <DigitalKiwi> | odersky did that too |
| 01:36:11 | × | ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds) |
| 01:37:21 | <monochrom> | Perhaps not, I guess violin is difficult from the beginning to the end. |
| 01:37:24 | <DigitalKiwi> | that* not understand a thing but attempt to convince people otherwise |
| 01:37:59 | <DigitalKiwi> | ...and robert martin |
| 01:38:10 | × | dan64- quits (~dan64@dannyadam.com) (Quit: ZNC - http://znc.in) |
| 01:38:12 | × | Arahael quits (~arahael@203.221.197.144) (Ping timeout: 240 seconds) |
| 01:38:13 | <DigitalKiwi> | hmm i'm starting to see a pattern |
| 01:38:33 | → | dan64 joins (~dan64@dannyadam.com) |
| 01:39:33 | × | poscat quits (~poscat@114.245.106.173) (Ping timeout: 240 seconds) |
| 01:45:28 | × | falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 252 seconds) |
| 01:46:21 | → | Arahael joins (~arahael@123-243-38-74.tpgi.com.au) |
| 01:46:28 | × | cansis quits (uid90033@gateway/web/irccloud.com/x-ifsukysjwkgufywd) (Quit: Connection closed for inactivity) |
| 01:49:29 | × | viluon quits (uid453725@gateway/web/irccloud.com/x-nfhjdcxtvlbhsvti) (Quit: Connection closed for inactivity) |
| 01:49:48 | → | heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 01:50:54 | → | drbean_ joins (~drbean@TC210-63-209-98.static.apol.com.tw) |
| 01:52:02 | → | chenshen joins (~chenshen@2620:10d:c090:400::5:d34f) |
| 01:52:10 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 01:52:27 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) |
| 01:53:09 | × | chenshen quits (~chenshen@2620:10d:c090:400::5:d34f) (Client Quit) |
| 01:53:43 | × | tmciver quits (~tmciver@cpe-172-101-40-226.maine.res.rr.com) (Ping timeout: 252 seconds) |
| 01:55:43 | → | tmciver joins (~tmciver@cpe-172-101-40-226.maine.res.rr.com) |
| 01:55:59 | <maralorn> | wz1000: I actually chose that solution exactly because I want every error to bubble up. |
| 01:56:17 | <maralorn> | Have been bitten to much by a crucial worker thread silently dying. |
| 01:57:10 | <maralorn> | But of course I would like to do that without building up pointers to already exited threads in memory. |
| 01:58:06 | → | ep1ctetus joins (~epictetus@ip72-194-54-201.sb.sd.cox.net) |
| 02:00:03 | → | __minoru__shirae joins (~shiraeesh@109.166.56.189) |
| 02:00:06 | → | Alleria joins (~textual@2603-7000-3040-0000-61e5-3b09-ada8-75b7.res6.spectrum.com) |
| 02:00:30 | Alleria | is now known as Guest26121 |
| 02:00:57 | × | thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 258 seconds) |
| 02:01:55 | <ski> | DigitalKiwi : .. yea :/ |
| 02:02:02 | <ski> | (who's Robert Martin ?) |
| 02:03:06 | × | mnrmnaugh quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Remote host closed the connection) |
| 02:03:26 | <DigitalKiwi> | green orb |
| 02:03:34 | × | Jajik quits (xchlup2@gateway/shell/fi.muni.cz/x-ynaunapgbwfqheim) (Quit: Ping timeout (120 seconds)) |
| 02:03:49 | → | Jajik joins (xchlup2@gateway/shell/fi.muni.cz/x-dnykbukmeewwqznd) |
| 02:04:03 | <DigitalKiwi> | Clean Code |
| 02:04:19 | × | Guest26121 quits (~textual@2603-7000-3040-0000-61e5-3b09-ada8-75b7.res6.spectrum.com) (Ping timeout: 250 seconds) |
| 02:04:24 | × | urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna) |
| 02:05:49 | × | lawid quits (~quassel@ip5b41869c.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
| 02:06:16 | <DigitalKiwi> | https://twitter.com/jdan/status/1305170088304300032 lolol |
| 02:06:46 | × | __minoru__shirae quits (~shiraeesh@109.166.56.189) (Ping timeout: 268 seconds) |
| 02:06:52 | <ski> | <https://en.wikipedia.org/wiki/Robert_C._Martin>, i take it |
| 02:06:59 | <glguy> | It doesn't seem obvious to me that not having an implicit tail call optimization is a misfeature |
| 02:07:08 | <glguy> | not having it and having an explicit tail call both seem valid |
| 02:07:30 | <glguy> | certainly not something that merits insulting the person making the tradeoff |
| 02:07:30 | <DigitalKiwi> | that was the first one that popped up in my browser history for 'unclebob' |
| 02:08:52 | <ski> | having it as an optimization is rather meh, i think |
| 02:09:45 | DigitalKiwi | probably meant TCE not TCO if that makes a difference |
| 02:10:09 | <DigitalKiwi> | stack no blow up ;p |
| 02:11:13 | → | lawid joins (~quassel@2a02:8109:b5c0:5334:265e:beff:fe2a:dde8) |
| 02:11:46 | <ski> | i agree it can be respectable to not have it, or have an explicit notation. (although i prefer having it, implicitly) |
| 02:12:42 | × | oniijin quits (~oniijin@185.204.1.185) (Remote host closed the connection) |
| 02:12:59 | <ski> | (btw, fwiw, it was discovered independently in the logic programming world, under the name "Last Call". e.g. CTM introduces it as a natural consequence of their modelling of the operational/procedural semantics) |
| 02:15:36 | → | grimpeux joins (~textual@modemcable153.12-178-173.mc.videotron.ca) |
| 02:16:31 | × | lawid quits (~quassel@2a02:8109:b5c0:5334:265e:beff:fe2a:dde8) (Ping timeout: 260 seconds) |
| 02:22:29 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds) |
| 02:25:13 | × | grimpeux quits (~textual@modemcable153.12-178-173.mc.videotron.ca) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 02:26:40 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 02:28:08 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 02:31:16 | <cohn> | 1 |
| 02:33:17 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 268 seconds) |
| 02:33:36 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 02:34:08 | × | gzj quits (~gzj@unaffiliated/gzj) (Read error: Connection reset by peer) |
| 02:34:27 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 02:38:07 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 250 seconds) |
| 02:38:24 | → | dcbdan joins (~dcbdan@c-73-76-129-120.hsd1.tx.comcast.net) |
| 02:43:40 | → | conjunctive joins (sid433686@gateway/web/irccloud.com/x-ywvgcymrsekezwdb) |
| 02:43:47 | × | heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 02:45:09 | → | heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 02:48:04 | × | theDon quits (~td@muedsl-82-207-238-004.citykom.de) (Ping timeout: 268 seconds) |
| 02:49:28 | → | theDon joins (~td@muedsl-82-207-238-185.citykom.de) |
| 02:50:05 | × | haya quits (~haya@ec2-18-231-117-140.sa-east-1.compute.amazonaws.com) (Read error: Connection reset by peer) |
| 02:50:25 | → | haya joins (~haya@ec2-18-231-117-140.sa-east-1.compute.amazonaws.com) |
| 02:51:56 | → | FinnElija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
| 02:51:56 | finn_elija | is now known as Guest41868 |
| 02:51:56 | FinnElija | is now known as finn_elija |
| 02:53:08 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 02:53:15 | → | falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
| 02:55:09 | × | Guest41868 quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 240 seconds) |
| 02:56:05 | × | danso quits (~dan@23-233-111-52.cpe.pppoe.ca) (Ping timeout: 268 seconds) |
| 02:57:29 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 258 seconds) |
| 02:58:02 | × | xlei quits (znc@unaffiliated/xlei) (Quit: ZNC - https://znc.in) |
| 02:58:30 | × | howdoi quits (uid224@gateway/web/irccloud.com/x-wqwlliyoydaqzoui) (Quit: Connection closed for inactivity) |
| 02:58:40 | × | myShoggoth quits (~myShoggot@97-120-72-12.ptld.qwest.net) (Remote host closed the connection) |
| 02:59:04 | → | myShoggoth joins (~myShoggot@97-120-72-12.ptld.qwest.net) |
| 03:02:07 | → | danso joins (~dan@23-233-111-52.cpe.pppoe.ca) |
| 03:03:15 | × | machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 265 seconds) |
| 03:06:44 | → | santiacq joins (~santiacq@r186-50-76-54.dialup.adsl.anteldata.net.uy) |
| 03:08:47 | × | justan0theruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds) |
| 03:11:27 | × | falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Remote host closed the connection) |
| 03:11:27 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 03:11:52 | → | falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
| 03:14:45 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
| 03:17:29 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 03:20:11 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 03:21:42 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 03:29:05 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 03:32:19 | × | haritz quits (~hrtz@unaffiliated/haritz) (Quit: ZNC 1.7.2+deb3 - https://znc.in) |
| 03:32:31 | → | haritz joins (~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220) |
| 03:32:31 | × | haritz quits (~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220) (Changing host) |
| 03:32:31 | → | haritz joins (~hrtz@unaffiliated/haritz) |
| 03:36:11 | × | abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving) |
| 03:39:26 | × | aerona quits (~aerona@2600:6c54:4600:f300:469c:10f6:fe62:fc1c) (Remote host closed the connection) |
| 03:40:57 | × | waleee-cl quits (uid373333@gateway/web/irccloud.com/x-laygyesnubfpnshz) (Quit: Connection closed for inactivity) |
| 03:45:11 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 03:46:58 | → | petersen joins (~petersen@redhat/juhp) |
| 03:48:46 | × | falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
| 03:51:27 | → | chenshen joins (~chenshen@2620:10d:c090:400::5:9f16) |
| 03:52:31 | × | kini quits (~kini@unaffiliated/kini) (Remote host closed the connection) |
| 03:52:45 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:3061:d9b2:32c9:4068) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 03:52:47 | × | Codaraxis_ quits (Codaraxis@gateway/vpn/mullvad/codaraxis) (Read error: Connection reset by peer) |
| 03:53:48 | → | kini joins (~kini@unaffiliated/kini) |
| 03:55:35 | → | xlei joins (znc@unaffiliated/xlei) |
| 03:57:44 | → | malumore joins (~malumore@151.62.122.89) |
| 04:00:10 | × | mrchampion quits (~mrchampio@38.18.109.23) (Remote host closed the connection) |
| 04:00:15 | × | SupaYoshi quits (~supayoshi@213-10-140-13.fixed.kpn.net) (Quit: Goodbye!) |
| 04:00:18 | → | Alleria joins (~textual@2603-7000-3040-0000-61e5-3b09-ada8-75b7.res6.spectrum.com) |
| 04:00:42 | Alleria | is now known as Guest92803 |
| 04:00:48 | → | SupaYoshi joins (~supayoshi@213-10-140-13.fixed.kpn.net) |
| 04:04:47 | × | Guest92803 quits (~textual@2603-7000-3040-0000-61e5-3b09-ada8-75b7.res6.spectrum.com) (Ping timeout: 260 seconds) |
| 04:07:37 | × | ep1ctetus quits (~epictetus@ip72-194-54-201.sb.sd.cox.net) (Ping timeout: 268 seconds) |
| 04:07:59 | → | ep1ctetus joins (~epictetus@ip72-194-54-201.sb.sd.cox.net) |
| 04:09:00 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:48e1:cb11:43e0:9fe6) |
| 04:11:34 | × | kiweun quits (~kiweun@2607:fea8:2a62:9600:21ac:92a1:db64:4dd2) (Remote host closed the connection) |
| 04:11:59 | → | malumore_ joins (~malumore@151.62.122.89) |
| 04:12:02 | × | malumore_ quits (~malumore@151.62.122.89) (Read error: Connection reset by peer) |
| 04:12:54 | → | malumore_ joins (~malumore@151.62.122.89) |
| 04:14:13 | × | malumore quits (~malumore@151.62.122.89) (Ping timeout: 240 seconds) |
| 04:16:18 | × | eacameron quits (uid256985@gateway/web/irccloud.com/x-nilpnpzcfkqakcso) (Quit: Connection closed for inactivity) |
| 04:19:59 | → | falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
| 04:20:18 | → | elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 04:30:09 | → | frozenErebus joins (~frozenEre@37.231.244.249) |
| 04:38:08 | → | N3RGY joins (~N3RGY@static-198-54-128-101.cust.tzulo.com) |
| 04:45:52 | × | elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 268 seconds) |
| 04:46:11 | × | carlomagno quits (~cararell@148.87.23.4) (Quit: Leaving.) |
| 04:52:47 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 05:09:40 | → | aVikingTrex joins (789a2138@120.154.33.56) |
| 05:15:02 | → | danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
| 05:16:10 | × | heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 05:16:17 | × | danso quits (~dan@23-233-111-52.cpe.pppoe.ca) (Ping timeout: 252 seconds) |
| 05:16:40 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 252 seconds) |
| 05:21:45 | → | Sgeo_ joins (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
| 05:22:22 | × | Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Ping timeout: 260 seconds) |
| 05:26:11 | × | xkapastel quits (uid17782@gateway/web/irccloud.com/x-xevksgpnhxylybkh) (Quit: Connection closed for inactivity) |
| 05:27:58 | → | heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 05:31:07 | × | pavonia quits (~user@unaffiliated/siracusa) (Quit: Bye!) |
| 05:31:34 | × | N3RGY quits (~N3RGY@static-198-54-128-101.cust.tzulo.com) () |
| 05:33:08 | × | pengjiz quits (~user@2601:547:902:6d00::2) (Quit: ERC (IRC client for Emacs 27.2)) |
| 05:33:09 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
| 05:33:21 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 05:33:49 | → | gnumonic joins (~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net) |
| 05:38:53 | × | myShoggoth quits (~myShoggot@97-120-72-12.ptld.qwest.net) (Ping timeout: 268 seconds) |
| 05:42:04 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 05:43:07 | × | loller_ quits (uid358106@gateway/web/irccloud.com/x-jmeczyzfdqqbsxdy) (Quit: Connection closed for inactivity) |
| 05:44:46 | × | curiousgay quits (~gay@178.217.208.8) (Ping timeout: 240 seconds) |
| 05:46:45 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:48e1:cb11:43e0:9fe6) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 05:47:28 | × | APic quits (apic@apic.name) (Ping timeout: 252 seconds) |
| 05:47:40 | → | johannes_ joins (~johannes@mue-88-130-62-146.dsl.tropolys.de) |
| 05:47:56 | johannes_ | is now known as kenran |
| 05:51:11 | → | idhugo joins (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) |
| 05:51:15 | → | myShoggoth joins (~myShoggot@97-120-72-12.ptld.qwest.net) |
| 05:56:55 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 05:56:56 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 05:57:04 | → | Tario joins (~Tario@201.192.165.173) |
| 06:00:04 | → | Alleria joins (~textual@2603-7000-3040-0000-61e5-3b09-ada8-75b7.res6.spectrum.com) |
| 06:00:11 | × | aVikingTrex quits (789a2138@120.154.33.56) (Quit: Connection closed) |
| 06:00:29 | Alleria | is now known as Guest30851 |
| 06:04:33 | × | Guest30851 quits (~textual@2603-7000-3040-0000-61e5-3b09-ada8-75b7.res6.spectrum.com) (Ping timeout: 258 seconds) |
| 06:06:13 | × | falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
| 06:06:38 | → | oish joins (~charlie@228.25.169.217.in-addr.arpa) |
| 06:07:08 | × | chenshen quits (~chenshen@2620:10d:c090:400::5:9f16) (Quit: Textual IRC Client: www.textualapp.com) |
| 06:08:35 | → | michalz joins (~user@185.246.204.44) |
| 06:09:41 | × | idhugo quits (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds) |
| 06:12:24 | → | kiweun joins (~kiweun@2607:fea8:2a62:9600:88d6:eb14:256a:da1) |
| 06:13:22 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 06:15:23 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 06:15:39 | × | berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 250 seconds) |
| 06:16:04 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 06:16:37 | → | berberman joins (~berberman@unaffiliated/berberman) |
| 06:17:12 | × | kiweun quits (~kiweun@2607:fea8:2a62:9600:88d6:eb14:256a:da1) (Ping timeout: 258 seconds) |
| 06:19:53 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 258 seconds) |
| 06:22:41 | × | myShoggoth quits (~myShoggot@97-120-72-12.ptld.qwest.net) (Ping timeout: 268 seconds) |
| 06:23:21 | × | frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 265 seconds) |
| 06:26:00 | → | APic joins (apic@apic.name) |
| 06:28:13 | × | oish quits (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 240 seconds) |
| 06:29:43 | × | heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 06:31:25 | → | coot joins (~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl) |
| 06:32:50 | → | heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 06:38:16 | → | Sorny joins (~Sornaensi@077213203030.dynamic.telenor.dk) |
| 06:39:59 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 06:41:23 | × | Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Excess Flood) |
| 06:41:46 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 06:42:16 | → | Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362) |
| 06:44:49 | → | oish joins (~charlie@228.25.169.217.in-addr.arpa) |
| 06:44:49 | → | Sornaensis joins (~Sornaensi@79.142.232.102.static.router4.bolignet.dk) |
| 06:45:40 | → | myShoggoth joins (~myShoggot@97-120-72-12.ptld.qwest.net) |
| 06:47:11 | × | Sorny quits (~Sornaensi@077213203030.dynamic.telenor.dk) (Ping timeout: 240 seconds) |
| 06:47:56 | × | kenran quits (~johannes@mue-88-130-62-146.dsl.tropolys.de) (Quit: leaving) |
| 06:54:41 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
| 06:54:45 | × | myShoggoth quits (~myShoggot@97-120-72-12.ptld.qwest.net) (Ping timeout: 268 seconds) |
| 06:55:29 | → | elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 06:56:14 | → | __minoru__shirae joins (~shiraeesh@109.166.56.189) |
| 06:57:44 | → | frozenErebus joins (~frozenEre@37.231.244.249) |
| 06:57:52 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 07:00:04 | → | idhugo joins (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) |
| 07:00:23 | → | rnat2 joins (uid73555@gateway/web/irccloud.com/x-blfxzrgdprfecfub) |
| 07:02:15 | → | graf_blutwurst joins (~user@2001:171b:226e:adc0:c021:f7f7:82b:a023) |
| 07:03:01 | → | myname_ joins (~guruchara@188.66.209.54) |
| 07:03:15 | <myname_> | hello |
| 07:04:16 | <myname_> | #haskell-offtopic |
| 07:04:49 | × | myname_ quits (~guruchara@188.66.209.54) (Client Quit) |
| 07:05:01 | × | frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 252 seconds) |
| 07:06:52 | → | BosonCollider joins (~olofs@90-227-86-119-no542.tbcn.telia.com) |
| 07:07:04 | → | Mrbuck joins (~Mrbuck@gateway/tor-sasl/mrbuck) |
| 07:08:01 | → | pohvak joins (~pohvak@177.228.72.223) |
| 07:08:47 | × | hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Ping timeout: 265 seconds) |
| 07:08:48 | × | bitmapper quits (uid464869@gateway/web/irccloud.com/x-fsfopwufuwlbuqbr) (Quit: Connection closed for inactivity) |
| 07:09:16 | ← | pohvak parts (~pohvak@177.228.72.223) () |
| 07:09:54 | → | hyiltiz joins (~quassel@31.220.5.250) |
| 07:09:55 | × | hyiltiz quits (~quassel@31.220.5.250) (Changing host) |
| 07:09:55 | → | hyiltiz joins (~quassel@unaffiliated/hyiltiz) |
| 07:14:31 | → | OneFixt joins (~OneFixt@217.146.82.202) |
| 07:15:59 | × | __minoru__shirae quits (~shiraeesh@109.166.56.189) (Ping timeout: 246 seconds) |
| 07:17:35 | → | LKoen joins (~LKoen@65.250.88.92.rev.sfr.net) |
| 07:19:38 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 07:20:26 | × | pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 240 seconds) |
| 07:21:18 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 07:21:57 | × | xff0x quits (~xff0x@2001:1a81:52e3:ed00:5af0:6fcf:3010:c4d9) (Ping timeout: 250 seconds) |
| 07:22:59 | → | xff0x joins (~xff0x@2001:1a81:52e3:ed00:6689:c12:7ca5:50eb) |
| 07:25:15 | → | nut joins (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 07:31:29 | → | bahamas joins (~lucian@86.120.22.101) |
| 07:31:30 | × | bahamas quits (~lucian@86.120.22.101) (Changing host) |
| 07:31:30 | → | bahamas joins (~lucian@unaffiliated/bahamas) |
| 07:31:51 | <bahamas> | is there a package that makes it easier to display things in the terminal? |
| 07:33:06 | → | __minoru__shirae joins (~shiraeesh@109.166.56.189) |
| 07:33:40 | → | Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas) |
| 07:35:50 | × | LKoen quits (~LKoen@65.250.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”) |
| 07:40:22 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:41:31 | → | kritzefitz joins (~kritzefit@fw-front.credativ.com) |
| 07:42:33 | × | malumore_ quits (~malumore@151.62.122.89) (Ping timeout: 240 seconds) |
| 07:42:57 | → | srk joins (~sorki@unaffiliated/srk) |
| 07:43:19 | → | KeyJoo joins (~KeyJoo@62.176.30.191) |
| 07:44:41 | → | malumore_ joins (~malumore@151.62.122.89) |
| 07:45:04 | <bahamas> | how about a package that I can use to parse an URL in order to get the host? |
| 07:49:57 | × | Mrbuck quits (~Mrbuck@gateway/tor-sasl/mrbuck) (Ping timeout: 240 seconds) |
| 07:52:37 | × | kristijonas quits (~kristijon@78-56-32-39.static.zebra.lt) (Remote host closed the connection) |
| 07:53:42 | <opqdonut> | bahamas: vty for the first, network-uri for the second |
| 07:53:56 | × | oish quits (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 268 seconds) |
| 07:54:02 | <opqdonut> | https://hackage.haskell.org/package/network-uri-2.6.4.1/docs/Network-URI.html#v:parseURI |
| 07:54:45 | <merijn> | I missed the question, vty for what? |
| 07:55:14 | <merijn> | (i.e., maybe brick is more appropriate?) |
| 07:55:15 | <opqdonut> | "is there a package that makes it easier to display things in the terminal?" |
| 07:55:38 | <merijn> | brick :p |
| 07:55:43 | <merijn> | vty is low level |
| 07:55:59 | <merijn> | brick is more of "widgets for terminal UI" library |
| 07:55:59 | <opqdonut> | nice, I hadn't heard of brick |
| 07:56:13 | <merijn> | opqdonut: It's the successor of the (now deprecated) vty-ui |
| 07:56:35 | <merijn> | vty is really intended to be a low level terminal interface |
| 07:59:16 | × | santiacq quits (~santiacq@r186-50-76-54.dialup.adsl.anteldata.net.uy) (Read error: Connection reset by peer) |
| 08:00:08 | → | santiacq joins (~santiacq@r167-60-229-44.dialup.adsl.anteldata.net.uy) |
| 08:02:34 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 08:03:35 | × | Sgeo_ quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer) |
| 08:04:48 | → | dhil joins (~dhil@80.208.56.181) |
| 08:07:20 | → | hendursa1 joins (~weechat@gateway/tor-sasl/hendursaga) |
| 08:08:52 | <bahamas> | opqdonut, merijn thank you! |
| 08:08:54 | → | acidjnk_new joins (~acidjnk@p200300d0c72b9561cdce4d77de6ce0bc.dip0.t-ipconnect.de) |
| 08:09:57 | × | hendursaga quits (~weechat@gateway/tor-sasl/hendursaga) (Ping timeout: 240 seconds) |
| 08:10:25 | × | fiedlr quits (~fiedlr@83.148.33.254) (Remote host closed the connection) |
| 08:10:40 | → | fiedlr joins (~fiedlr@83.148.33.254) |
| 08:13:08 | → | chele joins (~chele@78.128.94.174) |
| 08:13:14 | → | kiweun joins (~kiweun@2607:fea8:2a62:9600:e029:f384:595c:2c74) |
| 08:17:57 | × | kiweun quits (~kiweun@2607:fea8:2a62:9600:e029:f384:595c:2c74) (Ping timeout: 258 seconds) |
| 08:19:41 | × | KeyJoo quits (~KeyJoo@62.176.30.191) (Ping timeout: 260 seconds) |
| 08:21:39 | → | mikoto-chan joins (~anass@gateway/tor-sasl/mikoto-chan) |
| 08:21:42 | × | kini quits (~kini@unaffiliated/kini) (Remote host closed the connection) |
| 08:21:45 | × | malumore_ quits (~malumore@151.62.122.89) (Remote host closed the connection) |
| 08:22:04 | → | malumore_ joins (~malumore@151.62.122.89) |
| 08:22:56 | × | todda7 quits (~torstein@athedsl-09242.home.otenet.gr) (Ping timeout: 268 seconds) |
| 08:22:58 | → | kini joins (~kini@unaffiliated/kini) |
| 08:24:23 | × | drbean_ quits (~drbean@TC210-63-209-98.static.apol.com.tw) (Ping timeout: 252 seconds) |
| 08:26:14 | → | jpe90 joins (~user@pool-108-31-85-19.washdc.fios.verizon.net) |
| 08:31:08 | <jpe90> | hi guys, i'm very new to haskell- could someone help me understand why my implementation of the "zip" list function gives an exception for non-exhaustive patterns? https://rextester.com/SVKB21534 |
| 08:32:21 | <Arahael> | jpe90: Which pattern does it match if there are zero elements? |
| 08:32:44 | <Arahael> | jpe90: Remember the three most important numbers: 0, 1, and infinity. |
| 08:33:06 | <merijn> | jpe90: oof... that call to length is pretty bad |
| 08:33:33 | <merijn> | That function as written now is gonna be something, like O(n^3) or something |
| 08:33:57 | → | timCF joins (~i.tkachuk@200-149-20-81.sta.estpak.ee) |
| 08:34:47 | <merijn> | jpe90: Anyway, you patterns already check that the lists are non-empty, so the length call is redundant |
| 08:35:12 | → | todda7 joins (~torstein@athedsl-09242.home.otenet.gr) |
| 08:35:47 | <jpe90> | oh okay I wasn't understanding the pattern mechanism |
| 08:36:13 | <jpe90> | still wrapping my head around the basics |
| 08:36:27 | <timCF> | Hello! Can anybody suggest correct way to compose `ExceptT` with other transformers, for example `SqlPersistT` from Persistent/Equeleto package? For example I have SQL procedure of type `SqlPersistT m (Either a b)` but I don't want to do bind+case boilerplate and operate inside `ExceptT` context as well. |
| 08:37:10 | <Arahael> | jpe90: You have only one pattern - but two guards. |
| 08:37:19 | <Arahael> | jpe90: And the guards are what's expensive here. |
| 08:37:53 | <jpe90> | right, and in that pattern i'm implicitly stating that (x:xs) and (y:ys) are non null, is that correct? which is probably a mistake? |
| 08:37:56 | <merijn> | timCF: The correct way to compose anything with SqlPersistT requires a thorough study of the persistent codebase >.> |
| 08:37:57 | → | thc202 joins (~thc202@unaffiliated/thc202) |
| 08:38:02 | <merijn> | jpe90: Not implicitly, explicitly :p |
| 08:38:16 | <jpe90> | haha got it |
| 08:38:34 | <merijn> | jpe90: You pattern match on constructors, lists have 2 constructors [] (i.e., empty list) and : (i.e. a first element and remainder) |
| 08:40:10 | <jpe90> | so i should probably just add pattern matches for empty lists in either positiona nd get rid of the guards |
| 08:40:19 | <merijn> | jpe90: So your pattern currently only handle the case where both lists are non-empty |
| 08:40:24 | <merijn> | jpe90: Yeah |
| 08:40:30 | <timCF> | merijn: let's say for simplicity - it's just some isomorphic generic transformer `trans m (Either a b)`. You are saying there is no true correct way to get rid of `Either` and mix `trans` capabilities with `ExceptT`? |
| 08:41:00 | <merijn> | jpe90: Side-note: "length" is O(n) (because lists are linked lists and you need to walk the entire thing to find out the length) so you wanna avoid that whenever possible |
| 08:41:28 | <merijn> | timCF: In general you'd probably want |
| 08:41:30 | <merijn> | @hackage mmorph |
| 08:41:30 | <lambdabot> | https://hackage.haskell.org/package/mmorph |
| 08:41:48 | <merijn> | But I'd be super paranoid about mixing that with SqlPersistT |
| 08:42:06 | <merijn> | Because that's gonna make reasoning about transactions super hard |
| 08:42:11 | → | DavidEichmann joins (~david@47.27.93.209.dyn.plus.net) |
| 08:43:19 | <timCF> | merijn: you mean that in some cases I want to rollback in case of `Left` but in some other cases it make sense to continue transaction? |
| 08:43:35 | → | Pickchea joins (~private@unaffiliated/pickchea) |
| 08:43:48 | <jpe90> | merijn: gotcha.. this seems to work and is hopefully better https://rextester.com/KWIHZ83934 |
| 08:43:58 | <timCF> | merijn: and blindly mixing SqlPersistT with ExceptT will not give me ability to make these decisions? |
| 08:44:14 | <merijn> | timCF: Well, suppose you end up with "SqlPersistT (ExceptT e m) a" or "ExceptT e (SqlPersistT m) a" do you know what kinda short-circuiting happens when you run them? |
| 08:44:36 | <merijn> | If you hit Left, will you skip all the remaining queries and then commit? Or will you bail out? Or...? |
| 08:44:51 | <merijn> | jpe90: Yeah, that looks about right |
| 08:44:59 | <jpe90> | alright cool thanks guys |
| 08:45:11 | <Arahael> | merijn: Talking about jpe90's example, I usually organise those patterns the opposite way - but does that have an impact on performance? |
| 08:45:11 | <merijn> | jpe90: You can make it slightly shorter |
| 08:45:31 | <jpe90> | oh yeah? how so |
| 08:45:39 | <merijn> | jpe90: https://paste.tomsmeding.com/McvKOmVR |
| 08:45:48 | <timCF> | merijn: thanks! |
| 08:45:59 | <jpe90> | oh i see |
| 08:46:02 | <merijn> | jpe90: Consider this: When the first case (both non-empty) fails, then at least 1 of the two must be empty |
| 08:46:19 | <merijn> | And you don't have to care which |
| 08:46:41 | <jpe90> | right that makes sense |
| 08:46:57 | <Arahael> | That's also why I typically order them the other way. :) Just wondering if there's a performance implication here, too. |
| 08:47:19 | <jpe90> | ah so you're saying you like to put failure patterns after success patterns in general |
| 08:47:40 | × | heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 08:48:01 | <merijn> | jpe90: If you have only 1 failure result, you can write things for the happy path and then handle all the failures at once |
| 08:48:24 | <merijn> | jpe90: I'm not sure I'd recommend that "in general", it can make sense to handle (some) failures first |
| 08:48:48 | <merijn> | But patterns are checked "top to bottom", so smart ordering can make code a lot cleaner/simpler |
| 08:52:36 | × | __minoru__shirae quits (~shiraeesh@109.166.56.189) (Ping timeout: 246 seconds) |
| 08:54:54 | <ski> | Arahael : yes (and strictness) |
| 08:55:07 | <Arahael> | ski: Makes sense. |
| 08:55:51 | <Arahael> | jpe90: Btw, you can enable a compiler option to make any non-total function result in a warning when you compile. |
| 08:55:59 | <merijn> | Arahael: No you can't |
| 08:56:00 | <ski> | with the recursive case first, as in merijn's paste, `zip [] _|_' is `[]'. with the recursive case last, it would be `_|_' |
| 08:56:11 | <Arahael> | jpe90: So that your function should not have to fail at runtime for i to... Oh, you can't, merijn? |
| 08:56:11 | <merijn> | Arahael: You can make incomplete patterns a warning |
| 08:56:21 | <Arahael> | Ah - there's a difference? |
| 08:56:25 | <merijn> | Arahael: I dunno, did you solve the Halting problem? |
| 08:56:34 | <merijn> | :p |
| 08:56:50 | <Arahael> | merijn: Ok, so my understanding of what "total" meant is slightly incorrect, then. |
| 08:57:02 | <merijn> | Arahael: A total function is one that is guaranteed to terminate, so you gotta rule out non-termination to know if something is total :) |
| 08:57:10 | <Arahael> | Ah, indeed. |
| 08:57:13 | ski | . o O ( `-Wincomplete-patterns',`-Wincomplete-uni-patterns',`-Wincomplete-record-updates' ) |
| 08:58:41 | <merijn> | Or just -Wall :p |
| 08:59:16 | <jpe90> | yeah I think i've got flycheck with -Wall and hlint set up |
| 08:59:21 | <ski> | but that's less fun to say :) |
| 08:59:46 | <jpe90> | they complain to me often |
| 08:59:48 | → | oish joins (~charlie@228.25.169.217.in-addr.arpa) |
| 09:00:36 | <Arahael> | I *love* hlint |
| 09:01:09 | <merijn> | I like that GHC actually makes -Wall be "everything, except the *really* questionable warnings", unlike gcc, where -Wall is, like, one third of the important warnings >.> |
| 09:01:35 | <jpe90> | yeah i really like hlint too, it's good for catching bad habits early on |
| 09:02:41 | <jpe90> | it would be cool if there was a "you're using excessive parens where you could use $" option, still trying to work on using that operator properly |
| 09:03:47 | <merijn> | word of warning |
| 09:03:53 | <merijn> | hlint is not gospel |
| 09:04:30 | <merijn> | It's basically "the opinion of the author", which may or may not (depending on the specific rule) widely accepted by everyone else |
| 09:04:49 | <ski> | hlint is opinionated |
| 09:05:32 | <jpe90> | any rules in particular you'd suggest disabling or should i just decide on my own down the road |
| 09:05:41 | <merijn> | I don't really use it, so not really |
| 09:05:47 | × | elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 260 seconds) |
| 09:05:49 | <jpe90> | gotcha |
| 09:05:58 | <ski> | jpe90 : oh .. i would prefer the reverse one "you're using `$', when you could use `.' or plain brackets" |
| 09:05:59 | <merijn> | Just a comment to take it's suggestion with a grain of salt and make up your own mind :) |
| 09:07:03 | <merijn> | I'm sure there's a ton of helpful beginner stuff there, but I know that python/JS communities treat pylint/jslint as gospel, so just be aware not all of hlint's opinions are as universally accepted :) |
| 09:07:12 | <ski> | jpe90 : "still trying to work on using that operator properly" -- how about "never", as a first approximation ? |
| 09:07:24 | × | xff0x quits (~xff0x@2001:1a81:52e3:ed00:6689:c12:7ca5:50eb) (Ping timeout: 258 seconds) |
| 09:07:31 | <merijn> | ski: pfft, $ is great with for/forM! |
| 09:07:47 | <ski> | `BlockArguments' ftw ! :) |
| 09:07:55 | <merijn> | I dislike blockarguments |
| 09:08:17 | → | xff0x joins (~xff0x@2001:1a81:52e3:ed00:4e19:7447:12ec:457) |
| 09:08:18 | <merijn> | It fits in the frivolous syntax extensions |
| 09:08:29 | <ski> | (but yea, there are situations where it's acceptable. but newbies, for whatever reason, tend to use it *way* too much ..) |
| 09:08:32 | <merijn> | Breaks tons of shit and the pay-off isn't near good enough |
| 09:09:38 | <ski> | jpe90 : and i second making up your own mind. it's your code, it ought to be clear and readable, to *you* |
| 09:10:07 | <ski> | (but being aware of various styles, arguments, issues, opinions, is good) |
| 09:10:18 | <merijn> | ski: I think the overuse of $ comes from "magical thinking" where they think it's just brackets-B-gone |
| 09:11:08 | <ski> | the idea that brackets are inherently bad, and are better to avoid, seems to be the root problem ? |
| 09:11:08 | <jpe90> | and it's a shiny new operator that i haven't seen before.. can't help but touch the shiny things.. |
| 09:11:36 | × | nut quits (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 260 seconds) |
| 09:11:47 | <ski> | (might be related to a general fear of algebra, as monochrom's suggested, iirc) |
| 09:12:32 | <merijn> | jpe90: . is the (slightly more intimidating), but objectively superior shiny new operator ;) |
| 09:13:00 | <merijn> | ski: Very nested brackets are bad, because you end up needing a stack machine in your brain to track them :p |
| 09:13:01 | <jpe90> | yeah that one is really cool, definitely need to train myself to use it more |
| 09:13:10 | <jpe90> | reminds me of piping shell commands |
| 09:14:10 | <ski> | i normally prefer `(foo x . bar . baz y z) blah' over `foo x . bar . bar y z $ blah' over `foo x $ bar $ baz y z $ blah'. but `foo x (bar (baz y z blah))' is commonly also quite fine (often to be preferred to any of the former) |
| 09:14:15 | <merijn> | jpe90: In general . is better than $ because in a sequence of "(f . g . h . i) x" (or "f . g . h . i $ x") any part of the . pipeline can be moved into a new variable name and things still typecheck |
| 09:14:46 | <ski> | and that's because `.' is an associative operation (while `$' isn't) |
| 09:14:50 | <merijn> | i.e. if "f . g . h . i" typechecks, then, by definition, "let foo = f . g in foo . h . i" also typechecks |
| 09:15:05 | <merijn> | Which makes refactoring nice and easy |
| 09:15:25 | <ski> | merijn : yea, at that point, indentation, or explicit breaking out and naming, helps |
| 09:15:31 | <ski> | (re nested) |
| 09:15:51 | <merijn> | ski: I usually write horribly ugly 5 lines . compositions, then later lift out parts into better named chunks |
| 09:16:21 | × | hololeap quits (~hololeap@gateway/tor-sasl/hololeap) (Ping timeout: 240 seconds) |
| 09:17:21 | <ski> | (oh, and writing `foo x (bar $ baz y z blah)' is atrocious ..) |
| 09:19:02 | × | vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
| 09:19:29 | <ski> | and yea, if you want something to play with, `.' is more fun. e.g. `(back .) . (. forward)' |
| 09:20:19 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 252 seconds) |
| 09:25:01 | → | fendor joins (~fendor@77.119.130.199.wireless.dyn.drei.com) |
| 09:25:24 | → | __monty__ joins (~toonn@unaffiliated/toonn) |
| 09:25:44 | → | Major_Biscuit joins (~Major_Bis@wlan-145-94-219-47.wlan.tudelft.nl) |
| 09:28:21 | <ski> | @type traverse :: (a -> State s b) -> [a] -> State s [b] |
| 09:28:23 | <lambdabot> | (a -> State s b) -> [a] -> State s [b] |
| 09:28:24 | <ski> | @type ((state . (swap .)) .) . flip . mapAccumL . flip . (((swap .) . runState) .) :: (a -> State s b) -> [a] -> State s [b] |
| 09:28:25 | <lambdabot> | (a -> State s b) -> [a] -> State s [b] |
| 09:29:29 | <xerox_> | I wonder if there is a straightforward way to parallelize Data.Tree.unfoldTree, anybody got ideas? |
| 09:30:28 | <ski> | (.. it's too bad `State'/`StateT' has the state in the wrong order, or that could just have been `(state .) . flip . mapAccumL . flip . (runState .)' .. or perhaps even `(state .) . mapAccumL . (runState .)', if the argument ordering was different -- although that's less clear of a win) |
| 09:31:21 | <ski> | @type Data.Tree.unfoldTree |
| 09:31:22 | <lambdabot> | (b -> (a, [b])) -> b -> Tree a |
| 09:32:37 | <ski> | hm, do you expect it to be reasonably balanced ? |
| 09:32:47 | <xerox_> | yeah |
| 09:33:11 | → | heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 09:34:07 | <ski> | i guess you could do the first step, then see if you could distribute the children onto different cores ? |
| 09:36:03 | → | frozenErebus joins (~frozenEre@37.231.244.249) |
| 09:36:51 | <xerox_> | hm good idea |
| 09:36:55 | × | bahamas quits (~lucian@unaffiliated/bahamas) (Quit: leaving) |
| 09:37:32 | <ski> | > (concat . transpose . zipWith (map . shows) [0 ..] . transpose . chunksOf 4) (words "a b c d e f g h") |
| 09:37:34 | <lambdabot> | ["0a","1b","2c","3d","0e","1f","2g","3h"] |
| 09:37:55 | × | heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
| 09:38:30 | <xerox_> | there's a pure way to go about it right? I forget what the library is, definitely not Control.Concurrent |
| 09:39:07 | <ski> | `Control.Parallel' ? |
| 09:39:34 | <ski> | perhaps with some of the strategy stuff, or `Eval' |
| 09:40:33 | <ski> | you can also consult the relevant sections of |
| 09:40:34 | <ski> | @where PCPH |
| 09:40:34 | <lambdabot> | "Parallel and Concurrent Programming in Haskell" by Simon Marlow in 2013 at <http://community.haskell.org/~simonmar/pcph/>,<http://chimera.labs.oreilly.com/books/1230000000929/>,<https://web.archive. |
| 09:40:34 | <lambdabot> | org/web/20180117194842/http://chimera.labs.oreilly.com/books/1230000000929>,<https://www.oreilly.com/library/view/parallel-and-concurrent/9781449335939/> |
| 09:42:46 | → | heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 09:43:13 | × | frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 240 seconds) |
| 09:43:27 | → | cafce25 joins (~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) |
| 09:43:47 | × | heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 09:44:23 | → | heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 09:48:41 | <xerox_> | oh yeah Control.Parallel.Strategies is the thing |
| 09:48:59 | → | frozenErebus joins (~frozenEre@37.231.244.249) |
| 09:49:15 | × | heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
| 09:49:32 | × | timCF quits (~i.tkachuk@200-149-20-81.sta.estpak.ee) (Quit: leaving) |
| 09:54:42 | → | kristijonas joins (~kristijon@78-56-32-39.static.zebra.lt) |
| 09:59:40 | × | rnat2 quits (uid73555@gateway/web/irccloud.com/x-blfxzrgdprfecfub) (Quit: Connection closed for inactivity) |
| 10:01:54 | m1dnight_ | is now known as sometesttempnick |
| 10:02:02 | sometesttempnick | is now known as m1dnight_ |
| 10:02:40 | × | Pickchea quits (~private@unaffiliated/pickchea) (Ping timeout: 252 seconds) |
| 10:03:13 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 10:03:13 | × | frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 252 seconds) |
| 10:03:16 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 10:04:04 | × | dixie quits (~dixie@real.wilbury.sk) (Ping timeout: 268 seconds) |
| 10:04:35 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:05:01 | <xerox_> | a different but related idea is how to collapse such unfolding if it happens to get the same seed twice at different points |
| 10:05:23 | <xerox_> | setting aside parallelism when pursuing that |
| 10:07:47 | ← | arturh parts (~arturh@93.176.180.48) () |
| 10:09:41 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 10:10:11 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:11:59 | → | kuribas joins (~user@ptr-25vy0i8g2c6vaifvwgm.18120a2.ip6.access.telenet.be) |
| 10:13:58 | → | kiweun joins (~kiweun@2607:fea8:2a62:9600:8c83:83d2:e977:8f1e) |
| 10:14:13 | × | Major_Biscuit quits (~Major_Bis@wlan-145-94-219-47.wlan.tudelft.nl) (Ping timeout: 252 seconds) |
| 10:14:52 | × | xff0x quits (~xff0x@2001:1a81:52e3:ed00:4e19:7447:12ec:457) (Ping timeout: 258 seconds) |
| 10:15:06 | <ski> | hm, somehow accumulate a `Map' from seeds/states to trees and consult it for memoization |
| 10:15:13 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 10:15:23 | <ski> | i guess the main problem is how to get different branches to communicate with each other |
| 10:15:33 | → | xff0x joins (~xff0x@2001:1a81:52e3:ed00:8d58:e974:e293:f3fe) |
| 10:16:01 | <ski> | perhaps one can generate the subtrees breath-first, with a queue, hmm .. |
| 10:16:10 | <ski> | s/breath/breadth/ |
| 10:16:15 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:16:53 | × | Benzi-Junior quits (~BenziJuni@dsl-149-64-251.hive.is) (Ping timeout: 240 seconds) |
| 10:17:55 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) |
| 10:18:20 | × | kiweun quits (~kiweun@2607:fea8:2a62:9600:8c83:83d2:e977:8f1e) (Ping timeout: 258 seconds) |
| 10:20:46 | × | Alleria_ quits (~AllahuAkb@2603-7000-3040-0000-51cb-91e5-ecfa-0406.res6.spectrum.com) (Ping timeout: 246 seconds) |
| 10:21:13 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 10:21:52 | → | frozenErebus joins (~frozenEre@37.231.244.249) |
| 10:21:53 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:25:45 | → | Alleria_ joins (~AllahuAkb@2603-7000-3040-0000-ac34-8d7e-1853-75bb.res6.spectrum.com) |
| 10:26:17 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) (Remote host closed the connection) |
| 10:26:23 | × | kritzefitz quits (~kritzefit@fw-front.credativ.com) (Ping timeout: 246 seconds) |
| 10:28:33 | → | haskellstudent joins (~quassel@213-225-6-101.nat.highway.a1.net) |
| 10:29:35 | → | __minoru__shirae joins (~shiraeesh@109.166.56.189) |
| 10:30:06 | → | malumore__ joins (~malumore@151.62.122.89) |
| 10:30:22 | <xerox_> | https://www.stackage.org/haddock/lts-17.9/containers-0.6.2.1/Data-Tree.html#g:2 |
| 10:30:27 | <xerox_> | there are some interesting options |
| 10:30:34 | × | jpe90 quits (~user@pool-108-31-85-19.washdc.fios.verizon.net) (Ping timeout: 268 seconds) |
| 10:31:23 | × | kini quits (~kini@unaffiliated/kini) (Remote host closed the connection) |
| 10:31:52 | → | ClaudiusMaximus joins (~claude@cpc98210-croy26-2-0-cust137.19-2.cable.virginm.net) |
| 10:32:03 | × | ClaudiusMaximus quits (~claude@cpc98210-croy26-2-0-cust137.19-2.cable.virginm.net) (Changing host) |
| 10:32:03 | → | ClaudiusMaximus joins (~claude@unaffiliated/claudiusmaximus) |
| 10:32:22 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 10:32:38 | → | kini joins (~kini@unaffiliated/kini) |
| 10:33:03 | × | malumore_ quits (~malumore@151.62.122.89) (Ping timeout: 268 seconds) |
| 10:33:12 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:34:19 | → | LKoen joins (~LKoen@65.250.88.92.rev.sfr.net) |
| 10:35:38 | × | todda7 quits (~torstein@athedsl-09242.home.otenet.gr) (Ping timeout: 240 seconds) |
| 10:37:14 | × | __minoru__shirae quits (~shiraeesh@109.166.56.189) (Ping timeout: 246 seconds) |
| 10:38:13 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 10:38:20 | → | kritzefitz joins (~kritzefit@2003:5b:203b:200::10:49) |
| 10:38:32 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:41:55 | × | sw1nn quits (~sw1nn@2a00:23c7:622f:2c00:4e10:fa3:5042:9652) (Ping timeout: 260 seconds) |
| 10:43:41 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 10:44:30 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:45:06 | → | heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 10:45:42 | × | frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 260 seconds) |
| 10:47:30 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 10:49:22 | × | kritzefitz quits (~kritzefit@2003:5b:203b:200::10:49) (Ping timeout: 258 seconds) |
| 10:49:41 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 10:50:09 | × | heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
| 10:50:20 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:55:13 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 10:55:53 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:59:29 | → | dixie joins (~dixie@real.wilbury.sk) |
| 10:59:51 | → | Major_Biscuit joins (~Major_Bis@wlan-145-94-219-47.wlan.tudelft.nl) |
| 11:00:43 | → | sw1nn joins (~sw1nn@host217-42-85-246.range217-42.btcentralplus.com) |
| 11:00:58 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 11:02:03 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 11:03:09 | → | kritzefitz joins (~kritzefit@212.86.56.80) |
| 11:04:29 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 11:04:50 | → | grimpeux joins (~textual@modemcable153.12-178-173.mc.videotron.ca) |
| 11:06:45 | <dibblego> | ski: that argument originally comes from java, and it is bunk (re TCE) |
| 11:14:36 | → | Alleria joins (~textual@mskresolve-a.mskcc.org) |
| 11:15:00 | Alleria | is now known as Guest40868 |
| 11:19:09 | → | dariof4 joins (~dario@5.179.159.205) |
| 11:21:57 | → | viluon joins (uid453725@gateway/web/irccloud.com/x-nnqlbbddhkybeglg) |
| 11:24:04 | × | gnumonic quits (~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net) (Ping timeout: 252 seconds) |
| 11:24:24 | <viluon> | hi, beginner question: I just refactored my library project into multiple files. When building it with Cabal and a custom compiler, imports in the root file don't work. Why's that? https://usercontent.irccloud-cdn.com/file/5kYcLv9R/image.png |
| 11:24:28 | → | _noblegas joins (uid91066@gateway/web/irccloud.com/x-nmdbocjlxmbwafmr) |
| 11:24:44 | <viluon> | I passed `-v` to GHC, weirdly enough, the path *seems to* match up https://usercontent.irccloud-cdn.com/file/Zk66No4h/image.png |
| 11:25:48 | → | Pickchea joins (~private@unaffiliated/pickchea) |
| 11:25:50 | × | grimpeux quits (~textual@modemcable153.12-178-173.mc.videotron.ca) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 11:29:12 | → | todda7 joins (~torstein@ppp-2-85-110-156.home.otenet.gr) |
| 11:29:49 | → | grimpeux joins (~textual@modemcable153.12-178-173.mc.videotron.ca) |
| 11:30:37 | × | grimpeux quits (~textual@modemcable153.12-178-173.mc.videotron.ca) (Client Quit) |
| 11:31:12 | <viluon> | here's the full output of `cabal install --lib all` along with the `.project` and `.cabal` files https://paste.tomsmeding.com/hXg6Yu6D |
| 11:38:46 | <merijn> | viluon: Your other-modules field is empty |
| 11:39:04 | <viluon> | merijn: ah, I need to list all the modules in my project? |
| 11:39:07 | <merijn> | Yes |
| 11:39:53 | <merijn> | viluon: .cabal files function (among other things) as manifest file, i.e. they explicitly specify everything that is part of a package |
| 11:39:54 | <viluon> | hm, that's sad, surely that information is trivially inferable from the source code. Thank you though! I didn't realise that |
| 11:40:00 | <viluon> | I see |
| 11:40:58 | <merijn> | viluon: Is it trivially inferrible? Mostly, although when you work out the corner case, not as trivial as it seems at first. But it is intentionally not done, so that when you build a source tar ball with cabal you are guaranteed to only get what you explicitly include. |
| 11:42:43 | → | alexm_ joins (~alexm_@161.8.254.229) |
| 11:44:06 | → | drbean_ joins (~drbean@TC210-63-209-59.static.apol.com.tw) |
| 11:47:45 | → | machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca) |
| 11:48:49 | × | ep1ctetus quits (~epictetus@ip72-194-54-201.sb.sd.cox.net) (Ping timeout: 252 seconds) |
| 11:49:12 | <alexm_> | @pl (<*>) fs xs = flatMap (<$> xs) fs |
| 11:49:12 | <lambdabot> | (line 1, column 14): |
| 11:49:12 | <lambdabot> | unexpected " " |
| 11:49:12 | <lambdabot> | expecting operator |
| 11:50:21 | <ski> | dibblego, mm, i've seen versions of it float around |
| 11:50:31 | <alexm_> | @pl (<*>) fs xs = flatMap ((<$>) xs) fs |
| 11:50:31 | <lambdabot> | (line 1, column 14): |
| 11:50:31 | <lambdabot> | unexpected " " |
| 11:50:31 | <lambdabot> | expecting operator |
| 11:50:43 | <alexm_> | @pl "(<*>) fs xs = flatMap (<$> xs) fs" |
| 11:50:43 | <lambdabot> | "(<*>) fs xs = flatMap (<$> xs) fs" |
| 11:50:43 | <ski> | xerox_ : i wonder why that claims `unfoldTree' is breadth-first order .. |
| 11:51:14 | <__monty__> | @pl flatMap (<$> xs) fs |
| 11:51:14 | <lambdabot> | flatMap (<$> xs) fs |
| 11:51:24 | <__monty__> | alexm_: Can't pass a definition. |
| 11:51:36 | <ski> | @pl \fs xs -> flatMap (<$> xs) fs |
| 11:51:36 | <lambdabot> | flip (flatMap . flip (<$>)) |
| 11:51:38 | <alexm_> | oops, cheers :) |
| 11:52:00 | → | Mrbuck joins (~Mrbuck@gateway/tor-sasl/mrbuck) |
| 11:52:08 | <ski> | @pl doubleMap f g xs = map f (map g xs) |
| 11:52:08 | <lambdabot> | doubleMap = (. map) . (.) . map |
| 11:53:53 | <__monty__> | Oh, it does do definitions? Then why didn't the previous query work? |
| 11:54:10 | <ski> | @type \fs xs -> fs >>= (<$> xs) |
| 11:54:11 | <lambdabot> | Monad m => m (a -> b) -> m a -> m b |
| 11:54:14 | <ski> | @type ap |
| 11:54:15 | <lambdabot> | Monad m => m (a -> b) -> m a -> m b |
| 11:54:25 | <ski> | @src ap |
| 11:54:25 | <lambdabot> | ap = liftM2 id |
| 11:54:39 | <ski> | __monty__ : i guess it doesn't parse operator definitions .. |
| 11:54:55 | <ski> | alexm_ ^ ? |
| 11:55:13 | <xerox_> | ski: right? |
| 11:55:20 | → | hololeap joins (~hololeap@gateway/tor-sasl/hololeap) |
| 11:55:30 | <__monty__> | @pl fs <*> xs = flatMap (<$> xs) fs |
| 11:55:31 | <lambdabot> | (line 1, column 12): |
| 11:55:31 | <lambdabot> | unexpected " " |
| 11:55:48 | <ski> | i mean, it doesn't really do any specifically depth-first vs. breadth-first stuff |
| 11:56:19 | <dibblego> | ski: there's a java RFE from 2001 with really long discussion — can't find it though |
| 11:57:04 | <ski> | > let nodes = 1 : [n | m <- nodes,n <- [2*m,2*m + 1]] in nodes -- unlike this, which does breadth-first |
| 11:57:06 | <lambdabot> | [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,... |
| 11:57:12 | <ski> | (only works for infinite trees, though) |
| 11:57:26 | <ski> | "Request For E???" ? |
| 11:57:50 | → | frozenErebus joins (~frozenEre@37.231.244.249) |
| 11:57:58 | <ski> | dibblego : would be interested to take a look, if you find it later |
| 11:58:19 | <dibblego> | yeah, it's a shame I've lost it |
| 11:58:23 | <alexm_> | thanks ski |
| 11:58:30 | → | hololeap_ joins (~hololeap@gateway/tor-sasl/hololeap) |
| 11:59:57 | × | hololeap quits (~hololeap@gateway/tor-sasl/hololeap) (Ping timeout: 240 seconds) |
| 12:01:32 | → | urodna_ joins (~urodna@unaffiliated/urodna) |
| 12:02:09 | → | LKoen_ joins (~LKoen@65.250.88.92.rev.sfr.net) |
| 12:02:36 | <ski> | @let infiniteSubtreesBreadthFirst :: Tree a -> [Tree a]; infiniteSubtreesBreadthFirst t = ts where ts = t : [t | t <- ts,t <- subForest t] |
| 12:02:37 | <lambdabot> | Defined. |
| 12:02:45 | <ski> | @type map rootLabel . infiniteSubtreesBreadthFirst |
| 12:02:47 | <lambdabot> | Tree b -> [b] |
| 12:03:26 | × | oish quits (~charlie@228.25.169.217.in-addr.arpa) (Quit: leaving) |
| 12:04:16 | <ski> | alexm_ : were you looking to define `(<*>)' for `Applicative', based on `(>>=)' in a `Monad' instance ? |
| 12:04:17 | × | todda7 quits (~torstein@ppp-2-85-110-156.home.otenet.gr) (Ping timeout: 260 seconds) |
| 12:04:34 | × | kini quits (~kini@unaffiliated/kini) (Remote host closed the connection) |
| 12:04:52 | × | LKoen quits (~LKoen@65.250.88.92.rev.sfr.net) (Ping timeout: 260 seconds) |
| 12:05:50 | → | kini joins (~kini@unaffiliated/kini) |
| 12:06:28 | × | Mrbuck quits (~Mrbuck@gateway/tor-sasl/mrbuck) (Remote host closed the connection) |
| 12:07:14 | → | Mrbuck joins (~Mrbuck@gateway/tor-sasl/mrbuck) |
| 12:07:37 | <alexm_> | ski: I am defining (<*>) for Applicative for the List type, it's just an exercise from fp-course (former NICTA) |
| 12:08:41 | <dibblego> | alexm_: did you do flatMap and map from List.hs ? |
| 12:08:42 | <alexm_> | in this case point free version looks less readable to me though |
| 12:09:06 | × | Mrbuck quits (~Mrbuck@gateway/tor-sasl/mrbuck) (Remote host closed the connection) |
| 12:09:18 | <alexm_> | dibblego yes, I did |
| 12:09:23 | → | Deide joins (~Deide@217.155.19.23) |
| 12:09:33 | <dibblego> | alexm_: they will get you to (<*>) for List |
| 12:09:52 | → | Mrbuck joins (~Mrbuck@gateway/tor-sasl/mrbuck) |
| 12:09:59 | <alexm_> | yeah, I figured applicative out already via flatMap, thanks :) |
| 12:10:06 | <dibblego> | when the course is run, we use type holes a lot |
| 12:10:11 | <dibblego> | ok cool |
| 12:10:22 | <merijn> | dibblego: type holes or typed holes? :p |
| 12:10:27 | <merijn> | (or both, I suppose) |
| 12:10:28 | <alexm_> | I was just playing around with the point free version of the definition |
| 12:10:38 | <dibblego> | _theseones |
| 12:11:12 | <dibblego> | I've been flying all arvo and night, tired, but leave questions if you have any — up early to fly home |
| 12:11:21 | <merijn> | dibblego: You are aware of -fdefer-typed-holes? (because sadly, every time I find out many people aren't :( ) |
| 12:11:43 | <dibblego> | merijn: yes, the course material was written before those, so error is used instead (PR!?) |
| 12:13:03 | × | andreas303 quits (~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection) |
| 12:13:18 | <alexm_> | thanks dibblego |
| 12:13:24 | <merijn> | dibblego: Just trying to make sure my effort of hacking in that flag doesn't go to waste ;) It's my first and crowning contribution to Haskell, imo :p |
| 12:13:35 | <dibblego> | merijn: we use it in the course |
| 12:13:41 | <merijn> | \o/ |
| 12:13:43 | → | andreas303 joins (~andreas@gateway/tor-sasl/andreas303) |
| 12:14:01 | <merijn> | Immortality achieved! |
| 12:14:04 | <alexm_> | what this flag does in short? |
| 12:14:32 | <merijn> | alexm_: Makes typed holes behave like undefined, so you can run code without having to implement everything |
| 12:14:59 | <merijn> | The major advantage over undefined being: Better warnings and, once you disable the flag, you can't accidentally forget any undefined's in the source |
| 12:15:16 | <merijn> | Since they're compile errors without the flag (and undefined isn't) |
| 12:15:21 | <alexm_> | sweet |
| 12:17:50 | <__monty__> | xv |
| 12:18:46 | → | todda7 joins (~torstein@athedsl-09242.home.otenet.gr) |
| 12:19:27 | → | elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 12:29:48 | → | kiweun joins (~kiweun@2607:fea8:2a62:9600:f0c8:b06a:abe0:d60) |
| 12:29:52 | → | oo_miguel joins (~miguel@89-72-187-203.dynamic.chello.pl) |
| 12:32:39 | → | ddk joins (9d2a7d60@157.42.125.96) |
| 12:33:12 | <ddk> | Hello all |
| 12:33:55 | × | ulidtko|k quits (~ulidtko@194.54.80.38) (Ping timeout: 252 seconds) |
| 12:34:05 | <oo_miguel> | Hello. I am using Network.HTTP.Client.Manager's managerModifyRequest and managerModifyResponse hooks to implement a simple logging middleware. Maybe I a missing something, but while I can easily check what URL a `Request` is related to, I do not see any such possibility inside the `Response` hook. Any suggestions please? |
| 12:34:22 | × | _bin quits (~bin@2600:1700:10a1:38d0:6924:8e26:a144:5b39) (Quit: ZNC - https://znc.in) |
| 12:34:24 | × | kiweun quits (~kiweun@2607:fea8:2a62:9600:f0c8:b06a:abe0:d60) (Ping timeout: 258 seconds) |
| 12:34:58 | × | kritzefitz quits (~kritzefit@212.86.56.80) (Ping timeout: 240 seconds) |
| 12:35:11 | <ddk> | I'm using postgres-simple, now I need timestamp in my program but I'm unsure which type to use in postgres which can be easily parsed between Haskell and postgres to and fro. |
| 12:35:34 | <alexm_> | @pl fa x $ fb x |
| 12:35:35 | <lambdabot> | fa x (fb x) |
| 12:36:47 | <alexm_> | @pl \fa fb x -> fa x $ fb x |
| 12:36:47 | <lambdabot> | ap |
| 12:38:38 | → | _bin joins (~bin@2600:1700:10a1:38d0:8028:8b86:7e11:f5b5) |
| 12:40:50 | <ddk> | ? |
| 12:41:33 | <merijn> | You should figure out how you want/have to store things in postgres and then find out how to use that using postgres-simple, I'd say? |
| 12:42:33 | <merijn> | Seems to me the Database.PostgreSQL.Simple.Time has more than you'd ever want to know on the topic? |
| 12:42:52 | <merijn> | Also: Don't store future times in UTC |
| 12:45:19 | <ddk> | merijn: using `TIMESTAMP WITH TIME ZONE` in postgres, I'm not sure whether I can directly parse them in Haskell |
| 12:45:42 | → | ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 12:45:56 | → | hannah58 joins (546babef@84-107-171-239.cable.dynamic.v4.ziggo.nl) |
| 12:46:02 | × | malumore__ quits (~malumore@151.62.122.89) (Remote host closed the connection) |
| 12:46:08 | × | gzj quits (~gzj@unaffiliated/gzj) (Read error: Connection reset by peer) |
| 12:46:15 | → | malumore joins (~malumore@151.62.122.89) |
| 12:46:27 | × | malumore quits (~malumore@151.62.122.89) (Remote host closed the connection) |
| 12:46:29 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 12:46:34 | → | heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 12:47:44 | × | hannah58 quits (546babef@84-107-171-239.cable.dynamic.v4.ziggo.nl) (Client Quit) |
| 12:47:46 | → | malumore joins (~malumore@151.62.122.89) |
| 12:47:56 | → | kritzefitz joins (~kritzefit@2003:5b:203b:200::10:49) |
| 12:49:06 | × | malumore quits (~malumore@151.62.122.89) (Remote host closed the connection) |
| 12:49:33 | × | rprije quits (~rprije@59-102-63-15.tpgi.com.au) (Ping timeout: 240 seconds) |
| 12:49:57 | × | Mrbuck quits (~Mrbuck@gateway/tor-sasl/mrbuck) (Ping timeout: 240 seconds) |
| 12:50:13 | × | tomsmeding quits (~tomsmedin@tomsmeding.com) (Quit: ZNC 1.8.2 - https://znc.in) |
| 12:51:12 | → | malumore joins (~malumore@151.62.122.89) |
| 12:51:18 | → | tomsmeding joins (~tomsmedin@tomsmeding.com) |
| 12:51:19 | × | heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
| 12:54:41 | → | ircbrowse_tom joins (~ircbrowse@64.225.78.177) |
| 12:54:41 | Server | sets mode +CLnt |
| 12:56:05 | → | hyperisco joins (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
| 12:58:06 | × | alexm_ quits (~alexm_@161.8.254.229) (Remote host closed the connection) |
| 13:02:39 | → | Komrad_Kafuka joins (cbd4caba@203.212.202.186) |
| 13:02:55 | <Komrad_Kafuka> | Hi |
| 13:03:11 | × | Major_Biscuit quits (~Major_Bis@wlan-145-94-219-47.wlan.tudelft.nl) (Ping timeout: 240 seconds) |
| 13:04:11 | × | jules_ quits (~jules@ip201.ip-135-125-227.eu) (Ping timeout: 240 seconds) |
| 13:04:32 | → | carlomagno joins (~cararell@148.87.23.8) |
| 13:05:07 | × | ddk quits (9d2a7d60@157.42.125.96) (Quit: Connection closed) |
| 13:05:14 | → | jules_ joins (~jules@ip201.ip-135-125-227.eu) |
| 13:05:19 | <Komrad_Kafuka> | I've been recently learning haskell and it's a little hard but great. I was writing some code for evaluating e^x but it's giving me an error I can't understand , can I share it with you guys? |
| 13:06:20 | <hyperisco> | yes |
| 13:06:27 | <merijn> | I'm pretty sure I know the issue without seeing it ;) |
| 13:06:42 | <merijn> | Probably the difference between |
| 13:06:45 | <merijn> | :t (**) |
| 13:06:47 | <lambdabot> | Floating a => a -> a -> a |
| 13:06:48 | <merijn> | :t (^) |
| 13:06:49 | <lambdabot> | (Integral b, Num a) => a -> b -> a |
| 13:06:50 | <merijn> | :t (^^) |
| 13:06:52 | <lambdabot> | (Fractional a, Integral b) => a -> b -> a |
| 13:07:09 | × | gzj quits (~gzj@unaffiliated/gzj) (Read error: Connection reset by peer) |
| 13:07:29 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 13:07:42 | <Komrad_Kafuka> | {-# LANGUAGE FlexibleInstances, UndecidableInstances, DuplicateRecordFields #-} |
| 13:07:43 | <Komrad_Kafuka> | module Main where |
| 13:07:43 | <Komrad_Kafuka> | import Control.Monad |
| 13:07:44 | <Komrad_Kafuka> | import Data.Array |
| 13:07:44 | <Komrad_Kafuka> | import Data.Bits |
| 13:07:44 | <Komrad_Kafuka> | import Data.List |
| 13:07:45 | <Komrad_Kafuka> | import Data.List.Split |
| 13:07:45 | <Komrad_Kafuka> | import Data.Set |
| 13:07:46 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Quit: WeeChat 2.9) |
| 13:07:46 | <Komrad_Kafuka> | import Debug.Trace |
| 13:07:47 | <Komrad_Kafuka> | import System.Environment |
| 13:07:47 | <Komrad_Kafuka> | import System.IO |
| 13:07:47 | <Komrad_Kafuka> | import System.IO.Unsafe |
| 13:07:48 | <Komrad_Kafuka> | factorial :: Double -> Double |
| 13:07:48 | <Komrad_Kafuka> | factorial 0 = 1 |
| 13:07:49 | <Komrad_Kafuka> | factorial x = x * factorial x - 1 |
| 13:07:49 | <Komrad_Kafuka> | pow :: Double -> Integer -> Double |
| 13:07:50 | <Komrad_Kafuka> | pow _ 0 = 1.000 :: Double |
| 13:07:50 | <Komrad_Kafuka> | pow 0 _ = 0.000 :: Double |
| 13:08:04 | <Komrad_Kafuka> | Here's the error |
| 13:08:05 | <Komrad_Kafuka> | Solution.hs:27:41: error: |
| 13:08:06 | <Komrad_Kafuka> | • Couldn't match expected type ‘Double’ with actual type ‘Integer’ |
| 13:08:06 | <Komrad_Kafuka> | • In the first argument of ‘factorial’, namely ‘count’ |
| 13:08:07 | <Komrad_Kafuka> | In the second argument of ‘(/)’, namely ‘(factorial count)’ |
| 13:08:07 | <Komrad_Kafuka> | In the first argument of ‘(+)’, namely |
| 13:08:08 | <Komrad_Kafuka> | ‘(pow x count) / (factorial count)’ |
| 13:08:08 | <Komrad_Kafuka> | | |
| 13:08:09 | <Komrad_Kafuka> | 27 | eval x count = (pow x count)/(factorial count) + (eval x count - 1) |
| 13:08:09 | <Komrad_Kafuka> | | ^^^^^ |
| 13:08:10 | <Komrad_Kafuka> | Solution.hs:36:9: error: |
| 13:08:10 | <Komrad_Kafuka> | • Couldn't match expected type ‘Double -> Integer -> IO b0’ |
| 13:08:11 | <Komrad_Kafuka> | with actual type ‘IO ()’ |
| 13:08:11 | <Komrad_Kafuka> | • The function ‘print’ is applied to three arguments, |
| 13:08:12 | <Komrad_Kafuka> | but its type ‘(Double -> Integer -> Double) -> IO ()’ has only one |
| 13:08:12 | <Komrad_Kafuka> | In a stmt of a 'do' block: print eval x 0 |
| 13:08:13 | <Komrad_Kafuka> | In the expression: |
| 13:08:13 | <Komrad_Kafuka> | do x <- readLn :: IO Double |
| 13:08:14 | <Komrad_Kafuka> | print eval x 0 |
| 13:08:14 | <Komrad_Kafuka> | | |
| 13:08:52 | × | Pickchea quits (~private@unaffiliated/pickchea) (Ping timeout: 265 seconds) |
| 13:09:09 | × | gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 13:09:09 | <ski> | @where paste |
| 13:09:10 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
| 13:09:29 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 13:09:39 | <ski> | Komrad_Kafuka : please use a paste site (like e.g. that ^ above), next time -- don't paste huge amounts of lines into the channel |
| 13:10:06 | <Komrad_Kafuka> | Sure, sorry about that |
| 13:10:10 | × | gzj quits (~gzj@unaffiliated/gzj) (Read error: Connection reset by peer) |
| 13:10:21 | <ski> | (i was actually surprised you weren't automatically K-lined by Sigyn for doing that .. but now i notices Sigyn's gone missing, for whatever reason) |
| 13:10:30 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 13:10:33 | × | Rudd0 quits (~Rudd0@185.189.115.108) (Ping timeout: 240 seconds) |
| 13:10:52 | <Komrad_Kafuka> | https://paste.tomsmeding.com/VGuP7TtX |
| 13:11:38 | <Komrad_Kafuka> | ski yeah I did not get any message at first, here's the link |
| 13:11:48 | <ski> | (looking) |
| 13:12:12 | × | gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 13:12:30 | × | ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Read error: Connection reset by peer) |
| 13:12:32 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 13:12:42 | → | ddellac__ joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 13:12:56 | <ski> | your bracketting is off. e.g. |
| 13:12:58 | <ski> | eval x count = (pow x count)/(factorial count) + (eval x count - 1) |
| 13:13:00 | <ski> | ought to be |
| 13:13:11 | × | gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 13:13:13 | × | ddellac__ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection) |
| 13:13:14 | <ski> | eval x count = pow x count / factorial count + eval x (count - 1) |
| 13:13:31 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 13:13:37 | <ski> | (and the same problem, in a few other places ..) |
| 13:13:48 | → | son0p joins (~ff@181.136.122.143) |
| 13:13:48 | <ski> | next thing, which is the actual type error you're getting |
| 13:14:06 | <ski> | `factorial count' is an `Integer', so you can't divide by it, using `/' |
| 13:14:30 | <ski> | try first converting it to a `Double', with `fromIntegral'/`fromInteger' |
| 13:14:37 | <Komrad_Kafuka> | is there a way to typecast stuff in haskell ? |
| 13:14:41 | × | rom1504 quits (rom1504@rom1504.fr) (Ping timeout: 250 seconds) |
| 13:15:07 | <ski> | no |
| 13:15:31 | <ski> | there's no casting (as a language construct), and no implicit coercion either |
| 13:15:54 | <ski> | (it doesn't play along well with type inference) |
| 13:16:38 | <Komrad_Kafuka> | after that I am getting another error https://paste.tomsmeding.com/b1RYmqe6 |
| 13:16:44 | <Komrad_Kafuka> | could you help me with this too |
| 13:16:54 | <ski> | instead of `forM_ [1 .. n] $ \_ -> do ..', you can use `replicateM_ n $ do ..' |
| 13:17:03 | <ski> | @type replicateM_ |
| 13:17:05 | <lambdabot> | Applicative m => Int -> m a -> m () |
| 13:17:13 | × | gzj quits (~gzj@unaffiliated/gzj) (Read error: Connection reset by peer) |
| 13:17:24 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 13:17:33 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 13:17:43 | <ski> | and then there'd be no need for the `:: IO Int' type ascription on `readLn' (since the type of `n' would be inferred from passing it to `replicateM_') |
| 13:18:09 | × | gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 13:18:17 | <Komrad_Kafuka> | nope showing me the same error |
| 13:18:24 | <ski> | similarly, since `eval' is declared to take a `Double', the type ascription on the other `readLn' is also redundant |
| 13:18:30 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 13:19:03 | <ski> | (you could still keep them, if you wanted to, if you think it makes the code more readable to you. however, i'd prefer using x :: Double <- readLn' in that case .. although that syntax requires a language extension) |
| 13:19:11 | × | gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 13:19:15 | → | rj joins (~x@gateway/tor-sasl/rj) |
| 13:19:31 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 13:19:40 | <ski> | Komrad_Kafuka : yes, as i said, because you have the same problem (bracketting) in a few other places as well .. and you haven't fixed them yet |
| 13:20:07 | <Komrad_Kafuka> | oh ok I'll do them |
| 13:20:42 | <ski> | first you should make sure you understand my removal and addition of brackets, to the line i showed |
| 13:20:56 | <Komrad_Kafuka> | nope I don't sorry |
| 13:20:58 | <ski> | (feel free to ask more, if you're unsure) |
| 13:21:10 | × | gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
| 13:21:13 | <ski> | (pow x count)/(factorial count) |
| 13:21:17 | <ski> | already means the same thing as |
| 13:21:22 | <ski> | pow x count / factorial count |
| 13:21:31 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 13:21:37 | <ski> | since "function application binds tighter (has higher precedence than) any operator" |
| 13:21:46 | <Komrad_Kafuka> | but that does not break the code does it ? |
| 13:21:47 | <ski> | which is why those brackets were redundant |
| 13:21:49 | <ski> | secondly |
| 13:22:01 | <ski> | eval x count - 1 |
| 13:22:03 | <ski> | actually means |
| 13:22:06 | <ski> | (eval x count) - 1 |
| 13:22:10 | <ski> | which is not what you intended |
| 13:22:16 | <ski> | presumably you meant |
| 13:22:21 | <ski> | eval x (count - 1) |
| 13:22:25 | <ski> | and you'll have to spell that out |
| 13:22:42 | <Komrad_Kafuka> | oh , yeah I changed that actually it should have been eval x (count+1) since it has an upper bound |
| 13:22:45 | × | Unhammer quits (~Unhammer@gateway/tor-sasl/unhammer) (Ping timeout: 240 seconds) |
| 13:22:48 | <ski> | Komrad_Kafuka : correct. the first (redundant) part, didn't break the code |
| 13:23:07 | × | gzj quits (~gzj@unaffiliated/gzj) (Read error: Connection reset by peer) |
| 13:23:18 | × | frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 240 seconds) |
| 13:23:27 | → | gzj joins (~gzj@unaffiliated/gzj) |
| 13:23:44 | <ski> | you might want to make `eval' give an error, or maybe terminate, in case the input is larger than the upper bound ? |
| 13:24:08 | × | gzj quits (~gzj@unaffiliated/gzj) (Read error: Connection reset by peer) |
| 13:24:12 | <ski> | (you could also pass in the upper bound as a separate argument, to make `eval' less ad hoc (less magic numbers)) |
| 13:25:40 | <Komrad_Kafuka> | It's a small hackerrank problem so I don;t think I have to make it robust, I did the changes and here is the code but it's still giving me an error |
| 13:25:45 | <Komrad_Kafuka> | https://paste.tomsmeding.com/CLJfI7E6 |
| 13:27:23 | <ski> | oh, actually, i see your `count' is an accumulator (an index variable, a counter, in this case), intended to be started / initialized, at zero. in such case, it's better to define a "wrapper" function, whose sole purpose is to initialize this parameter for you (and then your `main' should call this, not the current `eval'). usually, it then makes sense to define the "worker" (your `eval') inside a `where' |
| 13:27:29 | <ski> | (or `let'-`in') inside the wrapper (unless the worker has independent interest) |
| 13:28:02 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 13:28:27 | <ski> | "I don;t think I have to make it robust" -- it's up to you, of course. just saying it could be good practice. but the most important thing is that you're aware of it, and make a conscious choice |
| 13:28:57 | <ski> | again, you're not using brackets properly |
| 13:28:59 | × | acidjnk_new quits (~acidjnk@p200300d0c72b9561cdce4d77de6ce0bc.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
| 13:29:29 | <ski> | (unlike in some other programming languages) brackets are not used for "function calls" in Haskell. however, they *are* used for grouping, and that's how you need to use them here ! |
| 13:29:46 | <ski> | (exactly like how they're used for grouping, in `eval x (count - 1)') |
| 13:30:28 | <Komrad_Kafuka> | yeah I did hear something about auxilary functions in one video, I might reimplement it with your suggested changes but the thing is I still don't know what the error is, I did correct the brackets so one error down and one error still persists which is this https://paste.tomsmeding.com/nB6RwfnJ |
| 13:30:31 | × | OneFixt quits (~OneFixt@217.146.82.202) (Remote host closed the connection) |
| 13:30:45 | <ski> | ok |
| 13:30:57 | <ski> | consider e.g. |
| 13:31:01 | <ski> | pow x count |
| 13:31:07 | <ski> | this actually means |
| 13:31:11 | <ski> | (pow x) count |
| 13:31:18 | → | ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 13:31:59 | <ski> | because when you define, and call, a function in this style (called "curried style"), you're actually defining a function that takes an input, and then returns as result another function, that takes another input parameter, before giving back the "final answer" |
| 13:32:10 | <ski> | so |
| 13:32:12 | <ski> | pow :: Double -> Integer -> Double |
| 13:32:14 | <ski> | actually means |
| 13:32:17 | <ski> | pow :: Double -> (Integer -> Double) |
| 13:33:38 | → | Major_Biscuit joins (~Major_Bis@wlan-145-94-219-47.wlan.tudelft.nl) |
| 13:34:12 | <ski> | (all functions in Haskell take exactly one input argument/parameter. however, colloquially, we speak of "multi-parameter functions". but those are really only in our heads. one way of simulating them in Haskell is as the above, "curried style". another is "tupled style", which would be called like `pow (x,count)', defined like `pow :: (Double,Integer) -> Double', `pow (_,0) = 1', `pow (0,_) = 1', `pow (x,n) |
| 13:34:18 | <ski> | = ..x..n..') |
| 13:34:25 | <Komrad_Kafuka> | Oh, yeah I corrected that rn and now there's a whole list of other errors, correcting them one by one would be tedious, I think if I see your code on how to implement this that would be great, here's the problem that I wanted to solve https://www.hackerrank.com/challenges/eval-ex/problem?h_r=next-challenge&h_v=zen&isFullScreen=true |
| 13:34:36 | <ski> | because of this (and because `print' is just an ordinary library function), when you write |
| 13:34:39 | <ski> | print eval x 0 |
| 13:34:41 | <ski> | this actually means |
| 13:34:46 | <ski> | ((print eval) x) 0 |
| 13:35:09 | <ski> | iow, you're (colloquially speaking) attempting to pass three parameters to `print' : `eval',`x',`0' |
| 13:35:29 | <ski> | however, you actually *wanted* to call `eval' with two parameters, and pass the *result* of that to `print' |
| 13:35:29 | → | alexm_ joins (~alexm_@161.8.254.229) |
| 13:36:11 | <Komrad_Kafuka> | It's a little hard to wrap your head around specially if you are used to imperative style, it's going to be hard before it make sense I guess |
| 13:36:56 | × | ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection) |
| 13:37:03 | <ski> | learning a different programming paradigm will be a little bit like learning to program from scratch, all over again. do you remember how long time it took, to get used to imperative programming ? to understand loops, assignment of mutable variables ? |
| 13:38:08 | → | ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 13:38:27 | <ski> | people who already know another paradigm definitely have to do some unlearning, when learning a new one. it's been suggested that it might be easter to learn FP, as a complete newbie to programming (i'm not sure how true this is, but it seems to me that there's some trace of truth in it, at least) |
| 13:38:48 | × | xlei quits (znc@unaffiliated/xlei) (Quit: ZNC - https://znc.in) |
| 13:39:39 | <Komrad_Kafuka> | yeah, it's like learning programming all over again, could you please solve this for me ? I really want to learn how to do this |
| 13:39:48 | <ski> | it tends to be better to suspend judgement, to not try to compare with what you already know, as you're learning a new paradigm (as opposed to learning yet another language in the same paradigm). you're in a better position to compare, when you've got more under your belt (because obviously a lot does carry over. just quite a bit less than people often tend to assume) |
| 13:41:08 | <ski> | anyway, imho, the gains that you get, is well worth the effort. giving you another viewpoint, another set of tools you can apply and tackle problems with. and in the end, it's just that, another toolset |
| 13:42:01 | <Komrad_Kafuka> | yeah heard it's awesome to write parsers with so I am learning |
| 13:42:01 | → | Pickchea joins (~private@unaffiliated/pickchea) |
| 13:42:22 | <ski> | (sorry for the rantish, but i believe it helps to repeat these basic points, to FP beginners, to set expectations right) |
| 13:42:30 | <ski> | what's the whole list of errors that you get ? |
| 13:43:39 | <ski> | (and yes, it will take some amount of time. don't try to rush it too much. try to have fun, if you can. that tends to help with learning) |
| 13:43:44 | × | kini quits (~kini@unaffiliated/kini) (Remote host closed the connection) |
| 13:43:48 | <Komrad_Kafuka> | here you go https://paste.tomsmeding.com/yUg3QcE0 |
| 13:44:09 | × | alexm_ quits (~alexm_@161.8.254.229) (Ping timeout: 265 seconds) |
| 13:44:30 | → | mnrmnaugh joins (~mnrmnaugh@unaffiliated/mnrmnaugh) |
| 13:45:03 | → | kini joins (~kini@unaffiliated/kini) |
| 13:45:35 | <ski> | (i'd rather prefer to not simply hand out solutions to exercises. you'll learn much better, by struggling a bit, perhaps banging your head against the wall a bit, and realizing the problem in your mistakes. however, of course, asking for conceptual understanding, and what went wrong, and what would be good to try instead, is quite fine) |
| 13:45:48 | <ski> | ok, so consider e.g. |
| 13:45:51 | <ski> | pow(x count) |
| 13:46:09 | <ski> | this means : call the function `x' with input `count', and pass the result of that call to the function `pow' |
| 13:46:10 | → | xlei joins (znc@unaffiliated/xlei) |
| 13:46:23 | <ski> | .. hopefully it should be clear why that is an error here |
| 13:46:34 | <ski> | eval (x (count + 1)) |
| 13:46:37 | <ski> | has the same problem |
| 13:46:38 | → | dmytrish joins (~mitra@2a02:8084:a82:d900:f811:9873:2623:c28b) |
| 13:46:57 | × | ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection) |
| 13:47:11 | × | AkechiShiro quits (~AkechiShi@2a01:e0a:5f9:9681:58c8:ec73:6b59:f408) (Quit: WeeChat 2.9) |
| 13:47:15 | <Komrad_Kafuka> | uhuh ... yeah that's clear but we need the brackets don't we as you already demonstrated |
| 13:47:21 | <ski> | (also, not trying to rush you or anything, but you didn't get around to fixing the problem with your `print', yet) |
| 13:47:25 | <ski> | no |
| 13:47:34 | <Komrad_Kafuka> | because pow x count becomes (pow x) count |
| 13:47:49 | <ski> | yes, which is fine |
| 13:47:50 | <ski> | eval x count |
| 13:47:51 | <ski> | means |
| 13:47:55 | <ski> | (eval x) count |
| 13:48:06 | <ski> | and either is fine to write (but usually people prefer to read the former) |
| 13:48:11 | <ski> | however |
| 13:48:14 | <ski> | eval (x count) |
| 13:48:21 | <ski> | is something completely different |
| 13:48:42 | → | ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 13:48:47 | <ski> | (in your case, something nonsensical, since `x' is not a function) |
| 13:50:06 | → | ksamak joins (~ksamak@185.169.233.12) |
| 13:50:26 | <ski> | perhaps to clarify : in your latest paste, you introduced two problems you didn't have before, while solving one earlier problem, and not solving another earlier problem |
| 13:51:30 | <Komrad_Kafuka> | yeah I got it , fixed all that , is this correct ? :- print eval (x 0) |
| 13:51:37 | <Komrad_Kafuka> | for printing |
| 13:52:17 | → | Unhammer joins (~Unhammer@gateway/tor-sasl/unhammer) |
| 13:52:18 | <ski> | not exactly |
| 13:52:20 | × | ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection) |
| 13:52:21 | × | rj quits (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds) |
| 13:52:35 | <ski> | you want to pass `x' and the initial value of the counter, to `eval', then pass the result of that to `print' |
| 13:52:49 | → | elfets_ joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 13:53:40 | <Komrad_Kafuka> | so the error that I'm having https://paste.tomsmeding.com/ny9K69ti is because of this right ? so what does my experssion indicate ? |
| 13:54:11 | × | Lowl3v3l quits (~Lowl3v3l@dslb-002-207-103-026.002.207.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
| 13:55:00 | → | Lowl3v3l joins (~Lowl3v3l@2.207.103.26) |
| 13:55:40 | → | geekosaur joins (930099da@rrcs-147-0-153-218.central.biz.rr.com) |
| 13:55:41 | × | elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 240 seconds) |
| 13:55:41 | × | sayola quits (~vekto@dslb-002-201-085-157.002.201.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
| 13:56:14 | → | ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 13:56:18 | → | sayola joins (~vekto@2.201.85.157) |
| 13:56:35 | → | rj joins (~x@gateway/tor-sasl/rj) |
| 13:56:55 | × | drbean_ quits (~drbean@TC210-63-209-59.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in) |
| 13:57:09 | → | prinned joins (~vivek@103.206.114.124) |
| 13:57:13 | × | cafce25 quits (~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds) |
| 13:57:44 | → | frozenErebus joins (~frozenEre@37.231.244.249) |
| 13:57:57 | × | Komrad_Kafuka quits (cbd4caba@203.212.202.186) (Quit: Connection closed) |
| 13:58:29 | × | whatisRT quits (~whatisRT@91.65.106.51) (Ping timeout: 246 seconds) |
| 13:59:10 | ski | blinks |
| 13:59:11 | × | Lowl3v3l quits (~Lowl3v3l@2.207.103.26) (Ping timeout: 246 seconds) |
| 14:00:24 | → | Nicolai joins (5473e122@84-115-225-34.cable.dynamic.surfer.at) |
| 14:00:45 | × | tv quits (~tv@unaffiliated/tv) (Ping timeout: 260 seconds) |
| 14:00:48 | Nicolai | is now known as Guest42754 |
| 14:00:49 | × | sayola quits (~vekto@2.201.85.157) (Ping timeout: 252 seconds) |
| 14:00:51 | × | rj quits (~x@gateway/tor-sasl/rj) (Remote host closed the connection) |
| 14:01:12 | → | rj joins (~x@gateway/tor-sasl/rj) |
| 14:01:55 | × | Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 252 seconds) |
| 14:02:45 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 14:03:30 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 14:03:33 | <Guest42754> | HI, does someone know how to install Haskell on a MacBook newest version? Whenever I download and try to run ghci, it says "zsh: command not found: ghci" |
| 14:03:53 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 14:03:59 | × | mnrmnaugh quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Remote host closed the connection) |
| 14:04:27 | × | hiroaki_ quits (~hiroaki@2a02:8108:8c40:2bb8:c438:feb2:e809:229a) (Ping timeout: 260 seconds) |
| 14:05:15 | → | whatisRT joins (~whatisRT@ip5b416a33.dynamic.kabel-deutschland.de) |
| 14:05:16 | → | tv joins (~tv@unaffiliated/tv) |
| 14:05:46 | × | tv quits (~tv@unaffiliated/tv) (Client Quit) |
| 14:06:00 | → | tv joins (~tv@unaffiliated/tv) |
| 14:06:05 | × | tv quits (~tv@unaffiliated/tv) (Client Quit) |
| 14:06:15 | → | Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas) |
| 14:06:19 | → | tv joins (~tv@unaffiliated/tv) |
| 14:06:28 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:3117:c681:fa07:7f26) |
| 14:06:35 | <hypercube> | hi Guest42754 |
| 14:06:49 | <hypercube> | do you have brew setup? |
| 14:06:50 | → | hiroaki_ joins (~hiroaki@2a02:8108:8c40:2bb8:c438:feb2:e809:229a) |
| 14:07:01 | → | sayola joins (~vekto@dslb-002-201-085-157.002.201.pools.vodafone-ip.de) |
| 14:07:06 | → | howdoi joins (uid224@gateway/web/irccloud.com/x-tzexppsgjjqaiofw) |
| 14:07:27 | <hypercube> | id just do something like |
| 14:07:33 | <hypercube> | brew install ghc |
| 14:07:37 | <merijn> | I wouldn't |
| 14:07:43 | <hypercube> | and then run ghci when it's done |
| 14:07:47 | <hypercube> | :c why not |
| 14:07:52 | <merijn> | Homebrew is...kinda into the "bleeding" part of "bleeding edge" |
| 14:08:03 | → | cafce25 joins (~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) |
| 14:08:04 | <merijn> | They upgrade GHC versions *waaay* to eagerly imo |
| 14:08:31 | <merijn> | Guest42754: What did you download? |
| 14:08:51 | <hypercube> | really merijn? i dont use a mac but never imagined homebrew to be "bleeding edge" per se |
| 14:09:07 | <merijn> | hypercube: They insist on being "up to date" |
| 14:09:19 | <merijn> | hypercube: Which means that as soon as a new GHC is released, they switch to that |
| 14:09:40 | <merijn> | Personally I'd lag GHC releases by at least 6 months unless you have a good reason to upgrade |
| 14:10:10 | <hypercube> | merijn: i agree, even the new releases adhere to the same standards anyway |
| 14:11:06 | → | Lowl3v3l joins (~Lowl3v3l@dslb-002-207-103-026.002.207.pools.vodafone-ip.de) |
| 14:12:54 | → | malumore_ joins (~malumore@151.62.122.89) |
| 14:14:03 | → | Sorna joins (~Sornaensi@077213203030.dynamic.telenor.dk) |
| 14:14:34 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 14:15:06 | × | malumore quits (~malumore@151.62.122.89) (Ping timeout: 240 seconds) |
| 14:15:42 | × | olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection) |
| 14:16:12 | → | alexm_ joins (~alexm_@161.8.254.229) |
| 14:17:52 | × | Sornaensis quits (~Sornaensi@79.142.232.102.static.router4.bolignet.dk) (Ping timeout: 240 seconds) |
| 14:18:00 | → | curlybangs joins (185a6b4e@cpe-24-90-107-78.nyc.res.rr.com) |
| 14:18:51 | <Guest42754> | I tried downloading brew, but when I want to install ghc from brew it says "zsh: command not found: brew" |
| 14:19:31 | × | hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Ping timeout: 252 seconds) |
| 14:19:49 | <Guest42754> | I think it has something to do with the path, that is why I can't open ghci in terminal |
| 14:20:00 | → | mnrmnaugh joins (~mnrmnaugh@unaffiliated/mnrmnaugh) |
| 14:20:12 | × | alexm_ quits (~alexm_@161.8.254.229) (Ping timeout: 240 seconds) |
| 14:20:20 | <Guest42754> | thank you for the reply! |
| 14:20:22 | → | hyiltiz joins (~quassel@unaffiliated/hyiltiz) |
| 14:20:39 | → | AkechiShiro joins (~AkechiShi@2a01:e0a:5f9:9681:2d2a:c15d:f996:c56f) |
| 14:21:12 | × | hypercube quits (hypercube@gateway/vpn/protonvpn/hypercube) (Ping timeout: 268 seconds) |
| 14:21:15 | × | dmytrish quits (~mitra@2a02:8084:a82:d900:f811:9873:2623:c28b) (Ping timeout: 260 seconds) |
| 14:24:22 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 14:25:58 | → | mrchampion joins (~mrchampio@38.18.109.23) |
| 14:26:30 | → | Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
| 14:27:46 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 252 seconds) |
| 14:29:25 | × | frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 252 seconds) |
| 14:29:37 | → | Guest_55 joins (5473e122@84-115-225-34.cable.dynamic.surfer.at) |
| 14:30:06 | → | waleee-cl joins (uid373333@gateway/web/irccloud.com/x-modavknqpmqvbcri) |
| 14:30:27 | × | gienah_ quits (~mwright@119-18-3-62.771203.syd.nbn.aussiebb.net) (Ping timeout: 268 seconds) |
| 14:30:37 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 14:31:44 | → | gienah joins (~mwright@gentoo/developer/gienah) |
| 14:33:19 | <Guest_55> | I'm trying to install the Haskell platform with cup but when I run the command in terminal it tells me bad CPU type in executable. |
| 14:33:43 | × | Guest42754 quits (5473e122@84-115-225-34.cable.dynamic.surfer.at) (Ping timeout: 240 seconds) |
| 14:33:43 | → | amerigo joins (uid331857@gateway/web/irccloud.com/x-nxarbmfdflgljuos) |
| 14:34:04 | → | ubert joins (~Thunderbi@77.119.128.21.wireless.dyn.drei.com) |
| 14:34:12 | <merijn> | No clue what cup is, but that error suggests you are installing x86 executables on the new M1 ARM macOS? |
| 14:35:17 | × | idhugo quits (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 260 seconds) |
| 14:35:32 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 258 seconds) |
| 14:37:00 | <Guest_55> | I meant ghcup, but yes I'm using the new M1 ARM macOS |
| 14:37:56 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 14:38:08 | <maerwald> | Guest_55: curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | arch -x86_64 /bin/bash |
| 14:41:01 | × | ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection) |
| 14:41:31 | <Guest_55> | arch: posix_spawnp: /bin/bash: Bad CPU type in executable |
| 14:41:31 | <Guest_55> | (23) Failed writing body |
| 14:41:42 | <Guest_55> | this is what it tells me now |
| 14:43:39 | × | _noblegas quits (uid91066@gateway/web/irccloud.com/x-nmdbocjlxmbwafmr) (Quit: Connection closed for inactivity) |
| 14:43:44 | → | ram19890 joins (~ram@49.207.130.109) |
| 14:44:23 | → | HannaM joins (~quassel@p54849510.dip0.t-ipconnect.de) |
| 14:47:53 | <maerwald> | Guest_55: softwareupdate --install-rosetta |
| 14:48:08 | → | heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 14:49:26 | → | ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 14:51:44 | → | falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
| 14:52:07 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 14:52:25 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) |
| 14:52:38 | → | grimpeux joins (~textual@modemcable153.12-178-173.mc.videotron.ca) |
| 14:52:40 | × | heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
| 14:52:44 | <Guest_55> | thank you |
| 14:52:48 | × | Guest_55 quits (5473e122@84-115-225-34.cable.dynamic.surfer.at) (Quit: Connection closed) |
| 14:53:12 | × | ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection) |
| 14:53:27 | → | ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 14:56:00 | × | ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection) |
| 14:57:04 | → | __minoru__shirae joins (~shiraeesh@109.166.56.189) |
| 15:00:16 | → | gienah_ joins (~mwright@119-18-3-62.771203.syd.nbn.aussiebb.net) |
| 15:02:45 | → | ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 15:02:58 | × | gienah quits (~mwright@gentoo/developer/gienah) (Ping timeout: 252 seconds) |
| 15:03:26 | × | Pickchea quits (~private@unaffiliated/pickchea) (Ping timeout: 240 seconds) |
| 15:06:20 | × | jlamothe quits (~jlamothe@198.251.57.81) (Quit: leaving) |
| 15:10:32 | × | __minoru__shirae quits (~shiraeesh@109.166.56.189) (Ping timeout: 240 seconds) |
| 15:13:29 | × | curlybangs quits (185a6b4e@cpe-24-90-107-78.nyc.res.rr.com) (Quit: Ping timeout (120 seconds)) |
| 15:14:18 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 15:15:16 | → | heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 15:18:42 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 15:19:56 | → | pavonia joins (~user@unaffiliated/siracusa) |
| 15:20:32 | → | __minoru__shirae joins (~shiraeesh@109.166.56.189) |
| 15:21:29 | → | jlamothe joins (~jlamothe@198.251.57.81) |
| 15:24:09 | → | frozenErebus joins (~frozenEre@37.231.244.249) |
| 15:24:49 | → | roconnor joins (~roconnor@host-45-78-202-80.dyn.295.ca) |
| 15:26:33 | × | ksamak quits (~ksamak@185.169.233.12) (Remote host closed the connection) |
| 15:26:56 | × | kini quits (~kini@unaffiliated/kini) (Remote host closed the connection) |
| 15:28:15 | → | kini joins (~kini@unaffiliated/kini) |
| 15:29:03 | <fiedlr> | Is there a "dual term" to reduction? That is, in a -- particular/concrete -- calculation. E.g. if we have f x = 5 and we reduce f 4 ~> 5, what do we call the inverse arrow 5 ~> f 4? |
| 15:30:16 | <dolio> | Expansion. |
| 15:31:01 | × | proteusguy quits (~proteusgu@cm-58-10-209-239.revip7.asianet.co.th) (Remote host closed the connection) |
| 15:31:19 | <fiedlr> | I thought so, thanks. Just checking others' opinion. |
| 15:32:28 | <dolio> | It's rarely used for that sort of example, though. |
| 15:34:23 | <fiedlr> | I think it's kind of counterintuitive in some cases, because the expression can get longer with reduction. |
| 15:34:57 | <ski> | it's somewhat of a misnomer, one could argue, yea |
| 15:35:13 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 15:35:54 | <ski> | however, for terminating computations, it does get closer to the result. often one would prove a computation is terminating, by introducing some kind of "size" measure, and show that it decreases (discretely) in each step (towards zero) |
| 15:36:02 | × | geekosaur quits (930099da@rrcs-147-0-153-218.central.biz.rr.com) (Ping timeout: 240 seconds) |
| 15:36:33 | → | kiweun joins (~kiweun@2607:fea8:2a62:9600:483b:ac14:a41e:28c4) |
| 15:36:34 | <ski> | (e.g. in some cases, one might operate on trees, and get wider, but shallower, trees, in each step) |
| 15:37:29 | <fiedlr> | Yeah I know what you mean... I meant more like when it is used with "expansion" in the same text. But I couldn't think of a better alternative :-( I guess I'll stick to that. |
| 15:37:47 | <fiedlr> | Especially when the "size" measure is not clearly stated. |
| 15:37:59 | → | myShoggoth joins (~myShoggot@97-120-72-12.ptld.qwest.net) |
| 15:39:37 | <dolio> | Well, in the case of β, there is not really a canonical choice of 'expansion' either, so it is ill behaved in that way, too. |
| 15:39:46 | <dolio> | Unlike η, where the term is actually used. |
| 15:41:05 | × | kiweun quits (~kiweun@2607:fea8:2a62:9600:483b:ac14:a41e:28c4) (Ping timeout: 258 seconds) |
| 15:41:55 | → | usr25 joins (~usr25@unaffiliated/usr25) |
| 15:41:58 | <ski> | η-expansion for sum types would also be more open-ended, iirc |
| 15:42:26 | → | alexm_ joins (~alexm_@161.8.254.229) |
| 15:42:27 | <dolio> | Which is also not done. |
| 15:42:47 | → | porygon2 joins (~porygon2@178.239.168.171) |
| 15:43:00 | <fiedlr> | Of course, in general it is ill-defined. That's why I talked about a particular computation branch. |
| 15:43:02 | <ski> | mm. i suppose η-long form doesn't use that (?) |
| 15:43:43 | ski | . o O ( normalization-by-evaluation, reflection & reification via delimited continuations ) |
| 15:44:54 | hololeap_ | is now known as hololeap |
| 15:45:33 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 15:46:12 | → | geekosaur joins (930099da@rrcs-147-0-153-218.central.biz.rr.com) |
| 15:46:14 | → | ep1ctetus joins (~epictetus@ip72-194-54-201.sb.sd.cox.net) |
| 15:46:29 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.1) |
| 15:48:16 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 15:49:32 | × | alexm_ quits (~alexm_@161.8.254.229) (Ping timeout: 240 seconds) |
| 15:50:11 | → | KeyJoo joins (~KeyJoo@62.176.30.171) |
| 15:50:32 | × | falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
| 15:52:07 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 15:52:25 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) |
| 15:52:33 | × | Major_Biscuit quits (~Major_Bis@wlan-145-94-219-47.wlan.tudelft.nl) (Ping timeout: 240 seconds) |
| 15:53:18 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 15:57:15 | → | idhugo joins (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) |
| 15:58:37 | × | grimpeux quits (~textual@modemcable153.12-178-173.mc.videotron.ca) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 15:58:52 | × | chele quits (~chele@78.128.94.174) (Ping timeout: 240 seconds) |
| 15:59:33 | × | finn_elija quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 240 seconds) |
| 16:00:17 | × | Haskman[m] quits (haskmanmat@gateway/shell/matrix.org/x-sdpzurestintfxkz) (Quit: Idle for 30+ days) |
| 16:01:40 | → | finn_elija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
| 16:01:49 | → | Lycurgus joins (~niemand@98.4.118.65) |
| 16:03:55 | → | danso joins (~dan@23-233-111-52.cpe.pppoe.ca) |
| 16:04:19 | → | Rudd0 joins (~Rudd0@185.189.115.108) |
| 16:07:05 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 16:09:56 | × | kritzefitz quits (~kritzefit@2003:5b:203b:200::10:49) (Ping timeout: 245 seconds) |
| 16:11:12 | → | pfurla_ joins (~pfurla@ool-182ed2e2.dyn.optonline.net) |
| 16:11:14 | × | coot quits (~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 16:11:40 | → | geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 16:16:18 | → | Benzi-Junior joins (~BenziJuni@dsl-149-64-251.hive.is) |
| 16:21:11 | → | rond_ joins (5940206b@89-64-32-107.dynamic.chello.pl) |
| 16:22:19 | × | xff0x quits (~xff0x@2001:1a81:52e3:ed00:8d58:e974:e293:f3fe) (Ping timeout: 250 seconds) |
| 16:23:06 | → | kritzefitz joins (~kritzefit@212.86.56.80) |
| 16:23:22 | → | xff0x joins (~xff0x@2001:1a81:52e3:ed00:16c4:781d:2418:6176) |
| 16:23:52 | × | Lycurgus quits (~niemand@98.4.118.65) (Quit: Exeunt) |
| 16:24:13 | → | supercoven joins (~Supercove@dsl-hkibng31-58c384-213.dhcp.inet.fi) |
| 16:24:14 | × | supercoven quits (~Supercove@dsl-hkibng31-58c384-213.dhcp.inet.fi) (Max SendQ exceeded) |
| 16:24:19 | × | _ashbreeze_ quits (~mark@64.85.214.234.reverse.socket.net) (Remote host closed the connection) |
| 16:24:28 | → | supercoven joins (~Supercove@dsl-hkibng31-58c384-213.dhcp.inet.fi) |
| 16:25:37 | → | _ashbreeze_ joins (~mark@64.85.214.234.reverse.socket.net) |
| 16:26:50 | → | raichoo joins (~raichoo@dslb-088-077-025-199.088.077.pools.vodafone-ip.de) |
| 16:28:07 | × | kini quits (~kini@unaffiliated/kini) (Remote host closed the connection) |
| 16:29:24 | → | kini joins (~kini@unaffiliated/kini) |
| 16:30:03 | × | jonatan quits (~nate@h77-53-70-163.cust.a3fiber.se) (Remote host closed the connection) |
| 16:34:39 | → | neiluj joins (~jco@91-167-203-101.subs.proxad.net) |
| 16:34:43 | × | neiluj quits (~jco@91-167-203-101.subs.proxad.net) (Changing host) |
| 16:34:43 | → | neiluj joins (~jco@unaffiliated/neiluj) |
| 16:37:41 | → | bitmagie joins (~Thunderbi@200116b8065a8100544220815d2d2bde.dip.versatel-1u1.de) |
| 16:38:13 | × | bitmagie quits (~Thunderbi@200116b8065a8100544220815d2d2bde.dip.versatel-1u1.de) (Client Quit) |
| 16:40:37 | → | Sorny joins (~Sornaensi@79.142.232.102) |
| 16:40:40 | × | malumore_ quits (~malumore@151.62.122.89) (Remote host closed the connection) |
| 16:41:38 | → | malumore joins (~malumore@151.62.122.89) |
| 16:41:39 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 16:42:06 | → | grimpeux joins (~textual@modemcable153.12-178-173.mc.videotron.ca) |
| 16:42:20 | × | fiedlr quits (~fiedlr@83.148.33.254) (Remote host closed the connection) |
| 16:43:11 | × | Sorna quits (~Sornaensi@077213203030.dynamic.telenor.dk) (Ping timeout: 240 seconds) |
| 16:44:11 | × | ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection) |
| 16:44:39 | × | kuribas quits (~user@ptr-25vy0i8g2c6vaifvwgm.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
| 16:45:26 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds) |
| 16:45:59 | → | ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 16:47:12 | × | grimpeux quits (~textual@modemcable153.12-178-173.mc.videotron.ca) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 16:47:44 | × | ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection) |
| 16:48:22 | → | ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 16:49:40 | × | ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection) |
| 16:50:30 | → | kw joins (d4662d5d@212.102.45.93) |
| 16:50:42 | ← | jakalx parts (~jakalx@base.jakalx.net) ("Error from remote client") |
| 16:51:06 | <kw> | Is there a conventional way of naming traversals? Like how folks add 'L' to the names of lenses? |
| 16:51:41 | → | fendor_ joins (~fendor@91.141.2.26.wireless.dyn.drei.com) |
| 16:52:06 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 16:52:25 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) |
| 16:53:13 | × | elfets_ quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 240 seconds) |
| 16:53:37 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 16:54:11 | × | fendor quits (~fendor@77.119.130.199.wireless.dyn.drei.com) (Ping timeout: 240 seconds) |
| 16:54:16 | → | Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
| 16:55:23 | → | ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 16:55:48 | → | alexm_ joins (~alexm_@161.8.254.229) |
| 16:56:20 | <tapas> | not really kw. I tend to name those similarly to any other traverse-based functionality |
| 16:57:26 | <kw> | My problem is that the obvious names are already taken by less obvious functions. I'm thinking of tacking an 'A' or 'T' to the end. |
| 16:59:04 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 268 seconds) |
| 17:00:07 | × | alexm_ quits (~alexm_@161.8.254.229) (Ping timeout: 252 seconds) |
| 17:00:21 | × | norsxa quits (uid494793@gateway/web/irccloud.com/x-qcpmzqxcuhseltht) (Quit: Connection closed for inactivity) |
| 17:01:46 | × | frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 252 seconds) |
| 17:05:18 | × | dhil quits (~dhil@80.208.56.181) (Quit: Leaving) |
| 17:06:35 | × | kw quits (d4662d5d@212.102.45.93) (Quit: Connection closed) |
| 17:06:47 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 17:06:49 | <ski> | perhaps you could use unusual grammatical forms .. |
| 17:06:54 | <ski> | .. oh, they keft |
| 17:07:08 | × | rond_ quits (5940206b@89-64-32-107.dynamic.chello.pl) (Quit: Connection closed) |
| 17:08:04 | → | jonathanx_ joins (~jonathan@h-176-109.A357.priv.bahnhof.se) |
| 17:08:38 | × | idhugo quits (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds) |
| 17:09:35 | × | jonathanx quits (~jonathan@h-176-109.A357.priv.bahnhof.se) (Ping timeout: 246 seconds) |
| 17:18:59 | × | kritzefitz quits (~kritzefit@212.86.56.80) (Remote host closed the connection) |
| 17:19:05 | × | HannaM quits (~quassel@p54849510.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 17:19:18 | → | HannaM joins (~quassel@p54849510.dip0.t-ipconnect.de) |
| 17:20:20 | → | fiedlr joins (~fiedlr@83.148.33.254) |
| 17:20:26 | × | Rudd0 quits (~Rudd0@185.189.115.108) (Ping timeout: 240 seconds) |
| 17:22:29 | → | jaykru joins (~user@unaffiliated/jaykru) |
| 17:24:02 | × | ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection) |
| 17:24:38 | <jaykru> | does anybody here have experience with Gloss? I'm having trouble with `simulate`, which is successfully updating my state (as confirmed by a trace call) but not updating the display of my state :/ Is there a less magical way to work with real-time display updates in this library so I have more hope of figuring out what's going on? |
| 17:24:43 | → | kristijonas_ joins (~kristijon@78-56-32-39.static.zebra.lt) |
| 17:26:11 | × | kristijonas quits (~kristijon@78-56-32-39.static.zebra.lt) (Ping timeout: 240 seconds) |
| 17:29:00 | → | acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
| 17:29:48 | × | kini quits (~kini@unaffiliated/kini) (Remote host closed the connection) |
| 17:31:08 | → | kini joins (~kini@unaffiliated/kini) |
| 17:32:07 | → | Pickchea joins (~private@unaffiliated/pickchea) |
| 17:32:34 | → | gitgood joins (~gitgood@80-44-9-246.dynamic.dsl.as9105.com) |
| 17:35:06 | × | ubert quits (~Thunderbi@77.119.128.21.wireless.dyn.drei.com) (Ping timeout: 240 seconds) |
| 17:35:47 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 17:36:16 | → | Sheilong joins (uid293653@gateway/web/irccloud.com/x-ljvkmqtgqlpdhiue) |
| 17:37:08 | × | ram19890 quits (~ram@49.207.130.109) (Quit: Konversation terminated!) |
| 17:38:31 | → | justan0theruser joins (~justanoth@unaffiliated/justanotheruser) |
| 17:38:35 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 250 seconds) |
| 17:38:56 | → | grimpeux joins (~textual@modemcable153.12-178-173.mc.videotron.ca) |
| 17:39:53 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Ping timeout: 250 seconds) |
| 17:42:40 | → | idhugo joins (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) |
| 17:45:05 | × | grimpeux quits (~textual@modemcable153.12-178-173.mc.videotron.ca) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 17:45:32 | → | ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 17:49:08 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 17:49:55 | → | grimpeux joins (~textual@modemcable153.12-178-173.mc.videotron.ca) |
| 17:50:10 | × | ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 265 seconds) |
| 17:52:06 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 17:52:25 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) |
| 17:52:55 | × | amerigo quits (uid331857@gateway/web/irccloud.com/x-nxarbmfdflgljuos) (Quit: Connection closed for inactivity) |
| 17:57:58 | → | ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 17:58:02 | → | hypercube joins (hypercube@gateway/vpn/protonvpn/hypercube) |
| 17:58:05 | <wroathe> | Is the point of explicitly universally quantifying a type to imply that the types not explicitly universally quantified are instead existentially quantified? |
| 17:58:15 | <wroathe> | i.e. the forall x. syntax |
| 17:58:42 | → | vicfred joins (~vicfred@unaffiliated/vicfred) |
| 17:59:37 | → | frozenErebus joins (~frozenEre@37.231.244.249) |
| 18:00:42 | <monochrom> | No. |
| 18:01:10 | <wroathe> | Well, types are implicitly universall quantified by default, right? |
| 18:01:15 | <monochrom> | Yes. |
| 18:01:18 | <wroathe> | universally* |
| 18:01:55 | <wroathe> | No further questions, your honor. |
| 18:02:20 | <monochrom> | :) |
| 18:02:22 | <ski> | "Well, types are implicitly universall quantified by default, right?" -- no |
| 18:02:41 | <ski> | type signature are (except for in some cases) |
| 18:02:51 | <wroathe> | type variables, I meant |
| 18:02:53 | <wroathe> | sorry |
| 18:03:16 | <ski> | when you talk about quantification, or any binder, you must ask "where ?" |
| 18:03:46 | → | alexm_ joins (~alexm_@161.8.254.229) |
| 18:03:50 | <ski> | it's not the case that `[a] -> [a]' "is short for" `forall a. [a] -> [a]', e.g. |
| 18:05:34 | × | idhugo quits (~idhugo@87-49-147-45-mobile.dk.customer.tdc.net) (Ping timeout: 252 seconds) |
| 18:06:02 | <ski> | if it was, then e.g. `([a] -> [a]) -> [[a]] -> [[a]]' would mean the same as `(forall a. [a] -> [a]) -> [[a]] -> [[a]]', and `data ListTransf a = LT ([a] -> [a])' would mean the same as `data ListTransf a = LT (forall a. [a] -> [a])'. neither of which are actually the case |
| 18:07:10 | <ski> | in most circumstances, a type *signature* without explicit quantification really means a corresponding one, where there's been added a `forall' just after the `::', binding the (free) type variables in the type |
| 18:08:06 | × | alexm_ quits (~alexm_@161.8.254.229) (Ping timeout: 252 seconds) |
| 18:08:08 | → | ram19890 joins (~ram@49.207.130.109) |
| 18:08:51 | → | xprl-gjf joins (~gavin@98.154.147.147.dyn.plus.net) |
| 18:09:07 | <ski> | exceptions are e.g. `data ListTransf a = LT {appListTransf :: [a] -> [a]}', and `class Eq a where (==) :: a -> a -> Bool' (which does not mean `class Eq a where (==) :: forall a. a -> a -> Bool'. `(==)' is a monomorphic method, not a polymorphic one. `fmap', otoh is polymorphic, since it really is `class Functor f where fmap :: forall a b. (a -> b) -> (f a -> f b)') |
| 18:09:10 | <wroathe> | ski: It was a half-assed question that monochrom correctly called me out on. I'm still working through that Typing Haskell in Haskell paper and it occurred to me while I was writing the pattern type inference routine that I still have no idea how any of that forall. stuff works. |
| 18:09:45 | <wroathe> | ski: But there's plenty of resources to learn about it online, and so don't trouble yourself |
| 18:10:28 | × | ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection) |
| 18:10:48 | <[exa]> | wroathe: forall is only very implicitly present in THIH, they don't really implement any higher-order polymorphism |
| 18:11:00 | <ski> | also, if you have a local signature inside a `where' or `let', which mentions a type variable bound by a type signature accompanying the outer defining equation (and `ScopedTypeVariables' is enables). (also, with `InstanceSigs', you can also put signatures inside `instance' declarations, and then tyvars mentioned in the head of the instance are in scope, so not "implicitly quantified", for the method type |
| 18:11:02 | <monochrom> | I forgot: Does Typing Haskell in Haskell has an explicit forall internally? |
| 18:11:06 | <ski> | signatures) |
| 18:11:07 | × | whataday quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 18:11:20 | <[exa]> | monochrom: iirc not |
| 18:11:35 | <ski> | anyway, "implicit universal quantification" is nothing deep at all. it's just a convenient shorthand, to avoid explicitly spelling out `forall's all the time |
| 18:11:52 | <wroathe> | They've got this constructor: data Scheme = Forall [Kind] (Qual Type) |
| 18:12:09 | <monochrom> | Oh, that. |
| 18:12:11 | <wroathe> | Which might not be the same thing. I'm hoping this paper will start making sense as I put the full type inference algorithm together |
| 18:12:14 | → | whataday joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 18:12:16 | <ski> | wroathe : did i mention "Polymorphic Type Inference" to you, already ? |
| 18:12:25 | <[exa]> | THIH implements HM with typeclasses, recursion, context splits for local definitions, and some other minor goodies |
| 18:12:29 | <wroathe> | ski: Not sure |
| 18:12:44 | <ski> | "Polymorphic Type Inference" by Michael I. Schwartzbach in 1995-03 at <https://cs.au.dk/~amoeller/mis/typeinf.p(s|df)>,<https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.57.1493> |
| 18:12:50 | <[exa]> | wroathe: the "forall" in THIH is, more or less, the one from Hindley-Milner type system, which is only allowed once per polytype. |
| 18:12:52 | <ski> | also, perhaps |
| 18:12:56 | <ski> | @where on-understanding |
| 18:12:56 | <lambdabot> | "On Understanding Types, Data Abstraction, and Polymorphism" by Luca Cardelli,Peter Wegner in 1985-12 at <http://lucacardelli.name/Papers/OnUnderstanding.A4.pdf> |
| 18:12:59 | <ski> | @where on-understanding-revisited |
| 18:12:59 | <lambdabot> | "On Understanding Data Abstraction, Revisited" by William R. Cook in 2009-10 at <http://www.cs.utexas.edu/~wcook/Drafts/2009/essay.pdf> |
| 18:13:24 | <ski> | could be interesting, for further information relating to polymorphism/universals, and also to existentials (and relation to OO, and ADTs) |
| 18:13:31 | wroathe | writes down the word polytype |
| 18:14:23 | <monochrom> | OK, so in HM the dichotomy is "implicitly universally quantified" vs "an unknown waiting to be solved". |
| 18:14:42 | <monochrom> | rather than universal vs existential |
| 18:15:23 | <ski> | (oh, and regrettably, people often say "polymorphic type", when they really mean "universally quantified type". imho "polymorphic type" is something completely different. e.g. `forall a. a -> a' is not a polymorphic type (it is monomorphic, having kind `*'/`Type'). however `Const' (of kind `forall k. Type -> k -> Type' is a polymorphic type. also `Proxy') |
| 18:15:36 | <monochrom> | people usually say "meta variable" for "unknown waiting to be solved". But I hate it. |
| 18:15:54 | <[exa]> | +1 against metavariables |
| 18:15:56 | <ski> | whyso ? |
| 18:16:07 | <wroathe> | ski: So is your definition of polymorphic then that it has any kind, including *? |
| 18:16:27 | <monochrom> | piling higher and deeper on the word "variable" |
| 18:16:57 | <ski> | wroathe : no. a polymorphic value is one whose type is of the shape `forall a. ..a..'. a polymorphic type is one whose kind is of the shape `forall k. ..k..' -- i think that's the shortest way to put it |
| 18:17:24 | <ski> | "unknown" (as a noun) is certainly not a bad term for it |
| 18:17:42 | <ski> | wroathe : e.g. `Const' certainly does not have kind `*' |
| 18:17:54 | <[exa]> | wroathe: perhaps best contrast it with monomorphic |
| 18:17:59 | <ski> | @kind Const :: * |
| 18:18:01 | <lambdabot> | error: |
| 18:18:01 | <lambdabot> | • Expecting two more arguments to ‘Const’ |
| 18:18:01 | <lambdabot> | Expected a type, but ‘Const’ has kind ‘* -> k0 -> *’ |
| 18:18:02 | <ski> | @kind Const :: * -> * -> * |
| 18:18:03 | <lambdabot> | * -> * -> * |
| 18:18:06 | <ski> | @kind Const :: * -> (* -> *) -> * |
| 18:18:07 | <lambdabot> | * -> (* -> *) -> * |
| 18:18:08 | <[exa]> | ski: nitpicking/curiosity: is `Const` polymorphic? |
| 18:18:16 | <ski> | @kind Const |
| 18:18:18 | <lambdabot> | * -> k -> * |
| 18:18:28 | <ski> | [exa] : yes (as i said above) |
| 18:18:57 | <[exa]> | ah it clicked now, I was thinking at a wrong level. |
| 18:19:00 | <[exa]> | :] |
| 18:19:41 | <ski> | (for short, instead of "universally quantified type", i guess one could say `forall'-type) |
| 18:20:01 | <wroathe> | What would be the simplest possible example where an explicit forall would be required to achieve behavior that's different than what haskell's default behavior is? |
| 18:21:00 | <ski> | monochrom : "meta variable" make some kind of sense to me. but i agree it's not that great a name, a bit clunky .. and "logic variable" (basically the same thing, in a logic programming context) is more ad hoc a term |
| 18:21:05 | <[exa]> | wroathe: guessing: `f x = x x` called as `f id` |
| 18:21:19 | <monochrom> | You'll need rank-2 for that. forall b. (forall a. a -> a -> a) -> b -> b -> b isn't expressible in Haskell 2010. |
| 18:21:25 | → | tsandstr joins (~user@nat-130-132-173-221.central.yale.edu) |
| 18:22:12 | <monochrom> | Then gain I goofed it. You can argue that it's just forall b. Bool -> b -> b -> b >:) |
| 18:22:52 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 18:23:04 | <wroathe> | [exa]: Right, so in this example it's about breaking the assumption that x would have a type of kind * |
| 18:23:38 | <wroathe> | [exa]: ? I meant to add |
| 18:24:44 | <wroathe> | monochrom: Was that an answer to my question? |
| 18:24:51 | <monochrom> | Yes. |
| 18:24:56 | <wroathe> | monochrom: And if so, why is forall required there? |
| 18:25:03 | <[exa]> | wroathe: x has to have kind *, it's used as a value-level term, right? |
| 18:25:07 | <wroathe> | monochrom: (sorry if I'm being dense) |
| 18:25:09 | → | curlybangs joins (185a6b4e@cpe-24-90-107-78.nyc.res.rr.com) |
| 18:25:13 | <monochrom> | The inner "forall a" cannot be deleted. |
| 18:25:36 | <monochrom> | The outer "forall b", I don't care either way. |
| 18:26:30 | <monochrom> | Here. xxx :: (forall a. a->a->a) -> Int; xxx f = f 10 20 |
| 18:26:42 | <ski> | bah .. i know John Baez has a TWF issue talking about stuff like `2 = forall a. a -> a -> a', but i can't find it atm .. :/ |
| 18:27:39 | <wroathe> | monochrom: So without the forall, the first paramater's type would have to be a -> a -> Int, right? |
| 18:28:12 | <monochrom> | Without the forall, you have (a->a->a)->Int. That's very different. |
| 18:28:27 | → | ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 18:28:40 | <monochrom> | yyy :: (a->a->a) -> Int; yyy f = f 10 20 = type error |
| 18:28:45 | <ski> | > let frob f = f (map f ["foo","bar","baz","quux"]) in frob reverse |
| 18:28:47 | <lambdabot> | error: |
| 18:28:47 | <lambdabot> | • Couldn't match type ‘[Char]’ with ‘Char’ |
| 18:28:47 | <lambdabot> | Expected type: [Char] -> Char |
| 18:28:57 | <ski> | > let frob :: (forall a. [a] -> [a]) -> [String]; frob f = f (map f ["foo","bar","baz","quux"]) in frob reverse |
| 18:28:59 | <lambdabot> | ["xuuq","zab","rab","oof"] |
| 18:29:01 | <ski> | > let frob :: (forall a. [a] -> [a]) -> [String]; frob f = f (map f ["foo","bar","baz","quux"]) in frob (take 2) |
| 18:29:04 | <lambdabot> | ["fo","ba"] |
| 18:29:17 | <ski> | wroathe : ^ that's another rank-2 example |
| 18:29:55 | <monochrom> | "for every person p, (if p drinks, then I drink)" vs "if (for every person p, p drinks), then I drink". |
| 18:30:34 | × | jaykru quits (~user@unaffiliated/jaykru) (Remote host closed the connection) |
| 18:30:55 | <[exa]> | wroathe: anyway the previous example is basically a play on ω=λx.xx, it's a usual (anti)example in almost all type textbooks |
| 18:31:04 | <wroathe> | ski: So in that first line, f is being applied to both an array of strings, and individual strings themselves, right? |
| 18:31:39 | ski | . o O ( <https://en.wikipedia.org/wiki/Drinker_paradox> ; "Searchable Sets, Dubuc-Penon Compactness, Omniscience Principles, and the Drinker Paradox" by Martín Hötzel Escardó,Paulo Oliva in 2010 at <http://www.cs.bham.ac.uk/~mhe/papers/dp.pdf>,<http://www.cs.bham.ac.uk/~mhe/papers/DP/> ) |
| 18:31:56 | <ski> | wroathe : yes (lists, not arrays) |
| 18:32:11 | <wroathe> | ski: Sorry, I still have one foot in C land :P |
| 18:32:13 | <wroathe> | ski: Yes, lists |
| 18:32:19 | <ski> | wroathe : or, to take a simpler example, `let frob f = (f False,f "True") in f id' |
| 18:32:28 | <wroathe> | ski: Perfect! |
| 18:32:32 | <ski> | er, s/f id/frob id/ |
| 18:33:04 | <wroathe> | ski: So without forall you couldn't express that f is both a Bool -> Bool and a String -> String |
| 18:33:22 | ski | . o O ( <https://en.wikipedia.org/wiki/Donkey_sentence> ) |
| 18:33:24 | <ski> | right |
| 18:33:40 | <ski> | (with intersection types, you could. but Haskell doesn't have those) |
| 18:34:07 | <wroathe> | ski: That example helps a lot. Thanks. |
| 18:34:55 | <wroathe> | ski: What does this donkey sentence thing have to do with this conversation :P? |
| 18:35:14 | <ski> | rank-2 isn't that commonly useful .. but when it what one wants to do, it can be hard to work around in another way |
| 18:35:37 | → | rom1504 joins (rom1504@rom1504.fr) |
| 18:36:02 | <ski> | rank-2 can also be used for information hiding, separation of concerns. prohibiting a callback, passed to you, from reaching into your implementation innards |
| 18:36:02 | <wroathe> | I noticed another article mentioning ScopedTypeVariables. Is it the case that forall has been overloaded with meanings that it doesn't traditionally have in Haskell? |
| 18:36:18 | <ski> | not really |
| 18:36:41 | <ski> | (although, `ScopedTypeVariables' is, imho, backwards ..) |
| 18:36:49 | <wroathe> | I.e. shouldn't there be some other form of syntax indicating that a variable is "scoped"? And if not, why does it make sense ot use forall. to designate that? |
| 18:37:00 | <wroathe> | a type variable* |
| 18:38:22 | → | coot joins (~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl) |
| 18:38:30 | <geekosaur> | forall (a) to minimize stealing syntax (b) it's kinda the reverse of what it normally means, in the sense of it normally restricts the scope of a type variable but in STV expands it instead |
| 18:38:37 | <ski> | oh, the "if (for every person p, p drinks), then I drink" reminded me of anaphora. like e.g. "Every farmer who owns a donkey beats it.". or "If there exists a prime ⌜p⌝ such that ⌜P(p)⌝, then ⌜Q(q)⌝ also holds." .. does this mean ⌜(∃p. P(p)) ⇒ Q(p)⌝ ? what is the scope of ⌜p⌝ there ?? |
| 18:39:31 | <monochrom> | Hey, may I reduce the referential transparency problem to the donkey sentence problem? "The King of France is bald" is short for "Every time there is a King of France, he's bald", now it's "just" a donkey sentence. |
| 18:39:40 | → | falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
| 18:39:43 | × | curlybangs quits (185a6b4e@cpe-24-90-107-78.nyc.res.rr.com) (Quit: Connection closed) |
| 18:40:01 | <wroathe> | This is some high brow hazing going on |
| 18:40:08 | × | grimpeux quits (~textual@modemcable153.12-178-173.mc.videotron.ca) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 18:40:23 | <wroathe> | https://www.youtube.com/watch?v=LlfSAGucPZc live action footage of ski and monochrom |
| 18:40:29 | × | usr25 quits (~usr25@unaffiliated/usr25) (Quit: Leaving) |
| 18:41:27 | <wroathe> | ski: monochrom: [exa]: Well, thanks for the examples. Heading out for now. |
| 18:43:24 | <monochrom> | "if there is an even prime, it's even" is clearly a forall sentence. |
| 18:43:31 | <monochrom> | This is what's wrong with English. |
| 18:44:01 | → | Sornaensis joins (~Sornaensi@85.203.36.21) |
| 18:44:08 | → | horatiohb joins (~horatiohb@104.236.81.226) |
| 18:44:17 | <ski> | i think there was some issue on GHC, talking about possibly having a language extension that "does `ScopedTypeVariables' right" (in the above sense) .. but i can't find it, atm. at least it mentioned this perception |
| 18:44:43 | <[exa]> | wroathe: btw highly suggest getting how the STLC and Hindley-Milner "inference algorithms" work before you jump to haskell, if you didn't do that already |
| 18:44:55 | <ski> | monochrom : Russell preferred to use an existential quantifier |
| 18:45:01 | <monochrom> | But people don't use that idiom unless it's on the order of "if there is an odd perfect number, it's odd". |
| 18:45:22 | <ski> | now, is "The King of France is not bald." the negation of "The King of France is bald." ? |
| 18:45:36 | <ski> | wroathe : yw |
| 18:45:48 | <monochrom> | the "there is" there is really poetic emphasis on "I really doubt that there is an odd perfect number. Fat chance." |
| 18:46:49 | × | Sorny quits (~Sornaensi@79.142.232.102) (Ping timeout: 252 seconds) |
| 18:47:21 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
| 18:48:03 | <monochrom> | Pig Latin and Donkey English. |
| 18:48:27 | × | rajivr quits (uid269651@gateway/web/irccloud.com/x-zldwlxmsftsxcrzs) (Quit: Connection closed for inactivity) |
| 18:48:39 | × | frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 265 seconds) |
| 18:49:17 | <monochrom> | I don't know how to negate "the King of France is bald" but I know how to negate "every even prime is even", it's "every even prime is not even". |
| 18:49:50 | <monochrom> | So perhaps "the King of France is not bald" is just right. |
| 18:49:52 | → | ubert joins (~Thunderbi@77.119.128.21.wireless.dyn.drei.com) |
| 18:50:45 | <monochrom> | I still don't know what it means. "means". But I'm just an English room. |
| 18:51:00 | <ski> | monochrom : well, one interpretation is ⌜∏ q : (∑ p : ℕ. prime(p) ∧ even(p)). even(π(q))⌝ / ⌜(q :) ((p :) ℕ × Prime p × Even p) → Even (π q)⌝, as apparently noticed by Göran Sundholm in 1986. see e.g. <https://ncatlab.org/nlab/show/dependent+type+theoretic+methods+in+natural+language+semantics> |
| 18:52:06 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 18:52:25 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) |
| 18:52:36 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 18:52:49 | × | ukari quits (~ukari@unaffiliated/ukari) (Remote host closed the connection) |
| 18:53:46 | → | ukari joins (~ukari@unaffiliated/ukari) |
| 18:53:58 | <ski> | Chung-chieh Shan and Chris Barker has also talked about stuff related to this, iirc. see e.g. "Donkey anaphora is in-scope binding" in 2008, at <https://homes.sice.indiana.edu/ccshan/> |
| 18:57:23 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
| 18:58:18 | → | stef204 joins (~stef204@unaffiliated/stef-204/x-384198) |
| 18:58:59 | × | kini quits (~kini@unaffiliated/kini) (Remote host closed the connection) |
| 18:59:52 | × | urdh quits (~urdh@unaffiliated/urdh) (Quit: Boom!) |
| 18:59:57 | × | geekosaur quits (930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed) |
| 19:00:15 | → | kini joins (~kini@unaffiliated/kini) |
| 19:01:11 | → | geekosaur joins (930099da@rrcs-147-0-153-218.central.biz.rr.com) |
| 19:03:46 | × | amiri quits (~amiri@cpe-76-91-154-9.socal.res.rr.com) (Remote host closed the connection) |
| 19:04:59 | <dolio> | Isn't that the wrong negation of 'every even prime is even'? |
| 19:05:56 | → | amiri joins (~amiri@cpe-76-91-154-9.socal.res.rr.com) |
| 19:06:07 | <monochrom> | I would hope so. But English native speakers assured me the negation of "all is lost" is "all is not lost". |
| 19:08:26 | <dolio> | Yeah, that phrase doesn't work the logical way. |
| 19:08:38 | <koz_> | "Not all is lost" makes sense too? |
| 19:09:39 | <monochrom> | Both "everyone is not an expert like you" and "not everyone is an expert like you" circulate and have the same meaning. |
| 19:09:40 | <juri_> | not all is lost *yet*. |
| 19:10:27 | <koz_> | "Everyone is not an expert like you" implies you're unique, but "not everyone is an expert like you" does not, at least to me. |
| 19:10:44 | <monochrom> | and which one is actually used in an instance depends on emphasis, mood, and a coin toss. |
| 19:11:01 | × | falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 252 seconds) |
| 19:11:04 | × | geekosaur quits (930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed) |
| 19:11:28 | <koz_> | This. |
| 19:11:41 | × | __minoru__shirae quits (~shiraeesh@109.166.56.189) (Ping timeout: 240 seconds) |
| 19:11:50 | → | geekosaur joins (930099da@rrcs-147-0-153-218.central.biz.rr.com) |
| 19:11:57 | <dolio> | I guess I probably wouldn't say the first one of those, but because I know the logical meaning. |
| 19:12:02 | → | __minoru__shirae joins (~shiraeesh@46.34.206.215) |
| 19:16:47 | × | graf_blutwurst quits (~user@2001:171b:226e:adc0:c021:f7f7:82b:a023) (Remote host closed the connection) |
| 19:18:16 | × | xprl-gjf quits (~gavin@98.154.147.147.dyn.plus.net) (Remote host closed the connection) |
| 19:18:39 | → | xprl-gjf joins (~gavin@98.154.147.147.dyn.plus.net) |
| 19:21:23 | → | rekahsoft joins (~rekahsoft@52.129.35.150) |
| 19:23:22 | × | geekosaur quits (930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed) |
| 19:23:47 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 19:23:54 | → | bitmapper joins (uid464869@gateway/web/irccloud.com/x-fibjwudbwypqphxb) |
| 19:24:45 | → | geekosaur joins (930099da@rrcs-147-0-153-218.central.biz.rr.com) |
| 19:27:01 | × | Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Ping timeout: 260 seconds) |
| 19:27:12 | → | Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
| 19:30:51 | fendor_ | is now known as fendor |
| 19:33:03 | → | urdh joins (~urdh@unaffiliated/urdh) |
| 19:33:16 | → | alexm_ joins (~alexm_@161.8.254.229) |
| 19:34:41 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
| 19:37:28 | → | kiweun joins (~kiweun@2607:fea8:2a62:9600:f581:26bd:b1f0:2ed5) |
| 19:37:32 | × | alexm_ quits (~alexm_@161.8.254.229) (Ping timeout: 240 seconds) |
| 19:37:41 | × | __minoru__shirae quits (~shiraeesh@46.34.206.215) (Ping timeout: 240 seconds) |
| 19:37:52 | × | haskellstudent quits (~quassel@213-225-6-101.nat.highway.a1.net) (Ping timeout: 240 seconds) |
| 19:41:16 | × | darjeeling_ quits (~darjeelin@122.245.120.156) (Ping timeout: 252 seconds) |
| 19:41:42 | → | darjeeling_ joins (~darjeelin@122.245.120.156) |
| 19:41:49 | × | kiweun quits (~kiweun@2607:fea8:2a62:9600:f581:26bd:b1f0:2ed5) (Ping timeout: 258 seconds) |
| 19:42:21 | × | heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 19:42:56 | → | awk joins (~mnrmnaugh@unaffiliated/mnrmnaugh) |
| 19:45:06 | → | grimpeux joins (~textual@modemcable153.12-178-173.mc.videotron.ca) |
| 19:45:41 | × | mnrmnaugh quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 240 seconds) |
| 19:48:14 | × | Jello_Raptor quits (~Jello_Rap@li641-12.members.linode.com) (Remote host closed the connection) |
| 19:48:31 | → | elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 19:50:47 | × | ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection) |
| 19:51:23 | → | Lord_of_Life_ joins (~Lord@unaffiliated/lord-of-life/x-0885362) |
| 19:52:03 | × | grimpeux quits (~textual@modemcable153.12-178-173.mc.videotron.ca) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 19:52:06 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 19:52:25 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) |
| 19:53:51 | → | nut joins (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 19:54:04 | × | Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 252 seconds) |
| 19:54:29 | Lord_of_Life_ | is now known as Lord_of_Life |
| 19:58:45 | → | ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 19:59:49 | → | grimpeux joins (~textual@modemcable153.12-178-173.mc.videotron.ca) |
| 20:00:37 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
| 20:00:40 | × | nut quits (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Remote host closed the connection) |
| 20:00:51 | × | ClaudiusMaximus quits (~claude@unaffiliated/claudiusmaximus) (Quit: ->) |
| 20:01:04 | × | Pickchea quits (~private@unaffiliated/pickchea) (Quit: Leaving) |
| 20:02:25 | → | santiacq1 joins (~santiacq@r167-60-199-83.dialup.adsl.anteldata.net.uy) |
| 20:03:21 | × | shailangsa quits (~shailangs@host86-185-98-61.range86-185.btcentralplus.com) (Ping timeout: 260 seconds) |
| 20:04:06 | × | geekosaur quits (930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed) |
| 20:05:11 | × | santiacq quits (~santiacq@r167-60-229-44.dialup.adsl.anteldata.net.uy) (Ping timeout: 240 seconds) |
| 20:05:12 | × | petersen quits (~petersen@redhat/juhp) (Ping timeout: 240 seconds) |
| 20:07:38 | → | petersen joins (~petersen@redhat/juhp) |
| 20:07:46 | × | KeyJoo quits (~KeyJoo@62.176.30.171) (Ping timeout: 268 seconds) |
| 20:15:00 | → | falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
| 20:15:55 | → | sedeki joins (~textual@unaffiliated/sedeki) |
| 20:15:55 | × | xprl-gjf quits (~gavin@98.154.147.147.dyn.plus.net) (Ping timeout: 252 seconds) |
| 20:17:23 | → | haskellstudent joins (~quassel@213-225-6-101.nat.highway.a1.net) |
| 20:19:48 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 20:20:09 | × | DavidEichmann quits (~david@47.27.93.209.dyn.plus.net) (Remote host closed the connection) |
| 20:20:25 | → | heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 20:21:23 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 20:24:44 | → | __minoru__shirae joins (~shiraeesh@46.34.206.215) |
| 20:24:48 | × | grimpeux quits (~textual@modemcable153.12-178-173.mc.videotron.ca) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 20:26:31 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
| 20:31:58 | → | grimpeux joins (~textual@modemcable153.12-178-173.mc.videotron.ca) |
| 20:33:20 | awk | is now known as mnrmnaugh |
| 20:34:37 | × | alx741 quits (~alx741@181.196.68.37) (Ping timeout: 252 seconds) |
| 20:34:55 | × | grimpeux quits (~textual@modemcable153.12-178-173.mc.videotron.ca) (Client Quit) |
| 20:36:16 | × | hypercube quits (hypercube@gateway/vpn/protonvpn/hypercube) (Ping timeout: 252 seconds) |
| 20:39:42 | → | Foritus_ joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) |
| 20:39:42 | × | Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Disconnected by services) |
| 20:39:56 | Foritus_ | is now known as Foritus |
| 20:40:03 | <hololeap> | is there a name for this: "if not A then B" does not imply "if A then not B" |
| 20:40:17 | <hololeap> | in logic |
| 20:41:07 | × | srk quits (~sorki@unaffiliated/srk) (Ping timeout: 260 seconds) |
| 20:41:26 | → | nut joins (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 20:42:11 | <pjb> | Contraposition |
| 20:42:14 | <pjb> | https://en.wikipedia.org/wiki/Contraposition |
| 20:42:31 | × | xff0x quits (~xff0x@2001:1a81:52e3:ed00:16c4:781d:2418:6176) (Ping timeout: 260 seconds) |
| 20:44:13 | → | xff0x joins (xff0x@gateway/vpn/mullvad/xff0x) |
| 20:44:23 | <hololeap> | it sounds like contraposition is: "if A then B" _does_ imply "if not A then not B" |
| 20:45:37 | × | falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 252 seconds) |
| 20:45:53 | <int-e> | hololeap: no, for contraposition you need to swap A and B in one of those implications |
| 20:46:03 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 20:46:19 | <hololeap> | i know, i'm saying what i asked for is not contraposition, but does it have a name? some fallacy name perhaps? |
| 20:47:44 | ← | jakalx parts (~jakalx@base.jakalx.net) ("Error from remote client") |
| 20:48:03 | <int-e> | hololeap: I'd go with https://en.wikipedia.org/wiki/Denying_the_antecedent |
| 20:48:06 | → | grimpeux joins (~textual@modemcable153.12-178-173.mc.videotron.ca) |
| 20:48:32 | × | xff0x quits (xff0x@gateway/vpn/mullvad/xff0x) (Ping timeout: 240 seconds) |
| 20:49:09 | → | alx741 joins (~alx741@181.196.69.92) |
| 20:50:00 | × | grimpeux quits (~textual@modemcable153.12-178-173.mc.videotron.ca) (Client Quit) |
| 20:50:27 | → | xff0x joins (~xff0x@2001:1a81:52e3:ed00:16c4:781d:2418:6176) |
| 20:51:08 | <int-e> | well, under most circumstances I would just say that it's illogical and not try to name it at all; it seems more useful to point out a counterexample (the implication fails if A and B both true) |
| 20:51:52 | <hololeap> | hm, ok. just want to throw an example out there, since i don't see exactly what i'm looking for on that page, although it might be the correct term: "if you don't do your chores, you will die" does not imply "if you do your chores, you will _not_ die" |
| 20:52:06 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 20:52:16 | × | michalz quits (~user@185.246.204.44) (Remote host closed the connection) |
| 20:52:25 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) |
| 20:52:31 | <hololeap> | so if someone argues that the former does imply the latter, is that denying the antecedent? |
| 20:52:46 | × | amosbird quits (~amosbird@13.75.119.182) (Ping timeout: 260 seconds) |
| 20:53:01 | → | amosbird joins (~amosbird@13.75.119.182) |
| 20:53:56 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 20:56:36 | <monochrom> | hololeap: Under classical logic, "if not A then not B" is the same as "if B then A", and both are the converse of "if A then B". |
| 20:57:07 | <monochrom> | Under intuitionistic logic, I think I am not so sure which one is still the converse. |
| 20:57:16 | <monochrom> | (but one of them has to be) |
| 20:58:14 | × | fiedlr quits (~fiedlr@83.148.33.254) (Remote host closed the connection) |
| 20:58:30 | → | aerona joins (~aerona@2600:6c54:4600:f300:92f6:b406:86cc:ef76) |
| 20:58:33 | → | fiedlr joins (~fiedlr@83.148.33.254) |
| 20:58:50 | <monochrom> | But also, on top of classical logic, people also add a closed-world or induction meta-rule. Sometimes. |
| 21:00:11 | <monochrom> | So when they say "if you don't do this, you'll die", and perhaps adding a few more similar rules, they also have an implicit "these are the only ways to get you to die", like in Prolog and inductive definitions. |
| 21:00:17 | × | fiedlr quits (~fiedlr@83.148.33.254) (Remote host closed the connection) |
| 21:00:23 | → | alexm_ joins (~alexm_@161.8.254.229) |
| 21:00:51 | <dolio> | Well, that's a good example, because you're going to die regardless. |
| 21:01:04 | <monochrom> | To be sure, when they decide to blackmail you with "if you don't give me $10000 I'll post your pics", yeah, after you give $10000 they will just ask for more. |
| 21:01:04 | <dolio> | Just a matter of when. |
| 21:01:28 | <monochrom> | Conclusion: Only mathematicians and blackmailers are true clasical logicians. >:) |
| 21:02:40 | <juri_> | monochrom: never forget the first rule of crime: never cost anyone more than it would cost to have you killed. |
| 21:03:11 | <monochrom> | That's also a rule of good business. >:) |
| 21:03:33 | → | dmytrish joins (~mitra@2a02:8084:a82:d900:f811:9873:2623:c28b) |
| 21:03:49 | <juri_> | the two branches are part of the same field. |
| 21:03:54 | <monochrom> | The authors of Freakonomics would be proud. >:) |
| 21:04:07 | <koz_> | Crime is just business by other means. :P |
| 21:04:52 | × | alexm_ quits (~alexm_@161.8.254.229) (Ping timeout: 252 seconds) |
| 21:05:51 | <hpc> | sufficiently advanced monetization |
| 21:07:19 | <juri_> | insufficiently advanced monetization is called 'bitcoin'. |
| 21:07:31 | × | sedeki quits (~textual@unaffiliated/sedeki) (Quit: Textual IRC Client: www.textualapp.com) |
| 21:13:12 | × | hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 240 seconds) |
| 21:14:37 | → | eacameron joins (uid256985@gateway/web/irccloud.com/x-aldlwnzrztbxujia) |
| 21:15:36 | → | alexm_ joins (~alexm_@161.8.254.229) |
| 21:15:51 | → | malumore_ joins (~malumore@151.62.122.89) |
| 21:16:56 | × | LKoen_ quits (~LKoen@65.250.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”) |
| 21:17:13 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 21:18:27 | × | bob_twinkles quits (~quassel@ec2-52-37-66-13.us-west-2.compute.amazonaws.com) (Remote host closed the connection) |
| 21:19:01 | × | malumore quits (~malumore@151.62.122.89) (Ping timeout: 260 seconds) |
| 21:19:49 | tristanC_ | is now known as tristanC |
| 21:20:11 | × | nut quits (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds) |
| 21:20:41 | × | fendor quits (~fendor@91.141.2.26.wireless.dyn.drei.com) (Ping timeout: 240 seconds) |
| 21:20:44 | → | bob_twinkles joins (~quassel@ec2-52-37-66-13.us-west-2.compute.amazonaws.com) |
| 21:25:33 | × | alexm_ quits (~alexm_@161.8.254.229) (Remote host closed the connection) |
| 21:27:09 | × | mikoto-chan quits (~anass@gateway/tor-sasl/mikoto-chan) (Ping timeout: 240 seconds) |
| 21:29:26 | → | nut joins (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 21:31:46 | × | elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 240 seconds) |
| 21:31:54 | → | fiedlr joins (~fiedlr@83.148.33.254) |
| 21:33:03 | × | prinned quits (~vivek@103.206.114.124) (Quit: WeeChat 3.1) |
| 21:33:52 | × | ubert quits (~Thunderbi@77.119.128.21.wireless.dyn.drei.com) (Remote host closed the connection) |
| 21:38:40 | × | kini quits (~kini@unaffiliated/kini) (Remote host closed the connection) |
| 21:39:58 | → | kini joins (~kini@unaffiliated/kini) |
| 21:41:12 | × | __minoru__shirae quits (~shiraeesh@46.34.206.215) (Ping timeout: 240 seconds) |
| 21:41:53 | → | fresheyeball joins (~isaac@c-71-237-105-37.hsd1.co.comcast.net) |
| 21:42:09 | <maerwald> | are mixed path separators allowed on windows, e.g. "/path/to\\file"? |
| 21:44:00 | × | stef204 quits (~stef204@unaffiliated/stef-204/x-384198) (Quit: WeeChat 3.1) |
| 21:45:03 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 21:45:22 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving) |
| 21:46:03 | → | shailangsa joins (~shailangs@host86-185-98-61.range86-185.btcentralplus.com) |
| 21:47:38 | × | ram19890 quits (~ram@49.207.130.109) (Ping timeout: 240 seconds) |
| 21:51:05 | → | acidjnk_new joins (~acidjnk@p200300d0c72b954090611fa1f3f989eb.dip0.t-ipconnect.de) |
| 21:52:06 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 21:52:26 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) |
| 21:53:13 | × | nut quits (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds) |
| 21:55:09 | × | p4trix quits (~p4trix@72.red-83-47-172.dynamicip.rima-tde.net) (Read error: Connection reset by peer) |
| 21:57:58 | → | alexm_ joins (~alexm_@161.8.254.229) |
| 22:00:02 | <DigitalKiwi> | juri_: are you saying bitcoin should be 1million? |
| 22:03:48 | <int-e> | DigitalKiwi: sufficiently advanced monetization requires a lot less electricity |
| 22:04:40 | → | hypercube joins (hypercube@gateway/vpn/protonvpn/hypercube) |
| 22:05:23 | × | dariof4 quits (~dario@5.179.159.205) (Quit: WeeChat 3.1) |
| 22:05:28 | → | lemur joins (~l3m@cable-static-7-246.breitband.ch) |
| 22:06:17 | <DigitalKiwi> | nobody would buy it then though! |
| 22:06:26 | × | alexm_ quits (~alexm_@161.8.254.229) (Ping timeout: 240 seconds) |
| 22:07:08 | × | __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving) |
| 22:07:52 | <int-e> | DigitalKiwi: bitcoin doesn't have a nominal value; the value people generally report is the (median, I guess) price it's traded at. |
| 22:08:44 | <int-e> | Though I suppose if you had a bitcoin and offered it for 1 million then indeed nobody would buy it. |
| 22:08:49 | int-e | wanders off. |
| 22:09:22 | <DigitalKiwi> | the price has to go up always up! |
| 22:10:09 | → | __minoru__shirae joins (~shiraeesh@46.34.206.215) |
| 22:10:15 | <DigitalKiwi> | and sometimes down quite a lot but we don't talk about that |
| 22:10:58 | × | bitmapper quits (uid464869@gateway/web/irccloud.com/x-fibjwudbwypqphxb) (Quit: Connection closed for inactivity) |
| 22:11:18 | × | cafce25 quits (~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) (Quit: leaving) |
| 22:11:31 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
| 22:13:59 | × | danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 260 seconds) |
| 22:16:25 | × | raichoo quits (~raichoo@dslb-088-077-025-199.088.077.pools.vodafone-ip.de) (Quit: Lost terminal) |
| 22:16:38 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 22:20:25 | → | Rudd0 joins (~Rudd0@185.189.115.103) |
| 22:22:41 | × | rekahsoft quits (~rekahsoft@52.129.35.150) (Ping timeout: 240 seconds) |
| 22:24:58 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:3117:c681:fa07:7f26) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 22:25:02 | × | lemur quits (~l3m@cable-static-7-246.breitband.ch) (Quit: Konversation terminated!) |
| 22:26:23 | × | ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection) |
| 22:27:27 | → | ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 22:29:01 | → | dpl joins (~dpl@77-121-78-163.chn.volia.net) |
| 22:29:51 | × | xsperry quits (~as@unaffiliated/xsperry) (Ping timeout: 260 seconds) |
| 22:30:15 | × | coot quits (~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 22:31:19 | × | Guest40868 quits (~textual@mskresolve-a.mskcc.org) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 22:31:43 | → | loller_ joins (uid358106@gateway/web/irccloud.com/x-smufmjmlmpltpnfn) |
| 22:32:04 | × | ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 268 seconds) |
| 22:33:05 | → | alexm_ joins (~alexm_@161.8.254.229) |
| 22:41:53 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds) |
| 22:42:56 | → | grimpeux joins (~textual@modemcable153.12-178-173.mc.videotron.ca) |
| 22:44:12 | <fresheyeball> | join #nixos |
| 22:45:01 | × | alexm_ quits (~alexm_@161.8.254.229) (Ping timeout: 268 seconds) |
| 22:46:28 | × | danso quits (~dan@23-233-111-52.cpe.pppoe.ca) (Quit: WeeChat 3.0) |
| 22:46:57 | → | hololeap_ joins (~hololeap@gateway/tor-sasl/hololeap) |
| 22:47:10 | × | Sornaensis quits (~Sornaensi@85.203.36.21) (Ping timeout: 252 seconds) |
| 22:47:37 | × | __minoru__shirae quits (~shiraeesh@46.34.206.215) (Remote host closed the connection) |
| 22:48:01 | → | __minoru__shirae joins (~shiraeesh@46.34.206.215) |
| 22:50:25 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 22:50:45 | × | hololeap quits (~hololeap@gateway/tor-sasl/hololeap) (Ping timeout: 240 seconds) |
| 22:51:19 | × | dmytrish quits (~mitra@2a02:8084:a82:d900:f811:9873:2623:c28b) (Ping timeout: 260 seconds) |
| 22:52:41 | <maerwald[m]> | No |
| 22:53:21 | <monochrom> | "directed join" |
| 22:53:33 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-2-51.w83-200.abo.wanadoo.fr) (Ping timeout: 240 seconds) |
| 22:54:29 | <hpc> | i just assume those are missed /s |
| 22:57:26 | <monochrom> | I do too. |
| 22:58:00 | <monochrom> | But I still don't understand why in this the 21st century of our lord people still manually enter "/join" |
| 22:58:03 | → | ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 22:58:11 | × | Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
| 22:58:41 | <monochrom> | and everyday, every time, at that. |
| 22:58:41 | <glguy> | Yeah, I just think the name of the channel I want to join. |
| 22:58:52 | <pjb> | neuralink! |
| 22:59:25 | <monochrom> | Well, I mean config files exist, right? You enter it only once a long time ago, right? |
| 22:59:44 | → | xsperry joins (~as@unaffiliated/xsperry) |
| 23:00:01 | → | Alleria joins (~textual@2603-7000-3040-0000-9df5-86d2-c184-c1c0.res6.spectrum.com) |
| 23:00:26 | Alleria | is now known as Guest36821 |
| 23:01:05 | <pjb> | monochrom: interests or questionnings may change. |
| 23:01:36 | <maerwald[m]> | Odd |
| 23:01:44 | × | berberman quits (~berberman@unaffiliated/berberman) (Quit: ZNC 1.8.2 - https://znc.in) |
| 23:02:04 | <pjb> | monochrom: but granted, this should be bury it under layers of AI: just type your message or question, and let the AI decide in what channel to sent it. |
| 23:02:08 | → | berberman joins (~berberman@unaffiliated/berberman) |
| 23:02:12 | <monochrom> | Or is it true that the beloved text-mode-console IRC clients don't have any notion of config files so you make-shift with a keyboard logger-and-replayer but sometimes there is a race condition so one replayed keystroke is lost and it happens to be a slash. |
| 23:03:40 | × | ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 252 seconds) |
| 23:04:36 | × | Guest36821 quits (~textual@2603-7000-3040-0000-9df5-86d2-c184-c1c0.res6.spectrum.com) (Ping timeout: 258 seconds) |
| 23:04:50 | → | rprije joins (~rprije@59-102-63-15.tpgi.com.au) |
| 23:06:08 | × | grimpeux quits (~textual@modemcable153.12-178-173.mc.videotron.ca) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 23:07:13 | → | alexm_ joins (~alexm_@161.8.254.229) |
| 23:07:35 | → | grimpeux joins (~textual@modemcable153.12-178-173.mc.videotron.ca) |
| 23:09:33 | × | rj quits (~x@gateway/tor-sasl/rj) (Ping timeout: 240 seconds) |
| 23:10:15 | <yushyin> | I often join a channel temporarily, /join works great for that |
| 23:12:47 | × | alexm_ quits (~alexm_@161.8.254.229) () |
| 23:15:37 | → | ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 23:18:08 | × | porygon2 quits (~porygon2@178.239.168.171) (Remote host closed the connection) |
| 23:19:38 | <pjb> | And I often leave channels with obnoxious self-appointed channel operators, and remove them from my auto-join list… hence the occasional manual /join. |
| 23:19:46 | × | grimpeux quits (~textual@modemcable153.12-178-173.mc.videotron.ca) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 23:21:12 | × | ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds) |
| 23:22:00 | → | dpl_ joins (~dpl@77-121-78-163.chn.volia.net) |
| 23:22:02 | × | Cerise quits (~jerry@unaffiliated/cerise) (Ping timeout: 245 seconds) |
| 23:22:06 | × | malumore_ quits (~malumore@151.62.122.89) (Ping timeout: 240 seconds) |
| 23:22:56 | → | rotcev joins (63c75abf@d99-199-90-191.bchsia.telus.net) |
| 23:23:48 | → | Cerise joins (~jerry@natsumi.devzero.info) |
| 23:23:48 | × | Cerise quits (~jerry@natsumi.devzero.info) (Changing host) |
| 23:23:48 | → | Cerise joins (~jerry@unaffiliated/cerise) |
| 23:24:32 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 23:25:43 | × | dpl quits (~dpl@77-121-78-163.chn.volia.net) (Ping timeout: 268 seconds) |
| 23:26:00 | → | ddere joins (uid110888@gateway/web/irccloud.com/x-gokpmupptkfvgzhl) |
| 23:27:46 | × | shailangsa quits (~shailangs@host86-185-98-61.range86-185.btcentralplus.com) (Ping timeout: 240 seconds) |
| 23:29:51 | × | kini quits (~kini@unaffiliated/kini) (Remote host closed the connection) |
| 23:31:10 | → | kini joins (~kini@unaffiliated/kini) |
| 23:32:33 | → | SquidDev3 joins (~SquidDev@autoclave.squiddev.cc) |
| 23:32:35 | × | nojster quits (~noj@vmd62096.contaboserver.net) (Ping timeout: 248 seconds) |
| 23:33:01 | → | nojster joins (~noj@vmd62096.contaboserver.net) |
| 23:33:11 | × | pierrot quits (~pi@unaffiliated/pierrot) (Ping timeout: 260 seconds) |
| 23:33:33 | × | hendursa1 quits (~weechat@gateway/tor-sasl/hendursaga) (Ping timeout: 240 seconds) |
| 23:33:55 | × | SquidDev quits (~SquidDev@autoclave.squiddev.cc) (Ping timeout: 252 seconds) |
| 23:33:56 | SquidDev3 | is now known as SquidDev |
| 23:35:39 | → | hendursa1 joins (~weechat@gateway/tor-sasl/hendursaga) |
| 23:38:18 | → | kiweun joins (~kiweun@2607:fea8:2a62:9600:5146:1352:4c05:7f61) |
| 23:42:33 | × | kiweun quits (~kiweun@2607:fea8:2a62:9600:5146:1352:4c05:7f61) (Ping timeout: 258 seconds) |
| 23:46:01 | × | haskellstudent quits (~quassel@213-225-6-101.nat.highway.a1.net) (Ping timeout: 260 seconds) |
| 23:46:01 | → | haskellstudent_ joins (~quassel@213-225-6-101.nat.highway.a1.net) |
| 23:46:14 | × | Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
| 23:47:10 | × | heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 23:47:28 | → | kingmaker joins (2edfa3b9@HSI-KBW-46-223-163-185.hsi.kabel-badenwuerttemberg.de) |
| 23:50:02 | × | thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 258 seconds) |
| 23:50:52 | × | xsperry quits (~as@unaffiliated/xsperry) (Remote host closed the connection) |
| 23:54:53 | → | shailangsa joins (~shailangs@host86-185-98-61.range86-185.btcentralplus.com) |
| 23:56:09 | → | pierrot joins (~pi@unaffiliated/pierrot) |
| 23:59:08 | <kingmaker> | Hi, anyone know some HXT and could answer a quick question about it's XmlArrow? |
All times are in UTC on 2021-04-13.