2013-05-11 65 views
3

我有问题n+k模式。如何在WinGhci中设置标志,Haskell

我想启用它,但我不知道如何。

我在我的.hs文件的开始处添加了{-# LANGUAGE NPlusKPatterns #-},但它不起作用。

另外我尝试在我的ghci控制台-NPlusKPatterns打字,但只是给了我错误。

+0

AndrewC是正确的。然而,我会注意到,通常不鼓励使用n + k模式 - 参见[Haskell推理](http://hackage.haskell.org/trac/haskell-prime/wiki/NoNPlusKPatterns),并且存在在邮件列表档案中可以找到更多的讨论。没有很好的理由,我会避开它们。 – isturdy 2013-05-11 22:25:27

回答

5

您需要在ghci中输入

:set -XNPlusKPatterns 

,使他们。

为了完整起见,我会指出,如果您从命令提示符加载ghci而不是运行winghci,则可以使用加载它,而不是交互式地加载:set -XNPlusKPatterns

你可以通过交互定义一个n + k模式来检查它是否工作。以下是一个示例会话:

Prelude> let fact 0 = 1; fact (n+1) = (n+1)*fact n in fact 5 
<interactive>:8:23: Parse error in pattern: n + 1 

Prelude> :set -XNPlusKPatterns 
Prelude> let fact 0 = 1; fact (n+1) = (n+1)*fact n in fact 5 
120 
+0

它不起作用。我输入它,什么都没有出现。然后我只输入:set和“当前设置的选项:无”。那出现了。 – Pawel 2013-05-11 17:43:55

+0

尝试输入'let fact 0 = 1;事实上,(n + 1)=(n + 1)* fact n其实是5' – AndrewC 2013-05-11 17:47:08

+0

(当我输入':set'时,它不会显示在我的内容中。) – AndrewC 2013-05-11 17:48:08