scala – 尾递归问题
发布时间:2020-12-16 18:27:10 所属栏目:安全 来源:网络整理
导读:我们正在 Scala中尝试并行收集,并想检查结果是否已订购.为此,我在REPL上编写了一个小函数来检查我们生成的非常大的List: def isOrdered(l:List[Int]):Boolean = { l match { case Nil = true case x::Nil = true case x::y::Nil = xy case x::y::tail = xy
我们正在
Scala中尝试并行收集,并想检查结果是否已订购.为此,我在REPL上编写了一个小函数来检查我们生成的非常大的List:
def isOrdered(l:List[Int]):Boolean = { l match { case Nil => true case x::Nil => true case x::y::Nil => x>y case x::y::tail => x>y & isOrdered(tail) } } 它失败了stackOverflow(这里的问题是多么合适!). 解决方法
isOrdered不是代码中的最后一个调用,&操作符是.试试这个:
@scala.annotation.tailrec def isOrdered(l:List[Int]):Boolean = { l match { case Nil => true case x::Nil => true case x::y::Nil => x>y case x::y::tail => if (x>y) isOrdered(tail) else false } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- WebService详解
- angularjs – 有一个后渲染回调的Angular JS指令?
- angularjs – Flask:是否有可能指示烧瓶* NOT *处理模板的
- bootstrap42-Bootstrap 按钮组
- 【swagger】前后端分离联调利器——swagger安装和使用
- twitter-bootstrap – Twitter Bootstrap Button Dropdown没
- shell->mysql每天定时倒出本地数据,替换远程数据库数据
- [02]基于webservice的权限系统
- twitter-bootstrap-3 – 数据表在bootstrap3模态对话框中没
- twitter-bootstrap – 引导跨度