我想在持久化中执行LIKE查询,我正在使用sqlite.yesod书给出了使用原始SQL来做的一个例子,但是说:
由于Persistent 0.6中添加了一个允许特定于后端的运算符的特性,您可以直接以正常语法表示LIKE运算符
但是我找不到一个例子.有人会举例说明使用像LIKE这样的特定运算符selectList或类似的东西是什么意思吗?
谢谢!
我有Haskell功能,这导致了我的程序的所有分配的50%以上,导致60%的运行时间被GC占用.我运行一个小堆栈(-K10K)所以没有堆栈溢出,但是我可以更快地使用更少的分配来实现此功能吗?
这里的目标是通过向量计算矩阵的乘积.我不能使用hmatrix例如因为这是使用ad自动微分包的更大功能的一部分,所以我需要使用列表Num.在运行时,我想使用Numeric.AD模块意味着我的类型必须是Scalar Double.
listMProd :: (Num a) => [a] -> [a] -> [a]
listMProd mdt vdt = go mdt vdt 0
where
go [] _ s = [s]
go ls [] s = s : go ls vdt 0
go (y:ys) (x:xs) ix = go ys xs (y*x+ix)
Run Code Online (Sandbox Code Playgroud)
基本上我们遍历矩阵,乘以并添加一个累加器,直到我们到达向量的末尾,存储结果,然后再继续重新启动向量.我有一个quickcheck测试验证我得到的结果与hmatrix中的矩阵/矢量产品相同.
我有试过foldl,foldr等没事我试着让函数更快(有些事情就像foldr原因的内存泄露).
使用性能分析运行告诉我,除了大部分时间和分配所花费的功能之外,还有一些Cells正在创建的负载,即Cells来自ad包的数据类型.
一个简单的测试运行:
import …Run Code Online (Sandbox Code Playgroud) performance garbage-collection haskell list automatic-differentiation
我在一个工作区中有几个板条箱。一个 crate 定义了一个 Trait,其他人实现了它。我想编写一些测试函数,它们只采用 Trait 并确保所有不变量始终为真,并且示例代码适用于 Trait 的所有实例。所以我想定义一个测试套件,并且每个箱子都应该说“我将我的测试定义为这个测试套件,具有我自己的 Trait 实现”。那可能吗?
我想我可以在我的库中定义一个宏,它使用 Trait 实例生成所有测试,但这会在我的库中混合生产和测试代码。我工作区中的另一个 crate 可以引用我的主 crate 的 tests 文件夹中存在的测试模块吗?
所以基本上我有:
workspace
|-- crate1
|-- src
|-- lib.rs
|-- tests
|-- harness.rs
|-- crate2
|-- src
|-- lib.rs
|-- tests
|-- test2.rs
Run Code Online (Sandbox Code Playgroud)
我希望test2.rs能够使用harness.rs. 那可能吗?