web-dev-qa-db-ja.com

Haskellで.hsファイルをインポートする方法

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ファイルをモジュールにコンパイルする必要がありますか?

56
Jonno_FTW

Time.hs

module Time where
...

script.hs

import Time
...

コマンドライン:

ghc --make script.hs
56
yairchu

モジュールtime.hsは「メイン」モジュールと同じディレクトリにあります。次のように入力します。

import Time

階層構造を使用して、import Utils.Time。私の知る限り、あなたがやりたいことはうまくいきません。

モジュールの詳細については、こちらを参照してください Haskellを学び、独自のモジュールを作成する

16
Christian

同じディレクトリにModuleA.hsとModuleB.hsの2つのファイルがあるとします。

ModuleA.hs:

module ModuleA where
...

ModuleB.hs:

module ModuleB where

import ModuleA
...

私がすることができます:

    ghc -I. --make ModuleB.hs

注:モジュール名とファイル名は同じでなければなりません。そうしないと、コンパイルできません。何かのようなもの

モジュール '...'が見つかりませんでした

発生します。

2
Jee lee