当前位置:  开发笔记 > 编程语言 > 正文

直观地说,Haskell如何在不使用标准长度函数的情况下找到列表的长度?

如何解决《直观地说,Haskell如何在不使用标准长度函数的情况下找到列表的长度?》经验,为你挑选了1个好方法。

我刚刚开始学习Haskell,并且正在尝试编写一个计算列表中元素数量的程序.我在网上找到了这个代码:

listnumber :: [Int] -> Int 
listnumber [] = 0
listnumber (x:xs) =1 + listnumber xs

在GHCi中加载后,程序按预期返回列表的长度.但是这段代码如何直观地工作?



1> Rizier123..:
1| listnumber :: [Int] -> Int 
2| listnumber [] = 0
3| listnumber (x:xs) =1 + listnumber xs

第一行几乎说,该函数采用Int作为参数的列表并返回Int.

第二行是边缘情况,意味着如果使用空列表调用该函数,它将返回0.

第3行使用模式匹配来切断x列表的第一个元素()和其余的(xs).现在你只需为元素添加1 x并再次使用列表的其余部分再次调用函数(递归),这将持续到它遇到边缘情况,即空列表.

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有