Tag: ghci

我如何在Haskell / GHCi中查看函数的定义?

我在GHC6中使用了Haskell 2010.1.0.0.1。在GHCi提示符下键入:t后跟一个函数的名字,显示了函数的types。 有没有办法查看函数定义?

如何configurationGHCi自动导入模块

当我使用GHCi时,我几乎总是最终导入Control.Applicative , Data.List等。 有没有办法configurationGHCi自动导入这些模块。 而且,在导入之后,如何保持提示非常长? Prelude Control.Applicative Data.List Database.HDBC Database.HDBC.Sqlite3 System.Directory>

为什么我不能在ghci中定义一个新的types?

当我尝试定义新types时,出现ghci错误: 前奏>数据点= Pt Int Int <interactive>:1:0:input'data'时parsing错误 Prelude> let data Point = Pt Int Int <interactive>:1:4:在input'data'时parsing错误 我究竟做错了什么?

ghci'不在范围:'消息

我正在通过“学习你一个Haskell”教程,我在这一部分: lucky :: (Integral a) => a -> String 当我尝试执行这一行时,我得到: <interactive>:1:1: Not in scope: `lucky' 我究竟做错了什么?

了解GHCi让绑定的不同行为

我一直在玩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" […]

如果package-conf和源path都包含它,GHCI将无法加载模块

我在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中,但是可以导入。

ghciconfiguration文件

我在Ubuntu上使用ghci 6.8.2。 ghci使用configuration文件,我们可以做一些初始设置? 例如:: :set prompt "ghci> " 。

使用FFI声明时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 […]

如何使用仍然运行runhaskell / ghci的库+可执行文件来创build一个Haskell cabal项目?

如果你在一个cabal文件中声明一个库+可执行部分,同时通过把库放到一个hs-source-dirs目录中来避免对库的双重编译 ,你通常不能再用ghci和runhaskell来运行你的项目,特别是如果可执行文件有帮助模块本身。 什么是推荐的项目布局 只build立一次需要的东西 允许使用runhaskell 有没有黑客干净的结构?

如何在解释模式下运行haskell文件

我被告知你可以解释haskell文件(我认为这意味着他们将像Ruby / Python / Perl一样工作)。 尽pipe如此,在ghc上找不到命令行选项。 它总是想编译我的文件。 看看ghci,但它总是把我变成一个repl。 我基本上只想做ghc -i MyFile.hs (其中-i是我假装与解释模式相关的标志)并且执行,以便在我尝试时获得快速反馈想法和学习。