haskell解析n + k模式的模式错误 [英] haskell parse error in pattern for n+k pattern
问题描述
我已经开始通过Erik Meijer的 13部分讲座(以及Graham Hutton的滑动)来学习Haskell。
在第4章第13页的幻灯片中,它介绍了n + k模式的模式匹配语法。特别是它说:
在数学中,整数函数可以用n + k
模式定义,其中n是一个整数变量,k> 0是一个整数
常量。
pred :: Int - > Int
pred(n + 1)= n
REPL我收到一条错误消息:
* Main> let mypred(n + 1)= n
< interactive>:65:13:解析模式错误:n + 1
同样,如果我在 *。hs
文件中试用它
mypred :: Int - > Int
mypred(n + 1)= n
编译器提供了类似的抱怨: / p>
/Users/pohl/Code/praxis-haskell/helloworld.hs:14:9:
模式中的解析错误:n + 1
我不知道如何使用n + k模式吗? p>
您必须通过 -XNPlusKPatterns
。
$ b
ghci -XNPlusKPatterns
前奏>让mypred(n + 1)= n
Prelude> mypred 2
1
同样在 hs $ c
{ - #LANGUAGE NPlusKPatterns# - }
mypred :: Int - > Int
mypred(n + 1)= n
在ghci载入后
* Main> mypred 2
1
I have started working my way through Erik Meijer's 13-part lectures (and Graham Hutton's slides) to learn Haskell.
On the slides for Chapter 4, on page 13, it introduces the pattern-matching syntax for n+k patterns. In particular, it says:
As in mathematics, functions on integers can be defined using n+k patterns, where n is an integer variable and k>0 is an integer constant.
pred :: Int -> Int
pred (n+1) = n
When I tried this on my own in the REPL I get an error message:
*Main> let mypred (n+1) = n
<interactive>:65:13: Parse error in pattern: n + 1
Similarly, if I try it in a *.hs
file
mypred :: Int -> Int
mypred (n+1) = n
The compiler gives a similar complaint:
/Users/pohl/Code/praxis-haskell/helloworld.hs:14:9:
Parse error in pattern: n + 1
Am I not understanding how n+k patterns are intended to be used?
You have to enable it by -XNPlusKPatterns
.
ghci -XNPlusKPatterns
Prelude> let mypred (n+1) = n
Prelude> mypred 2
1
Similarly in a hs
file.
{-# LANGUAGE NPlusKPatterns #-}
mypred :: Int -> Int
mypred (n+1) = n
After loading in ghci
*Main> mypred 2
1
这篇关于haskell解析n + k模式的模式错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!