小编den*_*dym的帖子

Scala中每个列表的多个参数列表和多个参数之间有什么区别?

在Scala中,可以像这样编写(curried?)函数

def curriedFunc(arg1: Int) (arg2: String) = { ... }
Run Code Online (Sandbox Code Playgroud)

上述curriedFunc函数定义与两个参数列表和单个参数列表中具有多个参数的函数之间有何区别:

def curriedFunc(arg1: Int, arg2: String) = { ... }
Run Code Online (Sandbox Code Playgroud)

从数学的角度来看,这是(curriedFunc(x))(y),curriedFunc(x,y)但我可以写def sum(x) (y) = x + y,同样的def sum2(x, y) = x + y

我只知道一个区别 - 这是部分应用的功能.但这两种方式对我来说都是等同的.

还有其他差异吗?

scala currying partial-application

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

Scala与关键字的用法

我找到了简单的例子:

class Post extends LongKeyedMapper[Post] with IdPK {
    def getSingleton = Post

    object title extends MappedText(this)
    object text extends MappedText(this)
    object date extends MappedDate(this)
}


object Post extends Post with LongKeyedMetaMapper[Post] {
    def getPosts(startAt: Int, count: Int) = {
        Post.findAll(OrderBy(Post.date, Descending), StartAt(startAt), MaxRows(count))
    }

    def getPostsCount = Post.count
}
Run Code Online (Sandbox Code Playgroud)

这是什么意思with IdPK

谢谢.

scala

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

在没有其他库的情况下用纯c/c ++编写BMP图像

在我的算法中,我需要创建信息输出.我必须在bmp文件中写入布尔矩阵.它必须是单色图像,如果此元素上的矩阵为真,则像素为白色.主要问题是bmp标头以及如何写这个.

c c++ graphics image bmp

39
推荐指数
8
解决办法
12万
查看次数

矩形覆盖

我有N个矩形,其边与x轴和y轴平行.还有另一个矩形模型.我需要创建一个算法来判断模型是否被N个矩形完全覆盖.

我有一些想法.我认为首先,我需要通过左侧对矩形进行排序(可以在O(n log n)时间内完成),然后使用垂直扫描线.

+------------------------------------------------------------> x
|O
|                  +----+
|   +---------+    |    |
|   |        ++----+--+ |
|   |      +-++----+-+| |
|   |      | |     +-++-+
|   +------+ +-------++
|          +---------+
|
|
|
|y
Run Code Online (Sandbox Code Playgroud)

蓝色矩形是模型.

首先,我需要抽象算法.对于实现没有特殊要求.矩形可以表示为一对点(左上角和右下角).

这是准备测试的任务之一.我知道最好的算法可以在O(n log n)时间内完成.

algorithm geometry rectangles

21
推荐指数
2
解决办法
4870
查看次数

Node Express测试模拟res.status(状态).json(obj)

尝试测试我的方法时出现以下错误:

TypeError:无法调用未定义的方法'json'

下面是我的代码,如果我从测试方法中删除res.status,我会得到"status"的相同错误.

我如何定义'json'所以我没有得到一个异常抛出:

res.status(404)上传.json(误差);

在测试此功能时.

stores.js

{ //the get function declared above (removed to ease of reading)
        // using a queryBuilder
        var query = Stores.find();
        query.sort('storeName');
        query.exec(function (err, results) {
            if (err)
                res.send(err);
            if (_.isEmpty(results)) {
                var error = {
                    message: "No Results",
                    errorKey: "XXX"
                }
                res.status(404).json(error);
                return;
            }
            return res.json(results);
        });
    }
Run Code Online (Sandbox Code Playgroud)

storesTest.js

it('should on get call of stores, return a error', function () {

    var mockFind = {
        sort: function(sortOrder) {
            return this;
        },
        exec: function (callback) …
Run Code Online (Sandbox Code Playgroud)

mocha.js node.js express sinon

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

如何让 Chai 使用 toString() 显示实际值和预期值

我最近从 should.js 切换到 chai.js,因为我发现前者在基于浏览器的测试中造成了障碍。更改不需要对我的测试套件进行任何更改,因为支持语法,但我看到失败测试的输出不再以有用的方式向我显示实际值和预期值:

AssertionError: expected [ Array(9) ] to deeply equal [ Array(9) ]
Run Code Online (Sandbox Code Playgroud)

通过添加以下行,我可以让它吐出这些值的表示:

chai.config.truncateThreshold = 0;
Run Code Online (Sandbox Code Playgroud)

然而,这导致每个值都被详尽地输出,包括函数和原型属性。也很没用。

那么是否有某种方式让 chai 表现得像 should.js 一样,其中使用它们的 toString() 方法显示实际/预期值?

chai

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

JMS - 常见用途

JMS和消息驱动Bean的常见和有用用途是什么?

java ejb jms

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

GCC树STL数据容器

可能重复:
remove_if等效于std :: map

昨天我写了一个程序,它使用multiset来存储这样的元素:

std::multiset < boost::shared_ptr < CEntity > > m_Entities;
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用这样的标准算法remove_if:

std::remove_if(m_Entities.begin, m_Entities.end(), MarkedForDestroy);
Run Code Online (Sandbox Code Playgroud)

但是编译失败了,因为如果我们在GCC 4.4中看到set和multiset的实现,我们看到:

typedef typename _Rep_type::const_iterator            iterator;
typedef typename _Rep_type::const_iterator            const_iterator;
Run Code Online (Sandbox Code Playgroud)

我感到震惊.我这一刻谷歌更好,我发现这与标准不矛盾.集合相同.

如果标准算法不起作用,这怎么会不相矛盾?我怎样才能更好地更换容器?

c++ gcc stl set multiset

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

简化Scala中的表达式

我有这样的案例类:

abstract class Tree

case class Sum(l: Tree, r: Tree) extends Tree

case class Var(n: String) extends Tree

case class Const(v: Int) extends Tree
Run Code Online (Sandbox Code Playgroud)

现在我写这样的对象:

object Main {

  type Environment = String => Int

  def derive(t: Tree, v: String): Tree = t match {
    case Sum(l, r) => Sum(derive(l, v), derive(r, v))
    case Var(n) if (v == n) => Const(1)
    case _ => Const(0)
  }

  def eval(t: Tree, env: Environment): Int = t match {
    case Sum(l, r) => eval(l, …
Run Code Online (Sandbox Code Playgroud)

scala

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

标签 统计

scala ×3

c++ ×2

algorithm ×1

bmp ×1

c ×1

chai ×1

currying ×1

ejb ×1

express ×1

gcc ×1

geometry ×1

graphics ×1

image ×1

java ×1

jms ×1

mocha.js ×1

multiset ×1

node.js ×1

partial-application ×1

rectangles ×1

set ×1

sinon ×1

stl ×1