저는 하스켈을 처음 접했고 주어진 함수 호출이나 코드 스 니펫의 런타임을 할 수 있기를 바랍니다.하스켈에서 시간 함수 작성하기
는 Clojure에서 나는 'time'를 사용할 수 있습니다
스칼라에서user=> (time (apply * (range 2 10000)))
"Elapsed time: 289.795 msecs"
2846259680917054518906413212119868890148051...
, I 함수에게 자신을 정의 할 수 있습니다
scala> def time[T](code : => T) = {
| val t0 = System.nanoTime : Double
| val res = code
| val t1 = System.nanoTime : Double
| println("Elapsed time " + (t1 - t0)/1000000.0 + " msecs")
| res
| }
time: [T](=> T)T
scala> time((1 to 10000).foldLeft(1:BigInt)(_*_))
Elapsed time 274.292224 msecs
res0: BigInt = 284625968091705451...
을 내 스칼라 함수 또는 Clojure의의 '에 해당 쓰기 수있는 방법 하스켈에서 '시간'? Hackage에서 발견 한 System.TimeIt module은 IO 계산이 측정되는 경우에만 작동하기 때문에 일반적으로 충분하지 않습니다. 따라서 timeIt(4 + 4)
은 작동하지 않으며, 단지 성가신 고속이되는 timeIt(print $ 4 + 4)
만 작동합니다. 게다가, 나는 하스켈이 일반적인 경우를 다루는 방법을 정말로보고 싶다.
감사합니다.
위키 항목은 내가 필요한 것입니다. 감사합니다! – dimo414
+1 +1 : 브라이언 오 설리반 (Bryan O'Sullivan)의 블로그에 또 다른 +1이옵니다 :) – CoR