2

Scala でハードウェアの問題を解決しようとしています。従来のソリューションにはスタックが必要ですが、これまでのところスタックはクラスに導入されていません。リストのみが導入されました。私の質問は、リストをスタックとして扱うにはどうすればよいですか? 言い換えれば、リスト上の要素のプッシュとポップをどのように模倣できますか?

4

1 に答える 1

8

これがアイデアを示すことを願っています:

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)
于 2013-04-06T20:12:15.460 に答える