gpt4 book ai didi

haskell - 标准库选取的命令行选项

转载 作者:行者123 更新时间:2023-12-02 13:39:37 25 4
gpt4 key购买 nike

我使用了库 criteria 和 cmdargs。

当我在没有 cmdargs 的情况下完全编译程序并运行它时,例如./prog --help 然后我从有关可能的选项和运行次数等标准中得到一些不需要的响应。

当我按如下方式编译并运行它时,我的代码首先选择命令行选项,然后按标准读取。 Criterion 随后报告并错误告诉我选项 --byte 未知。我在标准文档中没有看到任何如何关闭或解决此问题的内容。有没有办法在我阅读完命令行选项后清除它们?否则我需要使用例如CPUTime 而不是标准,这对我来说没问题,因为我确实需要标准提供的额外功能和数据的负载。

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE DeriveDataTypeable #-}

import System.Console.CmdArgs

data Strlen = Strlen {byte :: Int} deriving (Data, Typeable, Show)

strlen = cmdArgsMode $ Strlen {byte = def} &= summary "MessagePack benchmark v0.04"

main = do
n <- cmdArgsRun strlen
let datastring = take (byte n) $ randomRs ('a','z') (mkStdGen 3)
putStrLn "Starting..."
conn <- connect "192.168.35.62" 8081
defaultMain [bench "sendReceive" $ whnfIO (mywl conn datastring)]

最佳答案

使用System.Environment.withArgs。首先使用 cmdArgs 解析命令行参数,然后将未使用过的内容传递给 criterion:

main = do
(flags, remaining) <- parseArgsHowever
act according to flags
withArgs remaining $
defaultMain [ ... ]

关于haskell - 标准库选取的命令行选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8434860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com