Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell,可能的缩进错误,我可以';不能摆脱_Haskell_Indentation - Fatal编程技术网

Haskell,可能的缩进错误,我可以';不能摆脱

Haskell,可能的缩进错误,我可以';不能摆脱,haskell,indentation,Haskell,Indentation,我有个问题,找不出是什么。我一再重复,但找不到解决办法。还有什么可以依赖的吗 代码: 编辑:我解决了这个问题。问题是上述函数中存在语法错误。我用了否则m_-ify m*2而不是否则=m_-ify m*2试试: type Triple = (Prime, Quot, Gen) correctness :: Triple -> Bool correctness (p,q,g) = prime && pLength && qLength && d

我有个问题,找不出是什么。我一再重复,但找不到解决办法。还有什么可以依赖的吗

代码:

编辑:我解决了这个问题。问题是上述函数中存在语法错误。我用了
否则m_-ify m*2
而不是
否则=m_-ify m*2

试试:

type Triple = (Prime, Quot, Gen)

correctness :: Triple -> Bool
correctness (p,q,g) = prime && pLength && qLength && divisor && orderq
           where 
              prime   = probablyPrime n 5
              qLength = q < 2^1024
              pLength = p < 2^160
              divisor = (p-1 `mod` q) == 0
              orderq  = (g^q mod p == 1) && (g > 1)
typetriple=(Prime,Quot,Gen)
正确性::三重->布尔
正确性(p,q,g)=素数和正整数和q长度和除数和次序
哪里
素数=可能的素数n 5
qLength=q<2^1024
正压=p<2^160
除数=(p-1`mod`q)==0
订单q=(g^q mod p==1)和&(g>1)

阅读--9.3版面

工作表单,直接跳入类型错误

第92行是吗

type Triple = (Prime, Quot, Gen)
还是你把它从别的地方移走了?有时,错误可能会在实际发生的行号之后出现。我会检查第92行上方(可能在附近)是否有不匹配的括号


在某些情况下,一个看不见的unicode字符似乎潜入了我的代码中。重新键入有时会起作用。

您可能只需要在最后一行的
mod
周围添加反勾号。这不会导致您报告的缩进错误,但为我编译了以下代码:

n = undefined
probablyPrime = undefined
type Prime = Int
type Quot = Int
type Gen = Int

type Triple = (Prime, Quot, Gen)

correctness :: Triple -> Bool
correctness (p,q,g) = prime && pLength && qLength && divisor && orderq
           where prime   = probablyPrime n 5
                 qLength = q < 2^1024
                 pLength = p < 2^160
                 divisor = (p-1 `mod` q) == 0
                 orderq  = (g^q `mod` p == 1) && (g > 1)
n=未定义
probablyPrime=未定义
类型Prime=Int
类型Quot=Int
类型Gen=Int
类型Triple=(素数,引号,Gen)
正确性::三重->布尔
正确性(p,q,g)=素数和正整数和q长度和除数和次序
其中素数=可能的素数n5
qLength=q<2^1024
正压=p<2^160
除数=(p-1`mod`q)==0
订单q=(g^q`mod`p==1)和&(g>1)

这里唯一的变化(前五行除外)是最后一行。

您能提供更多的代码吗?看起来这个错误很久以前就发生了。FWIW,仅仅因为它说“可能不正确的缩进”并不意味着这是一个缩进问题。它只是让人们注意到一些解析错误可能是缩进错误。只需在它抱怨的那一行周围的几行中仔细检查你的语法。要跟进luqui的评论,请检查你是否在第94行之前关闭了所有paren。我想你需要倒数第二行中的
(p-1)`mod`q==0
。对不起,n应该是q。但这并没有解决问题。然而,我意识到这是正确的,错误是远远超过了。我错过了倒勾。我想GHC并没有走那么远。谢谢
type Triple = (Prime, Quot, Gen)
n = undefined
probablyPrime = undefined
type Prime = Int
type Quot = Int
type Gen = Int

type Triple = (Prime, Quot, Gen)

correctness :: Triple -> Bool
correctness (p,q,g) = prime && pLength && qLength && divisor && orderq
           where prime   = probablyPrime n 5
                 qLength = q < 2^1024
                 pLength = p < 2^160
                 divisor = (p-1 `mod` q) == 0
                 orderq  = (g^q `mod` p == 1) && (g > 1)