我已经进入 postgres 的单用户模式
$ sudo -u postgres postgres --single -D /var/db/postgresql/
PostgreSQL stand-alone backend 9.4.11
backend>
Run Code Online (Sandbox Code Playgroud)
我可以使用什么命令来关闭单用户模式并返回到正常的$命令提示符?
该命令\q可用于退出psqlrepl,但该命令似乎不适用于 postgres 单用户模式,即
$ sudo -u postgres postgres --single -D /var/db/postgresql/
PostgreSQL stand-alone backend 9.4.11
backend> \q
ERROR: syntax error at or near "\" at character 1
STATEMENT: \q
backend>
Run Code Online (Sandbox Code Playgroud) 在nixos上,当试图用我的项目构建时$ stack --nix build,我遇到了以下错误.
$ stack --nix build
...
Linking /run/user/1000/stack25943/postgresql-libpq-0.9.2.0/.stack-work/dist/x86_64-linux-nix/Cabal-1.24.2.0/setup/setup ...
Configuring postgresql-libpq-0.9.2.0...
setup: The program 'pg_config' is required but it could not be found.
Run Code Online (Sandbox Code Playgroud)
我已经按照nixos手册安装了postgres 并且已经pg_config安装了,如图所示
$ which pg_config
/run/current-system/sw/bin/pg_config
Run Code Online (Sandbox Code Playgroud)
看来堆栈不知道我的pg_config的这个位置.
我如何继续取得$ stack --nix build成功?
围绕着ghci,我碰巧注意到表达式(*) 1 [1..5]显然有一个有效的类型.
:t (*) 1 [1..5]
(*) 1 [1..5] :: (Enum t, Num [t], Num t) => [t]
Run Code Online (Sandbox Code Playgroud)
显然它是一个包含几个类型约束的列表,包括Num [t]对我来说看起来不可能,就像它应该给出错误一样.
这是表达式的类型怎么样?为什么ghci的:t命令不在这里给出一个错误?
我有一个数据类型,可以跟踪数字的"块"(有点像矩阵).
newtype Block a = Block [[a]]
Run Code Online (Sandbox Code Playgroud)
我想把它作为一个实例Functor.但是,我试图以fmap可以应用于整个列表块的方式来执行此操作,以便fmap具有类型fmap :: [[a]] -> [[b]]而不是类型fmap :: a -> b.
原因是因为我想映射到我的Block仿函数函数transpose,这些函数适用于列表块[[a]]而不是每个元素a.也就是说,我希望能够定义像这样的函数
transposeBlock :: Block a -> Block a
transposeBlock = (transpose <$>)
Run Code Online (Sandbox Code Playgroud)
我试图将我的仿函数实例声明如下.
instance Functor (Block [[a]]) where
fmap f (Block x) = Block (f x)
Run Code Online (Sandbox Code Playgroud)
但是我遇到了尝试编译它时出现的类型错误.
error:
• Expecting one fewer argument to ‘Block [[a]]’
Expected kind ‘* -> *’, but ‘Block [[a]]’ has kind ‘*’
• In the …Run Code Online (Sandbox Code Playgroud) 我正在尝试构建一个使用Euterpea的项目.
运行stack build我收到以下错误,建议我需要添加Euterpea到build-depends我的.cabal文件部分.
$ sb
composition-0.1.0.0: build (lib + exe)
Preprocessing library composition-0.1.0.0...
[2 of 2] Compiling Lib ( src/Lib.hs, .stack-work/dist/x86_64-linux-nix/Cabal-1.24.2.0/build/Lib.o )
/home/matthew/backup/composition/composition/src/Lib.hs:5:1: error:
Failed to load interface for ‘Euterpea’
It is a member of the hidden package ‘Euterpea-2.0.4’.
Perhaps you need to add ‘Euterpea’ to the build-depends in your .cabal file.
Use -v to see a list of the files searched for.
-- While building package composition-0.1.0.0 using:
/home/matthew/.stack/setup-exe-cache/x86_64-linux-nix/Cabal-simple_mPHDZzAJ_1.24.2.0_ghc-8.0.2 …Run Code Online (Sandbox Code Playgroud) 我正在尝试flycheck与我的 spacemacs 设置一起使用。
“12.4.0.6 次要模式”下的spacemacs文档列出flycheck了可以使用SPC t s.
但是,我的 spacemacs 设置中没有这样的选项。按SPC t会引发一组不包括s.
而且,如果我按SPC t s任何方式,我会收到消息SPC t s is undefined。
如何安装 flycheck 以与 spacemacs 一起使用?
我尝试按照此Blog的示例从命令行运行Haskell可执行文件。我的机器运行NixOS。
该博客是关于将Markdown识字的haskell编译为html,以发布博客文章。该过程的第一步是hscolour在.lhs文件上运行haskell程序,以创建一个.mkd文件,该文件的代码语法通过html和css突出显示。
cat blah.lhs | hscolour -lit -css > blah.mkd
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试运行此命令时,出现以下command not found错误。
$ cat blah.lhs | hscolour -lit -css > blah.mkd
hscolour: command not found
Run Code Online (Sandbox Code Playgroud)
我不确定我遇到的问题是特定于NixOS,还是更广泛地将haskell可执行文件提供给命令行。如何使haskell可执行文件(如hscolour可从命令行获得)?
我试图从内部运行此命令nix-shell这hscolour已经建成。hscolour仍然找不到该命令。
$ nix-shell -p "haskellPackages.ghcWithPackages (pkgs: with pkgs; [hscolour])"
$ cat functor-proofs.lhs | hscolour -li
hscolour: command not found
Run Code Online (Sandbox Code Playgroud) 我尝试将其转换mybook.adoc为mybook.pdfusing pandoc,并收到以下错误。
$ pandoc -s mybook.adoc -t asciidoc -o mybook.pdf
pandoc: cannot produce pdf output with asciidoc writer
Run Code Online (Sandbox Code Playgroud)
我还有其他工具可以代替或配合使用pandoc吗?如何将asciidoc转换为pdf?
我按照本教程使用hakyll创建了一个基本的静态网页.它包括从posts目录中的markdown呈现的多个页面,例如2015-08-12-spqr.markdown.
我更喜欢asciidoc到markdown,并尝试2018-01-23_adoc-user-manual.asciidoc在post目录中添加asciidoc .但是,hakyll在尝试编译页面时抛出错误:
Initialising...
Creating store...
Creating provider...
Running rules...
Checking for out-of-date items
Compiling
updated templates/default.html
updated about.rst
updated templates/post.html
updated posts/2015-08-12-spqr.markdown
updated posts/2015-10-07-rosa-rosa-rosam.markdown
updated posts/2015-11-28-carpe-diem.markdown
updated posts/2015-12-07-tu-quoque.markdown
[ERROR] Hakyll.Web.readPandocWith: I don't know how to read a file of the type Binary for: posts/2018-01-23_adoc-user-manual.asciidoc
CallStack (from HasCallStack):
error, called at lib/Hakyll/Web/Pandoc.hs:66:31 in hakyll-4.12.5.0-8ZITvFN5YREEKv6B76SCAd:Hakyll.Web.Pandoc
Run Code Online (Sandbox Code Playgroud)
这个问题pandocCompiler无法处理asciidoc吗?是否有可能使用asciidoc与hakyll?
在Postgres,我有一个user_badge包含三列的表,显示如下.
# select * from user_badge;
id | user_id | badge_id | is_active |
----+---------+----------+------------
1 bob 00001 False
2 bob 00002 True
3 alice 00003 True
4 alice 00004 False
5 alice 00005 False
Run Code Online (Sandbox Code Playgroud)
在此表中,用户可以拥有多个徽章,但每个用户不得拥有多个活动徽章(即列为is_activeTrue的行).
另一种说法,就是查询
SELECT user_id FROM user_badge WHERE is_active;
Run Code Online (Sandbox Code Playgroud)
必须返回唯一的行.
这是我希望放在这张桌子上的一个限制因素.有没有办法指定Postgres保证它?在Postgres 关于约束的文档中,我看到如何可以在列和一组列上放置唯一性约束,但是没有看到唯一性约束涉及的示例WHERE.
haskell ×5
postgresql ×3
asciidoc ×2
nixos ×2
cabal ×1
constraints ×1
euterpea ×1
flycheck ×1
ghci ×1
hakyll ×1
pandoc ×1
single-user ×1
spacemacs ×1