小编Sop*_*hie的帖子

使用 postgresql-simple 执行动态查询

我需要通过 Haskell 或什至从文件加载以字符串形式执行任意 SQL 命令。

postgresql-simple 库提供execute_exec用于执行 SQL 命令。问题execute_在于它需要一个Queryas 参数。我确实理解这背后的意图,但我需要执行任意查询。该exec函数可以在没有 a 的情况下调用,Query但没有记录,并且在错误时无异常地静默失败。

如何将 a 转换String为 a Query

postgresql haskell

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

Haskell:Data.Set`notMember`比`notElem`慢?

我期望f1O(i²)并且f2O(i·log i).这里发生了什么?

import Data.Set

i = 20000

-- should be slow
f1 = [ x | x <- [1..i] , x `notElem` [2..i-1] ]
-- should be fast
f2 = [ x | x <- [1..i] , x `notMember` fromAscList [2..i-1] ]
Run Code Online (Sandbox Code Playgroud)

ghci输出:

*Main> f1
[1,20000]
(7.12 secs, 16,013,697,360 bytes)
*Main> f2
[1,20000]
(44.27 secs, 86,391,426,456 bytes)
Run Code Online (Sandbox Code Playgroud)

haskell

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

GADT,非参数化类型和实例Eq

我有一个容器类型,叫做X.由于我想要异构列表X,因此它的构造函数是存在于某个类型变量上的类型a.但是,我希望它是Eq类型类的一个实例.一个hackish解决方案看起来像这样:

{-# LANGUAGE GADTs #-}

data X where X :: (Eq a, Show a) => a -> X

instance Eq X where
    X x == X y = show x == show y
Run Code Online (Sandbox Code Playgroud)

这个问题最简单(干净)的解决方案是什么?

(X如果它们的类型不同,则不相等.)

haskell existential-type gadt

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

标签 统计

haskell ×3

existential-type ×1

gadt ×1

postgresql ×1