あなたは非常に幅広い質問をしているので、エクササイズを始めるのに役立つヒントをいくつか提供します. これに取り組む方法は無数にあり、より経験豊富な関数型プログラマーはおそらくさらに役立つでしょう。:)
最初に文字列を取得し、文字を取得して、リストに変換します。Scala コンソールから取得:
scala> val str = "This string is just an example."
str: String = This string is just an example.
scala> val list = str.toCharArray.toList
res15: List[Char] = List(T, h, i, s, , s, t, r, i, n, g, , i, s, , j, u, s, t, , a, n, , e, x, a, m, p, l, e, .)
AnArray
は変更可能 ( Array Scaladocを参照) ですが、aList
は不変です ( List Scaladocを参照)。これで、機能的な作業を開始できます。:)
Scala コレクションには、実行できる膨大な数の操作があります。悪い習慣をやめようとする命令型プログラマーとして私が最も役立つと思うものはmap
、reduce
、 、およびfold
. それらを使用するためのヒントについては、私のブログ記事Map, reduce, and fold for programmatically imperative をチェックしてください。