2009-09-17 15 views
52

time.hsというファイルを作成しました。これには、実行時間を測定する単一の関数が含まれています。Haskellで.hsファイルをインポートする方法

time.hsファイルを別のHaskellスクリプトにインポートする方法はありますか?私はインポートまたはロードする方法がわからない

module time where 
Import <necessary modules> 

time a = do 
start <- getCPUTime 
v <- a 
end <- getCPUTime 
let diff = (fromIntegral (end - start))/(10^12) 
printf "Computation time: %0.3f sec\n" (diff :: Double) 
return v 

:時間は次のように 'time.hs' で定義されて

module Main where 
import C:\Haskell\time.hs 

main = do 
    putStrLn "Starting..." 
    time $ print answer 
    putStrLn "Done." 

は、私のような何かをしたいです別の.hsファイル。インポートする前にtime.hsファイルをモジュールにコンパイルする必要はありますか?

答えて

52

Time.hs

module Time where 
... 

script.hs

import Time 
... 

コマンドライン:

ghc --make script.hs 
14

モジュールtime.hsがあなたの "メイン" モジュールと同じディレクトリに配置されている場合は、単純に次のように入力できます:

import time 

階層構造を使用すると、import utils.timeと書くことができます。 私が知る限り、あなたがやりたいことはうまくいかないでしょう。

モジュールの詳細については、Learn You a Haskell, Making Our Own Modulesを参照してください。

+0

これはタイプです。インポート 'Time'は正しいと思います。 – mrsteve

0

私は同じディレクトリにModuleA.hsとModuleB.hsという2つのファイルがあります。

ModuleA.hs:

Module ModuleA where 
... 

ModuleB.hs:

ghc -I. --make ModuleB.hs 

、モジュール名とファイル名をする必要があります。

Module ModuleB where 

import ModuleA 
... 

私はこれを行うことができます同じである。それ以外の場合はコンパイルできません。

ような何かモジュールを見つけることができませんでした '...'

発生します。

関連する問題