ghci 应用性的特殊情况?

2024-01-22

In ghci:

λ> :t (pure 1)
(pure 1) :: (Applicative f, Num a) => f a
λ> show (pure 1)

<interactive>:1:1:
    No instance for (Show (f0 a0))
      arising from a use of `show'
    Possible fix: add an instance declaration for (Show (f0 a0))
    In the expression: show (pure 1)
    In an equation for `it': it = show (pure 1)
λ> pure 1
1

这是否意味着ghci执行Applicative并显示结果,就像IO?

注意pure () and pure (+1)不要打印任何东西。


如果您使用,您会得到相同的行为return代替pure。要了解要做什么,ghci 必须为给定表达式选择一种类型。 ghci 的默认规则是在没有其他约束的情况下,它选择IO for an Applicative or Monad实例。因此它解释了pure 1作为类型的表达式IO Integer。类型表达式IO a如果为 1,则执行在提示符下输入的内容并打印其结果。a has a Show实例和2.a is not ()。从而进入pure 1在提示结果中

v <- return (1 :: Integer)
print v
return v

正在执行(以及魔术变量it绑定到返回的v). For pure (),特殊情况适用,因为()被认为是无趣的,因此只有return ()被执行并且it势必(), for pure (+1),返回一个函数,没有Show范围内函数的实例,因此不会打印任何内容。然而,

Prelude Control.Applicative> :m +Text.Show.Functions
Prelude Control.Applicative Text.Show.Functions> pure (+1)
<function>
it :: Integer -> Integer
Prelude Control.Applicative Text.Show.Functions> it 3
4
it :: Integer

with a Show对于范围内的函数的实例,它会被打印(并不是说它提供了信息),然后可以使用该函数(后者独立于Show当然,实例在范围内)。

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

ghci 应用性的特殊情况? 的相关文章

  • Haskell Cabal 包 - 找不到 Paths_ 模块

    我正在开发一个 Haskell 项目 Happstack 服务器 Blaze HTML 前端作为主要库 我想添加一个静态数据目录 看起来你可以使用 Cabal 使用自动生成的Path
  • Haskell 中的实例声明

    我有这两个功能 primes sieve 2 where sieve p xs p sieve x x lt xs x mod p gt 0 isPrime number number 1 null x x lt takeWhile x g
  • Haskell 下划线与显式变量

    我已经学习 Haskell 几个星期了 我有一个关于下划线的使用的问题 作为函数参数 我认为用一个具体的例子来问我的问题会更好 假设我想定义一个函数 根据提供的索引提取列表的元素 是的 我意识到 已经是预先定义的 我可以定义该函数的两种方法
  • 在 Haskell 中,为什么我必须在这段代码中使用美元符号?

    我仍在尝试破解这段代码 import Data Char groupsOf groupsOf n xs take n xs groupsOf n tail xs problem 8 x maximum map product groupsO
  • 将两个 Int 值相除以获得 Float 的正确方法是什么?

    我想分两份IntHaskell 中的值并获得结果Float 我尝试这样做 foo Int gt Int gt Float foo a b fromRational a b 但 GHC 版本 6 12 1 告诉我 无法将预期类型 Intege
  • Haskell - 用防护罩替换外壳

    我想知道在这部分代码中是否可以用守卫替换 case 语句 firstFunction String gt Maybe MyType secondFunction MyType gt Integer myFunction String gt
  • 规范化且不可变的数据模型

    Haskell如何解决 规范化不可变数据结构 问题 例如 让我们考虑一个表示前女友 男友的数据结构 data Man Man name String exes Woman data Woman Woman name String exes
  • 使用 FoldLine 解析多个块

    对于这个简化的问题 我试图解析一个如下所示的输入 foo bar baz quux woo hoo xyzzy glulx into foo bar baz quux woo hoo xyzzy glulx 我尝试过的代码如下 import
  • Haskell 中的中缀运算符优先级

    对于以下 Haskell 表达式 返回 a gt gt f 应该读作 返回a gt gt f or 返回 a gt gt f 这里的相关规则是什么 规则始终是函数应用程序的优先级高于任何运算符 因此 return a gt gt f 被解析
  • Haskell 中的尾递归字符串分割

    我正在考虑分割字符串的问题s在一个字符处c 这表示为 break c s 其中 Haskell 库定义break c 足够接近 br br s h t if c h then s else let h t br t in h h t 假设我
  • 简单 Haskell Monad - 随机数

    我正在尝试扩展代码这个帖子 https stackoverflow com questions 3944170 haskell and state 接受的答案 允许我能够基于以种子作为参数的函数 randomGen 调用 randomGen
  • 用于遇到 [...] 的 Haskell Parsec 解析器

    我正在尝试使用 Parsec 在 Haskell 中编写一个解析器 目前我有一个可以解析的程序 test x 1 2 3 end 执行此操作的代码如下 testParser do reserved test v lt identifier
  • 如何在haskell中获取变量名称

    我来到 haskell 时有一些 c 背景知识 想知道是否有类似的 define print a printf s d n a a int a 5 print a 应该打印 a 5 这是 augustss 提到的 TH 解决方案 LANGU
  • 为什么 ZipList 不是 List 的默认应用实例

    我目前正在学习 Haskell 中的应用程序 如果我没记错的话 列表有两个不同的应用实例 List and ZipList 第二个被定义为包装列表值的新类型 这ZipList应用实例对我来说似乎更直观 这可能是一个愚蠢的问题 但有具体原因吗
  • 在 monad 转换器类型类中使用列表 monad?

    我的目标是创建一个在 ReaderT WriterT 堆栈或 RWS 堆栈中使用列表 monad 的函数 更一般地说 如何在 mtl 类型类 例如 MonadReader MonadWriter 中使用列表 monad 我为什么要尝试这样做
  • 在 Haskell 中合并两个列表

    无法弄清楚如何合并两个列表通过以下方式在哈斯克尔 INPUT 1 2 3 4 5 11 12 13 14 OUTPUT 1 11 2 12 3 13 4 14 5 我想提出一个更懒的合并版本 merge ys ys merge x xs y
  • Data.Sequence 中的 inits 和 tails 如何工作?

    Louis Wasserman 编写了当前的实现inits and tails in Data Sequence 他表示它们非常高效 事实上 只要查看代码 我就可以看到 无论它们在做什么 它们都是以干净 自上而下的方式进行的 这往往会给惰性
  • 管道:多个流消费者

    我编写了一个程序来计算语料库中 NGram 的频率 我已经有一个函数 它消耗一串令牌并生成一个订单的 NGram ngram Monad m gt Int gt Conduit t m t trigrams ngram 3 countFre
  • 类型级别集结合律的证明

    我试图证明类型级函数Union https hackage haskell org package type level sets 0 8 5 0 docs Data Type Set html t Union是关联的 但我不确定应该如何完
  • 我是否需要采取明确的操作来促进与持久数据结构的共享?

    我来自命令式背景 正在尝试实现一个简单的不相交集 并集查找 数据结构 以获得在 Haskell 中创建和修改 持久 数据结构的一些练习 目标是有一个简单的实现 但我也关心效率 我的问题与此相关 首先 我创建了一个按等级并集的不相交集森林实现

随机推荐

  • Jasmine:可观察到的单元测试 http 服务错误

    我对如何模拟我的 http 服务捕获可观察到的错误感到非常困惑 我已阅读角度文档 但我不明白如何构建测试 我想模拟我的服务中的错误 然后检查它是否捕获了可观察到的错误 我有另一个服务可以创建并抛出可观察到的错误 我的其余服务只是在遇到错误时
  • 我的 MVC 自定义 ControllerFactory 可以工作,但还能更好吗?

    我研究过 Ninject StructureMap 和其他依赖注入和服务定位器框架 但这个问题更多的是关于了解它是如何工作的以及什么可以做得更好 更重要的是 我无意于查看框架的依赖注入源代码 而是了解它在实践 代码中从头到尾是如何实现的 下
  • 如何让 Git 忽略符号链接?

    我的项目文件夹中有符号链接 以便当我在 Windows 10 计算机上的本地开发服务器中运行项目时可以访问大型视频和图像目录 问题是 Git 不允许我执行 add 因为当存在符号链接时 它会给我这个错误 error readlink Pro
  • 您如何向没有 Javascript 之外的编程经验的人解释 Javascript 类型数组?

    最近我经常使用 Canvas 开发一些关于网络游戏的想法 因此 我最近遇到了 Javascript 类型数组 我已经读过一些书 例如MDN https developer mozilla org en US docs Web JavaScr
  • 错误:自构建预编译头以来系统文件已被修改

    我刚刚下载了 xcode 6 的最终版本并编译了一个我正在使用测试版的项目 现在显然生成了以下错误模拟器 有人可以帮助我解决这个问题 fatal error file Applications Xcode app Contents Deve
  • 如何在asp .net core web api中获取后台服务中的主机URL?

    我有一个 Asp Net core Web api 它将运行后台服务来每天安排一些任务并发送一些邮件 在邮件中我需要有 api 的 url 除了控制器之外 还有什么方法可以在后台服务中获取主机 URL 后台服务在 Web 请求的范围之外运行
  • javax.xml.soap.MessageFactory的实例是线程安全的吗?

    有人知道 javax xml soap MessageFactory 的实例是否是线程安全的吗 我找不到任何与之相关的文档 如果您没有看到任何关于某些东西是否是线程安全的文档 您应该假设它不是 如果你假设它是 但事实并非如此 这将避免很多头
  • postgresql 中 mmm yyyy 格式的日期

    我有一个表 其中有一列没有时区的时间戳类型 我想选择该列mmm yyyy格式 例如 2011 年 3 月 怎么格式化成这样呢 我试过 select cast now as date 但它给了我不正确的格式 SELECT TO CHAR NO
  • 用 React 计算 SVG 边界框?

    我正在编写一个使用 React 生成 SVG 的可视化应用程序 我需要的部分之一是标签 即文本 由封闭框包围 带有可变文本 可能会旋转和设置样式 所以我有一个组件NodeLabel 目前具有固定尺寸 render return
  • 使用多列的参数化 IN 子句

    我有一个沿着这些线的查询 我试图通过比较元组来过滤结果集 例如SQL IN 子句中的多列 https stackoverflow com questions 13027708 sql multiple columns in in claus
  • Xcode UI 测试无密码身份验证

    我应该如何测试我的 iPhone 应用程序无密码认证 https medium com ninjudd passwords are obsolete 9ed56d483eb 要注册或登录 Xcode 中的 UI 测试 https devel
  • Solr 到应用程序洞察

    如何配置 Solr 日志以发送到 Azure Application Insights 我看到可以使用 Log4J 附加程序 https learn microsoft com en us azure application insight
  • 我必须在哪里以及为什么必须放置“template”和“typename”关键字?

    在模板中 我必须在哪里以及为什么要放置typename and template关于从属名称 到底什么是从属名称 我有以下代码 template
  • 更改 FileStream 写入编码类型

    这是我的代码 public static string DownloadFile string FtpUrl string FileNameToDownload string userName string password string
  • 在将 json 对象转换为字符串或字节时,Json 对象包含转换为“\n”的换行符

    包含换行符的 Json 对象被转换为 n 将 json 对象转换为字符串或字节时 如果我选择以下任何一种方式 它将新行字符转换为 n byte json objectMapper writeValueAsBytes jsonObject S
  • 根据条件替换并合并 pandas 中的行

    我有一个数据框 lft rel rgt num 0 t3 r3 z2 3 1 t1 r3 x1 9 2 x2 r3 t2 8 3 x4 r1 t2 4 4 t1 r1 z3 1 5 x1 r1 t2 2 6 x2 r2 t4 4 7 z3
  • 外观更改时更新 Widget

    我需要知道你们中是否有人知道 SwiftUI 中的系统在外观发生变化时更新小部件light模式为dark模式 反之亦然 我可以更改文本和图像 但我使用一种方法来显示地图的屏幕截图 并且每次外观发生变化时我都应该运行它以获得正确的地图颜色 创
  • 如何计算 mongodb 中的 $lookup 字段?

    我对 mongodb 很陌生 现在我需要计算 lookup 字段 这可能吗 我有这样的事情 result await company aggregate lookup from userFocus localField id foreign
  • WinPhone 8 AppBar 图标大小

    The Windows Phone 8 应用栏指南 http msdn microsoft com en us library windowsphone develop ff431806 28v vs 105 29 aspx规定 AppBa
  • ghci 应用性的特殊情况?

    In ghci gt t pure 1 pure 1 Applicative f Num a gt f a gt show pure 1