Haskell Prelude.read:无法解析字符串

2023-12-24

来自哈斯克尔的例子http://learnyouahaskell.com/types-and-typeclasses http://learnyouahaskell.com/types-and-typeclasses

ghci> read "5" :: Int  
5  
ghci> read "5" :: Float  
5.0  
ghci> (read "5" :: Float) * 4  
20.0  
ghci> read "[1,2,3,4]" :: [Int]  
[1,2,3,4]  
ghci> read "(3, 'a')" :: (Int, Char)  
(3, 'a')  

但当我尝试时

read "asdf" :: String 

or

read "asdf" :: [Char]

我得到例外

Prelude.read 无解析

我在这里做错了什么?


这是因为您拥有的字符串表示形式不是 a 的字符串表示形式String,它需要在字符串本身中嵌入引号:

> read "\"asdf\"" :: String
"asdf"

这是这样的read . show === id for String:

> show "asdf"
"\"asdf\""
> read $ show "asdf" :: String
"asdf"

作为旁注,使用readMaybe函数来自Text.Read:

> :t readMaybe
readMaybe :: Read a => String -> Maybe a
> readMaybe "asdf" :: Maybe String
Nothing
> readMaybe "\"asdf\"" :: Maybe String
Just "asdf"

这避免了(在我看来)损坏read解析失败时引发异常的函数。

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

Haskell Prelude.read:无法解析字符串 的相关文章

  • Haskell 中美元符号 ($) 和 id 函数之间有关系吗?

    这几天我正在读一篇评论莫纳德挑战 http mightybyte github io monad challenges 我强烈推荐给像我这样的 Haskell 初学者 我最终得到了这个线程 https news ycombinator co
  • 类 GADT 类型变量的未来角色?

    A 昨天的问题 https stackoverflow com q 41135212 3072788有一个定义HList 来自HList https hackage haskell org package HList 0 4 1 0 doc
  • Haskell Cabal 包 - 找不到 Paths_ 模块

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

    我正在学习 Haskell 所以我尝试实现移动平均函数 这是我的代码 mAverage Int gt Int gt Float mAverage x a fromIntegral k fromIntegral x k lt rawAvera
  • 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 中的 print 是纯函数吗?

    Is print在 Haskell 中是纯函数 为什么或者为什么不 我认为不是 因为它并不总是返回与纯函数应返回的值相同的值 类型的值IO Int并不是真正的Int 它更像是一张纸 上面写着 嘿 Haskell 运行时 请生成一个Int如此
  • 如何在 Haskell 中向右或向左移动列表的 1 个元素?

    嗨 我一直在寻找答案 但找不到 假设我们有一个像这样的列表 1 10 4 5 3 我怎样才能将 5 向左移动 使这个列表变成 1 10 5 4 3 我尝试过了swapElementsAt通过找到该元素的索引 但它看起来非常不足 swapEl
  • 将 num 的签名键入 double?

    我才刚刚开始为你学习 Haskell 以获得伟大的好处 并且我在类型类方面遇到了一些麻烦 我想创建一个接受任何数字类型并强制其为双精度的函数 我的第一个想法是定义 numToDouble Num gt Double 但我认为这不起作用 因为
  • Haskell - 用防护罩替换外壳

    我想知道在这部分代码中是否可以用守卫替换 case 语句 firstFunction String gt Maybe MyType secondFunction MyType gt Integer myFunction String gt
  • Haskell,堆栈:找到可执行文件

    我正在寻找类似的东西 stack whereis hasktags where whereis行为或多或少类似于 UNIXwhereis命令 hasktags是这样运行的 stack exec hasktags stack exec whe
  • 以下两个 lambda 函数的空间复杂度

    我正在阅读以下内容 https en wikibooks org wiki Haskell Graph reduction https en wikibooks org wiki Haskell Graph reduction 其内容如下
  • 标准的能力

    我发现了一些使用标准的旧例子here http www serpentine com blog 2009 09 29 criterion a new benchmarking library for haskell 看起来好像早在 2009
  • 用于遇到 [...] 的 Haskell Parsec 解析器

    我正在尝试使用 Parsec 在 Haskell 中编写一个解析器 目前我有一个可以解析的程序 test x 1 2 3 end 执行此操作的代码如下 testParser do reserved test v lt identifier
  • 有没有更好的方法将 UTC 时间转换为大纪元时间?

    我想将文件的修改时间设置为从 exif 数据获取的时间 为了从 exif 获取时间 我发现 Graphics Exif getTag Exif gt String gt IO Maybe String 要设置文件修改时间 我发现 Syste
  • 如何在haskell中获取变量名称

    我来到 haskell 时有一些 c 背景知识 想知道是否有类似的 define print a printf s d n a a int a 5 print a 应该打印 a 5 这是 augustss 提到的 TH 解决方案 LANGU
  • Haskell 对于 Web 应用程序来说足够成熟吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Data.Sequence 中的 inits 和 tails 如何工作?

    Louis Wasserman 编写了当前的实现inits and tails in Data Sequence 他表示它们非常高效 事实上 只要查看代码 我就可以看到 无论它们在做什么 它们都是以干净 自上而下的方式进行的 这往往会给惰性
  • 不同编程语言中的浮点数学

    我知道浮点数学充其量可能是丑陋的 但我想知道是否有人可以解释以下怪癖 在大多数编程语言中 我测试了 0 4 到 0 2 的加法会产生轻微的错误 而 0 4 0 1 0 1 则不会产生错误 两者计算不平等的原因是什么 在各自的编程语言中可以采
  • 如何在不声明新数据的情况下更改类型(String,Int)元组的 Ord 实例?

    我正在尝试对类型列表进行排序 String Int 默认情况下 它按字符串排序 然后按整数排序 如果字符串相等 我希望它是相反的 首先比较整数 然后如果相等则比较字符串 另外 我不想切换到 Int String 我找到了一种通过定义实例来实
  • Haskell Data.Decimal 作为 Aeson 类型

    是否可以解析一个数据 十进制 https hackage haskell org package Decimal 0 4 2 docs Data Decimal html使用 Aeson 包从 JSON 获取 假设我有以下 JSON foo

随机推荐

  • 嵌入模式给出错误

    我试图将模式嵌入到我创建的其他模式中 但我不断收到此错误 我不完全确定这里出了什么问题 但我想要做的是将我的事件模式和兴趣模式的引用存储在用户模式内 如果有人能告诉我我做错了什么 那就太好了 谢谢 编辑 我现在收到一个新错误 Users D
  • Django:如何检查用户名是否已经存在?

    我不是 Django 的高级用户 我在网上看到了很多不同的方法 但它们都是针对修改模型的 或者太复杂 我无法理解 我正在重复使用UserCreationForm in my MyRegistrationForm class MyRegist
  • “this”关键字在 Nodejs 和浏览器中的行为不同

    我有这段代码 var obj1 var obj2 function x obj1 this function y obj2 this x y console log obj1 obj2 console log obj1 this 我使用命令
  • NSSavePanel 在沙箱应用程序后不保存文件

    我在保存字符串文件时遇到问题NSSavePanel将应用程序沙箱到 Mac App Store 后 我设置com apple security files user selected read write to YES和NSOpenPane
  • PHP:致命错误:调用非对象上的成员函数[重复]

    这个问题在这里已经有答案了 在这里遇到一个非常奇怪的错误 我正在编写一个平面文件数据库类 这一切都工作正常 直到我刷新 现在我不断收到此消息 致命错误 调用非对象上的成员函数 name home reithg public html tes
  • AVD 管理器 - 无法再运行多个模拟器

    我知道 AVD 管理器可以运行多个模拟器 但在过去几天的新版本中 它停止了工作 它不再执行启动 4 个命令提示符窗口的操作 并且只有一个加载栏 但现在我无法同时运行 1 个以上的命令提示符窗口 当我单击开始时 加载栏完成 但没有加载模拟器
  • 授予 NTFS 权限时继承的权限丢失

    我试图为特定用户授予 UNC 路径上的 NTFS 权限 但我看到不同的行为取决于 UNC 路径 下面是代码 来自MSDN http msdn microsoft com en us library c1f66bc2 aspx 我用它来授予权
  • “flutter packages get”和“flutter pub get”有什么区别?

    我刚刚升级 Android Studio 并看到flutter packages get变成flutter pub get在 工具 gt 颤振 中 这在功能上有什么变化吗 或者它们完全一样吗 他们都做同样的事情 为了证明这一点 我创建了两个
  • Pinterest API 搜索不再工作

    我正在寻找 pinterest API 端点 我已经找到了一些网址 https api pinterest com v3 domains
  • Python selenium 将键发送到文本区域

    我正在使用 Python 3 4 4 访问网站 https readability score com https readability score com 有一个文本区域 当添加新值时会动态更新 我正在尝试将字符串输入到该文本区域框中
  • @EnableAspectJAutoProxy 不起作用

    我正在使用 Spring Boot 并且我想将 AspectJ 与它一起使用 以下作品 当然 Aspect Component public class RequestMappingAspect Before annotation org
  • 创建带有框字符的控制台菜单

    我已经构建了一个菜单 但我想将其格式化为如下所示 菜单标题位于框中 选项位于框中 我找到了来自的盒子字符http en wikipedia org wiki Box drawing character http en wikipedia o
  • 是否有Python内置函数可以确定可迭代对象是否包含特定序列?

    例如 类似 gt gt gt 1 2 3 contains sequence 1 2 True gt gt gt 1 2 3 contains sequence 4 False 我知道in运算符可以对字符串执行此操作 gt gt gt 12
  • 如何在禁用的控件上显示工具提示?

    我正在显示按钮列表 其中一些可能被禁用 我需要在禁用按钮上显示工具提示 并解释其禁用原因 但似乎我无法在不禁用工具提示的情况下禁用该按钮 有没有一个简单的方法可以解决这个问题 将按钮包装在一个组中 然后将工具提示应用到该组
  • 根据 Pandas DataFrame 中的其他列值在列之间移动行值

    我有一个熊猫数据框 其中包含生物体名称及其抗生素敏感性列表 我希望根据以下规则将所有生物体合并到下面数据框中的一列中 如果 ORG1 A 则不执行任何操作 如果 ORG1 A 且 ORG2 A 则将 ORG2 值移至 ORG1 列 如果 O
  • 绘制振幅

    我想知道是否有人可以向我指出一个好的教程或向我展示如何绘制字节数组的幅度图 我使用的音频格式是 U LAW 8000 0 Hz 8 位 单声道 1 字节 帧 听起来您对短期平滑 RMS 幅度测量感兴趣 通常 要执行此操作 您需要输入信号的整
  • 使 JButton 表现得像 JMenu

    我有以下 JMenuBar 代码 此代码取自免费的 java 程序调用JGuiD https sourceforge net projects jguid 并出于个人目的进行编辑 import javax swing import java
  • 在 Visual Studio 2015 Community RTM 中为 ASP.NET 5 项目启用 SSL

    Most tutorials suggest that you can enable SSL for the website by going to properties of the project and then ticking th
  • ObjectAnimator 像素化 TextView

    我在 Samsung GT N5110 android 版本 4 1 2 中放大 TextViews 和 Checkboxes 时遇到问题 放大 TextView 后出现下图 里面有 textview 我想放大它我确实尝试在开发人员选项中启
  • Haskell Prelude.read:无法解析字符串

    来自哈斯克尔的例子http learnyouahaskell com types and typeclasses http learnyouahaskell com types and typeclasses ghci gt read 5