1

たとえば、前の質問: Scala のコーディング スタイルと規則は?

誰かが「メソッドが大きくなると、コードを読むのが非常に苦痛になる」と文句を言います..

Dr. Martin Odersky は、「.. 関数型プログラミング スタイルは、多くの小さなメソッドを持つことです.. 」と答えました。

つまり、Scala を使用している場合は、可能な限り FP スタイルで記述し、Scala を Java の代替として使用しないでください。

4

3 に答える 3

3

関数型スタイルが推奨される理由の小さな例を挙げると、同じサイズが保証されていない整数のリストが 2 つあり、短い方のリストの長さまでのすべての合計を含む整数の新しいリストを作成する必要があるとします。命令型のスタイルでは、次のようにします。

val list1 = List(1,2,3,4,5)
val list2 = List(1,2,3,4,5,6,7)

// imperative way
val newList = collection.mutable.ListBuffer[Int]()

val length = math.min(list1.size, list2.size)

for(i <- 0 until length) {
  newList += list1(i) + list2(i)
}

// functional way
list1.zip(list2).map { case (x,y) => x+y }

ご覧のとおり、2 番目の例ははるかに小さく、「どのように」行うかではなく、「何を」行うかに重点を置いています。誰もがどこかの時点で開始する必要があり、最初は通常の命令型コードを書くことができますが、遅かれ早かれ、より機能的なパラダイムを採用するようになります。なぜなら、コードがより優れた安全なものになるからです。

于 2012-10-02T18:27:22.153 に答える
3

Scala の優れた点は、人によって異なるものになる可能性があることです。機能的な方法で書くことをお勧めします。ただし、Scala を命令型スタイルで記述することもできます。

命令型のスタイルで記述する場合でも、小さなメソッドを記述することをお勧めします。これにより、コードが読みやすくなり、保守が容易になります。

于 2012-10-02T16:57:09.403 に答える
0

私が Scala で気に入っているのは、それがマルチパラダイム言語であることです。目の前の問題に最適な方法でコードを書くことができます。

時間が経つにつれて、コードの一部がより機能的なスタイルに移行するのではないかと強く思います。しかし、必ずしもすべてではありません (実際には、命令型アプローチで問題をより簡潔に説明する問題がいくつかあります)。

このようなことを「正しい」「間違っている」と言う人も確かにいますが、私は彼らが要点を見落としているのではないかと思います。純粋関数型コードを書きたい場合は、純粋関数型言語を使用してください。

于 2012-10-02T17:07:06.143 に答える