Извините за простоту этого вопроса, но я не нашел другого вопроса, который касался моей проблемы. Я установил haskell и leksah, затем выполнил "cabal install nat", чтобы установить lib с натуральными числами. Библиотека выглядит так, как будто она была установлена в "/Users/jstanford/Library/Haskell/ghc-7.0.4/lib/nat-0.2/lib"
Я создал рабочую область и пакет в лексах и обновил свои настройки так, чтобы они выглядели так:
/ Library / Frameworks / GHC.framework
/ Users / jstanford / Library / Haskell
/Users/jstanford/.leksah-0.10/packageSources
для источников пакетов и оставил значение по умолчанию ~ / .leksah-0.10 / packageSources для распаковки пакетов cabal.
Я взял первые фрагменты кода из «Жемчужины разработки функциональных алгоритмов», поэтому мой код выглядит так:
-----------------------------------------------------------------------------
--
-- 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]
)
Лекса смог найти импорт для \ и Array, но не может найти Nat. Любые указатели о том, как найти импорт? Компилятор также жалуется на аккумулятор Array (V). Я подозреваю, что V на самом деле не должна быть заглавной буквой V, скорее, это какой-то символ, который выглядит как V. Руководство по этому вопросу также будет высоко оценено!