Как использовать чистый FP (ramda или аналогичный) для решения практической плазменной резки

У меня есть очень практическая проблема генерации линии плазменной резки по шаблону. Смотрите прикрепленное изображение

Я чувствую, что это была бы хорошая демонстрация чисто функциональных методов программирования, если кто-то готов поделиться решением, используя ramda или подобную библиотеку, поскольку я пытаюсь научиться решать проблемы в режиме 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' ...]

Линия плазменной резки

1 ответ

Решение

Благодаря лидерству Берги я сегодня много узнал о ФП. С помощью 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))))
Другие вопросы по тегам