Ramda

2015-12-28 15 views
8

'daki bir değere bir işlevler listesi uygulama Bu işlevi en iyi nasıl oluşturabilirim Ramda?Ramda

function get_list (value) { 
    return [ 
    first_transform(value), 
    second_transform(value) 
    ] 
} 

get_list(12) 

Bu map fonksiyonunun tersi sanırım.

cevap

17

Bunun için birkaç seçeneğiniz var.

senin fonksiyonları liste halinde zaten varsayarsak:

transforms = [first_transform, second_transform]; 

İlk seçenek sonra verilen işlevlerin listesini uygular yeni bir fonksiyon oluşturarak sen tam olarak ne hemen hemen işlevi gören R.juxt kullanmaktır yeni işlev tarafından alınan değerlere.

get_list = R.juxt(transforms); 

Başka bir seçenek değerlerinin bir listesini işlevlerin bir listesini uygular R.ap vardır. Bir dizide değeri sarmak için R.of kullanılabilir.

get_list = R.compose(R.ap(transforms), R.of); 

ya da son olarak, R.map listedeki her bir alma işlevi ve bir değere tatbik sonucunu döndürmek için kullanılabilir.

get_list = value => R.map(fn => fn(value), transforms);