小编ehi*_*ird的帖子

生成256个随机位数的最佳方法?

生成256个随机位数的最佳方法是什么?

连接随机字节是否有效?


byte[] data = new byte[32];
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
rng.GetNonZeroBytes(data); // should include zero bytes?
string number = BitConverter.ToString(data, 0).Replace("-", "");
Run Code Online (Sandbox Code Playgroud)

此外,使用这些数字的非重复对一副牌进行排序是否合适?

random shuffle

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

在.hs文件中的另一个主函数内运行main函数会改变行为IO吗?

我目前正在完成我的第一个Haskell项目,在工作的最后一步,我连接不同的haskell文件后,我的I/O功能似乎很奇怪.

我有一个主文件(f1.hs),它加载一些多媒体库的信息并将其保存到新的.hs文件(f2.hs)中的变量中.我还有一个"数据处理和用户界面"文件(f3.hs),它读取这些变量,并根据用户的订单,对它们进行排序并在屏幕上显示.这个f3.hs文件适用于菜单,由键盘输入(getLine)的值命令.

为了使工作序列"自动",我在f1.hs文件上创建了一个"main"函数,它创建了f2.hs文件,然后使用System.Cmd模块,我做了一个system "runhaskell f3.hs".这将用户从f1.hs文件路由到f3.hs的主函数.

奇怪的是,在我这样做之后,所有getLine似乎都出现在函数提示的最后一行之前.

应该出现的是:

Question One.....
Answer: (cursor's place)
Run Code Online (Sandbox Code Playgroud)

但我得到的是:

Question One.....
(cursor's place)
Answer:
Run Code Online (Sandbox Code Playgroud)

这只发生在我runhaskell f1.hs. 如果我runhaskell f3.hs直接尝试,它可以正常工作(虽然我不能在最后的工作上做,因为需要首先创建f2.hs文件).我这个序列做错了吗?

我很抱歉缺乏代码,但我认为对于理解问题没有任何帮助......

haskell

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

在Haskell和-XDeriveDataTypeable中抛出异常

试图在Haskell中抛出异常:

import Control.Exception
import Data.Typeable

data MyException = ThisException | ThatException deriving (Show, Typeable)
instance Exception MyException

data CellPos = CellPos Int Int deriving (Show, Read)

test :: String -> IO CellPos
test str = do
{
if length str == 0
then
    throw ThisException;
else
    return (CellPos 0 0);
}
Run Code Online (Sandbox Code Playgroud)

编译说:

Can't make a derived instance of `Typeable MyException':
  You need -XDeriveDataTypeable to derive an instance for this class
In the data type declaration for `MyException'
Run Code Online (Sandbox Code Playgroud)

我怎么解决它?

您是否还可以编写在调用测试函数时如何捕获此类异常?

haskell

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

如何使用ReaderT转换Happstack的ServerPart响应?

这是我第一次玩Monad变形金刚.这是一个简单的快乐堆栈应用程序.

{-# LANGUAGE OverloadedStrings #-}

import Happstack.Lite 
import qualified Data.ByteString.Lazy.Char8 as L

main :: IO ()
main = do
    serve Nothing hello 

hello :: ServerPart Response
hello = do
    ok $ toResponse ("Hello" :: L.ByteString)
Run Code Online (Sandbox Code Playgroud)

我希望能够更改你好,以便它可以使用读取一些全局配置数据ReaderT.让我们说配置是一个字符串,以保持简单

type NewMonad = ReaderT L.ByteString (ServerPartT IO) 
runNewMonad :: NewMonad a -> L.ByteString -> ServerPart a
runNewMonad k c = runReaderT k c
Run Code Online (Sandbox Code Playgroud)

如何更改问候语以便它可以使用ask?我不确定那种类型.NewMonad Response是不对的,因为ok返回一个ServerPart Response.

如何更改主要以便serve有效?它期望一个ServerPart Response.

haskell

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

在HashMap中混洗值

我想在HashMap中随机播放值.我有以下类型的HashMap

Map<Integer,ArrayList<String> > trainDataSet = new HashMap<Integer, ArrayList<String>>();
Run Code Online (Sandbox Code Playgroud)

我想在地图中改变值.我该怎么办?

以下是我的尝试:

    collections.shuffle(trainDataSet.values());
Run Code Online (Sandbox Code Playgroud)

出了错误:

    Values cannot be cast to java.util.List
Run Code Online (Sandbox Code Playgroud)

是的,这是有道理的,因为我的值是在Arraylist而不是List中.是否有可能改组arraylist集合?

编辑

如果我有以下订单::

key1  [aa,bb,cd]
key2  [xx,xy,sfr]
Run Code Online (Sandbox Code Playgroud)

变成类似的东西

key1  [xx,xy,sfr]
key2  [aa,bb,cd]
Run Code Online (Sandbox Code Playgroud)

java collections shuffle

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

如何修复"发生检查:无法构造无限类型"错误?

我正在尝试编写一个remove函数,以便用户可以输入remove 'd' ["abc", "dc", "ad"]并获取输出["abc", "c", "a"].

我的代码是:

remove :: Eq a => a -> [[a]] -> [[a]]
remove a (x:xs) = filter (not.a) (x:xs)
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误消息:

Occurs check: cannot construct the infinite type: a = [a] -> Bool
   When generalising the type(s) for `remove'
Run Code Online (Sandbox Code Playgroud)

错误消息的含义是什么,以及如何更改第二行以使其有效?

haskell list

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

空列表中的非详尽模式错误

我正在声明一种新的内存类型,然后使用一个函数来更新它.当我向列表中添加值时,程序编译并正常工作,但如果我的列表为空,则会出现错误"函数中的非详尽模式update".这是我的代码,如果你能帮助我:

type Name = [Char] 
type Memory = [(Name,Integer)] 

update :: Name ->Integer -> Memory -> Memory
update n x (h:t)
    |(fst h==n) =(n,x):t
    |((h:t) == []) = (n,x):[]
    |(fst t==x) = h:(n,t)
    |(t==[]) =  h:(n,x):[]
    |otherwise = h:update n x t 
Run Code Online (Sandbox Code Playgroud)

haskell

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

模拟haskell中的for循环

我目前正在为我在奥地利的学习撰写学士论文.

我使用的编程语言是Haskell.

现在,我正在尝试找到解决以下问题的方法:我有一个元组列表,让我们说[(1,2),(2,3)].从那个元组列表中,我现在想要挑选出每个元组,然后对它进行操作: 该列表的第一个元素Map.insert (1,2) XXX ftable 在哪里 (1,2),XXX是一些值,ftable是我的地图.

如何通过该列表"迭代"并继续将我的列表中的"第n个"元素插入到我的地图中?

我想我对编程命令太熟悉了,我找不到在Haskell中修复它的方法.

haskell for-loop

-1
推荐指数
1
解决办法
669
查看次数

将文件读入类型 - Haskell

现在我有两种类型:

type Rating = (String, Int)

type Film = (String, String, Int, [Rating])
Run Code Online (Sandbox Code Playgroud)

我有一个包含此数据的文件:

"Blade Runner"
"Ridley Scott"
1982
("Amy",5), ("Bill",8), ("Ian",7), ("Kevin",9), ("Emma",4), ("Sam",7), ("Megan",4)

"The Fly"
"David Cronenberg"
1986
("Megan",4), ("Fred",7), ("Chris",5), ("Ian",0), ("Amy",6)
Run Code Online (Sandbox Code Playgroud)

我怎样才能查看将所有条目存储到FilmDatabase = [Film]之类的文件?

haskell file input

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

标签 统计

haskell ×7

shuffle ×2

collections ×1

file ×1

for-loop ×1

input ×1

java ×1

list ×1

random ×1