Logs: liberachat/#haskell
| 2026-01-22 22:03:53 | × | shr\ke quits (~shrike@user/shrke:31298) (Read error: Connection reset by peer) |
| 2026-01-22 22:04:01 | → | shr\ke joins (~shrike@user/paxhumana) |
| 2026-01-22 22:04:01 | × | shr\ke quits (~shrike@user/paxhumana) (Changing host) |
| 2026-01-22 22:04:01 | → | shr\ke joins (~shrike@user/shrke:31298) |
| 2026-01-22 22:04:09 | × | Googulator26 quits (~Googulato@2a01-036d-0106-030a-8d41-f550-2a4f-1a91.pool6.digikabel.hu) (Quit: Client closed) |
| 2026-01-22 22:04:25 | → | Googulator26 joins (~Googulato@2a01-036d-0106-030a-8d41-f550-2a4f-1a91.pool6.digikabel.hu) |
| 2026-01-22 22:05:54 | → | rotcev joins (~rotcev@user/rotcev) |
| 2026-01-22 22:06:49 | × | michalz_ quits (~michalz@185.246.207.218) (Remote host closed the connection) |
| 2026-01-22 22:10:45 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-01-22 22:14:02 | → | Lycurgus joins (~juan@user/Lycurgus) |
| 2026-01-22 22:15:55 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-01-22 22:21:46 | → | peterbecich joins (~Thunderbi@71.84.33.135) |
| 2026-01-22 22:26:32 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-01-22 22:31:13 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-01-22 22:34:45 | × | Tuplanolla quits (~Tuplanoll@85-156-32-207.elisa-laajakaista.fi) (Quit: Leaving.) |
| 2026-01-22 22:38:36 | × | trickard quits (~trickard@cpe-93-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2026-01-22 22:38:50 | → | trickard_ joins (~trickard@cpe-93-98-47-163.wireline.com.au) |
| 2026-01-22 22:41:38 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2026-01-22 22:41:55 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-01-22 22:42:11 | <jackdk> | gentauro: There were a bunch of people who worked on it. I wasn't there for the history but Twan Van Laarhoven invented the `type Lens s a = forall f . Functor f => (a -> f a) -> s -> f s` form: https://www.twanvl.nl/blog/haskell/cps-functional-references . The type-changing form `Lens s t a b` came after someone (don't remember who) wrote a lens for `_1` without putting a type signature on it, and GHC inferred with a more general type. |
| 2026-01-22 22:45:55 | × | peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 264 seconds) |
| 2026-01-22 22:46:24 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-01-22 22:46:43 | <EvanR> | strive for the most general type signature, no not generaler --einstein |
| 2026-01-22 22:47:06 | <EvanR> | but not* uhg |
| 2026-01-22 22:47:14 | <EvanR> | also einstein |
| 2026-01-22 22:47:15 | × | Lycurgus quits (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org )) |
| 2026-01-22 22:47:20 | <jackdk> | gentauro: also https://github.com/ekmett/lens/wiki/History-of-Lenses . But the SPJ talk is the most approachable introduction I've seen, and does a decent job of motivating the VL form |
| 2026-01-22 22:51:20 | → | mange joins (~mange@user/mange) |
| 2026-01-22 22:57:22 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-01-22 23:02:18 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2026-01-22 23:03:18 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 2026-01-22 23:04:51 | → | zanetti joins (~zanetti@2804:7f0:9b80:2edc:c121:46e7:c35f:46cf) |
| 2026-01-22 23:13:09 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-01-22 23:14:16 | <jackdk> | Perhaps most approachable free intro. Optics By Example is worth the price. |
| 2026-01-22 23:18:12 | × | trickard_ quits (~trickard@cpe-93-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2026-01-22 23:18:26 | → | trickard_ joins (~trickard@cpe-93-98-47-163.wireline.com.au) |
| 2026-01-22 23:20:24 | <chromoblob> | how the fuck are you supposed to write Haskell without recursion |
| 2026-01-22 23:20:25 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-01-22 23:20:52 | <chromoblob> | and how is Haskell without recursion supposed to be useful |
| 2026-01-22 23:23:28 | <geekosaur> | I think tht usually means without _explicit_ recursion, e.g. using folds/traverses |
| 2026-01-22 23:28:53 | × | zanetti quits (~zanetti@2804:7f0:9b80:2edc:c121:46e7:c35f:46cf) (Quit: Konversation terminated!) |
| 2026-01-22 23:33:34 | × | trickard_ quits (~trickard@cpe-93-98-47-163.wireline.com.au) (Ping timeout: 244 seconds) |
| 2026-01-22 23:34:08 | → | trickard_ joins (~trickard@cpe-93-98-47-163.wireline.com.au) |
| 2026-01-22 23:34:18 | <jreicher> | chromoblob: who's saying you should write Haskell without recursion? |
| 2026-01-22 23:34:30 | × | Hafydd quits (~Hafydd@user/hafydd) (Quit: WeeChat 4.8.1) |
| 2026-01-22 23:40:35 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 2026-01-22 23:42:00 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2026-01-22 23:47:48 | → | RMSBach joins (~RMSBach@24.210.9.182) |
| 2026-01-22 23:50:23 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-01-22 23:50:25 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 264 seconds) |
| 2026-01-22 23:51:03 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 2026-01-22 23:55:03 | → | Hafydd joins (~Hafydd@user/hafydd) |
| 2026-01-22 23:56:36 | → | Square3 joins (~Square4@user/square) |
| 2026-01-23 00:00:06 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2026-01-23 00:10:11 | <EvanR> | the answer the question, certain patterns of recursion can be encapulsated in combinators that magically have the same effect |
| 2026-01-23 00:10:13 | <EvanR> | to |
| 2026-01-23 00:10:31 | <EvanR> | e.g. map and fold |
| 2026-01-23 00:10:42 | <EvanR> | they can't do everything, but the more such tools you have the more you can do |
| 2026-01-23 00:10:58 | <EvanR> | but sometimes explicit recursion makes more sense |
| 2026-01-23 00:11:28 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-01-23 00:16:39 | <probie> | how are imperative languages without goto supposed to be useful? |
| 2026-01-23 00:16:39 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-01-23 00:25:31 | → | Zemy_ joins (~Zemy@2600:100c:b0ab:ed8b:c474:c7ff:febb:8ed3) |
| 2026-01-23 00:27:14 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-01-23 00:28:13 | × | Zemy quits (~Zemy@72.178.108.235) (Ping timeout: 246 seconds) |
| 2026-01-23 00:32:00 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-01-23 00:33:28 | × | trickard_ quits (~trickard@cpe-93-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2026-01-23 00:33:42 | → | trickard_ joins (~trickard@cpe-93-98-47-163.wireline.com.au) |
| 2026-01-23 00:43:02 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-01-23 00:48:16 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2026-01-23 00:51:32 | → | Zemy joins (~Zemy@syn-192-154-181-091.biz.spectrum.com) |
| 2026-01-23 00:55:54 | × | Zemy_ quits (~Zemy@2600:100c:b0ab:ed8b:c474:c7ff:febb:8ed3) (Ping timeout: 260 seconds) |
| 2026-01-23 00:56:13 | × | Square3 quits (~Square4@user/square) (Ping timeout: 246 seconds) |
| 2026-01-23 00:58:49 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-01-23 01:01:45 | → | Zemy_ joins (~Zemy@2600:100c:b0ab:ed8b:9876:2aff:fe33:1a1d) |
| 2026-01-23 01:03:37 | × | Zemy quits (~Zemy@syn-192-154-181-091.biz.spectrum.com) (Ping timeout: 264 seconds) |
| 2026-01-23 01:03:49 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 2026-01-23 01:05:55 | <systemfault> | for loops/while/etc... |
| 2026-01-23 01:07:45 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 2026-01-23 01:08:40 | <jackdk> | I think probie is asking rhetorically, to provide an analogous question/answer pair to chromoblob/EvanR. |
| 2026-01-23 01:08:58 | <EvanR> | lol |
| 2026-01-23 01:09:57 | <EvanR> | clearly systemfault is answering in such a way intentionally to highlight the irony |
| 2026-01-23 01:10:53 | <EvanR> | this is what it's like in the tiplerian omega point simulation where everyone already knows everything anyone could talk about |
| 2026-01-23 01:11:35 | <systemfault> | Yeah... that said, I don't know what a tiplerian omega point simulation is... |
| 2026-01-23 01:13:14 | <geekosaur> | sounds to me like someone's been tippling on physics 🙂 |
| 2026-01-23 01:14:37 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-01-23 01:15:37 | × | xff0x quits (~xff0x@2405:6580:b080:900:52f9:378c:6eea:47d5) (Ping timeout: 265 seconds) |
| 2026-01-23 01:17:50 | × | Pozyomka_ quits (~pyon@user/pyon) (Ping timeout: 245 seconds) |
| 2026-01-23 01:19:41 | → | Pozyomka joins (~pyon@user/pyon) |
| 2026-01-23 01:19:49 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-01-23 01:21:54 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds) |
| 2026-01-23 01:30:02 | → | Zemy joins (~Zemy@72.178.108.235) |
| 2026-01-23 01:30:17 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-01-23 01:31:59 | × | Zemy_ quits (~Zemy@2600:100c:b0ab:ed8b:9876:2aff:fe33:1a1d) (Ping timeout: 250 seconds) |
| 2026-01-23 01:35:26 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-01-23 01:39:37 | × | Square2 quits (~Square@user/square) (Ping timeout: 264 seconds) |
| 2026-01-23 01:42:24 | × | Inline quits (~User@2001-4dd7-bc56-0-fdb7-c703-fc72-e0a.ipv6dyn.netcologne.de) (Ping timeout: 252 seconds) |
| 2026-01-23 01:43:44 | → | omidmash3 joins (~omidmash@user/omidmash) |
| 2026-01-23 01:45:34 | × | omidmash quits (~omidmash@user/omidmash) (Ping timeout: 246 seconds) |
| 2026-01-23 01:45:34 | omidmash3 | is now known as omidmash |
All times are in UTC.