我已从终端在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 ==========================
出现。
答案 0 :(得分:2)
这件事发生在我身上......我不知道原因是什么,但(至少在我的情况下)我知道我可以通过使用命令行解决问题。我只是“cd”进入包含目录的目录(带有* .cabal文件的目录),然后输入
cabal configure
cabal build
完成此操作后,Leksah正常工作。显然它是一个Leksah错误,但它很容易解决。
答案 1 :(得分:1)
问题出在我天真的假设中,'apt-get install leksah'将安装所有需要的软件包。 但是,这不正确。
安装leksah后,您需要:
apt-get install cabal-install
apt-get install ghc
cabal update
之后,正如jamshidh所说,你需要点击package-&gt; cofigure。
现在建立制动器(对于发布的程序,这是leksah autogenerated default):
Couldn't match type `IO' with `[]'
Expected type: String
Actual type: IO ()
In the first argument of `putStrLn', namely `testMain'
In the expression: putStrLn testMain
In an equation for `main': main = putStrLn testMain
但我设法建立了更简单的版本:
module Main (
main
) where
main = putStrLn "Hello World"
答案 2 :(得分:-1)
默认问候语世界的问题是以下行:
putStrLn (hello "World")
只是左引号不在正确的位置。将其更改为
putStrLn ("hello World")
它应该有用。