小编Rob*_*bin的帖子

21
推荐指数
1
解决办法
2万
查看次数

Docker容器与Unikernel相比

我最近部署了一个带有docker的小型Haskell应用程序,使用"scratch-haskell"作为基本映像.

然后我读到了关于Unikernels和HALVM的内容.我有点困惑.

我的码头工人容器大约6MB.Unikernel(使用相同的haskell应用程序)大小与我猜的大致相同.

Unikernel直接在Xen管理程序上运行,而docker Image(或通用LXC)在普通的Linux发行版上运行,该发行版在裸机上运行.

现在,我有"选择"运行具有多个最小容器的Linux或具有多个小Unikernel的Xen机器.

但这两种解决方案的优点和缺点是什么?一个比另一个更安全吗?它们之间是否存在显着的性能差异?

xen halvm docker unikernel

20
推荐指数
1
解决办法
3523
查看次数

在Haskell中列出操作性能

我目前正在学习Haskell,我很好奇以下内容:

如果我在Haskell中向一个列表中添加一个元素,Haskell会返回一个(完全?)新列表,并且不会操纵原始列表.

现在假设我有一个包含一百万个元素的列表,并在最后添加一个元素.Haskell"复制"整个列表(100万个元素)并将元素添加到该副本中吗?或者是否有一个整洁的"技巧"在幕后进行,以避免复制整个列表?

如果没有"技巧",复制大型列表的过程是不是像我想的那样昂贵?

haskell list append immutability data-structures

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

为什么Vim有时会创建.swp文件?

有时Vim在编辑内容时会创建一个.swp文件,但并非总是如此.为什么会这样,以及是什么导致Vim创建.swp文件?在.vimrc中禁用它们是不是很糟糕?

vim

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

Haskell中的Floating,Ord和RealFloat

我试图弄清楚为什么它不能编译

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的“内部联接”吗?

haskell typeclass

2
推荐指数
1
解决办法
781
查看次数

带折叠的地图查找功能

我想使用折叠创建一个"地图查找"功能.

这是我的"地图"(只是一个元组列表):

phoneBook:: [([Char], [Char])]
phoneBook = [("bob", "00-21-55")
            ,("jack", "55-51-55")
            ,("joe", "10-61-25")
            ,("susy", "06-21-55")
            ,("clara", "50-31-95")
            ]
Run Code Online (Sandbox Code Playgroud)

这就是我想写的功能:

lookUp :: (Eq k) => k -> [(k,v)] -> v
lookUp k = foldl1 (\acc (x,y) -> if k == y then y else acc)
Run Code Online (Sandbox Code Playgroud)

但是,这不会编译,它会产生"无法构造无限类型"的错误.

你能解释一下为什么这是错的,我怎么能让它发挥作用?

请注意,我知道Data.Map及其导出的地图功能,我想这样做只是为了了解折叠是如何工作的.

haskell fold

0
推荐指数
1
解决办法
499
查看次数