小编teh*_*atz的帖子

Haskell是否允许let表达多个模式匹配?

假设我有一个函数可以进行一些计算,有几种模式; 以模式匹配的形式实现.

大多数这些模式(以及其他不同的东西)对参数进行处理,我在let表达式中使用中间变量.但我发现let在许多模式上使用相同的方法确实是多余的,我想知道是否有一种方法可以let为多种模式定义?

这是我复制的一个例子let:

data MyType a = Something a | Another Int [a]

myFunc (Something x) = -- return something, this isn't the point here
myFunc (Another 0 xs) =
    let intermediary = some $ treatment xs
    in doSthg intermediary 1 
myFunc (Another 1 (x:xs)) =
    let intermediary = some $ treatment xs
    in doSthg1 intermediary 1 x
myFunc (Another 2 (x:x':xs)) =
    let intermediary = some $ treatment xs
    in …
Run Code Online (Sandbox Code Playgroud)

haskell functional-programming pattern-matching let

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

std :: initializer_list的底层结构是什么?

第一部分 :

std::initializer_list是C++ 11的一个非常有用的功能,所以我想知道它是如何在标准库中实现的.从我在这里读到的,编译器创建一个类型的数组,T并给出指向initializer_list<T>.

它还指出复制一个initializer_list会创建一个引用相同数据的新对象:为什么会这样?我猜它也是:

  • 复制新数据 initializer_list
  • 将数据的所有权移至新的 initializer_list

第二部分 :

来自std::vector构造函数的许多在线参考资料中的一个:

vector (initializer_list<value_type> il,
    const allocator_type& alloc = allocator_type());
Run Code Online (Sandbox Code Playgroud)

(6)初始化列表构造函数

构造一个容器,其中包含il中每个元素的副本,顺序相同.

我对移动语义还不满意,但是不能把数据il移到vector?我不知道std::vectorIIRC 的深度实现它使用普通的数组.

c++ stl initializer-list c++11

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

如何静态构建和链接LuaJIT(VS 2013)

前提:我希望我的C++应用程序不依赖于任何东西Microsoft Visual C++ redistributable,所以我可以发送可以开箱即用的可执行文件.

什么我先做:运行时库切换到Multithread (/MT)DLL Multithread (/MD)以避免需要msvcr110.dll(?,不应该VS 2013需要120版本,因为它是编译器版本).为此,我还必须使用相同的运行时库重新编译我正在使用的另一个库,这样才有效.我的.exe可以在任何地方运行而没有问题(或者我不知道,哈哈).

然后我添加了一些使用LuaJIT的功能.我已经通过msvcbuild.bat提供的包构建了LuaJIT ,它就像一个魅力,但现在我的可执行文件需要msvcr110.dll运行.我想这是因为LuaJIT是用/ MD标志编译的,但我想知道是否有一种正确的方法来做我想要的.

c++ linker luajit visual-studio-2013

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

什么是A*(AStar)的良好基准?

我给自己写了一个A*,它运行得很好,现在是评估其性能的时候了(可能会针对其他解决方案来了解它的表现).

对于具有视觉反馈和乐趣的两者,我将其用作图像迷宫求解器.首先 - 我知道这不是A*主要设计的,但我认为测试它是一种非常好的方式(但不是唯一的方法).同意?我保持非常简单:白色像素是节点,其他颜色是墙壁.

我曾想过把这个迷宫(大图)扔到它,但我知道它会

  • 显然需要一些时间,因为它有超过3 000 000个边缘(并且有一点不到墙壁的一半,但仍然)
  • 不一定是一个好的指标,超大的环境

总结一下:什么样的环境对A*来说是一个很好的压力测试?应用A*中的图表的数量级是多少(例如在游戏中)?

algorithm performance benchmarking a-star path-finding

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