我是Haskell的新手,并且在整个IO事情上遇到了麻烦.
我试图找出遍历haskell列表所需的时间.我想生成一个随机数列表并将其作为参数传递给函数,以便我可以打印列表的每个元素.我正在使用CRITERION包作为基准.这是代码:
{-# LANGUAGE OverloadedStrings #-}
import System.Random
import Control.Exception
import Criterion.Main
printElements [] = return ()
printElements (x:xs) = do print(x)
printElements xs
randomList 0 = return []
randomList n = do
x <- randomRIO (1,100)
xs <- randomList (n-1)
return (x:xs)
main = defaultMain [
bgroup "printElements" [ bench "[1,2,3]" $ whnf printElements (randomList 10)
, bench "[4,5,6]" $ whnf printElements [4,5,6,4,2,5]
, bench "[7,8,9]" $ whnf printElements [7,8,9,2,3,4]
, bench "[10,11,12]" $ whnf printElements [10,11, 12,4,5]
] …Run Code Online (Sandbox Code Playgroud) 我从 API 端点收到一个 json 响应,如下所示:
{
"items": [
{
"key": "",
"groupReference": "mastercard-XXXXXXXXXXXXXXX",
"type": "firstPresentment-dms",
"created": "2023-01-27T10:07:56.038Z",
"entry": 1,
"isCorrection": false,
"reportingFor": "0000",
"network": "mastercard",
"fundsTransferDate": "2023-01-27",
"fundsTransferBookDate": "2023-01-27",
}
]
}
Run Code Online (Sandbox Code Playgroud)
我已经使用decode_json()来解码它。问题是因为 isCorrection 是一个纯 perl 布尔值,解码无法正常工作,我得到了这个
Reference of JSON::PP::Boolean$VAR1 = bless( do{(my $o = 0)}, 'JSON::PP::Boolean' );
Run Code Online (Sandbox Code Playgroud)
知道如何解决这个问题吗?