On Fri, 16 Apr 2021 00:19:46 +0100 Christopher Baines <[email protected]> wrote:
Hi, > Ok, I looked at the overall diff, and it looks to me like these > changes should probably be one commit. I don't actually understand what you mean saying it should be one commit. Do I have to make my seven commits become a single one? How do I do that? > On the get-derivation-data function, I wouldn't use the same function > to process the inputs, outputs and sources. The data for each is > different, so I would separate the code as well. I understand that, but the logic to map the values for these three bindings is the same, wouldn't it generate redundancies implementing the same logic separately? > > To avoid having to call a procedure three times, on the base, target > and common items, I'd consider following the same pattern in the HTML > generating code, map over a list of the lists, so something like: > > (map (lambda (name data) > (cons name > (match data > ((name path hash-alg hash recursive) > ...)))) > '(base target common) > (list (assq-ref outputs 'base) > (assq-ref outputs 'target) > (assq-ref outputs 'common))) > > Does that make sense? Actually I did it in a similar way before, but it resulted in a list with all the values for base, target and common together, in which I had to have another way to separate them and render on json, for example, I tried appending "base", "target" or "common" names to each list (similar to your function?), but them I had to convert this list to a vector. Calling the function for each separately gave me a cleaner output. Also, I think that sometimes you might have more than one output for base, target like it does for common, and I fail to see how your example function addresses this. In short, I couldn't see the benefit of this over calling the function three times. Is it for organizational purpose or am I simply wrong? This time I'm just not understanding. :) -- Best Regards, Luciana Lima Brito MSc. in Computer Science
