多个元素的布尔运算符

2024-03-07

我知道有人可以做:

any (>3) [1,2,3,4,5]

但优雅的实现方式是什么:

any and[(>3),(<5)] [1,2,3,4,5]

or

all or[(<2),(>4)] [1,2,3,4,5]

etc?


我相信您想检查是否有任何元素同时存在(<5) and (>3).

你可以这样做:

any (\x -> x > 3 && x < 5) [1..5]

你的另一个可以通过

any (\x -> x < 2 || x > 4) [1..5]

但也许定义一下会更有趣&& and ||处理函数:

infixr 3 &&&
infixr 3 |||

(&&&) :: (a -> Bool) -> (a -> Bool) -> (a -> Bool)
(f &&& g) x = f x && g x

(|||) :: (a -> Bool) -> (a -> Bool) -> (a -> Bool)
(f ||| g) x = f x || g x

所以现在我们可以将您的示例重写为:

any ((>3) &&& (<5)) [1..5]
any ((<2) ||| (>4)) [1..5]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多个元素的布尔运算符 的相关文章

  • 在没有互联网连接的情况下使用 cabal 安装 Haskell 软件包

    我有一台根本无法访问互联网的机器 我使用通过随身碟从另一台机器获得的安装程序在其上安装了 Haskell 平台 现在我想安装这个包repa在我的家用机器上 无法访问互联网 我该怎么做呢 我的家用计算机运行的是 Linux Debian 我的
  • 在帖子上生成最近帖子列表时,如何避免依赖循环?

    所以这有效 create archive html do route idRoute compile do posts lt myRecentFirst gitTimes lt lt loadAll posts let archiveCtx
  • Haskell GHC:具有 N 个构造函数的模式匹配的时间复杂度是多少?

    假设我们有以下 Haskell data T T0 T1 T2 TN toInt T gt Int toInt t case t of T0 gt 0 T1 gt 1 T2 gt 2 TN gt N 这里使用什么算法来执行模式匹配 我看到两
  • 为什么Haskell没有split函数? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在许多语言中 都有一个函数可以使用指定的分隔符将字符串分成几部分 它经常被称为split 您可以在 Python C Java JavaScri
  • 在 Haskell 中,如何将嵌套上下文中的函数“应用”到上下文中的值?

    nestedApply Applicative f Applicative g gt g f a gt b gt f a gt g f b 正如类型所示 如何获得 a gt b 应用于那个a在上下文中f 感谢帮助 这是关注类型很有帮助的情况
  • 在 Haskell 中对单位的组成(例如英寸、美元等)进行建模

    跟进自我之前的一个问题 https stackoverflow com q 73375273 222529 我问如何创建一个可以对单元进行建模的类型 例如Inch 作为 Haskell 中的一种类型 我现在面临的问题是如何对该单元和其他单元
  • Haskell:处理死锁的自引用列表

    GHC 允许永久阻止以下内容是否有任何有用的理由 list 1 tail list 看起来列表迭代器 生成器有点复杂 我们应该能够做一些更有用的事情 Return error Infinitely blocking list Return
  • 使用 Haskell 的欧拉项目 #1

    import Data Set euler Int euler sum x x lt nums where nums Data Set toList Data Set union Data Set fromList 3 6 999 Data
  • 如何在 TH 拼接中复制 'name 的行为

    考虑这个 Haskell 文件 LANGUAGE TemplateHaskell OPTIONS GHC fplugin Test Inspection Plugin module Text main where import Test I
  • Haskell 二进制解析

    我一直在尝试在 haskell 中实现一个协议解析器 而且我对这门语言还很陌生 特别是当涉及到 monad 时 我一直在使用binary 0 5 0 2 并描述了协议的标头和所有有效负载 我想要解析的消息如下所示 header payloa
  • 计算两点之间的距离(Haskell)

    给定两个元组的输入 我希望能够使用以下公式计算两点之间的距离 距离 sqrt x1 x2 2 y1 y2 2 所以我希望函数调用和输出如下所示 gt distance 5 10 3 5 5 385 当我尝试运行下面的代码时 它告诉我输入 w
  • 列表理解:制作列表列表

    你好 我正在尝试在 haskell 中创建一个函数 该函数接受一个数字 a 使用列表 即数字 将其一部分4它会创造 1 1 1 1 1 1 2 1 3 2 2 4 我正在考虑使用列表理解来创建列表 x 然后使用 1 n 中的数字创建更多列表
  • Haskell 测量函数性能

    在 Haskell 中 我如何 简单地 测量函数的性能 例如 运行需要多长时间 或者需要多少内存 我知道分析 但是 是否有一种更简单的方法不需要我对代码进行太多更改 测量运行需要多长时间以及需要多少内存是两个独立的问题 即 基准测试和分析
  • 在 haskell 中处理 IO 与纯代码

    我正在编写一个shell脚本 我在haskell中的第一个非示例 它应该列出一个目录 获取每个文件大小 进行一些字符串操作 纯代码 然后重命名一些文件 我不确定我做错了什么 所以有两个问题 我应该如何安排这样的程序中的代码 我有一个具体问题
  • 如何处理“恐慌:不可能的事情发生了”并在 Haskell 中继续

    我有以下代码 它使用 GHC API 加载模块并获取表达式的类型 typeObjects String gt String gt IO Type typeObjects modules objects do defaultErrorHand
  • 解析 PHOAS 表达式

    我想我理解 PHOAS 参数化高阶抽象语法 我明白了如何漂亮地打印一个表达式 参见http www reddit com r haskell comments 1mo59h phoas for free by edward kmett cc
  • 什么是阴谋地狱?

    在阅读有关 阴谋地狱 的内容时 我有点困惑 因为这个词的含义太多了 我猜最初 Cabal Hell 指的是钻石依赖问题 该问题是通过限制构建计划在每个构建计划中只有任何包的单个版本来解决的 一个包的两个不同版本不能存在于单个构建计划中 正如
  • 如何处理在组合下发生变化的类型?

    我最近读了一篇非常有趣的论文单调性类型 https infoscience epfl ch record 231867 files monotonicity types pdf其中描述了一种新的 HM 语言 该语言可以跟踪操作之间的单调性
  • 简单的秒差距示例会产生类型错误

    我正在尝试编译这个简单的秒差距代码 import Text Parsec simple letter 但我不断收到此错误 No instance for Stream s0 m0 Char arising from a use of let
  • 如何避免编写这种类型的 Haskell 样板代码

    我经常遇到这种情况 这很烦人 假设我有一个 sum 类型 它可以保存一个实例x或一堆其他无关的事情x data Foo x X x Y Int Z String other constructors not involving x 要声明

随机推荐

  • 使用 python 和 opencv 检测图像中的文本区域

    我想使用 python 2 7 和 opencv 2 4 9 检测图像的文本区域 并在其周围画一个矩形区域 就像下面的示例图片所示 我对图像处理很陌生 所以任何想法如何做到这一点将不胜感激 有多种方法可以检测图像中的文本 我建议看看这个问题
  • 如何在 Rust 中反序列化(使用 serde)可选 json 参数,可以是字符串或字符串数​​组

    我是 Rust 新手 我正在尝试使用 serde 库反序列化 JSON 数据 我有以下 JSON 结构 foo bar speech something or foo bar speech something something else
  • Scala 中的 Future[Either[AppError, Option[User]]]

    正如标题所提到的 使用这样的数据结构有意义吗 我来一一解释一下 Future 代表异步计算 要么 传达已知错误 选项 传达该值可能不存在 看到这个的时候我有点害怕 使用这种类型组合是一个好的做法吗 让我们看一下解决方案空间 Success
  • 这两个使用 IQueryable 和 .AsParallel 的代码片段是否等效?

    我正在编写一些非常基本的 TPL 代码 并且遇到了一种情况 我很好奇以下两个片段是否等效 myEnumerable AsParallel Select e gt do some work that takes awhile return n
  • CouchDb 视图 - 列表中的键

    我想查询 CouchDB 并且我有一个特定的需求 我的查询应该返回与此条件相对应的文档的名称字段 id 等于或包含在文档归档 列表 中 例如 字段输出如下 output doc s100 doc s101 doc s102 doc s103
  • 为什么`(map digitalToInt) . show`这么快?

    转换非负数Integer其数字列表通常是这样完成的 import Data Char digits Integer gt Int digits map digitToInt show 我试图找到一种更直接的方法来执行任务 而不涉及字符串转换
  • 手动 wp_install() 困难

    我正在尝试使用以下代码在 PHP 中自动安装 WordPress 发行版 base dir home username wordpress location chdir base dir define WP SITEURL http www
  • Angular:7.2.1 ES6 类 ReferenceError:初始化前无法访问“X”

    我有以下 TypeScript 课程 export class Vehicule extends TrackableEntity vehiculeId number constructor super return super proxif
  • 通过 C# 中的反射引发事件

    我想要编写一个可重用的函数通过反射引发事件 经过搜索 我发现了这个类似的问题 如何在 NET C 中通过反射引发事件 https stackoverflow com questions 198543 how do i raise an ev
  • GCC 在 Alpine Linux 中找不到 stdio.h

    在新的 Alpine Linux 中 我安装了 GCC apk add update cache gcc 但仍然是一个简单的程序 include
  • 内联标记块 (@

    Content

    ) 不能嵌套。仅允许一级内联标记

    您好 我收到错误 Inline markup blocks p Content p cannot be nested Only one level of inline markup is allowed 将 Kendo UI 选项卡条和 M
  • 如何实现空对象?

    Details 我找到了一些关于空对象模式 here https softwareengineering stackexchange com questions 152094 null pointers vs null object pat
  • SQL SSIS 转换问题

    我有一个 excel 文件 我正在将其转换为 SSIS 包中的 prn 我的问题 我的其中一栏有货币 所有内容都应该有小数点 但并非所有数字都有 例如 如果没有美分 它只会读取 10425 我需要在 SSIS 中执行的操作是读取 10425
  • Laravel Eloquent 将变量传递给关系函数

    我正在使用 eloquent 来查询数据库条目及其对应关系 问题是我需要通过 date关系中的变量query如下图所示 我可以通过 date变量到第一个查询 因为它不在 with 函数内 我怎样才能用第二个来实现这个目标 Query pub
  • 是否可以存储 Team Foundation Server 自动登录的凭据?

    是否可以存储证书我用来连接到我的团队基础服务器直接在视觉工作室2010 我想避免在每次 VS 启动时插入它们 问题是托管 TFS 的计算机不在域中 并且我使用在该计算机上创建的用户的凭据进行连接 假设机器名是TOOLS 用户是Marco 我
  • GPU 的延迟是多少?

    我可以找到 CPU 核心与其缓存 主内存等之间的 CPU 周期延迟 但似乎很难找到有关现代 GPU 的类似信息 有谁知道 GPU 的延迟 特别是现代 nvidia GPU GF110 或更高版本 与其内存之间的延迟 谢谢 GPU 内存确实具
  • 如何检查 Anaconda 上的 cuda 是否安装正确

    我已经在 Anaconda 上使用以下命令安装了 Cuda conda 安装 c anaconda cudatoolkit 之前我也使用过以下命令来安装 Tensorflow GPU 版本 conda 安装 c anaconda tenso
  • INSERT INTO sqlsrv_query 语句不起作用

    使用 sqlsrv query 命令时 我可以从 MSSQL 服务器请求数据 这有效 但 当我想添加数据时 它返回错误 error array 我为此使用的代码是 tsql INSERT INTO dbo VERLOF events id
  • ObjectStateManager 不包含具有对象引用的 ObjectStateEntry

    我以为我了解 EF 特别是在极其简单的 CRUD 方面 但我可能是错的 我有一个 ObjectContext Repository 模式 在本例中是一个包含 VatRates 集合的 VatCode 实体 增值税代码 1 增值税税率 我想提
  • 多个元素的布尔运算符

    我知道有人可以做 any gt 3 1 2 3 4 5 但优雅的实现方式是什么 any and gt 3 lt 5 1 2 3 4 5 or all or lt 2 gt 4 1 2 3 4 5 etc 我相信您想检查是否有任何元素同时存在