我正在尝试从github克隆私有git存储库.我做了一个像这样的Dockerfile:
FROM ubuntu:12.04
RUN apt-get update
RUN apt-get install -y git
RUN mkdir -p /root/.ssh/
ADD ./id_rsa /root/.ssh/id_rsa
RUN git clone git@github.com:usr/repo.git
Run Code Online (Sandbox Code Playgroud)
我在本地使用这个repo就好了,所以看起来我在Docker里面缺少一些东西.
我可能会遗漏的另一件事是,船坞~
人和$HOME
船坞人都指向/
而不是/root
,但我不确定这是否可以相关.
zsh forward-word与bash/emacs有点不同,我想改变它.
而不是描述所有差异,让我向您展示bash的一步一步行为.我将光标标记为"^"符号.
foo bar --non-needed-param --needed-param^
Run Code Online (Sandbox Code Playgroud)
MB
foo bar --non-needed-param --needed-^param
Run Code Online (Sandbox Code Playgroud)
MB
foo bar --non-needed-param --^needed-param
Run Code Online (Sandbox Code Playgroud)
MB
foo bar --non-needed-^param --needed-param
Run Code Online (Sandbox Code Playgroud)
MB
foo bar --non-^needed-param --needed-param
Run Code Online (Sandbox Code Playgroud)
MB
foo bar --^non-needed-param --needed-param
Run Code Online (Sandbox Code Playgroud)
MB
foo ^bar --non-needed-param --needed-param
Run Code Online (Sandbox Code Playgroud)
MF
foo bar^ --non-needed-param --needed-param
Run Code Online (Sandbox Code Playgroud)
马里兰州
foo bar^-needed-param --needed-param
Run Code Online (Sandbox Code Playgroud)
马里兰州
foo bar^-param --needed-param
Run Code Online (Sandbox Code Playgroud)
马里兰州
foo bar^ --needed-param
Run Code Online (Sandbox Code Playgroud)
这个算法既可以灵活地移动单词,也可以为我删除部分单词.它也在emacs中,所以我已经习惯了.我也希望在zsh中看到它.谢谢.
我想阅读Purely Functional Data Structure的工作.我很容易找到论文(可以免费获得,1996年),但看到也有一本书(1999).所以我想知道差异有多大(除了最后两章).
我也找不到合适的方式购买这本书(例如一些易于在Android和Ubuntu上阅读的数字表格,我唯一能找到的是一些只能通过Windows/MacOS软件打开的特殊PDF).
我正在尝试从Yesod的处理程序中编写一个最简单的JSON响应,但有一些非常愚蠢的错误(显然).我的处理程序代码如下:
-- HelloYesod/Handler/Echo.hs
module Handler.Echo where
import Data.Aeson (object, (.=))
import qualified Data.Aeson as J
import Data.Text (pack)
import Import
import Yesod.Core.Json (returnJson)
getEchoR :: String -> Handler RepJson
getEchoR theText = do
let json = object $ ["data" .= "val"]
return json
Run Code Online (Sandbox Code Playgroud)
错误是这样的:
Handler/Echo.hs:12:10:
Couldn't match expected type `RepJson' with actual type `Value'
In the first argument of `return', namely `json'
In a stmt of a 'do' block: return json
In the expression:
do { let json = object …
Run Code Online (Sandbox Code Playgroud) 有一个很常见的问题很容易与haskell有关.描述它的代码段是这样的:
data JobDescription = JobOne { n :: Int }
| JobTwo
| JobThree { n :: Int }
deriving (Show, Eq)
taskOneWorker :: JobDescription -> IO ()
taskOneWorker t = do
putStrLn $ "n: " ++ (show $ n t)
main :: IO ()
main = do
-- this runs ok:
taskOneWorker (JobOne 10)
-- this fails at runtime:
-- taskOneWorker JobTwo
-- this works, but we didn't want it to:
-- taskOneWorker (JobThree 10)
Run Code Online (Sandbox Code Playgroud)
我描述了这个问题,这篇文章中可能有解决方案:https://www.fpcomplete.com/user/k_bx/playing-with-datakinds …
我们的团队正在使用Docker构建我们的Haskell应用程序,为了优化构建时间,我们努力将~/.stack
操作系统中的目录与docker容器内的目录共享.最初的实现只是重用OS中的那个,但事实证明这不能很好地工作,它失败并出现如下错误:
The GHC located at /root/.stack/programs/x86_64-linux/ghc-8.0.1/bin/ghc failed to compile a sanity check. Please see:
http://docs.haskellstack.org/en/stable/install_and_upgrade/
for more information. Exception was: Running /root/.stack/programs/x86_64-linux/ghc-8.0.1/bin/ghc /tmp/stack-sanity-check48/Main.hs -no-user-package-db in directory /tmp/stack-sanity-check48/ exited with ExitFailure 127
/root/.stack/programs/x86_64-linux/ghc-8.0.1/bin/ghc: line 9: /home/ubuntu/.stack/programs/x86_64-linux/ghc-8.0.1/lib/ghc-8.0.1/bin/ghc: No such file or directory
make: *** [adserver_executables] Error 1
Run Code Online (Sandbox Code Playgroud)
似乎某个地方~/.stack
有一个缓存~/.stack
,它指明了GHC的绝对路径,当我们在docker中挂载时,它会被挂载/root/.stack
而不是/home/<user>/.stack
,因此该路径找不到编译器.
我们目前的决定是创建一个单独的目录~/.docker-stack
,我们将用于所有基于docker的构建,而不会干扰操作系统级别的目录.这并不理想,因为它将占用更多空间,并且即使在非docker OS级环境中编译它们也需要重新编译包.
是否有更好的方法有人可以建议~/.stack
与内部Docker堆栈共享?谢谢.
我做了一个非常简单的项目,但测试套件失败了https://github.com/k-bx/noruntests-play
\n\n现在,当我运行时,stack --test --no-run-tests build
我希望它构建项目,但不运行测试。相反,它运行测试:
\xe2\x9e\x9c noruntests-play git:(master) stack --test --no-run-tests build\nnoruntests-play-0.1.0.0: test (suite: test)\n\ntest: error\nCallStack (from HasCallStack):\n error, called at tests/Tests.hs:4:8 in main:Main\n\nTest suite failure for package noruntests-play-0.1.0.0\n test: exited with: ExitFailure 1\nLogs printed to console\n
Run Code Online (Sandbox Code Playgroud)\n\n我在这里做错了什么?谢谢你!
\n我正在尝试构建一个类似于 Apple Mail 的 UI,左侧栏有水平的电子邮件列表,您可以滚动浏览。问题是,当我添加滚动时,它会创建一个额外的填充,而不是呈现在内容之上。
<!doctype html>
<html style="height: 100%;">
<head>
<style>
.scrollable-list-item {
padding: 1rem;
border-bottom: 1px solid #cdcdcd;
}
.scrollable-list-item-active {
background-color: #0069d9;
color: white;
}
</style>
</head>
<body style="height: 100%; width: 100%; margin: 0">
<div style="height: 100%; width: 100%; display: flex;">
<div style="width: 200px; height: 100%; overflow-x: scroll; background-color: #efefef;">
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item scrollable-list-item-active">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable list item</div>
<div class="scrollable-list-item">scrollable …
Run Code Online (Sandbox Code Playgroud)我正在阅读有关IxSet的http://happstack.com/docs/crashcourse/AcidState.html#ixset的一些文档,我想知道如何查看从Data.IxSet导入的Indexable类型类的源代码.
然后我拿了一个Happstack的存储库,然后看着那里(darcs得到http://patch-tag.com/r/mae/happstack),但这让我更加沮丧.
我看到happstack/happstack-ixset/src/Happstack/Data/IxSet.hs文件,它创建了一个模块Happstack.Data.IxSet,但是我看不到哪个文件创建了一个模块Data.IxSet(并实现了类Indexable) .
我喜欢adaptive-wrap-prefix-mode
,只要您克服窗口宽度,它就会自动换行,并在下一行中使用非真实(“软”)压痕很好地格式化文本。
但是,这有一个问题。每当发生这种情况时,emacs都会在其垂直线的两侧绘制一个“换行”符号,而这些符号确实引起我的注意,从而破坏了自动换行的整个目的(不破坏长行代码的视觉缩进) )。
问题是:如何删除左侧和右侧的那些符号?
我希望能够编写一个IO动作,它将返回一个多态函数,可以用于不同的值,但似乎我不能.有人可以帮我这样做吗?
f :: a -> Bool
f _ = True
getF :: Int -> (a -> Bool)
getF _ = f
getFIO :: IO (a -> Bool)
getFIO = return f
main :: IO ()
main = do
-- this works
print ((f :: Int -> Bool) (10::Int))
print ((f :: String -> Bool) "asd")
-- this works
let f' = getF 10
print (f' (10::Int))
print (f' "asd")
-- this doesn't
f'' <- getFIO
print (f'' (10::Int))
print (f'' …
Run Code Online (Sandbox Code Playgroud)