首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Haskell中运行Parsec测试?

在Haskell中运行Parsec测试的方法如下:

  1. 首先,确保你已经安装了Haskell编译器(如GHC)和包管理器(如Cabal)。
  2. 在终端中使用Cabal安装Parsec库。运行以下命令:
  3. 在终端中使用Cabal安装Parsec库。运行以下命令:
  4. 创建一个新的Haskell源文件,例如test.hs
  5. 在文件开头导入Parsec库:
  6. 在文件开头导入Parsec库:
  7. 定义你的测试代码。这可以是一个简单的解析器,用于解析特定的文本模式。以下是一个示例:
  8. 定义你的测试代码。这可以是一个简单的解析器,用于解析特定的文本模式。以下是一个示例:
  9. main函数中编写测试代码。以下是一个示例:
  10. main函数中编写测试代码。以下是一个示例:
  11. 在终端中使用GHC编译并运行测试代码。运行以下命令:
  12. 在终端中使用GHC编译并运行测试代码。运行以下命令:
  13. 输入一个算术表达式,例如123+456,然后按Enter键。
  14. 程序将输出解析结果,例如579

请注意,以上步骤仅适用于在Haskell中使用Parsec进行简单的测试。如果你需要更复杂的测试或集成测试框架,可能需要使用其他工具或库。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

再探 Parser 和 Parser Combinator

在几年前的文章《Policy Engine 的前世今生》里,我谈到了自己探索如何生成高效的表达式求值的工具的整个过程。我先是使用 JISON(javascript 的 Flex/Bison)做了一个解析器(parser),后来又用 Elixir 自己的宏编程进行了优化,让单个表达式的验证从 200+ us 提升到 20+ us。最近无意间看到了 Guido van Rossum 大神的文章 [1],讲他探索 PEG 解析器的历程(Python 3.9 已经实现了新的 PEG parser [2])。于是,这个周末,我花了一个晚上,尝试了用 Rust 下的 PEG 解析器 — pest 重新实现了 policy 表达式解析器部分,为了更好地对比 pest 和 Rust 下的另外一个神器 nom 的效果,我也同时实现了 nom 下的 policy 表达式解析器。

01

CVPR2021性能提升:Facebook提出FP-NAS——搜索速度更快、分类精度更高、性能更好

就职于 Facebook AI 的严志程博士和他的同事最近在 CVPR 2021 发表了关于加速概率性神经架构搜索的最新工作。该工作提出了一种新的自适应架构分布熵的架构采样方法来显著加速搜索。同时,为了进一步加速在多变量空间中的搜索,他们通过在搜索初期使用分解的概率分布来极大减少架构搜索参数。结合上述两种技巧,严志程团队提出的搜索方法 FP-NAS 比 PARSEC [1] 快 2.1 倍,比 FBNetV2 [2] 快 1.9-3.5 倍,比 EfficientNet [3] 快 132 倍以上。FP-NAS 可以被用于直接搜索更大的模型。搜索得到 FP-NAS-L2 模型复杂度达到 1.0G FLOPS,在只采用简单知识蒸馏的情况下,FP-NAS-L2 能够比采用更复杂的就地蒸馏的 BigNAS-XL [4]模型,提高 0.7% 分类精度。

01

泛型和元编程的模型:Java, Go, Rust, Swift, D等

在程序设计的时候,我们通常希望使用同样的数据结构或算法,就可以处理许多不同类型的元素,比如通用的List或只需要实现compare函数的排序算法。对于这个问题,不同的编程语言已经提出了各种各样的解决方案:从只是提供对特定目标有用的通用函数(如C,Go),到功能强大的图灵完备的通用系统(如Rust,C++)。在本文中,我将带你领略不同语言中的泛型系统以及它们是如何实现的。我将从C这样的不具备泛型系统的语言如何解决这个问题开始,然后分别展示其他语言如何在不同的方向上逐渐添加扩展,从而发展出各具特色的泛型系统。 泛型是元编程领域内通用问题的简单案例:编写可以生成其他程序的程序。我将描述三种不同的完全通用的元编程方法,看看它们是如何在泛型系统空的不同方向进行扩展:像Python这样的动态语言,像Template Haskell这样的过程宏系统,以及像Zig和Terra这样的阶段性编译。

03

HeRM's :一个命令行食谱管理器

烹饪让爱变得可见,不是吗?确实!烹饪也许是你的热情或爱好或职业,我相信你会维护一份烹饪日记。保持写烹饪日记是改善烹饪习惯的一种方法。有很多方法可以记录食谱。你可以维护一份小日记/笔记或将配方的笔记存储在智能手机中,或将它们保存在计算机中文档中。这有很多选择。今天,我介绍 HeRM's,这是一个基于 Haskell 的命令行食谱管理器,能为你的美食食谱做笔记。使用 Herm's,你可以添加、查看、编辑和删除食物配方,甚至可以制作购物清单。这些全部来自你的终端!它是免费的,是使用 Haskell 语言编写的开源程序。源代码在 GitHub 中免费提供,因此你可以复刻它,添加更多功能或改进它。

02

学习一门新的语言

虽然我大学本科读的不是计算机专业,但当时正处在计算机信息化的时代,工科学生都会安排学习一些计算机相关知识。我学的第一门计算机编程语言是 FORTRAN,此后在学校陆续学习了 C 、汇编、PASCAL 等语言。毕业之后,学习的编程语言更多,总共算下来有十几门。这些语言,有的是自己主动去学习,更多的则是工作需要,边学边做项目。其实我也很羡慕有些同学可以专精一个领域,将某个语言学到极致。不过人在江湖飘,很多时候也是身不由己。做项目的时候,哪个语言做起来快,做起来简便,就会选择哪门语言。此外,不同的公司有不同的语言偏好,如果中间换过几家公司,少不了要去学习新的语言。

02
领券