私は Scala を初めて使用し、メソッド シグネチャに苦労することがあります。このコードを見てみましょう。特に、パラメーターに名前を付けて、さらに操作を行うことに興味があります。
def divide(xs: List[Int]): List[Int] = {
val mid = xs.length/2
(xs take mid, xs drop mid)
}
ここでは、「xs」という名前の入力リストを定義しました。この規則は、多くの Web ページで見てきました。しかし、大学では、別のメソッド シグネチャ定義メソッド (名前がありません。申し訳ありません) がありました。このメソッドでは、入力パラメーターに名前を付けませんでしたが、パターン マッチングが行われます。
def mylength: List[Any] => Int = {
case Nil => 0
case x::xs => mylength(xs)+1
}
この場合、入力パラメータが 1 つしかないため、入力パラメータを特定するのは非常に簡単です。上記のコーディング スタイルで 2 つ以上の入力パラメーターを使用して、以下のコードと同じスタイルを使用するにはどうすればよいですか?
def myConcat(xs: List[Any], ys: List[Any]) = {
xs ++ ys
}
私の英語でごめんなさい。どの用語を検索すればよいのかまったくわからなかったので、Google では何も見つかりませんでした...
編集:インターフェイスに固執する必要があります。私はあなたが私を助けることができる別の例を作ります. myAppend1 と myAppend2 は同じように動作し、新しい要素をリストの前に置きます。
def myAppend1(xs: List[Any], y: Any): List[Any] = {
y :: xs
}
私の問題は、myAppend2 での入力の命名です...
def myAppend2: List[Any] => Any => List[Any] = {
/* how can i do this here, when no names y/xs are given?*/
}