如果pseq确保评估顺序而seq没有,为什么seq存在?有没有时间seq应该用完pseq?
他有一个例子,tupleReplicate它返回一个带值的函数并复制它:
tupleReplicate :: Int -> Q Exp
tupleReplicate n = do id <- newName "x"
return $ LamE (VarP id)
(TupE $ replicate n $ VarE id)
Run Code Online (Sandbox Code Playgroud)
那么VarE id返回一个表达式,然后可以使用replicate?我的问题是,如果id是列表,这将如何工作?我想做的事情如下:
let vals = mkName "vals"
LamE (ListP vals) (map reverse $ ListE vals)
Run Code Online (Sandbox Code Playgroud)
除非因为ListE退货Exp而不起作用[Exp].
更一般地说,我想在TemplateHaskell中编写一个获取列表并将函数应用于它的函数.
这里也有一些示例代码在这里,我试图写这样一个函数
makeModel (id_ : name_ : []) = Person (fromSql id_) (fromSql name_)
Run Code Online (Sandbox Code Playgroud) 这是我的代码片段:
import Control.Monad.State as S
get x = x + 1
Run Code Online (Sandbox Code Playgroud)
现在如果我尝试使用get,我会收到以下错误:
Ambiguous occurrence `get'
It could refer to either `Main.get', defined at twitter.hs:59:1
or `S.get',
imported from Control.Monad.State at twitter.hs:15:1-31
Run Code Online (Sandbox Code Playgroud)
由于我Control.Monad.State作为合格模块导入,不应该自动选择该get功能Main吗?为什么会遇到这种冲突?我该如何解决?
假设我有一个用Python或Ruby编写的脚本,或用C编写的程序.如何确保脚本无法访问网络功能?
有没有办法从varnish本身发回自定义回复?
if (req.url ~ "^/hello") {
return "hello world";
}
Run Code Online (Sandbox Code Playgroud) 我有一个公钥/私钥对设置,所以我可以ssh到远程服务器而无需登录.我正在尝试编写一个shell脚本,它将列出远程服务器上特定目录中的所有文件夹.我的问题是:如何指定远程位置?这是我得到的:
#!/bin/bash
for file in myname@example.com:dir/*
do
if [ -d "$file" ]
then
echo $file;
fi
done
Run Code Online (Sandbox Code Playgroud) 我很难理解如何将Cocoa与C或Perl一起使用.
背景:我已经看到它在很多地方提到Mac的Cocoa API可以与C,Perl等一起使用但我还没有找到关于如何做到这一点的任何信息.我还发现了一些文章说Cocoa只能和Objective-C一起使用.
我见过CamelBones for Perl,但看起来我必须使用XCode和相当数量的Objective-C来使用它.
是否有任何资源只使用C编译器和文本编辑器构建Cocoa应用程序?
例如,假设我想在文件中找到特定的单词或数字.内容按排序顺序(显然).由于我想在文件上运行二进制搜索,将整个文件复制到一个数组然后运行二进制搜索似乎真的浪费时间...我已经有效地将它变成了线性时间算法,因为我'在我运行搜索之前,我必须花费O(n)时间复制该darn文件.
有更快的方法吗?是否有类似lseek的东西可以使用行而不是字节?
如果没有,我最好只做一次线性搜索(假设我只在整个程序期间运行一次搜索)?
我有一个Texts 列表,它们按排序顺序排列.在我看来,我可以elem通过将其实现为二进制搜索而不是线性搜索来编写更快的版本.这样的版本是否已经存在?
我通常写我自己ToJSON和FromJSON实例,但我决定用deriveJSON一个类型,因为它是如此简单:
data Priority = HIGH | MEDIUM | LOW deriving Show
$(deriveToJSON id ''Priority)
main = BS.putStrLn . encode $ HIGH
Run Code Online (Sandbox Code Playgroud)
我本来希望JSON推导只是将枚举写为字符串。相反,它是哈希的关键!{"HIGH":[]}
为什么这是默认行为?