你会写 seq x x 吗?

2024-01-15

我不太清楚 seq 在 Haskell 中是如何工作的。

看来在很多情况下写起来很有用

seq x x

甚至可以定义一个函数:

strict x = seq x x

但这样的功能还不存在,所以我猜这种方法在某种程度上是错误的。有人可以告诉我这是否有意义或有用吗?


seq a b返回值b,但使该值取决于评估a. Thus, seq a aa.

我认为这里的误解是seq不执行任何操作,因为纯函数不执行任何操作,它只是引入依赖项。

有一个功能evaluate :: a -> IO () in Control.Exception这就是你想要的(注意它在IO)。他们将其放入异常中,因为查看表达式的计算是否会抛出异常以及如果抛出异常则处理异常很有用。

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

你会写 seq x x 吗? 的相关文章

  • : 中缀运算符在 Haskell 中的作用是什么?

    我正在阅读Haskell 简要介绍 http www haskell org tutorial index html 这不是那么温和 并且它反复使用 操作符而不直接解释它的作用 那么 它到底有什么作用呢 是 前置 运算符 x xs 返回一个
  • Haskell 输入返回元组

    我想知道 IO 函数是否可以返回元组 因为我想从这个函数中获取这些元组作为另一个函数的输入 investinput IO gt Char Int investinput do putStrLn Enter Username username
  • 在 monad 转换器类型类中使用列表 monad?

    我的目标是创建一个在 ReaderT WriterT 堆栈或 RWS 堆栈中使用列表 monad 的函数 更一般地说 如何在 mtl 类型类 例如 MonadReader MonadWriter 中使用列表 monad 我为什么要尝试这样做
  • 不同编程语言中的浮点数学

    我知道浮点数学充其量可能是丑陋的 但我想知道是否有人可以解释以下怪癖 在大多数编程语言中 我测试了 0 4 到 0 2 的加法会产生轻微的错误 而 0 4 0 1 0 1 则不会产生错误 两者计算不平等的原因是什么 在各自的编程语言中可以采
  • Haskell:不在范围内:数据构造函数

    今天开始在学校学习 haskell 我遇到了函数问题 我不明白为什么它不在范围内 代码如下 ff Char gt Char gt Char ff A B x 0 y 1 x lt A y lt B x 1 y 0 和错误 md31 hs 2
  • 在另一个字符串中查找子字符串的索引 Haskell

    我要创建一个带有两个参数 字符串 的函数 该函数应查看第一个参数是否是第二个参数的子字符串 如果是这种情况 它将返回每个出现的元组 其中包含子字符串的起始索引和子字符串的结尾索引 例如 f String gt String gt Int I
  • 为什么在 where 子句中使用类型签名如此罕见?

    它是否有助于编译器优化 或者只是添加额外类型签名的多余工作 例如 人们经常看到 foo a gt b foo x bar x where bar x undefined 而不是 foo a gt b foo x bar x where ba
  • Control.Parallel.Strategies 中 Eval 的绑定运算符如何严格评估其参数?

    Control Parallel Strategies 的源代码 http hackage haskell org packages archive parallel 3 1 0 1 doc html src Control Paralle
  • Haskell 处理负参数

    尝试对两个值求和 其中只有一个为负值 例如 1 and 2 soma Float gt Float gt Float soma x1 x2 x1 x2 结果出现错误 为什么
  • Parsec.Expr 具有不同优先级的重复前缀

    Parsec Expr buildExpressionParser 的文档说 相同优先级的前缀和后缀运算符只能出现一次 即 如果 为前缀否定 则不允许使用 2 但是 我想解析这样的字符串 具体来说 考虑以下语法 sentence ident
  • 如何在 Haskell Pipes 中将两个 Consumer 合并为一个?

    我使用Haskell流处理库pipes https hackage haskell org package pipes编写一个命令行工具 每个命令行操作都可以将结果输出到stdout并记录到stderr with pipes API I n
  • Haskell 点运算符

    我尝试在 Haskell 中开发一个简单的平均函数 这似乎有效 lst 1 3 x fromIntegral sum lst y fromIntegral length lst z x y 但是为什么下面的版本不行呢 lst 1 3 x f
  • cabal install wx 缺少 C 库

    Env 操作系统 feodra 16 Haskell 平台 wxGTK 开发 GHHC 7 0 4 我正在尝试安装 wxHaskell 阴谋集团安装wx 然后给出这些错误 缺少对外国库的依赖 缺少 C 库 wx baseu 2 8 wx b
  • 处理 C++ 类中的惰性计算

    假设我有一堂课 class NumberCollection public typedef std set
  • Haskell Fibonacci 达到最大指定数?

    我有一个已启动并正在运行的 Haskell 函数 但它做错了事情 它应该输出最多指定最大数量的斐波那契数列 像这样 fibonacciSequence 86 1 1 2 3 5 8 13 21 33 54 我的代码当前输出斐波那契数列中的前
  • 检索 Haskell 项目中所有导入的列表

    因此 我的最终目标是通过确保项目导入的所有实体都存在于其声称可以使用的版本中 来评估 cabal 文件中依赖项的准确性 一个好的开始是找到单个源文件使用的所有导入实体的列表 可选地包含有关它们来自何处的信息 我愿意暂时忽略类实例的情况 因为
  • 优化 Haskell 内循环

    仍在 Haskell 中进行 SHA1 实现 我现在已经有了一个有效的实现 这是内部循环 iterateBlock Int gt Word32 gt Word32 gt Word32 gt Word32 gt Word32 gt Word3
  • 这个实例有什么问题:ArrowApply Automaton?

    我希望 Automaton 有实例 ArrowApply 但 Control Arrow Transformer Automaton 没有 我认为下面的代码会表现良好 data Automaton b c Auto runAuto b gt
  • 在 Archlinux 上使用 Vim 作为 Haskell 的 IDE 目前情况如何?

    如果可行的话 我的目标是通过 YouCompleteMe 在 Vim 中完成 Haskell 的命令 在这方面 正如您在下面看到的 我还没有找到关于如何让它发挥作用的共识 相关评论的最新评论YouCompleteMe 上的问题 https
  • Haskell 为替代的 Either 数据类型定义 Functor 实例

    通过 Typeclassopedia 获得一些使用类型类的路由 想要替代Either的一个实例Functor 但即使检查定义Either作为一个例子Functor总是给我带来麻烦 有这个 但不会编译 data Alt a b Success

随机推荐

  • Rails/Nginx 不服务 JS 和 CSS

    我通过 Capistrano 将 Rails 3 2 8 应用程序部署到我的 Linode 服务器 并启用了资产管道 它正在运行 nginx unicorn 当我访问我的应用程序时 最小化的 JS 和 CSS 没有被提供 尽管资产存在于
  • 警报处理 - Selenium WebDriver/Selenium RC 2.18.0 - 异常

    我的 Web 应用程序自动化测试软件在 IE Firefox Chrome 和 Safari 上运行 并使用 C 和 Selenium WebDriver IE Firefox Chrome Selenium RC Safari 编写 今天
  • 如何使用PHP静默下载计算机中的文件? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想使用 PHP 以静默或无提示的方
  • Java 正则表达式与国际字母

    这是我当前的代码 return str matches A Za z 我希望它包含国际信件 我该如何在 Java 中做到这一点 Thanks 看来你想要的是 匹配所有字母的人物 通常您会使用 Posix 来做到这一点 p Alpha 表达式
  • iOS6 上的 CFAutoRelease() 类似行为

    我有一个方法可以创建 ABRecordRef 设置其属性并返回引用 我在使用 CFAutoRelease 时遇到崩溃 因为我需要支持 iOS ABRecordRef myRecord ABRecordRef newRecord ABPers
  • 熊猫按组丢弃前导零值

    我想删除 值 列中为零的行 直到每个组的第一个非零值的索引 Input df pd DataFrame date 2019 01 01 2019 01 02 2019 01 03 2019 01 04 2019 01 01 2019 01
  • 使用单独的 Boost 库进行编译,无需安装 Boost

    我正在实现一些我希望尽可能可移植的 C 代码 我想avoid对需要 root 访问权限才能安装的库的依赖关系 此外 我宁愿避免在我的存储库中保留大型库的副本 而且我也不想对库进行用户级安装 仅仅是因为我必须在多台计算机上手动安装它们 我想使
  • Angular 2/4 如何获取应用程序组件中的路由参数?

    As I am new to angular 2 4 I am having trouble setting up a new application as per my need 我正在尝试构建一个应用程序 该应用程序将从另一个应用程序中
  • Xcode 错误:AR 参考图像必须具有非零正宽度

    帮助 我正在使用 ARKit 的图像检测 但我不知道为什么我放置在 AR Reference 文件夹中的每个图像都有错误 AR 参考图像 名称 必须具有非零正宽度 我不太确定这意味着什么 而且当我用谷歌搜索时我没有任何运气 我该如何解决 当
  • Git 存储库损坏(数据流错误)[重复]

    这个问题在这里已经有答案了 我收到这些错误 X WAMP www topsecret gt git fsck full error inflate data stream error invalid code lengths set err
  • 将一个数组中的属性添加到具有相同键的另一个数组中

    我没有用文字解释问题 而是在下面做了一个快速的视觉表示 假设我有以下数组 let arr1 id 1 someKey someValue id 2 someKey someValue 和另一个数组 let arr2 id 1 numberO
  • 无法从heroku上的解析服务器发送电子邮件

    我正在 Heroku Parse Server 上运行我的迁移应用程序 当我尝试使用 requestPasswordResetInBackground 从我的应用程序发送密码重置电子邮件时 出现以下错误 密码重置功能需要 appName p
  • 将 Maven 项目导入 Eclipse 并修复错误

    我导入了一个项目到 eclipse 我在每个类名中都有很多错误 甚至像 String 这样的类 我在课堂上犯的错误是Implicit super constructor Object is undefined for default con
  • Tomcat项目清理错误

    当我尝试从 tomcat 中清理项目时 我收到此错误 无法删除 可能被另一个进程锁定 有什么办法可以解决这个问题吗 首先 尝试只restart tomcat 然后 尝试clean一切 清理Tomcat服务器 在Eclipse中 右键单击To
  • iOS通用应用程序链接是否支持使用同一域的多个应用程序?

    背景 为多个客户端构建普通应用程序 相同的代码库具有不同的包 ID 即 com 公司 client1 com 公司 client2 希望使用相同的通用应用程序链接支持所有客户端版本 即 company com app path 尝试将其添加
  • 在Emacs中,如何在当前文件的函数之间跳转?

    我想快速将指向移动到 Emacs 缓冲区中的函数 我想运行一些函数并得到一个提示 询问我函数名称 并为当前缓冲区中定义的每个函数提供完成 我通常使用 etag 进行导航 但有时我正在寻找已在多个文件中覆盖的框架方法 在这些情况下 我可以找到
  • 有没有办法像我们在 iOS 中那样将用户发送到 macOS 下应用程序的隐私设置?

    与许多应用程序一样 如果禁用了某些隐私权限 我的 iOS 应用程序将为用户提供打开应用程序设置页面的机会 在iOS中 使用特殊的UIApplicationOpenSettingsURLString openSettingsURLString
  • 为什么在中断上下文中执行的内核代码/线程无法休眠?

    我正在阅读罗伯特 洛夫 Robert Love 撰写的以下文章 http www linuxjournal com article 6916 http www linuxjournal com article 6916 说的是 让我们讨论一
  • 从 URL 打开应用程序适用于 Android 版 Firefox,但不适用于 Google Chrome

    我想在用户点击我的网页链接 最好是来自 Facebook 共享帖子 但让我们从纯 URL 开始 时打开我的 Android 应用程序 为了实现这一目标 我创建了一个 ActivityUrlReceiver并将此代码添加到我的AndroidM
  • 你会写 seq x x 吗?

    我不太清楚 seq 在 Haskell 中是如何工作的 看来在很多情况下写起来很有用 seq x x 甚至可以定义一个函数 strict x seq x x 但这样的功能还不存在 所以我猜这种方法在某种程度上是错误的 有人可以告诉我这是否有