Как использовать чистый FP (ramda или аналогичный) для решения практической плазменной резки - PullRequest
0 голосов
/ 27 июня 2018

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

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

Plasma Cutting Line

1 Ответ

0 голосов
/ 27 июня 2018

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