使用 $ 运算符将两个括号链接在一起

2024-01-07

我有这个功能:

min (max 10 20) (max 30 40)

我可以将其重写为:

min (max 10 20) $ max 30 40

但是还有没有办法解决最后的括号呢?

并不是说这还不够好,但我只是不能放弃这个想法,必须有某种方法可以做到这一点......


如果能够写出:

min $ max 10 20 $ max 30 40

但是,这行不通,因为$是右结合词:

Prelude> :info $
($) :: (a -> b) -> a -> b   -- Defined in ‘GHC.Base’
infixr 0 $

因此,该表达式被消除歧义为:

min ((max 10 20) max 30 40)

事实上,这对于$保持关联。然而,我们不能简单地使$保留关联,因为它可能会破坏现有代码。尽管如此,您可以定义一个新的运算符:

infixl 0 %

(%) :: (a -> b) -> a -> b
f % x = f x

main = print (min % max 10 20 % max 30 40)

The %符号就在旁边$美国键盘上的符号。

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

使用 $ 运算符将两个括号链接在一起 的相关文章

  • Haskell Cabal 包 - 找不到 Paths_ 模块

    我正在开发一个 Haskell 项目 Happstack 服务器 Blaze HTML 前端作为主要库 我想添加一个静态数据目录 看起来你可以使用 Cabal 使用自动生成的Path
  • Haskell 中的前提条件检查有哪些选项

    这是一个简单的问题 我认为答案很复杂 一个非常常见的编程问题是函数返回某些内容 或者前置条件检查失败 在Java中 我会使用一些抛出异常的断言函数IllegalArgumentException在方法的开头 如下所示 method body
  • Python给出语法错误但没有错误? [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 有人能说为什么 python 不允许这样做吗 coding utf 8 import win32api win32con os t
  • C# 中的 false 运算符有什么用?

    C 中有两个奇怪的运算符 the 真算子 http msdn microsoft com en us library 6x6y6z4d aspx the 假算子 http msdn microsoft com en us library 6
  • 我应该在 Turtle 或 Foldl 包中使用折叠吗?

    我在使用 Turtle 时遇到了一些困难 直到盯着难以理解的错误消息几分钟后才意识到我使用了错误的fold功能 https hackage haskell org package turtle 1 5 8 docs Turtle Shell
  • Haskell 中的 print 是纯函数吗?

    Is print在 Haskell 中是纯函数 为什么或者为什么不 我认为不是 因为它并不总是返回与纯函数应返回的值相同的值 类型的值IO Int并不是真正的Int 它更像是一张纸 上面写着 嘿 Haskell 运行时 请生成一个Int如此
  • “单词的正则表达式”(语义替换)-任何示例语法和库吗?

    我正在寻找在给定过程语言的情况下对单词而不是字符进行正则表达式样式转换的常用技术的语法示例 例如 为了追踪复制 人们可能想要创建一份具有相似含义但具有不同单词选择的文档 我希望能够简洁地定义这些可以应用于文本流的可能的转换 例如 快速地no
  • 搜索重写规则

    有什么办法可以浏览或搜索重写规则吗 当我使用像这样的标志时 ddump rule firings or ddump rule rewrites我只是得到了触发的规则的名称以及它引起的重写 但没有得到实际的规则本身 理想情况下 我想通过 GH
  • 为什么 python 允许没有“pass”语句的空函数(带有文档字符串)主体?

    class SomeThing object Represents something def method one self This is the first method will do something useful one da
  • 将两个 Int 值相除以获得 Float 的正确方法是什么?

    我想分两份IntHaskell 中的值并获得结果Float 我尝试这样做 foo Int gt Int gt Float foo a b fromRational a b 但 GHC 版本 6 12 1 告诉我 无法将预期类型 Intege
  • Python函数组成

    我尝试使用良好的语法来实现函数组合 这就是我所得到的 from functools import partial class compfunc partial def lshift self y f lambda args kwargs s
  • 使用 FoldLine 解析多个块

    对于这个简化的问题 我试图解析一个如下所示的输入 foo bar baz quux woo hoo xyzzy glulx into foo bar baz quux woo hoo xyzzy glulx 我尝试过的代码如下 import
  • Python:使类可迭代

    我继承了一个包含许多大型类的项目 这些类仅由类对象 整数 字符串等 组成 我希望能够检查属性是否存在 而无需手动定义属性列表 是否可以制作一条蟒蛇classiterable 本身使用标准语法 也就是说 我希望能够使用迭代所有类的属性for
  • Java:扩展类并实现具有相同方法的接口

    可能无法完成以下操作 我收到编译错误 继承的方法 A doSomthing int 无法隐藏 B 中的公共抽象方法 public class A int doSomthing int x return x public interface
  • Haskell 入门

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 几天来 我一直试图理解 Haskell 中的函数式编程范例 我通过阅读教程和观看截屏视频
  • 简单 Haskell Monad - 随机数

    我正在尝试扩展代码这个帖子 https stackoverflow com questions 3944170 haskell and state 接受的答案 允许我能够基于以种子作为参数的函数 randomGen 调用 randomGen
  • clojure 要求语法原理

    我很难理解 因此记住 此处描述的 clojure require 语法 http clojuredocs org clojure core 1 3 0 clojure core require http clojuredocs org cl
  • 为什么这个 if 语句会导致语法错误

    我正在尝试设置一个 elif 语句 如果用户按下 Enter 键 代码将继续 但是我不断遇到语法错误 GTIN 0 while True try GTIN int input input your gtin 8 number if len
  • 你能识别 Haskell 程序中的无限列表吗? [复制]

    这个问题在这里已经有答案了 可能的重复 如何判断列表是否是无限的 https stackoverflow com questions 7371730 how to tell if a list is infinite 在Haskell中 你
  • Haskell:IORef 的性能

    我一直在尝试在 Haskell 中编码一个需要使用大量可变引用的算法 但与纯粹的惰性代码相比 它 也许并不奇怪 非常慢 考虑一个非常简单的例子 module Main where import Data IORef import Contr

随机推荐

  • 如何在 C# ASP.NET 中从 gridview 的页脚行查找文本框的值

  • 如何在动态查询中连接 uniqueidentifier

    我有一个动态查询 我想在其中连接 uniqueidentifier 但 和 运算符不支持此操作 有没有办法可以将 uniqueidentifier 连接到动态字符串 在这方面的任何示例或任何帮助都将受到高度重视 您是否尝试过先转换并转换为字
  • 在 ListView 中显示 Firebase 数据

    好的 我让它运行 显示用户 ID 但不显示分数 然后我开始做一些改变 忘记了我改变了什么 现在我又回到了 null null 我觉得我可能删除了某些内容或拼写错误了某些内容 dbref addValueEventListener new c
  • 如何从我的硬盘驱动器中打开不在 Outlook 中的 Outlook .msg 文件?

    我到处搜索这个看似简单的任务 但我遇到的所有参考文献要么保存到硬盘驱动器 要么从 Outlook 文件夹中读取 我有以下代码循环遍历硬盘驱动器上文件夹中的文件名 但我不知道如何采用该路径并使用 Outlook 打开它 Dim inPath
  • 尝试和树之间的区别?

    我记得尝试不存储每个节点的全部数据 只存储父节点的后缀 树确实存储了整个数据 但仅根据前缀组织自身 因此尝试变得更小 这使得例如可以很好地压缩字典 这真的是唯一的区别吗 从实际应用程序中我记得尝试在范围查询中更快 甚至还有特殊的 solr
  • 无线电输入验证返回错误[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我已经被困在这个问题上有一段时间了 无法弄清楚为什么单选验证在我当前的项目中不起作用 但如果表单除了单选按钮本身之外没有
  • 错误:“utf8”编解码器无法解码位置 0 中的字节 0x80:起始字节无效

    我正在尝试执行以下操作Kaggle作业 https www kaggle com c word2vec nlp tutorial 我正在使用 gensim 包来使用 word2vec 我能够创建模型并将其存储到磁盘 但是当我尝试加载文件时
  • 将 ConfigurationManager 重定向到另一个文件

    我正在寻找重定向standard Net ConfigurationManager 类到另一个文件 entirely 该路径是在运行时确定的 因此我无法使用 configSource或类似的问题 这不是重复的问题 我已经看过其他问题 我本质
  • 如何将 CMake 输出放入“bin”目录?

    我目前正在构建一个具有插件结构的项目 我正在使用 CMake 来编译该项目 这些插件编译在单独的目录中 我的问题是 CMake 编译并将二进制文件和插件 动态库保存在源的目录结构中 如何让 CMake 将文件保存在类似 bin目录 正如奥列
  • 使用 Xoauth2 对 Gmail smtp 进行身份验证。结果用户名和密码不被接受

    由于最近删除了不太安全的应用程序 https support google com accounts answer 6010255 hl en并不想沿着一条路走下去应用程序密码 https support google com accoun
  • Windows操作系统中是否存在零拷贝?

    Reading 这篇零复制文章 http www ibm com developerworks library j zerocopy Windows 操作系统 服务器 2003 2008 2008 R2 中是否存在零拷贝 是的 它是通过以下
  • Angular:类型错误:无法读取 null 的属性“firstCreatePass”

    将 Angular 更新到版本 10 后 我看到此控制台错误 错误类型错误 无法读取 null 的属性 firstCreatePass 更新之前是不存在的 当使用自定义组件加载视图时会显示它 可能缺少什么 原来是因为我也更新了 ngx cu
  • 在 iPhone X 模拟器的顶部和底部看到黑条

    在 iPhone X 模拟器 GM Seed 中运行我的应用程序时 我注意到两个奇怪的效果 该应用程序不使用全屏空间 顶部和底部区域为黑色 标题栏下方有一个奇怪的白条 有谁知道这里发生了什么以及如何解决这个问题 我在 Interface B
  • 检查 T-SQL 中字符串的起始字符是否按字母顺序排列

    是否可以仅使用 TSQL 检查 varchar 字段的前两个字符是否按字母顺序排列 我需要选择my table只有具有的行my field以两个字母字符开头 我怎样才能实现这个目标 是否可以使用正则表达式 你不需要使用正则表达式 LIKE足
  • 为什么reactjs中的功能组件没有实例?

    In 反应快速入门 https facebook github io react docs refs and the dom html 有关于Refs and Functional Components that 您不能在功能组件上使用 r
  • HTTP 标头值的最大值?

    HTTP 标头是否有可接受的最大允许大小 如果是这样 那是什么 如果不是 这是特定于服务器的内容还是允许任何大小的标头的公认标准 不 HTTP 没有定义任何限制 然而 大多数网络服务器确实限制它们接受的标头的大小 例如在Apache 默认限
  • CSS/HTML:使文本斜体的正确方法是什么?

    是什么correct使文本斜体的方法 我见过以下四种方法 i Italic Text i em Italic Text em span class italic Italic Text span span class footnote It
  • (在Video.js中)如何设置自定义请求标头?

    遇到这个问题后 我根据以下内容编写了一个最小的示例本文档 https github com videojs http streaming hlsxhr
  • 向 Django 管理站点添加忘记密码功能

    如何将忘记密码功能添加到 Django 管理站点 有电子邮件 安全问题选项吗 有可用的插件 扩展吗 它们都是在 django 中构建的 只需添加相关的 url 模式即可 如下 from django contrib auth import
  • 使用 $ 运算符将两个括号链接在一起

    我有这个功能 min max 10 20 max 30 40 我可以将其重写为 min max 10 20 max 30 40 但是还有没有办法解决最后的括号呢 并不是说这还不够好 但我只是不能放弃这个想法 必须有某种方法可以做到这一点 如