Logs: liberachat/#haskell
| 2025-11-22 18:25:21 | <enikar> | :D |
| 2025-11-22 18:25:46 | <int-e> | Meanwhile I'll assume that "haluciate" is proper jargon and move on. |
| 2025-11-22 18:26:20 | <glguy> | I just don't know how to spell |
| 2025-11-22 18:28:00 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-22 18:29:15 | → | Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
| 2025-11-22 18:31:33 | <Franciman> | glguy: it may be a nice word to express the concept |
| 2025-11-22 18:31:42 | <Franciman> | itself produced in the same way |
| 2025-11-22 18:32:25 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2025-11-22 18:33:51 | × | deptype quits (~deptype@2406:b400:3a:9d2f:8494:f4e8:5c4a:6a4) (Remote host closed the connection) |
| 2025-11-22 18:34:27 | → | deptype joins (~deptype@2406:b400:3a:9d2f:e31c:3390:6252:c091) |
| 2025-11-22 18:39:31 | × | Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 255 seconds) |
| 2025-11-22 18:39:47 | <EvanR> | halciate is how stable diffusion spells it |
| 2025-11-22 18:39:52 | → | tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 2025-11-22 18:40:06 | <EvanR> | which will be standard soon |
| 2025-11-22 18:43:01 | → | machinedgod joins (~machinedg@d75-159-126-101.abhsia.telus.net) |
| 2025-11-22 18:43:32 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-22 18:48:18 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2025-11-22 18:50:35 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 2025-11-22 18:51:39 | → | weary-traveler joins (~user@user/user363627) |
| 2025-11-22 18:53:53 | × | deptype quits (~deptype@2406:b400:3a:9d2f:e31c:3390:6252:c091) (Remote host closed the connection) |
| 2025-11-22 18:54:17 | → | deptype joins (~deptype@2406:b400:3a:9d2f:f664:d06e:3e47:a034) |
| 2025-11-22 18:59:01 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-22 18:59:29 | × | weary-traveler quits (~user@user/user363627) (Quit: Konversation terminated!) |
| 2025-11-22 18:59:45 | → | weary-traveler joins (~user@user/user363627) |
| 2025-11-22 19:00:50 | <darkling> | Not to be confused with halloumination, which is when you get bad dreams from eating too much cheese. |
| 2025-11-22 19:03:37 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-11-22 19:05:16 | × | jmcantrell quits (~weechat@user/jmcantrell) (Ping timeout: 244 seconds) |
| 2025-11-22 19:13:55 | × | deptype quits (~deptype@2406:b400:3a:9d2f:f664:d06e:3e47:a034) (Remote host closed the connection) |
| 2025-11-22 19:14:30 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-22 19:15:02 | → | deptype joins (~deptype@2406:b400:3a:9d2f:ed2f:bc1a:3b89:45df) |
| 2025-11-22 19:19:22 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2025-11-22 19:24:29 | → | collide29548 joins (~collide29@user/collide2954) |
| 2025-11-22 19:25:04 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 2025-11-22 19:25:04 | → | Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
| 2025-11-22 19:26:25 | × | collide2954 quits (~collide29@user/collide2954) (Ping timeout: 264 seconds) |
| 2025-11-22 19:26:25 | collide29548 | is now known as collide2954 |
| 2025-11-22 19:28:16 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Remote host closed the connection) |
| 2025-11-22 19:28:59 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-22 19:30:56 | → | peterbecich joins (~Thunderbi@172.222.148.214) |
| 2025-11-22 19:31:23 | → | emmanuelux joins (~emmanuelu@user/emmanuelux) |
| 2025-11-22 19:32:28 | <haskellbridge> | <Morj> Similar to how there is "forM = flip traverse", is there an common name for "flip fix"? Can't find anything useful in hoogle |
| 2025-11-22 19:32:54 | <haskellbridge> | <Morj> I like to use it to write one-line cycles like "flip fix initial $ \i next -> ..." |
| 2025-11-22 19:34:08 | <haskellbridge> | <Morj> *\next i (the arguments should be the opposite way) |
| 2025-11-22 19:34:27 | × | deptype quits (~deptype@2406:b400:3a:9d2f:ed2f:bc1a:3b89:45df) (Remote host closed the connection) |
| 2025-11-22 19:35:02 | → | deptype joins (~deptype@2406:b400:3a:9d2f:bfa9:f0b2:ea22:761e) |
| 2025-11-22 19:35:37 | tomsmeding | usually writes a self-referential let binding for that |
| 2025-11-22 19:35:39 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 2025-11-22 19:35:59 | <EvanR> | flip fix x y z $ \a b c d -> ... is funny but I could not subject the general public to |
| 2025-11-22 19:36:21 | <EvanR> | it makes us look like we don't have nice things |
| 2025-11-22 19:37:03 | <haskellbridge> | <Morj> Dude rust already has "loop" as an expression, why can't we |
| 2025-11-22 19:37:19 | <tomsmeding> | :t Control.Monad.forever |
| 2025-11-22 19:37:20 | <lambdabot> | Applicative f => f a -> f b |
| 2025-11-22 19:37:46 | <haskellbridge> | <Morj> A self-referential binding is also good, but places emphasis on the binding, which a lot of the times is useless |
| 2025-11-22 19:37:56 | <tomsmeding> | I can see that |
| 2025-11-22 19:38:07 | <tomsmeding> | to wit, recursive helper functions named 'go' |
| 2025-11-22 19:38:46 | <haskellbridge> | <Morj> Yeah, sometimes I have goList1, goList2, goTree etc if there are too many structures to fold |
| 2025-11-22 19:39:08 | <haskellbridge> | <Morj> Or used to have this until I learned this fix trick |
| 2025-11-22 19:39:12 | <tomsmeding> | at that point the names actually start becoming useful, IMO |
| 2025-11-22 19:39:37 | <tomsmeding> | or at least, I like seeing the point where you recurse into a different structure |
| 2025-11-22 19:39:38 | <haskellbridge> | <Morj> Mm not really, it's just "let var1 = goList1 list1" for every |
| 2025-11-22 19:39:54 | <tomsmeding> | maybe my brain is not big enough yet |
| 2025-11-22 19:40:03 | <haskellbridge> | <Morj> Haha |
| 2025-11-22 19:40:11 | <EvanR> | please give me a recursion combinator |
| 2025-11-22 19:40:15 | <haskellbridge> | <Morj> When I do this I imagine myself an imperative grug |
| 2025-11-22 19:40:23 | <tomsmeding> | ω ω |
| 2025-11-22 19:40:34 | <haskellbridge> | <Morj> Because it is just a while loop expressed with functions |
| 2025-11-22 19:40:41 | <EvanR> | which does the exact pattern I need at this moment |
| 2025-11-22 19:40:52 | <EvanR> | with a pithy name |
| 2025-11-22 19:41:01 | × | Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 244 seconds) |
| 2025-11-22 19:41:06 | <EvanR> | if pithy not available a bird will do |
| 2025-11-22 19:41:17 | <tomsmeding> | I was gonna say, we need a data-aviary version of recursion-schemes |
| 2025-11-22 19:45:00 | <chromoblob> | (`fix` initial) $ \next i -> ... |
| 2025-11-22 19:46:15 | <haskellbridge> | <Morj> As if the general public wasn't frightened enough.. |
| 2025-11-22 19:46:57 | × | mreh quits (~matthew@host86-146-25-125.range86-146.btcentralplus.com) (Quit: Lost terminal) |
| 2025-11-22 19:47:02 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-22 19:48:50 | <EvanR> | frighten wasn't the emotion I was thinking of |
| 2025-11-22 19:49:25 | <EvanR> | and the general public I was thinking of was haskell programmers not the mailman |
| 2025-11-22 19:49:32 | <chromoblob> | i'm more frightened by flip f b a, it feels like a redirected thread in my head, like __s--- |
| 2025-11-22 19:50:32 | <EvanR> | a single flip is good for party tricks |
| 2025-11-22 19:50:33 | <chromoblob> | i guess i don't accept "flip" as a standard function. who and when would want to reorder arguments |
| 2025-11-22 19:51:02 | <EvanR> | sometimes the order of arguments doesn't have 1 best choice |
| 2025-11-22 19:51:13 | <EvanR> | so you can't blame the person who defined it |
| 2025-11-22 19:51:16 | <chromoblob> | then have two names for two orders |
| 2025-11-22 19:51:17 | <haskellbridge> | <Morj> I agree with you, that's why I was asking if this pattern is known and has a better named combinator :-) |
| 2025-11-22 19:51:46 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-11-22 19:51:53 | <chromoblob> | or use points: (\a b -> (...) b a) ... |
| 2025-11-22 19:52:01 | <EvanR> | yeah |
| 2025-11-22 19:52:05 | <EvanR> | and you can define it like this |
| 2025-11-22 19:52:07 | <EvanR> | g = flip f |
| 2025-11-22 19:52:11 | <EvanR> | \o/ |
| 2025-11-22 19:52:26 | <EvanR> | @src forM |
| 2025-11-22 19:52:26 | <lambdabot> | forM = flip mapM |
| 2025-11-22 19:52:26 | <chromoblob> | ohh |
| 2025-11-22 19:52:47 | → | Nachtgespenst joins (~user@user/siracusa) |
| 2025-11-22 19:52:47 | <EvanR> | this is a great usecase for flip |
| 2025-11-22 19:53:28 | <chromoblob> | why isn't there more flips - flip3_1, flip3_2, ..., flip3_6 |
| 2025-11-22 19:53:59 | × | deptype quits (~deptype@2406:b400:3a:9d2f:bfa9:f0b2:ea22:761e) (Remote host closed the connection) |
| 2025-11-22 19:53:59 | <EvanR> | do you mean n factorial flips for each N |
| 2025-11-22 19:54:01 | <chromoblob> | or one could call them like: abcToAcb, abcToBac, ... |
| 2025-11-22 19:54:26 | <chromoblob> | yes |
All times are in UTC.