【发布时间】:2014-01-10 13:28:46
【问题描述】:
我已经从终端在 Xubuntu 13.10 上安装了 Leksah 0.12.1.3。
sudo apt-get install leksah
打开 leksah,创建新的工作区和包。 Main.hs 默认使用“Hello world”程序创建。
module Main (
main
) where
import Control.Monad (unless)
import Data.List (stripPrefix)
import System.Exit (exitFailure)
import Test.QuickCheck.All (quickCheckAll)
-- Simple function to create a hello message.
hello s = "Hello " ++ s
-- Tell QuickCheck that if you strip "Hello " from the start of
-- hello s you will be left with s (for any s).
prop_hello s = stripPrefix "Hello " (hello s) == Just s
-- Hello World
exeMain = do
putStrLn (hello "World")
-- Entry point for unit tests.
testMain = do
allPass <- $quickCheckAll -- Run QuickCheck on all prop_ functions
unless allPass exitFailure
-- This is a clunky, but portable, way to use the same Main module file
-- for both an application and for unit tests.
-- MAIN_FUNCTION is preprocessor macro set to exeMain or testMain.
-- That way we can use the same file for both an application and for tests.
#ifndef MAIN_FUNCTION
#define MAIN_FUNCTION exeMain
#endif
main = MAIN_FUNCTION
现在,如果我尝试在右下窗口中运行包或在编辑器中编写任何内容
========== 127 ===========================
出现。
【问题讨论】:
-
您是否启用了
CPP扩展?此外,在 .cabal 文件中设置测试比使用语言编译指示要容易得多。有很多更好的方法可以做到这一点。至少尝试直接定义main = exeMain。此外,如果它不能用 GHC 编译,它就不能用 leksah 编译。在假定它是编辑器问题之前,请确保它不是代码问题。