Home freenode/#haskell: Logs Calendar

Logs: freenode/#haskell

←Prev  Next→ 502,152 events total
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.