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)