我已经使用 Haskell 一年左右了,它非常棒。我最近开始使用Servant;我想使用像 Selda 这样的 SQL 库,这样一切都是类型安全的。(与 Elm 结合使用真是令人难以置信!:))
这里有一个例子: https: //github.com/dmjio/servant-selda,将 Selda 与 Servant 一起使用,但仅适用于 postgres。在最初的开发过程中,我发现使用 SQLite 非常有用。
我觉得这应该是可能的,但我似乎找不到任何例子。我尝试查看类型签名,以了解如何将 SQLite 作为池传递;但这有点超出我的哈斯克尔技能!
有没有人有使用 Selda 的经验,或者在 Servant 中使用另一个类型安全的 sql 库取得过成功?我愿意使用 Selda 以外的其他库;我想使用 UUID 作为主键,当我尝试这样做时,持久性不太高兴。
谢谢
我有一个 Haskell 项目,它使用了一些newtypes. 我想导出这些表格,因此我可以将它包含在我的文档(非黑线鳕)中,例如作为降价表。我对此并不熟悉,但通过阅读,我的计划是使用Generics/Data.Data, 创建一些大致如下所示的函数:
data MyRowRepresentation = MyRowRepresentation
String -- Name of the newtype
String -- Name of the type its wrapping
toDocRow :: (Generic a, HasDatatypeInfo a) -> (Proxy a) -> MyRowRepresentation
toDocRow = <the part I'm struggling with>
newtype MyType0 = MyType0 Int16
newtype MyType1 = MyType0 Int8
newtype MyType2 = MyType0 Int32
newtype MyType3 = MyType0 Word8
main = do
let table = [
toDocRow (Proxy::MyType0),
toDocRow (Proxy::MyType1),
toDocRow (Proxy::MyType2),
toDocRow (Proxy::MyType3), …Run Code Online (Sandbox Code Playgroud) 我正在编写一个命令行程序,它采用多个子命令,这些子命令采用标志/参数。
该程序还应该采用一些适用于所有子命令的“全局标志”。举些例子:
myProgram --configfile=~/.customrc UPLOADFILE --binary myfile.x
myProgram --configfile=~/.customrc SEARCH --regex "[a-z]+"
Run Code Online (Sandbox Code Playgroud)
在此示例中,子命令是UPLOADFILEand SEARCH,并且configfile与这两个子命令相关,binary并且regex适用于特定的子命令。
我觉得这个库一定可以做到这一点,但我正在努力想办法把什么放在哪里!我对 Haskell 比较陌生,试图让我的头脑围绕应用程序,这让我的大脑受伤:)
在 module的文档中有一个子命令示例,但我似乎无法弄清楚如何让 global-flags 工作。
如果有人能给我指出一个小的工作示例,或者深入了解我应该如何构造代码来做到这一点,我将非常感激,我发现这些高阶函数有点神奇!
非常感谢您的时间。最好的祝愿,
麦克风