我想解决在斯卡拉hw问题。传统的解决方案需要一个堆栈,但到目前为止还没有在该类中引入堆栈。只有名单已经引入。我的问题是如何可以将列表视为堆栈?换句话说,我如何模仿推送和弹出列表中的元素?如何将Scala列表作为堆栈使用?
1
A
回答
6
我希望这将显示想法:
scala> val x = List(1,2,3)
x: List[Int] = List(1, 2, 3)
scala> val pushed0 = 0::x
push3: List[Int] = List(0, 1, 2, 3)
scala> val pop0 = pushed0.head
pop3: Int = 0
// it is actually more peek than fair pop
scala> val stackAfterPop = pushed0.tail
stackAfterPop: List[Int] = List(1, 2, 3)
它实际上会有时,你会与模式匹配相识更好的语法(下周我猜):
scala> val popped::stack = pushed0
popped: Int = 0
stack: List[Int] = List(1, 2, 3)
+0
啊,就像ML一样。谢谢。 – awm 2013-04-06 20:13:52
+0
@Ali是的,实际上斯卡拉借了很多来自ML和ML类语言 – 2013-04-06 20:17:14
+0
嗯... Lisp的,也许? – 2013-04-06 20:45:39
相关问题
- 1. 使用列表的堆栈操作
- 2. 为什么递归懒惰列表在Scala中打击堆栈?
- 3. 使用堆栈列表的排列
- 4. 使用链接列表实现堆栈
- 5. 使用MongoDB数组作为堆栈
- 6. 使用队列堆栈
- 7. 如何将Scala中的可堆栈特性重写?
- 8. 堆栈如何工作?
- 9. 堆栈使用链表
- 10. 如何在单独链接列表中使用堆栈
- 11. 我如何使用链接列表初始化堆栈
- 12. 如何将递归函数转换为使用堆栈?
- 13. 如何添加链接列表或使用堆栈函数将其转换为链接列表
- 14. 堆栈和数组列表
- 15. 堆栈在CSS表整列
- 16. 列表/树/堆栈 - 算法
- 17. 堆栈应该如何使用大对象堆栈?
- 18. 如何将numpy数组堆栈在列表中
- 19. 如何将元素添加为html容器中的列堆栈?
- 20. 将列表中的所有元素都推入到scala中堆栈
- 21. AWS CloudFormation - 堆栈名称列表作为参数
- 22. 堆栈两列
- 23. C++堆栈/堆栈。为什么只有一个新操作员?
- 24. C++:使用堆栈
- 25. 堆栈使用类
- 26. ASM堆栈使用
- 27. 堆栈使用Pam.d
- 28. MIPS:使用堆栈
- 29. 列表,数组,堆栈队列?
- 30. Python堆栈为堆栈格式
你可能尝试在传统解决方案之外思考会更好。可能有一个原因,堆栈没有被引入。这位教授可能试图强迫你更多的功能性思考 – 2013-04-07 02:54:21