小编CSn*_*erd的帖子

为什么Scala中的格子?

我听到有人说:

"Scala使用类型的格子而不是类型层次结构,这与Java不同".

我不太清楚格子的意义是什么,以及类型网格类型层次结构之间的主要区别是什么.

有人可以向我解释这个词吗?

type-systems scala hierarchy

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

从setTimeout做出承诺时感到困惑

我是Promise的新手.我写了两个例子:

第一个是:

new RSVP.Promise(function (resolve, reject) {
    setTimeout(function () {
        resolve("HI")
    }, 3000);
}).then(function (result) {
    console.log(result);
});
Run Code Online (Sandbox Code Playgroud)

如我所料,这个将在3秒后打印出"HI".这是因为"然后"等待它,并且仅在承诺结算时才被调用.

第二个是:

new RSVP.Promise(function (resolve, reject) {
    resolve();
}).then(function () {
    return RSVP.Promise(function (resolve, reject) {
        setTimeout(function () {
            resolve("HI")
        }, 3000);
    });
}).then(function (result) {
    console.log(result);
});
Run Code Online (Sandbox Code Playgroud)

我以为它还会在3秒后打印出"HI".但什么都没发生.我认为第二个"那么"将等待第一个"那么"的承诺.

第二个例子有什么问题以及如何修复它?

javascript promise rsvp.js

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

网络流是伪多项式时间吗?

我们知道正常的背包问题具有伪多项式时间,因为O(nW)的运行时间.我想知道网络流的运行时间是否是伪多项式时间,因为使用Ford-Fulkerson算法的网络流的运行时间是O(Cm)(m表示边数,C表示从起始点离开的边的容量之和) ?

algorithm big-o time-complexity max-flow

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

关于返回功能和Monad的困惑

对不起,我是Haskell的新手.这个问题可能很容易......

来自Hoogle,return签名return :: Monad m => a -> m ahead签名head :: [a] -> a

在我这样做之前head $ return [1,2,3],我认为ghci会抛出错误,因为它们m [a]不一样[a].但令我惊讶的是,它又回来了[1,2,3].并tail $ return [1,2,3]返回[].为什么?

还有一个问题:

我写了一个生成随机数的函数:

drawFloat :: Float -> Float -> IO Float
drawFloat x y = getStdRandom (randomR (x,y))
randList = mapM (const $ drawFloat 2 10) [1..10] -- generate a list of random numbers
Run Code Online (Sandbox Code Playgroud)

当我想要获得列表的头部时,我首先尝试head randList(失败)但是head <$> …

haskell

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

Monad如何符合功能的组成

我知道这些功能都与构图有关.例如,如果我有一个从A到B的箭头和一个从B到C的箭头,则组合意味着我还有一个从A到C的箭头.

但是(>>=),它的类型是Monad m => m a -> (a -> m b) -> m b.为什么m aa这里等于?

我想知道为什么不Monad m => m a -> (m a -> m b) -> m b呢?这更有意义吗?

haskell

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

在python中使用items()时的打印顺序

我在python中写了这样的函数:

def test(**argv):
    for k,v in argv.items():
        print k,v
Run Code Online (Sandbox Code Playgroud)

并使用这样的功能:

test(x = 1, y=2, z=3)
Run Code Online (Sandbox Code Playgroud)

打印输出是这样的:

y 2
x 1
z 3
Run Code Online (Sandbox Code Playgroud)

我想知道为什么打印输出的结果不是?:

x 1
y 2
z 3
Run Code Online (Sandbox Code Playgroud)

这里有什么帮助?

python python-2.7

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

将多个String变量添加到ArrayList

假设我有很多字符串变量(例如100):

   String str1 = "abc";
    String str2 = "123";
    String str3 = "aaa";
....
    String str100 = "zzz";
Run Code Online (Sandbox Code Playgroud)

我想将这些String变量添加到ArrayList,我现在正在做的是

    ArrayList<String> list = new ArrayList<String>();
    list.add(str1);
    list.add(str2);
    list.add(str3);
...
    list.add(str100);
Run Code Online (Sandbox Code Playgroud)

我很好奇,有没有办法使用循环?例如.

for(int i =  1; i <= 100; i++){
     list.add(str+i)//something like this?
}
Run Code Online (Sandbox Code Playgroud)

java string arraylist

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

如何在String中查找关键字的所有索引

例如:

如果String是"provided a provided"和关键字"provided" 那么结果应该是一个数组包含[0, 11]

但是如果关键字是,"provide" 则结果应该是数组包含的[-1]

我试过这样的事情:

val it = "\\bprovided\\b".r.findAllIn("provided a provided");
while (it.hasNext) {
   println(it.next())
}
Run Code Online (Sandbox Code Playgroud)

它只是打印(我需要索引)

provided
provided
Run Code Online (Sandbox Code Playgroud)

这该怎么做?我需要使用哪种方法?

scala

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

正则表达式找到"can t","haven t"等等并添加撇号

我需要处理一些错过撇号的句子.

例如:

  1. 项目是假的.卖方声称它是真实的而且不是

  2. 它那假的,也没有照片,你可以T看到马林鱼,发回等待退款.

如何使用正则表达式来查找"不能","不能","没有","不是","它是"等等.

注意:

"它"和"不能"在这里可能会很棘手.

例如:

"我讲故事"vs"我现在什么做不了"

我们不应该在第一句中添加撇号

java regex

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

如何在Scala文档中读取类/对象

我刚学会了Scala.

Array例如,当我阅读官方文档以查找时,它有两个版本.一个用于Class,另一个用于Object.我想我知道Class和Object之间区别,当我需要find方法时Array,我通常会去Class类.我不知道什么时候需要转到这个Object版本.似乎当我想创建多维数组时,我需要ofDimObject版本中的method()而不是类版本.为什么?

scala

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