我在OCaml中的第n个元素函数遇到了麻烦。我找不到问题所在

宋在民

函数nth必须像这样工作:

# nth [1;2;3;4;5] 0;;
- : int = 1
# nth [1;2;3;4;5] 1;;
- : int = 2
# nth [1;2;3;4;5] 2;;
- : int = 3
# nth [1;2;3;4;5] 3;;
- : int = 4

我这样写了一个名为nth的函数:

let rec nth l n =
    match l with
    |[] -> raise (Failure "list is too short")
    |hd::tl -> 
    if n > 0 then nth tl n-1 else hd 

因此,我输入nth [1;2;3;4;5] 3了预期的输出为4,但控制台说“列表太短”

我期望的算法是:nth [1; 2; 3; 4; 5] 3

1::[2;3;4;5] 3 > 0 is true, so nth [2;3;4;5] 2 is called.
2::[3;4;5] 2 > 0 is true, so nth [3;4;5] 1 is called.
3::[4,5] 1 > 0 is true, so nth [4;5] 0 is called
4::[5] 0 > 0 is false, so return 4
so nth [1;2;3;4;5] 3 = 4

我的代码有什么问题?

杰弗里·斯科菲尔德(Jeffrey Scofield)

这是一个优先问题。表达nth tl n-1被解析这样的:(nth tl n) - 1您需要这样的括号:nth tl (n - 1)

如果使用字符串列表(例如)尝试当前代码,则可能会从顶层获得更有用的错误消息。

除此之外,您的代码看起来还不错。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我收到错误消息“变量的类型不完整”,我找不到问题所在

来自分类Dev

我遇到了Sed的麻烦

来自分类Dev

错误1005:无法创建表找不到问题所在

来自分类Dev

我在MongoDB中遇到了麻烦,帮帮我

来自分类Dev

我在查看 <unistd.h> 中定义的 read() 函数代码时遇到了麻烦

来自分类Dev

我正在尝试找出问题所在

来自分类Dev

我的Kali升级失败-查找问题所在的日志位置

来自分类Dev

LINQ 中的默认 Empty 不起作用,所以我需要找出问题所在

来自分类Dev

我在处理中遇到了反射调用目标异常,但找不到导致它的原因

来自分类Dev

我在回声变量时遇到了麻烦

来自分类Dev

我正在尝试将数据从calcArea函数传递给calcCost函数,但是我遇到了麻烦

来自分类Dev

承诺,我在获取另一个函数的返回时遇到了一些麻烦

来自分类Dev

我在java编程中遇到了问题。我收到错误“列数与第 1 行的值数不匹配”

来自分类Dev

我在编写一个正方形的函数时遇到了 Python 问题

来自分类Dev

空函数似乎从我的包装器中清除了一些类,但不是全部。试图找出问题所在

来自分类Dev

我在使用驱动程序类中的一个类中的变量时遇到了一些麻烦

来自分类Dev

我正在尝试使方法类似于ArrayList类中的lastIndexOf(),但是我在查找元素的最后一个索引时遇到了一些问题

来自分类Dev

找不到我的代码中的错误所在?

来自分类Dev

我在第二个练习中遇到了一系列代码问题

来自分类Dev

我需要在VB中显示标签之间添加延迟,但是我似乎遇到了麻烦

来自分类Dev

通过导入命令链接两个 python 文件时,我在 python 中遇到了一个关于函数的小问题

来自分类Dev

最近,我仅在Google Chrome中遇到了CORS问题

来自分类Dev

在“继承”中,我遇到了“返回”代码的问题

来自分类Dev

我在制作剪刀石头布游戏时遇到了麻烦(3个版本中最好的)

来自分类Dev

我的MVC 4应用无法在Azure上加载。我如何找出问题所在?

来自分类Dev

我的系统很慢。我可以使用哪些命令来帮助确定问题所在?

来自分类Dev

我正在OCaml中进行区分功能,但遇到了一些问题

来自分类Dev

试图更改到终端中的文件目录,但是我遇到了麻烦

来自分类Dev

我在代码中打开切换按钮时遇到了一些麻烦

Related 相关文章

  1. 1

    我收到错误消息“变量的类型不完整”,我找不到问题所在

  2. 2

    我遇到了Sed的麻烦

  3. 3

    错误1005:无法创建表找不到问题所在

  4. 4

    我在MongoDB中遇到了麻烦,帮帮我

  5. 5

    我在查看 <unistd.h> 中定义的 read() 函数代码时遇到了麻烦

  6. 6

    我正在尝试找出问题所在

  7. 7

    我的Kali升级失败-查找问题所在的日志位置

  8. 8

    LINQ 中的默认 Empty 不起作用,所以我需要找出问题所在

  9. 9

    我在处理中遇到了反射调用目标异常,但找不到导致它的原因

  10. 10

    我在回声变量时遇到了麻烦

  11. 11

    我正在尝试将数据从calcArea函数传递给calcCost函数,但是我遇到了麻烦

  12. 12

    承诺,我在获取另一个函数的返回时遇到了一些麻烦

  13. 13

    我在java编程中遇到了问题。我收到错误“列数与第 1 行的值数不匹配”

  14. 14

    我在编写一个正方形的函数时遇到了 Python 问题

  15. 15

    空函数似乎从我的包装器中清除了一些类,但不是全部。试图找出问题所在

  16. 16

    我在使用驱动程序类中的一个类中的变量时遇到了一些麻烦

  17. 17

    我正在尝试使方法类似于ArrayList类中的lastIndexOf(),但是我在查找元素的最后一个索引时遇到了一些问题

  18. 18

    找不到我的代码中的错误所在?

  19. 19

    我在第二个练习中遇到了一系列代码问题

  20. 20

    我需要在VB中显示标签之间添加延迟,但是我似乎遇到了麻烦

  21. 21

    通过导入命令链接两个 python 文件时,我在 python 中遇到了一个关于函数的小问题

  22. 22

    最近,我仅在Google Chrome中遇到了CORS问题

  23. 23

    在“继承”中,我遇到了“返回”代码的问题

  24. 24

    我在制作剪刀石头布游戏时遇到了麻烦(3个版本中最好的)

  25. 25

    我的MVC 4应用无法在Azure上加载。我如何找出问题所在?

  26. 26

    我的系统很慢。我可以使用哪些命令来帮助确定问题所在?

  27. 27

    我正在OCaml中进行区分功能,但遇到了一些问题

  28. 28

    试图更改到终端中的文件目录,但是我遇到了麻烦

  29. 29

    我在代码中打开切换按钮时遇到了一些麻烦

热门标签

归档