说我有以下类型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的出现次数?
我只是在学习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"
.
任何人都可以帮我找到更好的方法吗?
我有以下功能列表:
var functions = {
blah: function () {
alert("blah");
},
foo: function () {
console.log("foo");
}
};
Run Code Online (Sandbox Code Playgroud)
我现在正在尝试访问指定的索引functions
,但是我只是未定义。
所以console.log(functions[0]);
返回未定义。
谁能解释为什么会发生这种情况并指导我如何在 javascript 中调用函数数组的指定索引?我需要按顺序循环遍历数组,因此需要通过位置号而不是名称来调用它。