2013-10-12 78 views
1

我想从素数组名称中找到一个随机素数“素数”。所以我想先生成一个随机整数,然后得到整数位置上的素数。Haskell解析错误输入`返回'

这里是我的代码:(primes已经存在,并且效果很好)

getPrime :: IO Integer 
getPrime = do 
     pos <- getStdRandom (randomR (10, 100)) 
     return (primes !! pos) 

但是当我打开这个代码,它说:“在输入解析错误'回报'”

任何人都可以帮我解决这个问题吗?谢谢!!!!!!!!!!!!!!!

+0

用'undefined'代替所有未定义的名称后,您的代码将无误加载(GHC 7.6.3)。所以,这个问题可能与你没有粘贴的代码有关。 – ntc2

回答

3

问题必须与空白。您必须在缩进中使用混合的制表符和空格。为了保护自己免受这种情况的影响,在Haskell中只需要缩进空格即可。

+0

哈哈〜谢谢你!我删除所有的空格,并用一个空格替换它们。它的工作原理! – zll19910516

2

的问题是不是在给定的代码如下面的代码工作没有麻烦:

import System.Random 

primes = [1..100] 

getPrime :: IO Integer 
getPrime = do 
     pos <- getStdRandom (randomR (10, 100)) 
     return (primes !! pos) 

main = getPrime 

我建议先从这一点,并通过一块扩展它片可看问题出在哪里。