小编Slo*_*ton的帖子

如何在 Windows 10 上保持 SSH 连接有效?

OpenSSH client (Beta)在 Windows 10 上添加了这个功能,所以我可以通过运行来调用它

ssh
Run Code Online (Sandbox Code Playgroud)

在命令行上。

然而,终端窗口(以及连接)在不活动时间过长时会冻结。我知道我会通过编辑~/.ssh/config文件在 Linux 上解决这个问题。在 Windows 上有等价物吗?

openssh windows-shell windows-10

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

有没有办法在不安装手册页的情况下安装OpenSSL?

不幸的是,在尝试为OpenSSL安装手册页时,Perl会以某种方式遇到错误(例如OpenSSL_1_0_1g).因为我不需要它们 - 我想只使用OpenSSL作为C库,我想我可以通过完全跳过手册页的安装来绕过这个问题.

openssl

7
推荐指数
1
解决办法
1697
查看次数

Parsec 的类似 Foldl 算子

假设我有一个这种类型的函数:

once :: (a, b) -> Parser (a, b)
Run Code Online (Sandbox Code Playgroud)

现在,我想重复应用这个解析器(有点像 using >>=)并使用它的最后一个输出在下一次迭代中提供它。

使用类似的东西

sequence :: (a, b) -> Parser (a, b)
sequence inp = once inp >>= sequence
Run Code Online (Sandbox Code Playgroud)

为第一个解析器指定初始值是行不通的,因为它会一直持续到不可避免地失败为止。相反,我希望它在失败时停止(有点像many)。

尝试使用修复它try会使计算变得过于复杂(在每次迭代中添加尝试)。

sequence :: (a, b) -> Parser (a, b)
sequence inp = try (once inp >>= sequence) <|> pure inp
Run Code Online (Sandbox Code Playgroud)

换句话说,我正在寻找一个类似于foldl解析器的函数,当下一个解析器失败时该函数会停止。

haskell parsec

5
推荐指数
1
解决办法
100
查看次数

高效的字节浮点乘法

在输入上,我有一个有符号的字节数组barr(通常是小尾数,但这可能并不重要)和一个f要相乘的浮点数barr

我的方法是转换barr为整数val(使用int.from_bytes函数),将其相乘,执行溢出检查并val在需要时“裁剪”相乘,然后将其转换回字节数组。

def multiply(barr, f):
        val = int.from_bytes(barr, byteorder='little', signed=True)
        val *= f
        val = int (val)
        val = cropInt(val, bitLen = barr.__len__()*8)
        barr = val.to_bytes(barr.__len__(), byteorder='little', signed=True)
        return barr

def cropInt(integer, bitLen, signed = True):
        maxValue = (2**(bitLen-1)-1) if signed else (2**(bitLen)-1)
        minValue = -maxValue-1 if signed else 0
        if integer > maxValue:
            integer = maxValue
        if integer < minValue:
            integer = minValue
        return integer …
Run Code Online (Sandbox Code Playgroud)

python algorithm python-3.x

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

数据类型在函数参数内不起作用

假设我具有以下数据类型:

data Zinf = NegInf | Z Integer | PosInf deriving (Eq, Ord, Show)
Run Code Online (Sandbox Code Playgroud)

Num因为所有必需的操作都已定义,所以它也是。例如PosInf + 1,当我键入内容时,解释会返回PosInf

现在,我导出另一种数据类型:

data Interval = Simple Integer | Complicated Zinf Zinf deriving (Eq, Show)
Run Code Online (Sandbox Code Playgroud)

现在,由于Zinf也是Num,我可以写下以下内容:

(Z 3) + 4
Run Code Online (Sandbox Code Playgroud)

我得到

(Z 7)
Run Code Online (Sandbox Code Playgroud)

我也可以测试

(Z 3) + 6 == 9
Run Code Online (Sandbox Code Playgroud)

然后解释返回True

我也可以写Complicated 3 (6*7)得到Complicated (Z 3) (Z 42)

最后,我使用以下“间隔”数据类型创建树:

data BinTree a = Empty | Node a (BinTree a) (BinTree a) deriving …
Run Code Online (Sandbox Code Playgroud)

haskell

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