小编Chr*_*ski的帖子

为什么Data.String.IsString类型类只定义一个转换?

为什么Haskell基础包只定义IsString要转换String为'like-string'值的类,而不是定义逆转换,从'like-string'值到String

该类应定义为:

class IsString a where
    fromString :: String -> a
    toString :: a -> String
Run Code Online (Sandbox Code Playgroud)

参考:http://hackage.haskell.org/packages/archive/base/4.4.0.0/doc/html/Data-String.html

string haskell

13
推荐指数
2
解决办法
2507
查看次数

如何在GHCi中设置当前目录?

我是Haskell的新手并使用Windows PC.我正在尝试设置我的GHCi接口,以便在使用GHCi执行之前我可以在文本编辑器中编写代码.

目前,我的GHCi读到了

$ ghci GHCi, version 6.12.1: http://www.haskell.org/ghc/ :? for help 
Loading package ghc-prim ... linking ... done. 
Loading package integer-gmp ... linking ... done. 
Loading package base ... linking ... done.
Prelude>
Run Code Online (Sandbox Code Playgroud)

根据这个站点,我必须将我的Haskell文件保存到当前目录或指定其他目录才能访问它们.这是我不知道该怎么办.

我的问题:

  1. 如何设置当前目录?
  2. 如何让GHCi告诉我当前目录的路径是什么,以便我可以查看我想要的内容?

请从行开始解释

Prelude>
Run Code Online (Sandbox Code Playgroud)

如上所述,我可以跟随.

注意:

给出的示例Haskell代码是

文件名:Main.hs

main = print(fac(20))

fac 0 = 1
fac n = n * fac(n-1) 
Run Code Online (Sandbox Code Playgroud)

并在GHCi

prelude> :load Main 
Compiling Main ( Main.hs, interpreted ) 
Ok, modules loaded: Main. 
*Main> fac 17 
355687428096000
Run Code Online (Sandbox Code Playgroud)

所以我想将Main.hs保存到一个目录中,将其指定为GHCi中的当前目录,然后运行上面的代码.

haskell

13
推荐指数
1
解决办法
9683
查看次数

如何在使用minkube时访问Kubernetes API?

使用minikube通过kubernetes api进行kubernetes集群设置的正确方法是什么?目前,我找不到可以访问kubernetes集群的端口.

kubernetes minikube

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

音量和持续音量有什么区别?

我以前使用过这两种类型,我还阅读了以下文档:

https://kubernetes.io/docs/concepts/storage/persistent-volumes/ https://kubernetes.io/docs/concepts/storage/volumes/

然而,目前还不清楚差异是什么,两者似乎都支持相同的存储类型,唯一想到的是持久性卷似乎存在"供应"方面.

有什么实际区别?两者之间是否存在优点/缺点 - 或者哪种用例比另一种更适合?

它可能只是'同义糖'吗?

例如,NFS可以作为卷或持久卷安装.两者都需要NFS服务器,两者都会在挂载之间保持数据"持久化".在这种情况下会有什么不同?

kubernetes

13
推荐指数
3
解决办法
1515
查看次数

如何解析相对时间?

这个问题是问题的另一面,问" 我如何计算相对时间? ".

鉴于相对时间的一些人为输入,你如何解析它?默认情况下,您将偏移DateTime.Now(),但可以选择从另一个偏移DateTime.

(首选C#中的答案)

输入示例:

  • "在20分钟内"
  • "5小时前"
  • "3h 2m"
  • "下周"

编辑: 我们假设我们可以在输入上定义一些限制.这种代码在网络上是有用的.

c# language-agnostic time parsing

12
推荐指数
2
解决办法
1940
查看次数

在git中显示索引文件的权限

这涉及到另外一个问题我最近问存储在Dropbox的非纯仓库的计算机之间轻松移动,因此它可能是有帮助的阅读背景问题.

要点是fileMode不断报告某些文件的差异.我无法找到一种方法来重现它,但它经常发生.我注意到的是,该文件在两台机器上具有644权限,通常会在其中一台机器上报告755的差异.这让我觉得Git认为可执行位已设置,但我无法弄清楚我是否真的可以看到 Git 是如何设置该位的.

git permissions diff dropbox

12
推荐指数
1
解决办法
4496
查看次数

向apache调度请求时出错

我在Google上有云托管,说实话它很糟糕,但我想继续使用它,我在VM上安装LAMP堆栈并将我的网站放在htdocs中.当我试图访问我的网站时它给了我 request timeout但有时它工作了5分钟左右.

当我看到apache错误日志时,它给了我这个

075: Error dispatching request to : (polling)
[Tue Oct 27 18:12:55.185819 2015] [proxy_fcgi:error] [pid 4995:tid 140183521683200] (70007)The timeout specified has expired: [client 162.158.255.169:34198] AH01075: Error dispatching request to : (polling)
[Tue Oct 27 18:12:55.487458 2015] [core:notice] [pid 2953:tid 140183785137920] AH00052: child pid 4995 exit signal Segmentation fault (11)
[Tue Oct 27 18:12:55.787973 2015] [proxy_fcgi:error] [pid 5063:tid 140183530075904] (70007)The timeout specified has expired: [client 199.27.133.137:13151] AH01075: Error dispatching request to : (polling), referer: http://whichtube.com/watch/g9-4dCeFQng/allama-nasir-abbas-jawab-ali-as-nae-talwar-kayou-na-uthai.html
[Tue Oct …
Run Code Online (Sandbox Code Playgroud)

php apache lamp proxy dispatch

12
推荐指数
3
解决办法
3万
查看次数

过滤仅包含文件的路径列表

如果我有一个列表FilePaths,如何过滤它们只返回常规文件(即不是符号链接或目录)?

例如,使用 getDirectoryContents

main = do
    contents <- getDirectoryContents "/foo/bar"
    let onlyFiles = filterFunction contents in
        print onlyFiles
Run Code Online (Sandbox Code Playgroud)

其中"filterFunction"是一个只返回FilePaths表示文件的函数.

答案可能仅适用于Linux,但首选跨平台支持.

[编辑]只是使用didDirectoryExist不能按预期工作.此脚本打印目录中所有内容的列表,而不仅仅是文件:

module Main where

import System.Directory
import Control.Monad (filterM, liftM)

getFiles :: FilePath -> IO [FilePath]
getFiles root = do
    contents <- getDirectoryContents root
    filesHere <- filterM (liftM not . doesDirectoryExist) contents
    subdirs <- filterM doesDirectoryExist contents
    return filesHere

main = do
    files <- getFiles "/"
    print $ files
Run Code Online (Sandbox Code Playgroud)

此外,变量子目录只包含".""..".

io haskell file path

11
推荐指数
2
解决办法
1684
查看次数

gcloud docker push导致"被拒绝:项目'令牌交换失败'gcp-project-id-example'."

我已经运行gcloud auth login,gcloud auth configure-docker,gcloud components install docker-credential-gcr,gcloud config set project gcp-project-id-example.

我之前已经推到了这个存储库所以我有点惊讶它现在不工作了吗?我已通过身份验证,gcloud auth login我的用户拥有完整的编辑权限.

sudo gcloud docker -- push eu.gcr.io/gcp-project-id-example/pipelinebuild:latest
WARNING: `gcloud docker` will not be supported for Docker client versions above 18.03.

As an alternative, use `gcloud auth configure-docker` to configure `docker` to
use `gcloud` as a credential helper, then use `docker` as you would for non-GCR
registries, e.g. `docker pull gcr.io/project-id/my-image`. Add
`--verbosity=error` to silence this warning: …
Run Code Online (Sandbox Code Playgroud)

docker google-cloud-platform gcloud

11
推荐指数
1
解决办法
3752
查看次数

如何 nix-env 安装来自 nix 表达式文件的派生?

我有一个default.nix构建派生的文件(至少我对它的理解)。

{ nixpkgs ? import <nixpkgs> {}, compiler ? "ghc864" } :
nixpkgs.pkgs.haskell.packages.${compiler}.callCabal2nix "bhoogle" (./.) {}
Run Code Online (Sandbox Code Playgroud)

我可以成功nix-build这个。有没有办法可以nix-env直接将其安装到我的用户配置文件中?例如类似的东西nix-env -i -f default.nix

否则我需要在我的系统配置文件中定义一个包,如下所示:

  example = pkgs.callPackage /home/chris/example/default.nix {};
Run Code Online (Sandbox Code Playgroud)

nixos nix

11
推荐指数
1
解决办法
2138
查看次数