haskell - 在命令行中运行时输出 putStrLn 抛出错误
问题描述
我不明白为什么这段代码没有输出。我不断收到错误消息:解析错误(可能是不正确的缩进或不匹配的括号) putStrLn “输入多少个数字:”
main = do
putStrLn "Enter how many numbers:" -- clearer
listlen <- getLine
if (listlen < 100)
then
putStrLn "Enter a number: "
numberString <- getLine
let numberInt =(read numberString :: Int)
print (numberInt)
else
putStrLn " Error: listlen must be less than 100"
解决方案
当我将您的示例粘贴到我的编辑器中时,失败的那一行是“then”之后的那一行。如果在“then”之后添加“do”,该错误就会消失。
所以:
then do
putStrLn "Enter a number: "
...ETC。
推荐阅读
- haskell - 用数据类型中的函数推导 (Show, Eq)
- java - JNI 本机接口和 JavaFX - NoClassDefFoundError
- sql - 在存储过程中接收多个结果集
- java - 如何在碧玉报告中获取水印背景图像
- node.js - 带有 Cheerio 的选择器无法检索子项
- mysql - 如何实现数据库级别的同步?
- ruby-on-rails - after_create_commit 不执行某些方法
- nginx - Nuxt.js Universal 项目的 nginx 服务器配置到底应该是什么?
- compilation - 在 Flex 中定义模板
- javascript - asp.net中的Javascript执行顺序