小编Aws*_*tic的帖子

将随机生成的列表作为参数传递给Haskell

我是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)

benchmarking haskell list haskell-criterion io-monad

0
推荐指数
1
解决办法
68
查看次数

如何在 perl 中解码包含纯 perl 布尔值的 json 响应?

我从 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)

知道如何解决这个问题吗?

perl json

0
推荐指数
1
解决办法
163
查看次数

标签 统计

benchmarking ×1

haskell ×1

haskell-criterion ×1

io-monad ×1

json ×1

list ×1

perl ×1