2013-05-11 64 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