Как использовать чистый 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))))