j.....a
#javascript #programista15k

Mam pytanie do osób znających Ramda i functional programming.

Często tworzę funckje typu:

const createList = pipe(
values,
map(whatEverFunctions),
filter(type => type === 'something'),
)

I teraz pojawia się pytanie w jaki sposób zorganizować drugi parametr bo chcąc na przykład:

const createList = pipe(
values,
map(whatEverFunctions),
filter(type => otherTypes.includes(type)),
)

I w jaki sposób poprawnie dostarczyć otherTypes do funkcji? Pojawia mi się pomysł

const createList = (otherTypes) => pipe(
values,
map(whatEverFunctions),
filter(type => otherTypes.includes(type)),
)
const factory = createList(otherTypes)
factory(types)

Ale nie wygląda to fajnie. Chciałbym mimo wszystko, żeby wyglądało to tak:

const createList = pipe(
values,
map(whatEverFunctions),
filter(type => otherTypes.includes(type)),
)
const factory = createList(types, otherTypes)

Ale nie wiem w jaki sposob poradzić sobie z obsługą tego w createList .

Z góry dzięki!
2
  • Najlepsze
  • Wszystkie komentarze
S.....a
S.....a
@janekbrzechwa: const create createList = (otherTypes, types) => pipe(...)(types)

ogólnie w językach funkcyjnych często spotyka się kilkukrotne wywołanie funkcji wynikowej - f(x)(y)(z), więc to drugie rozwiązanie jest chyba najlepsze
1
potatolot
@janekbrzechwa pierwsze co mi przychodzi do głowy i jest najłatwiejsze to opakować type i otherType jakaś structura. Wtedy możesz iterowac po tych strukturach.
0
j.....a
@potatolot to też nie jest optymalna rzecz bo mapowanie i filtrowanie budzi problemy
0