小编scl*_*clv的帖子

Haskell Snap:应用程序部署和运行时依赖性

清理Snap项目源目录(删除dist)会产生以下抱怨:

A web handler threw an exception. Details:
GHC error: can't find a package database at dist/package.conf.inplace
Run Code Online (Sandbox Code Playgroud)

所以,如果我清理源目录它停止工作?如果我用开发标志编译,这只会发生吗?

这让我想到了snap应用程序部署的问题.我们实际上是什么rsync到服务器以及什么是运行时依赖项?我当然不想在部署服务器上安装整个haskell平台.我在服务器上需要的只是项目可执行文件和静态文件,如*.tpl,*.css等.这是正确的吗?

我可以看到两种部署应用程序的方法:rsync可执行文件及其依赖项,或创建二进制分发tarball并将其转移到服务器.常见的做法是什么?

我需要在二进制tarball或rsync脚本中包含哪些文件才能满足所有运行时依赖性?

谢谢

haskell haskell-snap-framework

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

是否有一个从纯HTML转换为哈姆雷特结构的函数?

我开始使用Yesod Web框架.我有一些已经存在的模板HTML代码,我想自动转换为哈姆雷特代码结构.有没有办法做到这一点?

haskell yesod hamlet

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

使用Scala RX中的FRP管理资源

我正在scala rx申请一个申请.我有一个反应变量持有File(这是一个PDF文件).我正在使用库将此pdf文件中的页面呈现到屏幕上.现在我正在使用的PDF库给了我一个对象(让我们称之为Doc),我可以使用它来渲染单个页面.但是,为了从Doc对象呈现页面,Doc必须打开该对象(因此必须获取资源).

现在我正在为我正在重新渲染的每个页面加载pdf文件(创建一个新Doc对象并在渲染单个页面后关闭它).这使得页面的呈现起作用(给定文件和页码,返回图像).

有没有办法坚持开放的资源在FRP的变化关闭它scala rx,特别是?如何处理这种非常常见的情况?

scala frp

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

cabal找不到Source.hs

我的项目结构如下:

~/.../project_name
project_name.cabal
Setup.hs
src/
    Main.hs
    Data/
        ...
test/
    MainTestSuite
    ...
Run Code Online (Sandbox Code Playgroud)

我(其中包括)以下几行project.cabal

build-type:          Simple
...
executable project_name
main-is: Main.hs
...
hs-source-dirs: src
Run Code Online (Sandbox Code Playgroud)

当我cabal configure(工作正常)然后cabal build收到错误消息:

cabal: can't find source for Setup in src, dist/build/autogen
Run Code Online (Sandbox Code Playgroud)

当我插入时它可以工作Source.hssrc但是对我来说似乎是一团糟,在其他项目中却从未见过,而其他项目Source.hs始终在项目根目录中。我如何cabal找到Source.hs


Source.hs顺便说一句:无论如何,目的是什么?

haskell cabal

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

vim EasyTags,每个文件类型标签命令?

我使用优秀的EasyTags插件与vim.我唯一的问题是Exuberant CTags不支持Haskell.但是,有几个程序可以正确生成Haskell vim标记文件,我已经在EasyTags中使用了每个文件类型标记文件选项.

有没有办法告诉EasyTags在每种文件类型的基础上使用不同的ctags程序?我可以编写一个包装脚本并将其设置为全局ctags程序,但更喜欢更清洁的解决方案.

我试过了

:autocmd FileType haskell let g:easytags_cmd = '~/.cabal/bin/lushtags'
Run Code Online (Sandbox Code Playgroud)

但EasyTags似乎试图在ctags程序中查询支持的语言列表,因此当我打开启用了此选项的Haskell文件时,我收到错误.

"Data/Csv/Conduit.hs" [RO] 51L, 1950C
Error detected while processing function xolox#easytags#register..xolox#easytags#get_tagsfi
le..xolox#easytags#supported_filetypes..34_check_filetype:
line    3:
E605: Exception not caught: Failed to get supported languages! (output: Usage: lushtags [op
tions] [--] )
Error detected while processing function xolox#easytags#register..xolox#easytags#get_tagsfi
le..xolox#easytags#supported_filetypes:
line   14:
E171: Missing :endif
Error detected while processing function xolox#easytags#register..xolox#easytags#get_tagsfi
Run Code Online (Sandbox Code Playgroud)

tags vim exuberant-ctags

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

如何将字符列表转换为purescript中的字符串

我正在寻找一种List Char -> String在Purescript中编写函数的惯用方法.

这似乎是一件很简单的事情,但我是Purescript的新手,并且已经暂时浏览文档一段时间没有任何进展!

背景信息:我正在将一个简单的函数从Haskell移植到Purescript

generateId :: Int -> [Char]
Run Code Online (Sandbox Code Playgroud)

这会生成指定长度的String.将代码转换为使用List Char操作非常容易(List来自Data.ListPurescript).在Haskell中[Char]是相同的,String因此不需要其他处理,但是,我找不到在Purescript中转换List Char为本机String的函数!

我的搜索导致我fromCharArray :: Array Char -> StringData.String,但是我不能找到一种方法,从转换List CharArray Char!

我可以手动通过折叠它们之间的转换List Char和全面建设Array Char使用snoc,但肯定我必须失去了什么似乎像在Purescript基本字符串操作一个内置的解决方案!

编辑: fromList适用于从任何Unfoldable(如阵列)转换为List.仍然保留这个问题以防万一有更实用的方法.

arrays string purescript

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

在Haskell中展现这种类型的理由是什么?

文档中给出的示例unfoldr :: (b -> Maybe (a, b)) -> b -> [a]:

unfoldr (\b -> if b == 0 then Nothing else Just (b, b-1)) 10
Run Code Online (Sandbox Code Playgroud)

可以使用冗余对轻松编写:

unfoldr (\b -> if b == 1 then Nothing else Just (b-1, b-1)) 11
Run Code Online (Sandbox Code Playgroud)

这对unfoldr需要什么(a,b)?为什么它的类型不是(a -> Maybe a) -> a -> [a]

haskell types unfold

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

Haskell:库函数可将十六进制转换为二进制

是否有一个库函数可将十六进制数字(0-F)转换为其等效的四位数二进制值?例如9 = 1001,C = 1100。

我已经看过Data.Hex,Data.HexString,Numeric和其他几个相关的库,并且我假设我可以找到想要的函数。但是,我对Haskell还是很陌生,可能忽略了一些简单的事情。

编辑:不是重复的,IMO。我的问题是关于直接从十六进制转换为二进制的问题,链接的问题(及其答案)没有提及。

hex haskell libraries

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

Haskell中的Floating,Ord和RealFloat

我试图弄清楚为什么它不能编译

yell :: (Floating a) => a -> [Char]
yell x
    | x > 10.0 = "Yelling"
    | otherwise = "No Yell"
Run Code Online (Sandbox Code Playgroud)

但是这个

yell :: (Floating a, Ord a) => a -> [Char]
yell x
    | x > 10.0 = "Yelling"
    | otherwise = "No Yell"
Run Code Online (Sandbox Code Playgroud)

和这个

yell :: (RealFloat a) => a -> [Char]
yell x
    | x > 10.0 = "Yelling"
    | otherwise = "No Yell"
Run Code Online (Sandbox Code Playgroud)

做编译。

我知道Floating和Ord是类型类,但不是Floating的每个成员也是Ord的成员吗?最后,RealFloat只是Floating和Ord的“内部联接”吗?

haskell typeclass

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

树声明之间的区别?

有什么区别

data Tree a = Leaf a | Node (a, Tree a, Tree a) deriving Show
Run Code Online (Sandbox Code Playgroud)

data Tree a = Leaf a | Node a (Tree a) (Tree a) deriving Show
Run Code Online (Sandbox Code Playgroud)

注意:节点的括号

haskell

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