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

时间:2018-06-27 14:54:13

标签: functional-programming ramda.js enumerable

我有一个非常实际的问题,即在图案中生成等离子切割线。查看附件图片

如果有人愿意使用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' ...]

Plasma Cutting Line

1 个答案:

答案 0 :(得分:2)

多亏了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))))