VimUnDotvS y5w 5&%mB5 /NJ/_ N-v 5_ N-v  5_ N-v var functional = require()5_ N-v var functional = require('')5_ )N-v )var functional = require('../functional')5_ 'N-v *var functional = require('../functional');5_ N-v *var functional = require('../functional");5_  N-v 5_ N-v exports5_ N-v  exports[]5_ N-v  exports['']5_ N-v exports['compose']5_  N-v exports['compose'] = function 5_  #N-v #exports['test compose'] = function 5_ #N-v $exports['test compose'] = function()5_ (N-v (exports['test compose'] = function(test)5_ *N-v +exports['test compose'] = function(test) {}5_ N-v }5_ N-v 5_ N-v 5_ N-v  5_ N-v > * var greet = function(name){ return "hi: " + name; };5_N-v D * var exclaim = function(statement){ return statement + "!"; };5_N-v. * var welcome = _.compose(exclaim, greet);5_N-v * welcome('moe');5_N-v welcome('moe');5_N-w assert.equal(welcome('moe');5_ N-w! assert.equal(welcome('moe'), ''5_)N-w) assert.equal(welcome('moe'), 'hi: moe!'5_)N-w* assert.equal(welcome('moe'), 'hi: moe!')5_ ,N-w. assert.equal(welcome('moe'), 'hi: moe!', '')5_! FN-w F assert.equal(welcome('moe'), 'hi: moe!', 'returned expected result')5_ "!N-w" 5_!#" 'N-w( *exports['test compose'] = function(test) {5_"$#N-w+exports5_#%$N-w- exports[]5_$&% N-w. exports['']5_%'&-N-w:-exports['curry defined numeber of arguments']5_&('9N-w<:exports['curry defined numeber of arguments'] = function()5_')(@N-w>@exports['curry defined numeber of arguments'] = function(assert)5_(*)BN-w?Cexports['curry defined numeber of arguments'] = function(assert) {}5_)+*N-wC}5_*,+N-wO* var welcome = _.compose(exclaim, greet);5_+-,N-wT 5_,.-N-wY *5_-/.N-w`& * var sum = curry(function(a, b) {5_.0/N-wc$ var sum = curry(function(a, b) {5_/10N-wg * return a + b5_021N-wi return a + b5_132N-wi return a + b5_243N-wj return a + b5_354N-wm return a + b5_465N-wp! var sum = curry(function(a, b) {5_586N-wr return a + b5_6978N-w| * })5_8:9N-w~! * console.log(sum(2, 2)) // 45_9;:N-w~! * console.log(sum(2)(4)) // 65_:<;N-w })5_;=<N-w assert.equalsum(2, 2)) // 4 console.log(sum(2, 2)) // 45_<>=N-w  assert.equal(sum(2, 2)) // 45_=?>N-w  assert.equal(sum(2, 2), ''5_>@?N-w  assert.equal(sum(2, 2), 45_?A@N-w  assert.equal(sum(2, 2), 4, ''5_@BA(N-w ( assert.equal(sum(2, 2), 4, '2 + 2 = 4'5_ACB)N-w ) assert.equal(sum(2, 2), 4, '2 + 2 = 4')5_BDCN-w  console.log(sum(2)(4)) // 65_CEDN-w * assert.equal(sum(2, 2), 4, '2 + 2 = 4');5_DFE&N-w . assert.equal(sum(2, 2), 4, 'sum(2 + 2 = 4');5_EGF&N-w - assert.equal(sum(2, 2), 4, 'sum(2, 2 = 4');5_FHGN-w  (sum(2)(4)) // 65_GIHN-w  assert(sum(2)(4)) // 65_HJIN-w  assert(sum(2)(4), 6 // 65_IKJN-w  assert(sum(2)(4), 6, ''5_JLK!N-w " assert(sum(2)(4), 6, 'sum(2)(4)'5_KML&N-w & assert(sum(2)(4), 6, 'sum(2)(4) = 6'5_LNMN-w5_MON N-wBexports['curry defined numeber of arguments'] = function(assert) {5_NPO N-w " var sum = curry(function(a, b) {5_ORPN-w + var sum = function.curry(function(a, b) {5_PSQRvN-x  5_RTS vN-x ( assert(sum(2)(4), 6, 'sum(2)(4) = 6');5_SUT) vN-x-. assert.equal(sum(2, 2), 4, 'sum(2, 2) = 4');5_TVU) vN-x/. assert.equal(sum(2)(4), 6, 'sum(2)(4) = 6');5_UWV vN-x5exports 5_VXW vN-x8! exports[]5_WYX  vN-x9! exports['']5_XZY) vN-xB!+exports['test variadic number of argument']5_Y[Z vN-xC!,exports['test variadic number of arguments']5_Z\[2 vN-xI!2exports['test curry variadic number of arguments']5_[]\> vN-xL!?exports['test curry variadic number of arguments'] = function()5_\^]E vN-xN!Eexports['test curry variadic number of arguments'] = function(assert)5_]_^G vN-xN!Hexports['test curry variadic number of arguments'] = function(assert) {}5_^`_ vN-xR"Gexports['test curry variadic number of arguments'] = function(assert) {5__a` vN-xX"5_`ba vN-xZ#}5_acbvN-xa #5_bdcvN-xo"& !%5_ced!vN-xt "' assert5_dfe!vN-xv "' assert5_egf!vN-xy "' assert.equal()5_fhg! vN-x "'" assert.equal(sum(2, 2)(), 4, '')5_gih!*vN-x "', assert.equal(sum(2, 2)(), 4, 'sum(2, 2)(')5_hji!+vN-x "'- assert.equal(sum(2, 2)(), 4, 'sum(2, 2)()')5_ikj!2vN-x "'2 assert.equal(sum(2, 2)(), 4, 'sum(2, 2)() => 4')5_jlk!2vN-x!#( !#'5_kml"vN-x!#( assert.equal()5_lnm"vN-x!#( assert.equal(sum())5_mon"$vN-x!#(% assert.equal(sum(2, 4, 5)(-3)(1)())5_npo"*vN-x!#(, assert.equal(sum(2, 4, 5)(-3)(1)(), 9, '')5_oqpvN-x!( return a + b5_prq vN-x * * return sum + number5_qsrvN-x*I return Array.prototype.reduce.call(arguments, function(sum, number) {5_rts vN-x!* * }, 0)5_sut vN-x!* }, 0)5_tvuvN-x * return sum + number5_uwvvN-x* return a + b5_vxw NI!* }, 0);5_wyx ##vNJ#F!* }, Infinity);5_xzy!##vNJ#H "* });5_y{z%##vNJ/0&(exports%(+%'*5_z|{'##vNJ/2&(, exports[]5_{}|' ##vNJ/3&(, exports['']5_|~}' ' 'vNJ/P&(,"exports['test continuos currying']5_}~'#' 'vNJ/Q&(,#exports['test continuous currying']5_~'/' 'vNJ/T&(,0exports['test continuous currying'] = function()5_'6' 'vNJ/U&(,6exports['test continuous currying'] = function(assert)5_'8' 'vNJ/V&),9exports['test continuous currying'] = function(assert) {}5_'' 'vNJ/W')-5_#3' 'vNJ/Y"$.3 assert.equal(sum(2, 2)(), 4, 'sum(2, 2)() => 4');5_!' 'vNJ/[ ". }, Infinity);5_ ' 'vNJ/\!. }, 0);5_' 'vNJ/] . return sum + number;5_/' 'vNJ/_./ assert.equal(sum(2)(4), 6, 'sum(2)(4) => 6');5_/' 'vNJ/`./ assert.equal(sum(2, 2), 4, 'sum(2, 2) => 4');5_' 'vNJ/b. return a + b;5_' 'vNJ/c. });5_' 'vNJ/e.};5_G' 'vNJ/e.G assert.equal(welcome('moe'), 'hi: moe!', 'returned expected result');5_3' 'vNJ/f.3 var welcome = functional.compose(exclaim, greet);5_@' 'vNJ/g .@ var exclaim = function(statement){ return statement + "!"; };5_ 9' 'vNJ/h .9 var greet = function(name){ return "hi: " + name; };5_ *' 'vNJ/j .*var functional = require("../functional");5_.' 'vNJ/n-})5_,' 'vNJ/p+-. require("test").run(exports);5_' 'vNJ/s.(typeof define === "undefined" ? function ($) { $(require, exports, module) } : define)(function (require, exports, module, undefined) {5_(' 'vNJ/z').5_(' 'vNJ/'). var sum = functional.curry5_(' 'vNJ/'). var sum = functional.curry()5_(&' 'vNJ/').( var sum = functional.curry(function())5_(+' 'vNJ/')., var sum = functional.curry(function(a, b))5_(-' 'vNJ/'*./ var sum = functional.curry(function(a, b) {})5_(' 'vNJ/(*0 (*/5_*' 'vNJ/*,1 *,05_+ ' 'vNJ/*,1 var plus45_+' 'vNJ/*,1 var plus44 = sum()5_+' 'vNJ/,. assert.equal+.2 +-15_-' 'vNJ/,.3 assert.equal()5_-' 'vNJ/,.3 assert.equal(plus44())5_-' 'vNJ/,.3 assert.equal(plus44(4))5_-' 'vNJ/,.3! assert.equal(plus44(4), 48, '')5_-&' 'vNJ/,.3( assert.equal(plus44(4), 48, 'curried')5_-(' 'vNJ/-/4 -/35_.' 'vNJ/-/4 assert.equal()5_.' 'vNJ/-/4 assert.equal(plus44)5_.' 'vNJ/-/4 assert.equal(plus44())5_.' 'vNJ/-/4 assert.equal(plus44(12))5_.' 'vNJ/-/4 assert.equal(plus44(12), 56)5_. ' 'vNJ/-/4" assert.equal(plus44(12), 56, '')5_.1' 'vNJ/.05 .045_/ ' 'vNJ/.05 assert()5_/' 'vNJ/.05 assert.equal()5_/' 'vNJ/.05 assert.equal(sum())5_/' 'vNJ/.05 assert.equal(sum(2))5_/' 'vNJ/.05 assert.equal(sum(2)())5_/' 'vNJ/.05 assert.equal(sum(2)()())5_/' 'vNJ/.05 assert.equal(sum(2)()(20))5_/' 'vNJ/.05 assert.equal(sum(2)()(20), 22)5_/"' 'vNJ/.05$ assert.equal(sum(2)()(20), 22, '')5_PRQvN-x - kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk. assert.equal(sum(2, 2), 4, 'sum(2, 2) = 4');5_687N-wx })5