小编gxt*_*lon的帖子

为什么地板无穷大不会引起一些错误?

我发现自己有一个案例,相当于floor $ 1/0正在执行.

?> 1/0
Infinity
Run Code Online (Sandbox Code Playgroud)

这是正常的行为,据我理解,但,当Infinityfloor"d或ceiling" d

?> floor $ 1/0   
179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216
Run Code Online (Sandbox Code Playgroud)

而不是失败,而是产生了这么大的数字.为什么?

也许更重要的是,在应用其他功能之前,如何在不使用过滤器的情况下将其与非故障结果区分开来?

floating-point haskell infinity floor

18
推荐指数
1
解决办法
419
查看次数

为什么Either派生出Show但是Maybe不会?

两者的文档EitherMaybe表明他们有实例Show.

Either被定义为派生Show,简单地说:

data  Either a b  =  Left a | Right b
  deriving (Eq, Ord, Read, Show, Typeable)
Run Code Online (Sandbox Code Playgroud)

然而,Maybe不是:

data  Maybe a  =  Nothing | Just a
  deriving (Eq, Ord)
Run Code Online (Sandbox Code Playgroud)

既然它们是一部分base并且如此相似,为什么不Maybe直接导出Show

另一个问题也可能是,它在哪里得到它的Show实例?

haskell show either maybe deriving

6
推荐指数
1
解决办法
246
查看次数

Rust 中有 AsRef<T> 的简写吗?

AsRef 有糖吗?最好是在稳定频道。

我经常使用 as ref 声明类似字符串的参数,以便更容易与字符串的各种咒语(String、&str、&String 等)进行互操作,如下所示:

fn Fun<S: AsRef<str>>(my: S) { ... my.as_ref() ...} 
Run Code Online (Sandbox Code Playgroud)

然而,现在在一段时间后回读这些实现,它在视觉上占用了代码中比我认为应该的更多的空间,有没有办法减少使用量?例如,不必显式声明类型参数,不必显式调用 as_ref() 等。

看看这个备忘单这本书文档并没有表明存在。

最好的。

string reference type-parameter rust

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