我在GHC6中使用了Haskell 2010.1.0.0.1。在GHCi提示符下键入:t后跟一个函数的名字,显示了函数的types。 有没有办法查看函数定义?
当我使用GHCi时,我几乎总是最终导入Control.Applicative , Data.List等。 有没有办法configurationGHCi自动导入这些模块。 而且,在导入之后,如何保持提示非常长? Prelude Control.Applicative Data.List Database.HDBC Database.HDBC.Sqlite3 System.Directory>
当我尝试定义新types时,出现ghci错误: 前奏>数据点= Pt Int Int <interactive>:1:0:input'data'时parsing错误 Prelude> let data Point = Pt Int Int <interactive>:1:4:在input'data'时parsing错误 我究竟做错了什么?
我正在通过“学习你一个Haskell”教程,我在这一部分: lucky :: (Integral a) => a -> String 当我尝试执行这一行时,我得到: <interactive>:1:1: Not in scope: `lucky' 我究竟做错了什么?
我一直在玩Simon Marlow关于Haskell中并行和并发编程的书中的一些例子,并偶然发现了一个我不太了解的有趣的行为。 这实际上是关于我想了解GHC的一些内部工作。 假设我在REPL中执行以下操作: λ» let x = 1 + 2 :: Int λ» let z = (x,x) λ» :sprint x x = _ λ» :sprint z z = (_,_) λ» seq x () () λ» :sprint z z = (3,3) 好吧,这几乎是我所期望的,除了z已经被评估为WHNF。 让我们写一个类似的程序,并把它放在一个文件中: module Thunk where import Debug.Trace x :: Int x = trace "add" […]
我在GHCI遇到一个奇怪的情况,不知道有没有人观察过类似的情况。 对于某些模块,当我在searchpath中使用-package -package-conf和-i ,当我尝试导入带有'module is not loaded: FooModule'的模块时,GHCI失败。 :module加载它很好 或者我可以这样做:load FooModule , :m清除导入列表,然后import FooModule 或者我可以从-i删除path,然后导入罚款 跟踪这是在GHC , otherwise modulePackageId = this_pkg (我不知道的意思) otherwise -> modNotLoadedError m loc情况。 这不是完全系统的,有一些模块在包和源path中,但是可以导入。
我在Ubuntu上使用ghci 6.8.2。 ghci使用configuration文件,我们可以做一些初始设置? 例如:: :set prompt "ghci> " 。
我对Haskell的FFI和GHC的交互模式有一个问题。 考虑FFISo.hs : {-# LANGUAGE OverloadedStrings #-} module Main where import qualified Data.ByteString.Char8 as B import FFIFun.Foo main :: IO () main = do B.putStrLn "main" callMeFromC callMeFromHaskell return () cc : #include <stdio.h> void callMeFromC(void); void callMeFromHaskell(void) { printf("callMeFromHaskell\n"); callMeFromC(); } FFIFun/Foo.hs : {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ForeignFunctionInterface #-} module FFIFun.Foo where […]
如果你在一个cabal文件中声明一个库+可执行部分,同时通过把库放到一个hs-source-dirs目录中来避免对库的双重编译 ,你通常不能再用ghci和runhaskell来运行你的项目,特别是如果可执行文件有帮助模块本身。 什么是推荐的项目布局 只build立一次需要的东西 允许使用runhaskell 有没有黑客干净的结构?
我被告知你可以解释haskell文件(我认为这意味着他们将像Ruby / Python / Perl一样工作)。 尽pipe如此,在ghc上找不到命令行选项。 它总是想编译我的文件。 看看ghci,但它总是把我变成一个repl。 我基本上只想做ghc -i MyFile.hs (其中-i是我假装与解释模式相关的标志)并且执行,以便在我尝试时获得快速反馈想法和学习。