2009-09-17 4 views
52

나는 time.hs이라는 파일을 만들었습니다. 다른 기능의 실행 시간을 측정하는 단일 기능을 포함합니다.하스켈에서 .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

이것은 유형이고, 수입 '시간'은 정확합니다. – mrsteve

0

같은 디렉터리에 ModuleA.hs와 ModuleB.hs라는 두 개의 파일이 있습니다.

ModuleA.hs :

Module ModuleA where 
... 

ModuleB.hs :

Module ModuleB where 

import ModuleA 
... 

내가이 작업을 수행 할 수 있습니다

ghc -I. --make ModuleB.hs 

, 모듈 이름과 파일 이름을 지정해야합니다 똑같아. 그렇지 않으면 컴파일 할 수 없습니다.

같은 뭔가 모듈을 찾을 수 없습니다 '...'

가 발생합니다.

관련 문제