【发布时间】:2015-10-10 16:33:46
【问题描述】:
我目前正在学习 sml,但我有一个问题找不到答案。我已经用谷歌搜索了,但仍然没有找到任何东西。
这是我的代码:
fun diamond(n) =
if(n=1) then (
print("*")
) else (
print("*")
diamond(n-1)
)
diamond(5);
那行不通。我希望代码显示与数字 n 一样多的 * 并且我想通过递归来做到这一点,但我不明白如何做到这一点。
当我尝试运行该代码时出现错误。这是错误:
新泽西州标准 ML v110.78 [构建时间:2015 年 8 月 20 日星期四 19:23:18] [opening a4_p2.sml] a4_p2.sml:8.5-9.17 Error: operator is not a 函数 [tycon mismatch] 运算符:表达式中的单位: (print "*") diamond /usr/local/bin/sml: Fatal error -- Uncaught exception Error with 0 raise at ../compiler/TopLevel/interact/evalloop.sml:66.19-66.27
谢谢
【问题讨论】:
-
你的输出是什么?
-
@Zabari 我收到一个错误。这是错误:新泽西州 v110.78 的标准 ML [构建:2015 年 8 月 20 日星期四 19:23:18] [打开 a4_p2.sml] a4_p2.sml:8.5-9.17 错误:运算符不是函数 [tycon 不匹配]运算符:表达式中的单元:(打印“*”)菱形/usr/local/bin/sml:致命错误-未捕获的异常错误,在../compiler/TopLevel/interact/evalloop.sml:66.19-66.27