我有以下代码,我只想从我的模块中导出sphereVolume和sphereArea函数。
module Geometry
( sphereVolume
, sphereArea
) where
sphereVolume :: Float -> Float
sphereVolume radius = (4.0 / 3.0) * pi * (radius ^ 3)
sphereArea :: Float -> Float
sphereArea radius = 4 * pi * (radius ^ 2)
cubeVolume :: Float -> Float
cubeVolume side = cuboidVolume side side side
cubeArea :: Float -> Float
cubeArea side = cuboidArea side side side
cuboidVolume :: Float -> Float -> Float -> Float
cuboidVolume a b c = rectangleArea a b * c
rectangleArea :: Float -> Float -> Float
rectangleArea a b = a * b
当我在ghci中写import Geometry
时,我收到以下错误
<no location info>:
Could not find module `Geometry':
it is not a module in the current program, or in any known package
我确保它们位于同一目录中,并且与模块具有相同的文件名。我在这里缺少什么?
答案 0 :(得分:3)
正如Franky所说,您可以使用:l Geometry
来处理GHCi中的代码。但是你可以一次加载一个模块(:l
)。如果您已经编写了几个您希望能够同时使用的模块,该怎么办?然后你需要import
他们。
为了能够从GHCi中import Geometry
,您需要安装它。最简单的方法是使用cabal。这是guide。
答案 1 :(得分:2)
请勿在{ghci}中import
。只需使用通常的
:l Geometry