2024/05/16

Newest at the top

2024-05-16 18:47:16 +0200 <lambdabot> Ix i => (i, i) -> [(i, e)] -> Array i e
2024-05-16 18:47:15 +0200 <ski> @type array
2024-05-16 18:47:09 +0200 <lambdabot> Ix i => (i, i) -> [e] -> Array i e
2024-05-16 18:47:08 +0200 <ski> @type listArray
2024-05-16 18:47:00 +0200 <ski> .. and `tabulate' calls `listArray' with a list defined using `range' to generate elements for all valid indices
2024-05-16 18:46:21 +0200 <ski> that's all indices in a rectangle, with upper left corner `(0,0)', lower right corner `(1,3)'
2024-05-16 18:46:08 +0200 <Guest13> I see
2024-05-16 18:46:05 +0200hueso(~root@user/hueso)
2024-05-16 18:45:56 +0200 <lambdabot> Ix a => (a, a) -> [a]
2024-05-16 18:45:55 +0200 <ski> @type range
2024-05-16 18:45:45 +0200 <lambdabot> [(0,0),(0,1),(0,2),(0,3),(1,0),(1,1),(1,2),(1,3)]
2024-05-16 18:45:44 +0200 <ski> > range ((0,0),(1,3))
2024-05-16 18:45:20 +0200 <ski> (there are instances like `(Ix a,Ix b,Ix c) => Ix (a,b,c)')
2024-05-16 18:44:55 +0200hueso(~root@user/hueso) (Read error: Connection reset by peer)
2024-05-16 18:43:30 +0200 <ski> the above should work
2024-05-16 18:39:44 +0200 <Guest13> do I need to define my own 3d tabulate?
2024-05-16 18:37:48 +0200 <Guest13> I will try this now thank you for the help ski
2024-05-16 18:37:05 +0200 <Guest13> I think I get it though, my program will query 0 0 0 in the table which will spawn recursive calls and the base case is n m 0 = 1
2024-05-16 18:35:55 +0200 <Guest13> yeah, for some reason it being in a table confused me
2024-05-16 18:35:53 +0200euphores(~SASL_euph@user/euphores)
2024-05-16 18:35:38 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net)
2024-05-16 18:35:20 +0200 <mauke> dead ends are where the recursion dies :-)
2024-05-16 18:35:09 +0200 <Guest13> this would be setting the value to 0
2024-05-16 18:34:55 +0200 <ski> base cases / dead ends, i guess
2024-05-16 18:33:11 +0200 <Guest13> and you have some calls where you say it has gone wrong and ways = 0
2024-05-16 18:32:56 +0200 <Guest13> its basically a "ways if go left" + "ways if go right" recursion
2024-05-16 18:32:25 +0200 <Guest13> I need to think about how to implement the "dead ends" of the recursive call
2024-05-16 18:32:10 +0200 <Guest13> I will have a go at this
2024-05-16 18:31:37 +0200 <ski> (i guess you actually meant `f x (y-1) z + f (x-1) y z', btw)
2024-05-16 18:30:11 +0200 <Guest13> im trying to count the ways of doing something
2024-05-16 18:29:25 +0200 <Guest13> I think I get how to do it
2024-05-16 18:29:20 +0200euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2024-05-16 18:28:58 +0200 <Guest13> so I can do a \(x,y,z) -> f x y-1 z + f x-1 y z
2024-05-16 18:28:54 +0200 <ski> oh, you said "yes, but I am probably framing it badly" just after i asked "are you sure dynamic programming would make sense, for your problem, then ?", so i was taking that for granted
2024-05-16 18:28:06 +0200 <ski> you can use `listArray' (or `array'), or the `tabulate' i defined above, to (lazily) populate the array with elements, based on their indices
2024-05-16 18:28:03 +0200 <Guest13> im not really doing dp
2024-05-16 18:27:57 +0200 <Guest13> I understand the map f [1..] for fib, and even the tabulate version you showed me but I don't understand this one
2024-05-16 18:27:45 +0200manwithluck(~manwithlu@149.102.244.20)
2024-05-16 18:27:35 +0200tomboy64(~tomboy64@user/tomboy64)
2024-05-16 18:27:31 +0200 <Guest13> ok, how can I use this to cache
2024-05-16 18:27:21 +0200 <ski> so, maybe try `Array (Int,Int,Int) Result' ?
2024-05-16 18:27:20 +0200 <Guest13> at most like 20
2024-05-16 18:27:00 +0200 <Guest13> the ranges aren't large
2024-05-16 18:26:32 +0200 <ski> but if your ranges (?) of `Int's are large, the array would contain a lot of elements, take a lot of space (the array itself would be allocated eagerly, only the array elements would be lazily evaluated)
2024-05-16 18:26:10 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
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)