私は主に情報を出力するいくつかの機能を持っています。
彼らの実行時間を測定する必要があります。
現在、次のように実行されています。
start <- getCurrentTime
putStrLn $ show $ findNthMinLinear (getTestArrayOfLength (read arrlength :: Int)) 4
stop <- getCurrentTime
print $ diffUTCTime stop start
各関数を次の関数でラップしたい1.時間を記憶する2.関数を評価する3.時間を記憶する4.2つの記憶された時間の差を出力する
問題は、最初に関数を評価せずに関数を渡す方法がわからないことです。
私の推測では、たとえば(<5)と書いた場合、つまり関数を返す関数を作成した場合、最終的なパラメーターを渡すまで実際の作業は行われませんか?それから私は書くことができます
printAndMeasure :: (a -> IO()) -> IO ()
...
printAndMeasure \x -> (getTestArrayOfLength (read arrlength :: Int)) 4
しかし、関数が実行されないようにする以外にこのxは本当に必要ないので、これはずさんな解決策です。