如何使用纯FP(ramda或类似)解决实际等离子切割

How to use pure FP (ramda or similar) to solve practical plasma cutting

我有一个非常实际的问题,就是在一个图案中生成等离子切割线。见附图

我觉得这将是纯函数式编程技术的一个很好的演示,如果有人愿意使用 ramda 或类似的 lib 共享解决方案,因为我正在尝试学习以 FP 方式解决问题,但老实说我不这样做甚至不知道从哪里开始

// arrays a and b will always have same size, but number of points vary from cut to cut

let a = ['A0', 'A1', 'A2', 'A3', 'A4', 'A5']    
let b = ['B0','B1', 'B2', 'B3', 'B4', 'B5']

// need to make array c combining the two arrays in the following pattern
c = ['A0', 'A1', 'B1', 'B2', 'A2', 'A3','B3', 'B4', 'A4', 'A5' ...]

感谢 Bergi 的带领,我今天学到了很多关于 FP 的知识。 使用 ramda 我让它工作了

let a = ['A0', 'A1', 'A2', 'A3', 'A4', 'A5']    
let b = ['B0','B1', 'B2', 'B3', 'B4', 'B5']
let c = flatten(zipWith(concat, splitEvery(2, a), splitEvery(2, tail(b))))