Logs: liberachat/#haskell
| 2025-12-16 15:06:27 | × | weary-traveler quits (~user@user/user363627) (Quit: Konversation terminated!) |
| 2025-12-16 15:06:43 | → | weary-traveler joins (~user@user/user363627) |
| 2025-12-16 15:08:03 | × | weary-traveler quits (~user@user/user363627) (Client Quit) |
| 2025-12-16 15:08:27 | → | weary-traveler joins (~user@user/user363627) |
| 2025-12-16 15:08:48 | → | tremon joins (~tremon@83.80.159.219) |
| 2025-12-16 15:09:03 | → | merijn joins (~merijn@77.242.116.146) |
| 2025-12-16 15:11:05 | → | deptype_ joins (~deptype@2406:b400:3a:9d2f:476c:a58e:3471:ff37) |
| 2025-12-16 15:11:37 | × | infinity0 quits (~infinity0@pwned.gg) (Ping timeout: 255 seconds) |
| 2025-12-16 15:13:40 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 246 seconds) |
| 2025-12-16 15:13:49 | × | trickard_ quits (~trickard@cpe-81-98-47-163.wireline.com.au) (Ping timeout: 264 seconds) |
| 2025-12-16 15:14:05 | → | trickard_ joins (~trickard@cpe-81-98-47-163.wireline.com.au) |
| 2025-12-16 15:15:18 | × | Enrico63 quits (~Enrico63@host-95-251-99-143.retail.telecomitalia.it) (Quit: Client closed) |
| 2025-12-16 15:15:50 | → | Googulator98 joins (~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) |
| 2025-12-16 15:15:54 | × | Googulator54 quits (~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-16 15:27:15 | → | merijn joins (~merijn@77.242.116.146) |
| 2025-12-16 15:27:40 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 2025-12-16 15:32:11 | → | infinity0 joins (~infinity0@pwned.gg) |
| 2025-12-16 15:33:03 | → | Pixi` joins (~Pixi@user/pixi) |
| 2025-12-16 15:35:43 | × | Pixi quits (~Pixi@user/pixi) (Ping timeout: 246 seconds) |
| 2025-12-16 15:37:24 | × | j1n37 quits (~j1n37@user/j1n37) (Read error: Connection reset by peer) |
| 2025-12-16 15:43:29 | <kuribas> | is it possible to do "pure" memoization, for example using a fix-point combinator? |
| 2025-12-16 15:44:22 | <lucabtz> | i saw some libraries that do that |
| 2025-12-16 15:44:32 | <opqdonut> | yes, using a lazy self-referential data structure |
| 2025-12-16 15:44:35 | <lucabtz> | or claim to do that at least |
| 2025-12-16 15:44:49 | <opqdonut> | for example an array, if you can enumerate all the inputt |
| 2025-12-16 15:45:00 | → | j1n37 joins (~j1n37@user/j1n37) |
| 2025-12-16 15:45:13 | <opqdonut> | doing it "sparsely" like you would by mutating a map of values, is harder |
| 2025-12-16 15:46:02 | <opqdonut> | the iconic fibonacci list is an example of this kind of memoization with an unbounded domain |
| 2025-12-16 15:47:35 | <opqdonut> | a more general-purpose solution might be a trie |
| 2025-12-16 15:47:44 | × | latticepolytope quits (~user@user/isekaijin) (Ping timeout: 244 seconds) |
| 2025-12-16 15:48:21 | → | latticepolytope joins (~user@user/isekaijin) |
| 2025-12-16 15:48:24 | <opqdonut> | (practically people do it using unsafePerformIO, of course) |
| 2025-12-16 15:48:31 | <kuribas> | Or parametrize over a monad? Like memoFix :: (forall m.Monad m => (a -> foo) -> a -> m foo) -> (a -> foo) |
| 2025-12-16 15:48:50 | <opqdonut> | yeah |
| 2025-12-16 15:48:51 | × | spew quits (~spew@user/spew) (Read error: Connection reset by peer) |
| 2025-12-16 15:49:15 | <kuribas> | (missed an m...) |
| 2025-12-16 15:49:58 | <opqdonut> | you can't make the m disappear from the final result tho |
| 2025-12-16 15:50:21 | <kuribas> | Why not? |
| 2025-12-16 15:50:43 | × | fgarcia quits (~lei@user/fgarcia) (Ping timeout: 264 seconds) |
| 2025-12-16 15:51:17 | <opqdonut> | if you're relying on the monad sequencing to provide the concept of this-has-been-computed-before-that |
| 2025-12-16 15:52:10 | <kuribas> | I can get "(a -> State memo foo)" =~ a -> memo -> (foo, memo), then flip, apply memo, and take the first. |
| 2025-12-16 15:52:42 | <opqdonut> | sure, but then the next call won't use the outputted memo |
| 2025-12-16 15:53:12 | <lucabtz> | yeah if you use State you have to live in the State monad |
| 2025-12-16 15:53:13 | <opqdonut> | (unless you store it somewhere impurely) |
| 2025-12-16 15:53:35 | → | spew joins (~spew@user/spew) |
| 2025-12-16 15:53:38 | <kuribas> | yes, just the pure state monad, and I remove it in the end. |
| 2025-12-16 15:53:47 | <lucabtz> | to escape the state you will have to provide a initial memo using runState which will be empty |
| 2025-12-16 15:54:07 | × | tromp quits (~textual@2001:1c00:3487:1b00:dc21:3bf3:aa50:6091) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-12-16 15:54:08 | <lucabtz> | unless you thread around the memo from different runState calls |
| 2025-12-16 15:56:18 | → | fgarcia joins (~lei@user/fgarcia) |
| 2025-12-16 15:56:35 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 2025-12-16 15:59:55 | × | CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 250 seconds) |
| 2025-12-16 16:01:37 | × | fp quits (~Thunderbi@130.233.70.102) (Quit: fp) |
| 2025-12-16 16:05:33 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 2025-12-16 16:14:07 | → | tromp joins (~textual@2001:1c00:3487:1b00:dc21:3bf3:aa50:6091) |
| 2025-12-16 16:14:44 | × | tromp quits (~textual@2001:1c00:3487:1b00:dc21:3bf3:aa50:6091) (Client Quit) |
| 2025-12-16 16:15:10 | → | machinedgod joins (~machinedg@d75-159-126-101.abhsia.telus.net) |
| 2025-12-16 16:15:50 | → | tromp joins (~textual@2001:1c00:3487:1b00:dc21:3bf3:aa50:6091) |
| 2025-12-16 16:21:28 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2025-12-16 16:22:00 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 2025-12-16 16:22:35 | × | annamalai quits (~annamalai@157.32.210.253) (Ping timeout: 240 seconds) |
| 2025-12-16 16:22:54 | → | annamalai joins (~annamalai@117.246.58.193) |
| 2025-12-16 16:23:01 | × | trickard_ quits (~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-16 16:23:15 | → | trickard_ joins (~trickard@cpe-81-98-47-163.wireline.com.au) |
| 2025-12-16 16:24:55 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 245 seconds) |
| 2025-12-16 16:26:29 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 244 seconds) |
| 2025-12-16 16:28:36 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 2025-12-16 16:32:07 | × | lucabtz quits (~lucabtz@user/lucabtz) (Quit: Lost terminal) |
| 2025-12-16 16:33:43 | × | Pixi` quits (~Pixi@user/pixi) (Quit: Leaving) |
| 2025-12-16 16:34:35 | × | latticepolytope quits (~user@user/isekaijin) (Ping timeout: 240 seconds) |
| 2025-12-16 16:36:30 | → | merijn joins (~merijn@77.242.116.146) |
| 2025-12-16 16:36:36 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 2025-12-16 16:37:29 | cubic_jpg | is now known as NikServe |
| 2025-12-16 16:38:07 | → | latticepolytope joins (~user@user/isekaijin) |
| 2025-12-16 16:39:29 | → | Pixi joins (~Pixi@user/pixi) |
| 2025-12-16 16:40:15 | NikServe | is now known as NikoChanServv |
| 2025-12-16 16:42:22 | NikoChanServv | is now known as NickSer |
| 2025-12-16 16:43:09 | × | NickSer quits (~cubic_jpg@user/cubic-jpg:13603) (Quit: Client closed) |
| 2025-12-16 16:43:41 | → | cubic_jpg joins (~cubic_jpg@user/cubic-jpg:13603) |
| 2025-12-16 16:48:02 | cubic_jpg | is now known as SnacksSer |
| 2025-12-16 16:48:07 | Googulator98 | is now known as Googulator |
| 2025-12-16 16:48:08 | × | bggd quits (~bgg@user/bggd) (Remote host closed the connection) |
| 2025-12-16 16:48:40 | → | Guest15 joins (~Guest15@31-39-208.wireless.csail.mit.edu) |
| 2025-12-16 16:49:13 | × | annamalai quits (~annamalai@117.246.58.193) (Ping timeout: 264 seconds) |
| 2025-12-16 16:57:16 | × | weary-traveler quits (~user@user/user363627) (Quit: Konversation terminated!) |
| 2025-12-16 16:57:32 | → | weary-traveler joins (~user@user/user363627) |
| 2025-12-16 16:58:58 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 2025-12-16 16:59:56 | <dminuoso> | Leary: Ah yeah, guess I had something like that in mind. The choice of ifS makes it quite readable and expressive. |
| 2025-12-16 17:00:04 | × | SnacksSer quits (~cubic_jpg@user/cubic-jpg:13603) (Quit: Client closed) |
| 2025-12-16 17:00:19 | → | Lycurgus joins (~juan@user/Lycurgus) |
| 2025-12-16 17:00:33 | → | cubic_jpg joins (~cubic_jpg@user/cubic-jpg:13603) |
| 2025-12-16 17:11:02 | → | ft_ joins (~ft@p4fc2ab42.dip0.t-ipconnect.de) |
| 2025-12-16 17:20:01 | ft_ | is now known as ft |
| 2025-12-16 17:21:45 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 252 seconds) |
| 2025-12-16 17:22:44 | × | Googulator quits (~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-16 17:23:18 | → | Googulator joins (~Googulato@87-97-86-146.pool.digikabel.hu) |
| 2025-12-16 17:29:50 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 2025-12-16 17:30:27 | → | annamalai joins (~annamalai@117.246.173.168) |
| 2025-12-16 17:33:08 | → | target_i joins (~target_i@user/target-i/x-6023099) |
| 2025-12-16 17:40:48 | × | annamalai quits (~annamalai@117.246.173.168) (Remote host closed the connection) |
All times are in UTC.