清理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脚本中包含哪些文件才能满足所有运行时依赖性?
谢谢
我开始使用Yesod Web框架.我有一些已经存在的模板HTML代码,我想自动转换为哈姆雷特代码结构.有没有办法做到这一点?
我正在scala rx申请一个申请.我有一个反应变量持有File(这是一个PDF文件).我正在使用库将此pdf文件中的页面呈现到屏幕上.现在我正在使用的PDF库给了我一个对象(让我们称之为Doc),我可以使用它来渲染单个页面.但是,为了从Doc对象呈现页面,Doc必须打开该对象(因此必须获取资源).
现在我正在为我正在重新渲染的每个页面加载pdf文件(创建一个新Doc对象并在渲染单个页面后关闭它).这使得页面的呈现起作用(给定文件和页码,返回图像).
有没有办法坚持开放的资源并在FRP的变化中关闭它scala rx,特别是?如何处理这种非常常见的情况?
我的项目结构如下:
~/.../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.hs,src但是对我来说似乎是一团糟,在其他项目中却从未见过,而其他项目Source.hs始终在项目根目录中。我如何cabal找到Source.hs?
Source.hs顺便说一句:无论如何,目的是什么?
我使用优秀的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文件时,我收到错误.
Run Code Online (Sandbox Code Playgroud)
"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
我正在寻找一种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 -> String的Data.String,但是我不能找到一种方法,从转换List Char到Array Char!
我可以手动通过折叠它们之间的转换List Char和全面建设Array Char使用snoc,但肯定我必须失去了什么似乎像在Purescript基本字符串操作一个内置的解决方案!
编辑: fromList适用于从任何Unfoldable(如阵列)转换为List.仍然保留这个问题以防万一有更实用的方法.
文档中给出的示例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]?
是否有一个库函数可将十六进制数字(0-F)转换为其等效的四位数二进制值?例如9 = 1001,C = 1100。
我已经看过Data.Hex,Data.HexString,Numeric和其他几个相关的库,并且我假设我可以找到想要的函数。但是,我对Haskell还是很陌生,可能忽略了一些简单的事情。
编辑:不是重复的,IMO。我的问题是关于直接从十六进制转换为二进制的问题,链接的问题(及其答案)没有提及。
我试图弄清楚为什么它不能编译
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的“内部联接”吗?
有什么区别
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)
注意:节点的括号