标签: reduce

Python的Reduce函数 - 用Scheme编写

晚间!

我需要在Scheme中编写一个reduce函数,它就像Python中的内置reduce函数一样.在Scheme中编写reduce函数很容易:

(define (reduce fn lis identity)
  (if (null? lis)
    identity
    (fn (car lis)
        (reduce fn (cdr lis) identity))))
Run Code Online (Sandbox Code Playgroud)

但是,此代码与Python reduce不同,后者仅使用两个参数(函数和要减少的项列表).

任何人都可以我写一个这样工作的Scheme函数吗?

(>(reduce*'(2 4 5 5))=> 200,是我们教授的例子.)

非常感谢,伙计和女孩们.你是如此有帮助<3

ETA:对Levien先生和Jester-Young先生,非常感谢你.您提供了大量的信息,以帮助我自己解决问题.*拥抱

reduce scheme

0
推荐指数
1
解决办法
1113
查看次数

总和时减少收益为零

我正在计算项目在枚举中出现的次数.

irb(main):003:0> (1..3).reduce(0) {|sum, p| sum += 1 if p == 1}
=> nil
irb(main):004:0> (1..3).find_all{|p| p == 1}.length
=> 1
Run Code Online (Sandbox Code Playgroud)

reduce方法似乎应该与find_all方法具有相同的行为.为什么它会返回nil而不是1

irb(main):023:0> (1..3).reduce(0) {|sum, p| sum += 1 if p == 2}
NoMethodError: undefined method `+' for nil:NilClass
    from (irb):23:in `block in irb_binding'
    from (irb):23:in `each'
    from (irb):23:in `reduce'
    from (irb):23
    from /usr/bin/irb:12:in `<main>'
Run Code Online (Sandbox Code Playgroud)

在第一次迭代中出现了问题.可以减少不使用这种方式吗?

ruby reduce

0
推荐指数
2
解决办法
894
查看次数

在数组reduce中显式传递初始值为undefined

我用阵列缩减功能测试了几个场景.

[1,2].reduce(function(initial ,  val){

        return initial+val;
    } ,1)
    // returns 4 as expected


[1,2].reduce(function(initial ,  val){

    return initial+val;
})
// returns 3
Run Code Online (Sandbox Code Playgroud)

但明确传递undefined为初始值

[1,2].reduce(function(initial ,  val){

    return initial+val;
}, undefined)
// returns NaN.
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎很不寻常.

javascript arrays reduce

0
推荐指数
1
解决办法
546
查看次数

我需要帮助将我的两个JS函数重构为我的代码中的一个多功能函数(JS array.reduce)

我的目标是找到一个数组中的"总数".

例如,这个数组中的每个对象"arrayOfBikes"都有一个"free"属性,我想找到"free"的总值.

我正在努力减少我编写的代码量.

是否有可能编写一个函数,它接受一个数组和一个项目来计算(免费或自行车)我一直试图在下面实现它但我遇到了错误"getTotalNumberOfBikes()"

var arrayOfBikes = [
{name: "blackhall", lat: 53.3488, lng: -6.281637, free: 22, bikes: 8},
{name: "mbrown", lat: 53.341645, lng: -6.29719, free: 14, bikes: 8},
{name: "grant street", lat: 53.334123, lng: -6.265436, free: 3, bikes: 27},
{name: "gratstreet", lat: 53.339629, lng: -6.243778, free: 19, bikes: 4},
{name: "hardstreet", lat: 53.355473, lng: -6.264423, free: 14, bikes: 2}
];


function getTotalNumberOfFreeBikes(_array){

  let arrayOfFreeBikes = [];

  _array.forEach(function(element){
    arrayOfFreeBikes.push(element.free);
  });

  return arrayOfFreeBikes.reduce(function(_previousValue, …
Run Code Online (Sandbox Code Playgroud)

javascript arrays sorting reduce

0
推荐指数
1
解决办法
34
查看次数

在Erlang中实现Reduce中的Map

我是Erlang的初学者,我正在尝试根据Reduce函数实现Map函数.但是,我无法想象你怎么做..我到目前为止尝试过这个:

reduce(_, Acc, [])     -> Acc;
reduce(Fn,Acc,[Hd|Tl]) -> reduce(Fn,Fn(Acc,Hd),Tl). 

map(F,[])      -> [];
map(F,[Hd|Tl]) -> [reduce(F,F(Hd),[]) | map(F,Tl)].
Run Code Online (Sandbox Code Playgroud)

但是,我看到这个解决方案有点天真.有什么帮助吗?

erlang reduce

0
推荐指数
1
解决办法
67
查看次数

在JS中切片并平均(减少)数组

我有一个数组:

var data = [0,1,2,3,4,5];

我想拼接成[0,1,2][3,4,5],随后通过取平均值所以最终的结果将是:

var dataOptimised = [1,4];

这是我到目前为止发现的:

function chunk (arr, len) {

    var chunks = [];
    var i = 0;
    var n = arr.length;

    while (i < n) {
      chunks.push(arr.slice(i, i += len)); // gives [[0,1,2] [3,4,5]]
    }

    return chunks;

};
Run Code Online (Sandbox Code Playgroud)

如何减少它?

谢谢

javascript arrays reduce slice

0
推荐指数
1
解决办法
741
查看次数

ES6 按数组中的对象属性求和

我试图按日期对单位值求和,并创建一个没有重复日期的新数组。例如,我想计算2015-12-04 00:01:00. 此日期在以下数据中出现了 2 次,其值为56,将是:

[{date: '2015-12-04 00:01:00', unit: 11}, ... etc]
Run Code Online (Sandbox Code Playgroud)

我试过,arr = results.map(x => x.unit).reduce((a,c) => a + c)但它只返回一个值,而不是一个数组。

[{date: '2015-12-04 00:01:00', unit: 11}, ... etc]
Run Code Online (Sandbox Code Playgroud)

javascript arrays reduce dictionary ecmascript-6

0
推荐指数
1
解决办法
1479
查看次数

我的减速机可以使用Set作为初始值吗?

我正在尝试将一组对象减少为一组唯一值.为此,我试图使用Set作为reduce()操作的累加器.

subscriptions = [
    {list_id: 'abc', name: 'nom', subscribed: true},
    {list_id: 'abc', name: 'nom', subscribed: true},
    {list_id: 'ghi', name: 'nom', subscribed: false}];

return subscriptions.reduce((accumulator, currentValue) => {
    if (currentValue.subscribed) {
      return accumulator.add(currentValue.list_id);
    }
  }, new Set());
Run Code Online (Sandbox Code Playgroud)

我的测试报告了以下错误:

TypeError:无法读取未定义的属性"add"

我正在尝试做什么?我是否需要以其他方式做到这一点?

javascript reduce typescript

0
推荐指数
1
解决办法
74
查看次数

为什么reducer会忽略数组中的第一项?

我具有应该运行每个验证程序然后返回包含错误的对象的功能。

一切似乎都可以正常工作,但是数组中的第一个验证器。似乎reduce完全忽略了它。不管我在那放什么验证器,它都会直接转到第二个验证器。

我在这里错过明显的东西吗?

export default values => (
  [
    validateFullName,
    validateServicePresence,
    validatePhoneField,
    validateOrganizationName,
    validateInn,
    validateEmailField,
    validateManagerEmail,
    validateComment,
    validateAgreement,
  ].reduce((currentErrors, validator) => {
    const validationResult = validator(values);

    return {
      ...currentErrors,
      ...validationResult,
    };
  })
);
Run Code Online (Sandbox Code Playgroud)

javascript arrays reduce

0
推荐指数
1
解决办法
51
查看次数

有没有更好的方法用reduce测试n个函数?[JS]

我做了一个简单的函数来测试(调用)“n”个参数(函数)并将结果作为数组返回,但我不确定这是否是使用 reduce 的正确方法(检查下面的注释行)。

const sucess = () => true;
const failed = () => false;


const tester = (...args) => {
 return [...args].reduce((acc,currentValue) => { 
    if(typeof acc === 'function') // this is right?
        return [acc(),currentValue()]
    return [...acc,currentValue()]
  });
}

console.log(tester(sucess,failed,failed,sucess));
Run Code Online (Sandbox Code Playgroud)

你是什​​么

javascript testing reduce function ecmascript-6

0
推荐指数
1
解决办法
70
查看次数