time.hs
というファイルを作成しました。別の関数の実行時間を測定する単一の関数が含まれています。
time.hs
ファイルを別のHaskellスクリプトにインポートする方法はありますか?
次のようなものが欲しい:
module Main where
import C:\Haskell\time.hs
main = do
putStrLn "Starting..."
time $ print answer
putStrLn "Done."
「time.hs」で時間を定義する場所:
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
別の.hs
ファイルをインポートまたはロードする方法がわかりません。インポートする前にtime.hs
ファイルをモジュールにコンパイルする必要がありますか?
Time.hs
:
module Time where
...
script.hs
:
import Time
...
コマンドライン:
ghc --make script.hs
モジュールtime.hs
は「メイン」モジュールと同じディレクトリにあります。次のように入力します。
import Time
階層構造を使用して、import Utils.Time
。私の知る限り、あなたがやりたいことはうまくいきません。
モジュールの詳細については、こちらを参照してください Haskellを学び、独自のモジュールを作成する 。
同じディレクトリにModuleA.hsとModuleB.hsの2つのファイルがあるとします。
ModuleA.hs:
module ModuleA where
...
ModuleB.hs:
module ModuleB where
import ModuleA
...
私がすることができます:
ghc -I. --make ModuleB.hs
注:モジュール名とファイル名は同じでなければなりません。そうしないと、コンパイルできません。何かのようなもの
モジュール '...'が見つかりませんでした
発生します。