当前位置: 首页 > 知识库问答 >
问题:

如何在Haskell中打印像“1+(3-2)”这样的公式?

许奇
2023-03-14

我如何在Haskell中解决这个问题?

main = do

    n <- getLine
    k <- getLine

    print 1+(n-1)+(n-1)*(n-2)/n^3

Q4.HS:7:18:无法将类型“[Char]”与“IO()”匹配预期类型:IO()实际类型:“(-)”的第一个参数中的字符串,即“(+)”的第二个参数中的“n”,即“(n-1)”

Q4.HS:7:24:无法将类型“[Char]”与“IO()”匹配预期类型:IO()实际类型:“(-)”的第一个参数中的字符串,即“(*)”的第一个参数中的“n”,即“(n-1)”

Q4.HS:7:30:无法将类型“[Char]”与“IO()”匹配预期类型:IO()实际类型:“(-)”的第一个参数中的字符串,即“(*)”的第二个参数中的“n”,即“(n-2)”

Q4.HS:7:35:无法将类型“[Char]”与“IO()”匹配预期类型:IO()实际类型:“(^)”的第一个参数中的字符串,即“(/)”的第二个参数中的“n”,即“n^3”

我如何解决这个问题?对不起,我对哈斯克尔很陌生(英语也是。)谢谢你。

共有1个答案

柯瀚玥
2023-03-14

第一级问题可以通过添加括号将参数分组到print(或使用$)来解决:

main = do
    n <- getLine
    k <- getLine
    print (1+(n-1)+(n-1)*(n-2)/n^3)
    -- OR
    print $ 1+(n-1)+(n-1)*(n-2)/n^3

下一个问题是n字符串,但您希望它是某种数字。您可以通过使用readln而不是getline并指定要使用的类型来修复此问题;例如:

main = do
    n <- readLn :: IO Double
    k <- getLine
    print $ 1+(n-1)+(n-1)*(n-2)/n^3
 类似资料:
  • 问题内容: 在Python 2中,我使用了: 我试过了: 问题答案: 在Python2中,是一个引入了以下语句的关键字: 在Python3中,是可以调用的函数: 在这两个版本中,都是一个运算符,它在左侧需要一个字符串,在右侧需要一个值或一个值的元组或一个映射对象(如)。 因此,您的行应如下所示: 另外,对于Python3和更高版本,建议使用-style格式而不是-style格式: Python 3

  • 我刚刚开始编写Haskell,基本上是因为我在寻找一种比C#更强大的数学语言,现在我很困惑。 现在我只想找到4的阶乘,然后打印出来,这是我到目前为止写的: 当我试着调试它时,我得到了 错误:(3,8)ghc:无法匹配预期类型

  • 本文向大家介绍如何优化打印样式?相关面试题,主要包含被问及如何优化打印样式?时的应答技巧和注意事项,需要的朋友参考一下 参考文章

  • 问题内容: 我必须在热蓝牙打印机上打印一些数据,我正在这样做: 它适用于文本,但不适用于图像。我想我需要获取byte[]图像数据。我尝试通过这种方式获取图像数据: 不幸的是,打印机打印了许多奇怪的字符(大约50厘米的纸张)。我不知道如何打印图像。 我想尝试获取位图的像素,然后将其转换为a byte[]并发送,但是我不知道该怎么做。 谢谢 更新: 经过这么长时间,我正在执行此操作:我有一个名为pri

  • 问题内容: 我对二维数组有问题。我有这样的显示: 我基本上想要显示为: 这是我的代码: 问题答案: 输出量 当然,您可以像其他答案中提到的那样交换7和5,以获得每行7。