2016-06-03 3 views
0

Я выполняю упражнения «В основном адекватное руководство» для пятой главы. Я импортировал Ramda сRamda undefined при использовании compose

var R = require('ramda'); 

и написали вспомогательные функции:

var _average = function(xs) { 
    return R.reduce(R.add, 0, xs)/xs.length; 
}; 

, который работает отлично, используемый сам по себе, как

_average(R.map(R.prop('dollar_value'), cars)); 

, но когда я пишу это так:

var averageDollarValue = R.compose(_average(), R.map(R.prop('dollar_value'))); 

Я получаю следующая ошибка

Uncaught TypeError: Cannot read property 'reduce' of undefined 

Может кто-нибудь объяснить, почему это происходит?

+0

Вы уверены, что 'R.map (R.prop ('dollar_value')) (yourData)' фактически возвращает список чисел, а не, скажем, 'undefined'? –

ответ

2

Parens в вашем составе означает, что вы вызываете функцию _average в своей композиции. Попробуйте удалить их, это сработало для меня. Вот фрагмент кода.

var averageDollarValue = R.compose(_average, R.map(R.prop('dollar_value'))); 
+0

Да! Я думаю, что мне стало слишком комфортно с философией Рамды «по-умолчанию». Спасибо за ваш ответ. –

Смежные вопросы