You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Haskell代码运行抛出Prelude.read: no parse异常如何解决?

错误原因

核心问题出在cmd = read (head ord) :: Char这行代码的read函数使用逻辑错误:
Haskell的read函数解析Char类型时,要求输入字符串必须是符合Haskell字符字面量规则的格式,也就是必须用单引号包裹字符,比如只有输入"'1'"才能被read正确解析为字符'1'。你运行时输入的是1,经过words input处理后得到的是字符串"1",直接将该字符串传给read解析为Char类型完全不符合格式要求,因此触发Prelude.read: no parse异常。

修复方法

直接取字符串的首字符即可,不需要调用read解析,将对应行修改为:

cmd = head (head ord) :: Char

如果要兼容用户输入空行的异常场景,还可以补充对ord是否为空的判断,避免调用head时报错。

内容的提问来源于stack exchange,提问作者Mampenda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 10:54:04