我有两个包提供相同名称的模块.当我尝试加载模块时出现错误
....的模糊界面:它在多个包中找到.
我该怎么做才能解决这个问题?
具体而言,cryptonite包和crypto-api包都为模块提供了名称Crypto.Random.如何指定要从中加载模块的包?
如何将int列表[Int]转换为Word8列表[Word8].我可以使用一个int let a = 1 :: Word8.如何为整数值列表执行相同操作?当我尝试时,我得到一个错误.
(除此之外,我的主要目标是转换[Int] -> ByteString,我[Word8]用作中间件,有没有更好的方法来做到这一点?)
确定要使用的正确数据容器在Haskell中可能有点棘手,因为我认为使用的2D网格应用程序UArray是合适的.但是,据我所知,UArray它不是foldable(不是Data.Array.IArray也不是Data.Array.Unboxed)的实例.
是否有一个原因?我可以创建自己的辅助函数但是没有foldable实例表明我可能不应该这样做.
我试图生成大的随机素数(1024 bit-ish)所以我需要一种方法来生成大的正随机数.
我开始System.Random但想要Crypto.Random从crypto-api包中移动.
该Crypto.Random只生产字节串,所以我需要一种方法来转换为Integer类型.做这个的最好方式是什么?
我有一些方程式取决于许多变量。我想解决python中的方程式。这是更简单的方程式之一:
f(x,y,theta,w) = x - y + theta * (w - y)
在给定其余参数的值的情况下,如何解决/找到特定变量的方程式的根。有时候我想解决x,有时候我想解决theta。
有没有一种优雅的方法可以解决此问题而不必为每个因变量重写函数?
在Repa包中有模板,允许以方便的方式从相邻值计算值(对卷积,图像模糊,扩散模拟等有用).
在目前的维修包中,我可以制作任何形状的模板,但只能使用二维模板mapStencil2.有没有办法将模具应用于具有不同维度的数组?甚至没有办法应用一维模板.我正在寻找一种应用三维模板的方法.
谢谢
在Template Haskell的介绍性文本中,模板Haskell有用的一个例子是使用任意大小的元组.
任意大小的元组的目的是什么?如果数据类型相同,为什么不使用列表?如果元组中的数据类型不同,如何将其扩展为任意大小?
我想循环遍历具有BigUint类型(来自num板条箱)的一系列值。
我怎样才能做到这一点?
我试过
for i in 0..a {...}
Run Code Online (Sandbox Code Playgroud)
其中a是(借用的)BigUint类型。我收到有关整数类型不匹配的错误,因此我尝试了以下方法:
for i in Zero::zero()..a {...}
Run Code Online (Sandbox Code Playgroud)
但根据是否a借用,我会得到不同的错误。如果a是借用的,那么我会在错误中得到这个:
for i in 0..a {...}
Run Code Online (Sandbox Code Playgroud)
如果 a 不是借用的,则错误如下:
| for i in Zero::zero()..(a) {
| ^^^^^^^^^^^^^^^^^ the trait `std::iter::Step` is not implemented for `num::BigUint`
Run Code Online (Sandbox Code Playgroud) 我想将大量常量粘贴到我的Haskell代码中,为了便于阅读,我希望将其格式化为多行而不是一行。
这可能吗?
我正在使用Haskell制作一个Verlet积分器来模拟重力.积分器使用对象的前两个位置作为种子,然后在此之后生成其余的位置.
我认为在Haskell中制作这个的好方法是使用无限列表.然而,当实现时,我发现它运行很慢很长时间(Haskell 1700时间步长:12秒,Python 1700时间步长:<1秒)
以下是具有类似性能的1d集成商的相关代码:
verletStep dt acc xn xn1 = 2*xn1 - xn + (acc xn1)*dt*dt
verlet dt acc x0 x1 = x0 : x1 : next (verlet dt acc x0 x1)
where
next (xn : xs@(xn1:_)) = (verletStep dt acc xn xn1) : next xs
Run Code Online (Sandbox Code Playgroud)
我也尝试使用zipWith生成无限列表,但它具有相似的性能.
为什么这需要这么长时间?垃圾收集本身大约是5秒.有没有一种很好的方法可以让它跑得更快?