小编fia*_*928的帖子

使用折叠计算Scala列表中的Ints数

说我有以下类型Any列表:

val list = List("foo", 1, "bar", 2)
Run Code Online (Sandbox Code Playgroud)

我现在想编写一个函数,只使用折叠计算列表中的Ints数.在上面列表的情况下,结果应为"2".

我知道使用fold计算所有元素的数量看起来像这样:

def count(list: List[Any]): Int =
  list.foldLeft(0)((sum,_) => sum + 1)
Run Code Online (Sandbox Code Playgroud)

如何调整此值以仅计算Int的出现次数?

scala fold

4
推荐指数
1
解决办法
1576
查看次数

在Haskell中将两个列表混合在一起

我只是在学习Haskell,我想制作一个"shuffle"函数,将两个列表混合在一起,直到一个用完为止.所以,shuffle "abc" "defgh"会回来"adbecfgh".或者shuffle "abc" ""返回"abc".

到目前为止,我有:

shuffle xs ys = concatMap (\(x,y) -> [x,y]) (zip xs ys)
Run Code Online (Sandbox Code Playgroud)

问题是,它只是在列表中填充最短列表的长度,而不包括较长列表的其余部分.所以shuffle "abc" "defgh"回报"adbecf"而不是"adbecfgh".

任何人都可以帮我找到更好的方法吗?

haskell

3
推荐指数
2
解决办法
276
查看次数

如何在javascript中调用函数数组的索引号

我有以下功能列表:

var functions = {
                    blah: function () {
                        alert("blah");
                    },
                    foo: function () {
                        console.log("foo");
                    }
                };
Run Code Online (Sandbox Code Playgroud)

我现在正在尝试访问指定的索引functions,但是我只是未定义。

所以console.log(functions[0]);返回未定义。

谁能解释为什么会发生这种情况并指导我如何在 javascript 中调用函数数组的指定索引?我需要按顺序循环遍历数组,因此需要通过位置号而不是名称来调用它。

javascript

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

标签 统计

fold ×1

haskell ×1

javascript ×1

scala ×1