请原谅这个问题的简单性,但我没有找到解决我问题的另一个问题。我已经安装了 haskell 和 leksah,然后执行“cabal install nat”来安装自然数库。该库看起来像是安装在“/Users/jstanford/Library/Haskell/ghc-7.0.4/lib/nat-0.2/lib”中
我在 leksah 中创建了一个工作区和一个包,并更新了我的首选项以查看:
/Library/Frameworks/GHC.framework /Users/jstanford/Library/Haskell /Users/jstanford/.leksah-0.10/packageSources
用于包源并保留默认 ~/.leksah-0.10/packageSources 用于解包 cabal 包。
我从“Pearls of Functional Algorithm Design”中获取了第一段代码,所以我的代码如下所示:
-----------------------------------------------------------------------------
--
-- Module : Main
-- Copyright :
-- License : AllRightsReserved
--
-- Maintainer :
-- Stability :
-- Portability :
--
-- |
--
-----------------------------------------------------------------------------
module Main (
main
) where
import Data.List ((\\))
import GHC.Arr (accumArray, elems, Array(..))
minfree :: [Nat] -> Nat
minfree xs = head([0 ..])\\ xs
search :: Array Int Bool -> Int
search = length takeWhile id . elems
checklist :: [Int] -> Array Int Bool
checklist xs = accumArray(V) False (0,n)
(zip (filter (<= n) xs) (repeat True))
where n = length xs
main = (
minfree[0, 2, 5]
)
Leksah 能够找到 \ 和 Array 的导入,但找不到 Nat。关于如何找到导入的任何指示?编译器还抱怨 accumArray(V)。我怀疑 V 不应该是大写字母 V,而是一些看起来像 V 的符号。对此的指导也将非常感激!