首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Haskell Beginner,用它们的名字调用函数

Haskell Beginner,用它们的名字调用函数
EN

Stack Overflow用户
提问于 2022-01-23 08:34:10
回答 1查看 98关注 0票数 2

尝试99个谜题来学习Haskell。我面临的一个生活质量问题是,每当我测试一个解决方案时,我都会编写一个函数:

代码语言:javascript
复制
mySolutionForQuestion12 :: someFunctionType

testMySolutionForQuestion12 :: IO ()
testMySolutionForQuestion12 = do
    print "testMySolution"
    print $ mySolutionForQuestion12 "myInput1"
    print $ mySolutionForQuestion12 "myInput2"
    putStr "\n"

main = do
    -- neglected code to test solutions for question 1 up to 11 --
    testMySolutionForQuestion12
    ...

    -- instead I want to do something like --
    callAllFunctionsInThisFileByNameBeginningWith "test"
    -- , so that I only have to write one line of code instead of n lines --

为了尽可能懒惰,我希望有一种方法让我的main自动调用以test文件中的4个确切字符开始的所有函数。

这在哈斯克尔有可能吗?来自Python的Python --一种动态语言--这是不言自明的,但对于C或C++来说,这需要很好的解决办法(我实际上不知道如何在这些语言中做到这一点)

因此,我想知道Haskellians (如果这是一个词)会怎么做?接近这个?在这方面是否有“最佳做法”?

EN

回答 1

Stack Overflow用户

发布于 2022-01-23 08:53:21

最佳实践是首先不要通过将值打印到IO来测试您的函数,而是让一个适当的单元测试库来测试它。除了恐龙HUnit之外,最成熟的是QuickCheck,它专注于使用随机性自动生成测试用例(但也可以用于硬编码输入)。它并没有真正解决您在这里询问的问题,但是已经为QuickCheck设计了许多方便的工具。我使用tasty作为调用测试的框架;它添加了有用的控制机制、命令行参数、统计信息等,但仍然需要在main例程中显式列出测试。(我个人认为这是一件好事!)

为了自动搜索源文件以进行测试并运行它们,您可以转而查看博士考试

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70820367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档