Logs: freenode/#haskell
| 2020-11-19 13:52:21 | <hpc> | i liked it better when @vixen was removed and it autocorrected to @nixon :D |
| 2020-11-19 13:52:33 | → | FreeBirdLjj joins (~freebirdl@101.228.42.108) |
| 2020-11-19 13:52:40 | <ski> | that still happens |
| 2020-11-19 13:53:08 | <boxscape> | https://wiki.haskell.org/Lambdabot still has the lambdabot avatar, at least |
| 2020-11-19 13:53:22 | <ski> | yes, that was the one |
| 2020-11-19 13:54:53 | <ski> | (i think the idea was to portray someone being a bit overworked, eyes glazing over, by lots of queries, many of them not that interesting) |
| 2020-11-19 13:56:12 | <ski> | but there were also some similar style avatars selected, by some other channel regulars, including shapr, me, Philippa, &c. |
| 2020-11-19 13:57:28 | × | FreeBirdLjj quits (~freebirdl@101.228.42.108) (Remote host closed the connection) |
| 2020-11-19 13:58:07 | <siraben> | What's the shortest way to write r x y z = y z x, in pointfree? |
| 2020-11-19 13:58:22 | <siraben> | @pl \x y z -> y z x |
| 2020-11-19 13:58:22 | <lambdabot> | flip flip |
| 2020-11-19 13:58:37 | <ski> | @keal |
| 2020-11-19 13:58:37 | <lambdabot> | i try make program called Glyph to do it but my script lang called T too slow. i invent T |
| 2020-11-19 13:58:47 | <ski> | @palomer |
| 2020-11-19 13:58:47 | <lambdabot> | Brump! |
| 2020-11-19 14:01:04 | <n0042> | That's a pretty great bot lol. Its creators should be proud |
| 2020-11-19 14:01:20 | → | FreeBirdLjj joins (~freebirdl@101.228.42.108) |
| 2020-11-19 14:02:31 | lep-delete | is now known as test |
| 2020-11-19 14:03:00 | test | is now known as Guest56787 |
| 2020-11-19 14:03:07 | Guest56787 | is now known as lep-delete |
| 2020-11-19 14:03:23 | <boxscape> | tbh I tend to use yahb more often these days, it's nice to have a proper ghci with alls bells and whistles. Then again, you can't do this with yahb: |
| 2020-11-19 14:03:24 | <boxscape> | @pl \a b d c d e f -> f b d c a e |
| 2020-11-19 14:03:24 | <lambdabot> | ((const . ((flip .) .)) .) . flip (flip . ((flip . (flip .)) .) . flip . (flip .) . flip . flip id) |
| 2020-11-19 14:04:01 | <siraben> | boxscape: yahb? |
| 2020-11-19 14:04:15 | <boxscape> | % print "yahb" |
| 2020-11-19 14:04:15 | <yahb> | boxscape: "yahb" |
| 2020-11-19 14:04:31 | hackage | prolude 0.0.0.9 - ITProTV's custom prelude https://hackage.haskell.org/package/prolude-0.0.0.9 (saramuse) |
| 2020-11-19 14:04:43 | ski | remembers preflex |
| 2020-11-19 14:08:56 | → | invaser1 joins (~Thunderbi@31.148.23.125) |
| 2020-11-19 14:10:03 | <kuribas> | I was just thinking how similar destructuring syntax for records in haskell is to clojure hashmaps. |
| 2020-11-19 14:10:15 | <kuribas> | with NamedFieldPuns it's almost the same. |
| 2020-11-19 14:10:36 | × | invaser quits (~Thunderbi@31.148.23.125) (Ping timeout: 240 seconds) |
| 2020-11-19 14:10:36 | invaser1 | is now known as invaser |
| 2020-11-19 14:11:16 | → | howdoi joins (uid224@gateway/web/irccloud.com/x-zkpwgkjicmhndtdh) |
| 2020-11-19 14:11:24 | <kuribas> | And while haskell records are not extensible, you can still simulate it with overloadedFields and RecordWildCards. |
| 2020-11-19 14:12:00 | hackage | subG 0.4.2.0 - Some extension to the Foldable and Monoid classes. https://hackage.haskell.org/package/subG-0.4.2.0 (OleksandrZhabenko) |
| 2020-11-19 14:12:05 | <kuribas> | For example merging: merge PartialUser1{..} PartialUser2{..} = User{..} |
| 2020-11-19 14:12:58 | <kuribas> | the "drawback" is having to define partial types, although I think that's a feature, not a drawback. |
| 2020-11-19 14:13:16 | × | ft quits (~ft@shell.chaostreff-dortmund.de) (Ping timeout: 246 seconds) |
| 2020-11-19 14:13:50 | <kuribas> | haskell has a reputation for being terrible with records, my experience is quite positive. |
| 2020-11-19 14:14:35 | <ski> | it's too bad that Haskell records binds selector functions to the field names |
| 2020-11-19 14:14:46 | <kuribas> | yeah true |
| 2020-11-19 14:14:56 | → | hexfive joins (~hexfive@50-47-142-195.evrt.wa.frontiernet.net) |
| 2020-11-19 14:14:59 | <ski> | the ML way is, imho, much better |
| 2020-11-19 14:15:14 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 2020-11-19 14:16:36 | → | aveltras joins (uid364989@gateway/web/irccloud.com/x-jtdricnolbjelrxi) |
| 2020-11-19 14:16:47 | → | christo joins (~chris@81.96.113.213) |
| 2020-11-19 14:17:14 | <merijn> | ski: That's fixed soon! |
| 2020-11-19 14:17:26 | <kuribas> | and with overloadedLabels selector functions are even more useless |
| 2020-11-19 14:17:26 | <merijn> | ski: There was a GHC proposal for -XNoFieldSelectors |
| 2020-11-19 14:17:28 | <ski> | writing `#x pt' or `pt #x' or something along those lines would be much better than to write `x pt'. that way, you don't shadow the field extraction, with `NamedFieldPuns' |
| 2020-11-19 14:17:44 | <merijn> | ski: It's already implemented and slated to merge into 9.2, iirc? |
| 2020-11-19 14:18:06 | → | hseg joins (~gesh@185.120.126.113) |
| 2020-11-19 14:18:06 | <ski> | yea, i've heard that mentioned. is there are proposal for a replacement field selector syntax, that you know ? |
| 2020-11-19 14:18:07 | → | Lycurgus joins (~niemand@cpe-45-46-142-188.buffalo.res.rr.com) |
| 2020-11-19 14:18:31 | × | oish quits (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 246 seconds) |
| 2020-11-19 14:18:39 | <merijn> | Not directly, but if you use it the namespace is free to generate, for example, lenses with the field names |
| 2020-11-19 14:18:56 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 2020-11-19 14:19:07 | ski | nods |
| 2020-11-19 14:20:19 | <xsperry> | ski, how does ML do it? |
| 2020-11-19 14:20:39 | → | christo joins (~chris@81.96.113.213) |
| 2020-11-19 14:20:43 | <ski> | (also, users (especially newbies) wouldn't be confused by the cognitive dissonance by the field signature `x :: Int' vs. the field extraction function signature `x :: Point -> Int') |
| 2020-11-19 14:21:18 | <ski> | xsperry : if `x' is a field in a record, then `#x' is a field extraction function, taking the record and extracting the field. that's in SML |
| 2020-11-19 14:21:28 | <ski> | O'Caml does `pt .x', iirc |
| 2020-11-19 14:21:54 | <xsperry> | so fields are in separate namespace? |
| 2020-11-19 14:22:01 | <ski> | (but the main point is to not simply bind the field name to a field extraction function) |
| 2020-11-19 14:22:22 | <ski> | yes |
| 2020-11-19 14:22:26 | → | cads joins (~cads@ip-64-72-99-232.lasvegas.net) |
| 2020-11-19 14:22:41 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 2020-11-19 14:22:44 | → | renzhi joins (~renzhi@2607:fa49:655f:e600::28da) |
| 2020-11-19 14:23:17 | → | AlterEgo- joins (~ladew@124-198-158-163.dynamic.caiway.nl) |
| 2020-11-19 14:23:28 | <xsperry> | and what if multiple objects have field named x? |
| 2020-11-19 14:23:33 | <xsperry> | multiple types* |
| 2020-11-19 14:23:58 | <merijn> | xsperry: With NoFieldSelectors, yes |
| 2020-11-19 14:24:16 | <merijn> | xsperry: i.e. you can only use them in pattern matches/record creation |
| 2020-11-19 14:24:18 | <ski> | in SML, you must pin down the record type |
| 2020-11-19 14:24:21 | <xsperry> | I mean in ML/Ocaml. just wondering if it basically works like structs/classes in mainstream languages |
| 2020-11-19 14:24:26 | → | ft joins (~ft@shell.chaostreff-dortmund.de) |
| 2020-11-19 14:24:53 | <ski> | in OCaml, iirc, field extraction is polymorphic, using row types |
| 2020-11-19 14:25:02 | → | noteness joins (noteness@unaffiliated/nessessary129) |
| 2020-11-19 14:25:26 | <merijn> | ski: uh |
| 2020-11-19 14:25:33 | <merijn> | ski: OCaml doesn't have rowtypes, does it? |
| 2020-11-19 14:25:47 | <ski> | (ML is a family of languages, including SML,O'Caml,F#,Alice ML,..) |
| 2020-11-19 14:25:50 | <ski> | it does |
| 2020-11-19 14:25:52 | <merijn> | Unless they added those super recently |
| 2020-11-19 14:26:32 | × | forell quits (~forell@unaffiliated/forell) (Ping timeout: 260 seconds) |
| 2020-11-19 14:28:00 | → | sagax joins (~sagax_nb@213.138.71.146) |
| 2020-11-19 14:28:12 | → | forell joins (~forell@unaffiliated/forell) |
| 2020-11-19 14:28:37 | → | Amras joins (~Amras@unaffiliated/amras0000) |
| 2020-11-19 14:29:38 | → | GilReiter joins (4d7e19c5@77.126.25.197) |
| 2020-11-19 14:29:56 | × | n0042 quits (d055ed89@208.85.237.137) (Remote host closed the connection) |
| 2020-11-19 14:29:57 | <ski> | object types and polymorphic variants have long been in O'Caml |
| 2020-11-19 14:30:00 | × | forell quits (~forell@unaffiliated/forell) (Client Quit) |
| 2020-11-19 14:30:37 | <ski> | "If 'ident denotes an explicit polymorphic variable, and typexpr denotes either an object or polymorphic variant type, the row variable of typexpr is captured by 'ident, and quantified upon." |
| 2020-11-19 14:31:19 | × | elliott__ quits (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 256 seconds) |
| 2020-11-19 14:31:21 | → | forell joins (~forell@unaffiliated/forell) |
| 2020-11-19 14:34:10 | → | oish joins (~charlie@217.169.25.228) |
| 2020-11-19 14:34:14 | <ski> | "The type <{method-type ;} ..> is the type of an object whose method names and types are described by method-type₁ …, method-typeₙ, possibly some other methods represented by the ellipsis. This ellipsis actually is a special kind of type variable (called row variable in the literature) that stands for any number of extra method types." |
| 2020-11-19 14:34:44 | → | acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
| 2020-11-19 14:35:12 | <ski> | (that's from <https://caml.inria.fr/pub/docs/manual-ocaml/types.html>) |
All times are in UTC.