2024/05/16

Newest at the top

2024-05-16 18:25:27 +0200 <ski> if you're okay with a dense caching space, you could try caching with an array
2024-05-16 18:25:20 +0200 <Guest13> I don't know upfront which triples are needed
2024-05-16 18:24:55 +0200 <Guest13> can be sparse or dense depending on input
2024-05-16 18:24:49 +0200 <ski> (or `Map Int (Map Int (Map Int Result))', i guess ..)
2024-05-16 18:24:35 +0200raehik(~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 268 seconds)
2024-05-16 18:24:25 +0200 <ski> ok, maybe it would make sense to cache in a three-dimensional array, or (if you only need sparse inputs) maybe use a `Map (Int,Int,Int) Result' or something like that (that'd still require you to know upfront which triples would be needed, which might not be ideal)
2024-05-16 18:22:53 +0200 <ski> (for each new toplevel call, you'd generate a fresh/new cache, from scratch, whose results would only be reused for recursive calls stemming from that particular toplevel call)
2024-05-16 18:22:38 +0200 <Guest13> I can formulate it as Int Int Int, with constant [Int] and String
2024-05-16 18:22:35 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 256 seconds)
2024-05-16 18:22:24 +0200 <Guest13> this would be ideal
2024-05-16 18:22:10 +0200 <ski> if only some of the parameters changed in recursive calls, then you could, within a single toplevel call, only cache for the changing parameters, thereby simplifying the datastructure needed to cache results
2024-05-16 18:21:26 +0200 <Guest13> I could frame it as Int Int Int and have [Int] and String as references
2024-05-16 18:20:53 +0200 <Guest13> the recursive call changes all of the above, and the top call I believe will start at 0 0 [Int] String
2024-05-16 18:20:07 +0200 <Guest13> can you explain what is the difference?
2024-05-16 18:19:47 +0200 <ski> oh, and when i asked "which of those are actually changing ?", i specifically had *recursive* calls in mind (not initial/top calls from other places)
2024-05-16 18:18:35 +0200 <Guest13> yes
2024-05-16 18:18:33 +0200 <Guest13> to make it easy I just wanted to cache results of calls
2024-05-16 18:18:29 +0200 <ski> .. or are you just looking for caching results of calls, to avoid recomputing later ?
2024-05-16 18:18:21 +0200 <Guest13> yes, but I am probably framing it badly
2024-05-16 18:18:06 +0200 <ski> are you sure dynamic programming would make sense, for your problem, then ?
2024-05-16 18:18:02 +0200 <Guest13> I can simplify it to Int Int [Int] String
2024-05-16 18:17:19 +0200 <Guest13> all of them
2024-05-16 18:17:11 +0200 <ski> Guest13 : and which of those are actually changing ?
2024-05-16 18:17:10 +0200manwithluck(~manwithlu@149.102.244.20) (Read error: Connection reset by peer)
2024-05-16 18:16:57 +0200 <ski> i guess that's the connection, then
2024-05-16 18:16:40 +0200 <dolio> Lists in the case of old lisp.
2024-05-16 18:16:30 +0200 <dolio> And that's what 'map' does on all elements of some container.
2024-05-16 18:16:20 +0200 <Guest13> or at least what I had in the recursive call
2024-05-16 18:16:11 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 264 seconds)
2024-05-16 18:15:58 +0200 <Guest13> yes, [Int] [Int] int String are the parameters
2024-05-16 18:15:27 +0200 <dolio> Anyhow, 'map' doesn't just mean 'function' it's also the act of associating or carrying an input to an output by a function.
2024-05-16 18:15:15 +0200 <Guest13> sorry ski I had to pick my mum up from station
2024-05-16 18:14:58 +0200Guest13(~Guest13@cpc93370-hers8-2-0-cust590.6-3.cable.virginm.net)
2024-05-16 18:14:46 +0200 <c_wraith> wow, good sentence construction there.
2024-05-16 18:14:42 +0200 <lambdabot> [0,0,1,0,3]
2024-05-16 18:14:40 +0200 <ski> > [0,1,0,2,0,1,0,3] \\ [2,1,0]
2024-05-16 18:14:28 +0200 <c_wraith> is Int overflow behavior actually specified on overflow?
2024-05-16 18:13:11 +0200 <dolio> Lists aren't subsets, though.
2024-05-16 18:12:07 +0200 <ski> if you think of the list as representing a subset, then the `map' function computes the (existential/direct) image of the function on that subset .. not sure why one would call this "map"
2024-05-16 18:11:28 +0200kuribas`(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2024-05-16 18:11:01 +0200 <ski> i guess 1.5 probably does then, too
2024-05-16 18:10:37 +0200 <ski> finite subset of the domain)
2024-05-16 18:10:30 +0200 <ski> anyway, for the data structure, surely "(finite) map" is because it's representing a "map" (or "mapping"), being a word that's basically a synonym for "function","transform", the "finite" part referring to that it has a finite domain, or that it's a partial function defined on a finite subset of the domain (sometimes representing a function with "finite support" meaning that it only maps to "nonzero" on a
2024-05-16 18:09:43 +0200ubert(~Thunderbi@2a02:8109:ab8a:5a00:c695:1779:f1ed:a0d3) (Remote host closed the connection)
2024-05-16 18:09:12 +0200 <dolio> The lisp 1.6 manual has it.
2024-05-16 18:06:07 +0200 <dolio> I think it goes pretty far back in lisp.
2024-05-16 18:05:31 +0200econo_(uid147250@id-147250.tinside.irccloud.com)
2024-05-16 18:05:21 +0200 <ski> did LISP 1.5 have `MAPCAR' ?
2024-05-16 18:04:59 +0200 <ski> i wonder about the etymology of the `map' function
2024-05-16 18:04:57 +0200danse-nr3(~danse-nr3@151.43.160.43) (Read error: Connection reset by peer)