scala – 插入的反转是什么,以及如何实现它?
This question讨论了如何以交替方式交织两个列表,即插入它们.
>被称为“插入”的反转是什么? 解决方法
该主题在此
Haskell IRC session中进行了讨论.
可能性包括“deintercalate”,“extracalate”,“ubercalate”,“outercalate”和“chocolate”;-) 假设我们选择“extracalate”,它可以实现为折叠: def extracalate[A](a: List[A]) = a.foldRight((List[A](),List[A]())){ case (b,(a1,a2)) => (b :: a2,a1) } 例如: val mary = List("Mary","had","a","little","lamb") extracalate(mary) //> (List(Mary,a,lamb),List(had,little) 请注意,只有在以下情况之一的情况下才能重建原始列表: >输入列表的长度相同,或 第二种情况实际上证明对geohashing算法有用,其中纬度位和经度位被插入,但可能存在奇数位. 另请注意,链接问题中插入的定义与Haskell libraries中的定义不同,后者在列表列表之间插入了一个列表! 更新:对于任何折叠,我们提供一个起始值和一个函数,以应用于输入列表的每个值.此功能修改起始值并将其传递到折叠的下一步. ([],[]) ([lamb],[]) ([little],[lamb]) ([a,lamb],[little]) ([had,little],[a,lamb]) ([Mary,[had,little]) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 解决:Jersey搭建webService报错:com.sun.jersey.spi.inje
- Bash:检查,运行流程如果没有运行
- angularjs – 有没有办法在单个控制器中使用$uibModal和$ui
- VIM中的多个选择
- icons – 如何设置应用程序图标为Electron/Atom Shell App
- yum报错:Error: requested datatype primary not availabl
- 跳跃表 SkipList【数据结构】原理及实现
- scala – Play Framework 2.X和阻止数据库调用
- Bootstrap typeahead使用问题记录及解决方案
- 03.Scala编程实战